use PAGER if set.
[parrot.git] / ChangeLog
blob07f9cb0c6fcd0b8432b881ae7cb934172c52906d
1 #1 $Id$
3 2010.05.18     Whiteknight
4         * Released 2.4.0
5         See NEWS for more
7 2010.04.20     Gerd
8         * Released 2.3.0
9         See NEWS for more.
11 2010.03.16     cotto
12         * Released 2.2.0
13         See NEWS for more.
15 2010.02.16     darbelo
16         * Released 2.1.0
17         See NEWS for more.
19 2010.01.19     chromatic
20         * Released 2.0.0
21         See NEWS for more.
23 2009.12.15     Gerd
24         * Released 1.9.0
25         See NEWS for more.
27 2009.11.17     barney
28         * Released 1.8.0
29         See NEWS for more.
31 2009.10.20     dukeleto
32         * Released 1.7.0
33         See NEWS for more.
35 2009.9.15     particle
36         * Released 1.6.0
37         See NEWS for more.
39 2009.8.18     Whiteknight
40         * Released 1.5.0
41         See NEWS for more.
43 2009.7.21     cotto
44         * Released 1.4.0
45         See NEWS for more.
47 2009.06.16    Whiteknight
48         * Released 1.3.0
49         See NEWS for more.
51 2009.05.19    Infinoid
52         * Released 1.2.0
53         See NEWS for more.
55 2009.04.21    fperrad
56         * Released 1.1.0
57         See NEWS for more.
59 2009.03.17    allison
60         * Released 1.0.0
61         See NEWS for more.
63 2009.02.17    kjs
64         * Released 0.9.1
65         See NEWS for more.
67 2009.01.20    chromatic
68         * Released 0.9.0
69         See NEWS for more.
71 2008.12.16    Whiteknight
72         * Released 0.8.2
73         See NEWS for more.
75 2008.11.18    chromatic
76         * Released 0.8.1
77         See NEWS for more.
79 2008.10.21    particle
80         * Released 0.8.0
81         See NEWS for more.
83 2008.09.16    pmichaud
84         * Released 0.7.1
85         See NEWS for more.
87 2008.08.19    rgrjr
88         * Released 0.7.0
89         See NEWS for more.
91 2008.07.15    barney
92         * Released 0.6.4
93         See NEWS for more.
95 2008.06.17    smash
96         * Released 0.6.3
97         See NEWS for more.
99 2008.05.20    chromatic
100         * Released 0.6.2
101         See NEWS for more.
103 2008.04.15    particle
104         * Released 0.6.1
105         See NEWS for more.
107 2008.03.18    bernhard
108         * Released 0.6.0
109         See NEWS for more.
111 2008.02.20    pmichaud
112         * Released 0.5.3
113         See NEWS for more.
115 2008.01.15    rgrjr
116         * Released 0.5.2
117         See NEWS for more.
119 2007.12.18    jonathan
120         * Released 0.5.1
121         See NEWS for more.
123 2007.11.20    chromatic
124         * Released 0.5.0
125         See NEWS for more.
127 2007.10.17    coke
128         * Released 0.4.17
129         See NEWS for more.
131 2007.09.18    particle
132         * Released 0.4.16
133         See NEWS for more.
135 2007.08.22    pmichaud
136         * Released 0.4.15
137         See NEWS for more.
139 2007.07.17    particle
140         * Released 0.4.14
141         See NEWS for more.
143 2007.06.19    allison
144         * Released 0.4.13
145         See NEWS for more.
147 2007.05.15    chromatic
148         * Released 0.4.12
149         See NEWS for more.
151 2007.04.17    mdiep
152         * Released 0.4.11
153         See NEWS for more.
155 2007.03.20    coke
156         * Released 0.4.10
157         See NEWS for more.
159 2007.3.10     coke
160         * removed parakeet
162 2007.02.22    pmichaud
163         * Released 0.4.9
164         See NEWS for more.
166 2007.01.17    chromatic
167         * changed 'name' method on namespaces to 'get_name' per pdd21
169 2007.01.16    particle
170         * Released 0.4.8
171         See NEWS for more.
173 2006.12.12    particle
174         * added C<isnull> opcode
176 2006.11.14    chip
177         * Released 0.4.7
178         See NEWS for more.
180 2006.11.07      tewk
181         * added :init pragma functionality to subs
183 2006.10.28      jonathan
184         * added :vtable pragma functionality to subs
186 2006.09.18    chromatic
187         * added Parrot::Embed under ext/Parrot-Embed
189 2006.08.18    leo
190         * remove the None PMC - if needed it can trivially be reimplemented
191           in languages from r14189
193 2006.08.16    creiss
194         Merged Software Transactional Memory branch into trunk, adds:
195         * several new opcodes whose names start with stm_
196         * read-only PMC support
197         * several new PMC types (whose names start with STM*)
198         * support for threads (again)
200 2006.08.08    chip
201         * Released 0.4.6
202         See NEWS for more.
204 2006.08.02    chip
205         * opcodes: "in PMC" is no longer a synonym for "invar PMC";
206         there are opcodes now that want the real "in PMC".
207         * namespace and global opcodes now accept name arrays again, as
208         well as keys; the corresponding namespace PMC methods are gone.
210 2006.07.21    leo
211         * Parrot_exit, Parrot_on_exit take now an Interp * argument
213 2006.07.25    chip
214         * add experimental op find_type_i_p
215         * fix longstanding bug that sometimes didn't encode pasm keys as
216         Key PMCs (specifically "[S0]" and "['stringliteral']").
218 2006.07.24    chip
219         further implementation of new pdd21:
220         * new opcodes {get,set}*global
221           (old {find,store}*global will be supported for a short while)
223 2006.07.20    audreyt
224         * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
225           (or some such --leo)
226           (at the moment code is checking for 2.0 -- ambs)
228 2006.07.17    chip
229         partial implementation of new pdd21:
230         * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
231         * get_namespace and find_global opcodes no longer accept arrays
232           of strings.  To use arrays, call namespace object methods.
234 2006.06.19    leo
235         * Released 0.4.5
236         See NEWS for more.
238 2006.06.03    leo
239         * I and N registers are never cleared to 0 / 0.0 on subroutine entry
241 2006.05.14    leo
242         * Released 0.4.4
243         See NEWS for more.
245 2006.04.30    bernhard
246         * Make the Perl PMCs dynamic and move them to src/dynpmc
248 2006.04.02    leo
249         * Released 0.4.3
250         See NEWS for more.
252 2006.03.06    leo
253         * Shifted argument type bits left by 2 according to r11754
254           change of docs/pdds/pdd03_calling_conventions.pod
255         * if you are creating PASM then code needs adjustment
257 2006.02.22    leo
258         * Released 0.4.2
259         See NEWS for more.
261 2006.01.16    bernhard
262          * rename src/dynclasses to src/dynpmc
263          * rename src/classes to src/pmc
265 2006.01.15    leo
267          * find_global and friends returns a .Null PMC instead of .Undef on
268           lookup failure, iff lookup exceptions are off
270 2006.01.08    leo
271         * Released 0.4.1
272         See NEWS for more.
274 2005.12.28    particle
275         * renamed all .imc files to .pir
276         * modified all doc references to .pir as well
278 2005.12.13    particle
279         * moved jit/ directory to src/jit/
281 2005.12.12    particle
282         * moved io/ directory to src/io/
283         * moved classes/ directory to src/classes/
284         * moved dynclasses/ directory to src/dynclasses/
286 2005.12.08    particle
287         * moved types/ directory to src/types/
288         * moved pf/ directory to src/packfile/
289         * moved ops/ directory to src/ops/
291 2005.12.08    particle
292         * moved charset/ directory to src/charset/
293         * moved encodings/ directory to src/encodings/
295 2005.12.07    particle
296         * moved imcc/ directory to compilers/imcc/
298 2005.12.06    particle
299         * moved util/ directory to tools/util/
300         * removed imcc/examples/ directory
301         * moved ast/ directory to compilers/ast/
303 2005.12.05    particle
304         * moved imcc/docs/ directory to docs/imcc/
305         * moved build_tools/ directory to tools/build/
306         * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
308 2005.12.04    leo
309         * Released 0.4.0
310         * See NEWS for changes
312 2005.11.06    leo
313         * Released 0.3.1
314         * See NEWS for changes
316 2005.10.01    leo
317         * Released 0.3.0
318         * See NEWS for changes
320 2005.08.05    leo
321         * Released 0.2.3
322         * See NEWS for changes
324 2005.07.03    leo
325         * Released 0.2.2
326         * See NEWS for changes
328 2005.06.04    leo
329         * Released 0.2.1
330         * allow short names for object attributes
331         * string encoding and charset can now be set independently
332         * experimental mmap IO layer for slurping files
333         * enable compile opcode support for compilers written in PASM/PIR
334         * improved HLL support with .HLL and n_operators pragmas
335         * simplified hash code
336         * more strength reduce optimizations
337         * distinct debug and trace flag settings
338         * glob support in PGE
339         * new character classification opcodes and interfaces
340         * numerous bug fixes and enhancements
342 2005-05-08    leo
343         * Released 0.2.0
344         * parrot repository is now under subversion
345         * MMD (Multi Method Dispatch) enhanced
346         * new unary and infix opcodes that return new result PMCs
347         * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
348         * more unification of PMCs and ParrotObjects
349         * tailcalls for functions and methods
350         * PGE (Parrot Grammar Engine) reworked
351         * Pugs creates Parrot code and Pugs is a registered compiler now
352         * new languages/lisp
353         * the usual bug fixes and improvements
355 2005-03-06    leo
356         * Released 0.1.2
357         * big rewrite of string code, not yet finished but ...
358         * partial implementation of a generational garbage collector
359         * indirect register frame addressing
360         * .return(args) PIR syntax
361         * moved most of the Python code to dynclasses
362         * a lot more Python functionality
363         * precalculate opcodes with all constants
364         * PGE - Parrot Grammar Engine
365         * scalar classes refactoring
366         * much more tests and big test system cleanup
367         * improved documentation
368         * and as always a lot more
370 2004-10-09    leo
371         * Released 0.1.1
372         * Need Perl 5.6 now for building
373         * Basic AST support, PAST file parser, bits of code generation
374         * BigInt PMC using GMP
375         * Complex PMC
376         * Dynamic loading improved including bundles of PMC classes
377         * Experimental support for "make install"
378         * IA64 and hppa JIT support
379         * ICU unicode support
380         * IO layer handling code
381         * IO readline and buffered IO fixes
382         * Incremental GC
383         * Internal pythonic functions: filter, map, reduce, max, min ...
384         * Languages updates for m4, tcl, perl6, regex. New parakeet language.
385         * Library updates, Stream and SDL library
386         * MMD - multi method dispatch for binary vtable methods
387         * Many new array PMCs
388         * Method call syntax in PIR obj."meth"(...)
389         * More OS stuff: stat, exec, system, gmtime, piped read and write
390         * New Python PMCs like Enumerate, None
391         * Non-branching compare opcodes
392         * PIR support for += and friends
393         * Python language subdir
394         * Python types mapped to existing PMCs
395         * Slices and range support
396         * Tons of bug fixes, documentation updates, new tests
397         * Win32 COFF exec support
398         * ... and a lot more
400 2004-02-29    leo
401         * Released 0.1.0
402         * "Ladies and gentlemen, I give you... objects!"
403         * Huge documentation overhaul
404         * More supported platforms, s. PLATFORMS
405         * Basic thread support for pthread based architectures
406         * Basic event handling for timers and signals including:
407         * PASM callbacks for NCI (native C) functions.
408         * Improved platform configuration
409         * COW stacks now working, stacks code redone
410         * Structure handling vastly improved
411         * Random PMC and rand primitives
412         * Better subroutine call syntax in PIR
413         * Make PIR subroutines compliant with pdd03
414         * Improved profiling (DOD, GC timings)
415         * Hash code improvements, incl. random key order support
416         * Experimental freeze/thaw code for some PMC types
417         * IO improvements for buffered layer and Win32
418         * String iterators
419         * String bitwise vtables
420         * Many new opcodes
421         * Support for JIT, where malloced memory isn't executable
422         * Priority DOD scheme for objects that need timely destruction
423         * Improved bytecode loading (e.g. onLoad functions)
424         * Language updates: forth, Perl6/P6C, m4
425         * Libraries: Getopt_Long, SDL, Dumper, Sort
426         * new JAPH examples
427         * Unified imcc and parrot test handling
428         * Many new tests (make test reports 1386 tests)
429         * Numerous bug fixes
432 2003-10-31    leo
433         * Released 0.0.13
434         * Yep thirteen - haunted by the ghost of 0.0.12
435         * Build imcc as parrot
436         * Objects more finished
437         * Delegate vtable methods to byte code
438         * Binary multi-method dispatching
439         * Isa and does methods for PMCs
440         * Call byte code from C
441         * Start of extension interface
442         * Experimental struct handling
443         * Catch access to NULL PMCs
444         * Experimental network socket interface code and opcodes
445         * IO fixes and improvements
446         * Dynamic opcode libraries
447         * Fix-assigned opcode numbers
448         * Argument flattening for function calls
449         * More native call interface (NCI) signatures
450         * Ncurses, postgres, and pcre interface libraries
451         * Forth language is vastly improved
452         * BSD and Win32 build improvements
453         * Many new tests and fixes
455 2003-10-22    melvin
456         * imcc moved from parrot/languages/ to parrot/
458 2003-09-20    sfink
460         * updated the native_pbc test files (from Leo)
461         * built 0.0.11.1 release tarball
463 2003-09-20    sfink
465         * CHANGES BUNDLED INTO 0.0.11:
466         * Executable output
467         * Dynamic PMC registration
468         * Trial exception system
469         * Beginnings of object system
470         * Iterators
471         * Ordered hashes
472         * I/O system improvements
473         * References
474         * Documentation for basic PMC types
475         * IMCC support of Parrot Calling Conventions
476         * Runtime loading of chartypes (and other string improvements)
477         * Conditional breakpoints
478         * Dramatically accelerated sweeps for finalizable objects
479         * Small PMCs (PMCs split into core and extensions)
480         * Loadable bytecode packfiles
481         * Constant PMCs
482         * Sub variants that deal with the stack correctly
483         * Switched runops core
484         * Line numbers in warnings
485         * Environment access
486         * Many documentation cleanups
487         * Conversion to CPS style!
488         * BASIC debugger and many other wacky features
489         * Filename, line number parsing support in IMCC
491 2003-07-21 17:31 chromatic
492         * applied copyright patch from Josh Wilmes
494 2003-06-14 13:50 dan
495         * Moved the registers out of the context structure, since they
496           really aren't context
497         * Changed the register stack frames to hold only 16 registers
498           rather than 32, added half-set push and pop ops, and reworked
499           the full set push/pops to do two half-set push/pops. Should
500           speed up saving register data on calls, since we usually only
501           care about the top half of the registers anyway.
502         * Started committing some of the new class/object framework
503         * Remembered to finally start updating the Changelog
505 2003-03-18 03:50  ask
507         * Various files
508           Update Yet Another copyright statements to reflect the (no longer
509           so) shiny new year.
511 2003-03-11 22:06  chip
513         * Configure.pl: print help on non-option command line args
515 2002-12-18 20:38  sfink: changes since 0.0.8
517         - Allow suppression of cgoto core to save memory during compile
518         * Native function calling interface
519         * Major rewrite of stack and list aggregates
520         - Scalar PMC added
521         * Scratchpads implemented
522         - Win32 libraries
523         - Internal memory subsystem documentation
524         * Preliminary DotGNU support
525         - Packfile fingerprinting
526         * Buffer/PMC unification (into PObjs)
527         * stabs debugging information support
528         * Major Jako overhaul, including:
529           - imcc integration
530           - native function calling
531         - Perl6 string interpolation
532         - languages/regex now targets IMCC
533         * Optional Lea memory allocator
534         * Full sprintf implementation
535         * Many, many new tests
536         * Miniparrot
537         - exchange ops
538         - runtime-controllable gc debugging
539         * PMC properties
540         - Crash info
541         * JIT: various improvements
542           - register usage tracking
543           - block register allocation
544           - optimizations
545           - more jitted ops
546           - restartable
547           - architecture abstraction layer
548           - debugging via GDB
549         * Beginning support for extensible packfiles
550         * Much better key support, generally
551         * splice()
552         * Restructured PMC hierarchy with better functionality inheritance
553         * IMCC: many, many improvements. See imcc/ChangeLog
554         * Perl6: index map grep join reverse defined
555         * Scheme with functions!
558 2002-03-19 22:54  nicholas
560         * docs/running.pod: Patch from Simon Glover <scog@amnh.org>:
562          We can now get usage information for test_parrot without having to
563          grep the source.
565 2002-03-19 22:53  simon
567         * Configure.pl:
568         Parrot is called parrot.
570 2002-03-19 22:53  nicholas
572         * docs/tests.pod: Patch from Simon Glover <scog@amnh.org>:
574          1. There are tests in t/pmc as well as t/op now.
575          2. Adds a comment about Parrot::Test
577 2002-03-19 18:09  dan
579         * Configure.pl, examples/assembly/life.pasm: Toss a prompt that
580         messes up automated builds
582         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
584 2002-03-19 00:33  mrjoltcola
586         * core.ops: Doc cleanup from Simon Glover.
588 2002-03-18 23:52  mrjoltcola
590         * io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
592 2002-03-18 22:09  dan
594         * include/parrot/resources.h: Checked in old version
596 2002-03-18 20:17  dan
598         * include/parrot/resources.h: Forgot a prototype
600 2002-03-18 20:15  dan
602         * resources.c: D'oh! Thinko, fixed.
604         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
606 2002-03-18 17:33  josh
608         * Configure.pl: Lowering the bar a bit.
610 2002-03-18 17:33  sfink
612         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
613         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
614         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
615         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
616         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
617         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
618         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
619         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
620         t/example.t: Whoops, wrong time to check this in.
622 2002-03-18 16:42  dan
624         * memory.c, resources.c: Partial fix for GC's memory trouncing. At
625         least we consider the PMC and Buffer free pools worth collecting,
626         and initialize the Buffer pool stuff.  Still not 100% correct,
627         though.
629 2002-03-18 15:35  simon
631         * packfile.c:
632         Fix format arg bug.
634 2002-03-18 07:45  brentdax
636         * Configure.pl: Warn if you're using 64-bit ints on a 32-bit
637         system.
639 2002-03-18 00:09  sfink
641         * languages/regex/: MAINTAINER, Makefile, README, regex.pl,
642         test.pl, lib/Regex.pm, lib/Regex/AsmOps.pm, lib/Regex/CodeGen.pm,
643         lib/Regex/Generate.pm, lib/Regex/Grammar.pm, lib/Regex/Grammar.y,
644         lib/Regex/Optimize.pm, lib/Regex/Parse.pm, lib/Regex/Pasm.pm,
645         lib/Regex/PreOptimize.pm, lib/Regex/RegexOps.pm,
646         lib/Regex/Rewrite.pm, lib/Regex/CodeGen/Re.pm,
647         lib/Regex/CodeGen/Rx.pm, lib/Regex/Rewrite/Re.pm,
648         lib/Regex/Rewrite/Rx.pm, lib/Regex/Rewrite/Stackless.pm,
649         t/example.t: Buggy 1st version of regex compiler implementation.
650         Warning: the test code depends on features of the assembler that do
651         not yet exist.
653 2002-03-17 21:35  ajgough
655         * types/: bignum.c, bignum_atest.pl: Added a couple of quick routes
656         through addition and subtraction.  Also added the ability to run
657         all the tests, including the ones which deal with overflow and
658         underflow.  These fail, but that's expected.  Soon they'll pass.
659         Then I'll show them.  Yesssssss.  Tessssssssts my precioussssss,
660         passsssssssings tesssstsssss.
662 2002-03-17 20:06  ajgough
664         * types/: bignum.c, bignum.h, bignum_test.pl: Modified
665         check_(under|over)flow to test bignumbers, rather than values.
666         context now carries E_limit, from which max and min exp are found.
668         Added a default-context-creating function (although this isn't the
669         same as either of the default contexts defined in the eda).
671 2002-03-17 13:31  ajgough
673         * types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
674         exported version matches prototypes of other public functions.
676 2002-03-17 06:44  josh
678         * chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
679         packout.c, resources.c, string.c, include/parrot/encoding.h: Some
680         last-minute re-indenting.
682 2002-03-17 05:07  mrjoltcola
684         * io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
686 2002-03-16 23:17  nicholas
688         * classes/default.pmc: Patch from Simon Glover <scog@amnh.org> to
689         remove warnings:
691          default.pmc: In function `Parrot_default_get_integer_keyed':
692          default.pmc:50: warning: control reaches end of non-void function
693          default.pmc: In function `Parrot_default_get_number_keyed':
694          default.pmc:58: warning: control reaches end of non-void function
695          default.pmc: In function `Parrot_default_get_string_keyed':
696          default.pmc:67: warning: control reaches end of non-void function
697          default.pmc: In function `Parrot_default_get_pmc_keyed':
698          default.pmc:87: warning: control reaches end of non-void function
700 2002-03-16 18:50  ajgough
702         * types/: bignum.c, bignum.h: Lots of prototypes changed in
703         readiness for nicely telling your caller about any oddness you've
704         caused in the persuit of flow.
706 2002-03-16 17:38  dan
708         * interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
709         include/parrot/interpreter.h, include/parrot/resources.h: Now we
710         can control the GC and DOD, to stop it when we don't really want
711         it.
713 2002-03-16 16:58  dan
715         * resources.c, vtable.tbl, classes/default.pmc,
716         include/parrot/resources.h: Added the last code to let PMCs control
717         their marking at DOD time
719 2002-03-16 16:57  ajgough
721         * types/bignum.c: Ok, I worked out how to not have lots of tabs.  I
722         feel a little more virtuous now.  Really I do.  You might not
723         believe me, but you should.  perl -pne 's/\t/        /g', if you're
724         curious.
726 2002-03-16 16:57  josh
728         * packfile.c, packout.c: M-x untabify is my new friend.
730 2002-03-16 16:50  josh
732         * trace.c, resources.c: Minor whitespace tweak for the benefit of
733         check_source_standards.pl
735 2002-03-16 16:50  ajgough
737         * types/: bignum.c, bignum.h: More documentation, separate
738         functions into public and private sorts, some initial stuff to cope
739         with over and underflow correctly.
741 2002-03-16 16:49  josh
743         * resources.c: Re-indented (sorry bout the big diff)
745 2002-03-16 16:47  bdwheele
747         * examples/assembly/fact.pasm: This fixes fact.pasm so it will
748         assemble again, both with Simon's new assembler and with the old
749         one.
751 2002-03-16 16:33  mrjoltcola
753         * io/TODO: Get the TODO up-to-date for 0.0.4.
755 2002-03-16 16:11  josh
757         * Configure.pl: Patch from Nicholas Clark <nick@unfortu.net>: stops
758         silly people (such as me) running Configure with
759         /usr/local/bin/perl (which is 5.004_05) and not realising their
760         mistake until the pmc subdirectory, where the first qr// is
761         encountered.
763         Syntax error messages don't tell you what you did wrong. This does:
765         /usr/local/bin/perl Configure.pl Perl 5.00503 required--this is
766         only version 5.00405, stopped at Configure.pl line 10.
768 2002-03-16 14:38  ajgough
770         * Makefile.in: Small fix to Makefile.in to keep Irix make happy
771         with commenting.
773 2002-03-16 11:45  simon
775         * MANIFEST, examples/assembly/xml_parser.pasm:
776         Added Clint Pierce's XML parser.
778 2002-03-15 22:24  simon
780         * packout.c:
781         Don't need that function.
783 2002-03-15 21:56  simon
785         * Makefile.in, include/parrot/packfile.h:
786         Rebuild packout.o, since it'll be used for the Packfile XS module
788 2002-03-15 19:45  dan
790         * include/parrot/: memory.h, pmc.h: Another add-in for GC
792 2002-03-14 19:48  dan
794         * core.ops: No string to int for some reason
796 2002-03-14 18:45  dan
798         * string.c, t/op/string.t: Fix 0-length substr problem
800 2002-03-14 14:46  dan
802         * core.ops, interpreter.c, resources.c, classes/array.pmc,
803         classes/perlarray.pmc, examples/assembly/life.pasm,
804         include/parrot/interpreter.h, include/parrot/resources.h: Added in
805         a counter for copied memory, with a display in life.pasm
807 2002-03-14 03:16  mrjoltcola
809         * MANIFEST: Update MANIFEST courtesy of Simon Glover.
811 2002-03-13 23:43  simon
813         * packfile.c:
814         Oops.
816 2002-03-13 23:43  simon
818         * packfile.c:
819         Hangs head in shame.
821 2002-03-13 21:31  simon
823         * MANIFEST:
824         FAQ moved.
826 2002-03-13 18:06  simon
828         * string.c:
830         Fix string_compare screw-up.
832 2002-03-13 18:02  brentdax
834         * docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
835         and add a new question/answer pair.
837 2002-03-12 22:53  mrjoltcola
839         * io.ops: Quick and dirty read ops for PIO. No warranty provided.
841 2002-03-12 22:48  mrjoltcola
843         * examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
844         warranty provided.
846 2002-03-12 22:29  ajgough
848         * docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
850 2002-03-12 22:24  ajgough
852         * docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
853         version 1.1, Don't know if this is the correct number, but I don't
854         want this stuck on my harddrive where it will get lost, so 14 it is
855         :)
857 2002-03-12 11:35  simon
859         * MANIFEST, packdump.c, packout.c:
861         Just so the functionality doesn't disappear.
863 2002-03-12 11:33  simon
865         * Makefile.in, chartype.c, encoding.c, packfile.c,
866         chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
867         encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
868         include/parrot/chartype.h, include/parrot/encoding.h,
869         include/parrot/packfile.h:
871         Packfile axing.
873 2002-03-11 23:06  nicholas
875         * core.ops: Patch from Simon Glover <scog@roe.ac.uk>:
877           Core.ops documentation nits
879 2002-03-11 23:05  nicholas
881         * t/pmc/pmc.t: Patch from Simon Glover <scog@roe.ac.uk>:
883           Most of the PerlUndef tests in pmc.t appear to have been added
884         twice.
885           Enclosed patch removes the duplicates.
887 2002-03-10 23:40  nicholas
889         * t/pmc/perlstring.t: Patch from Simon Glover <scog@amnh.org>:
891          More tests for the PerlString test-suite.
893 2002-03-10 23:40  nicholas
895         * t/op/time.t: Patch from Simon Glover <scog@amnh.org>:
897         test for sleep with negative argument
899 2002-03-10 21:58  nicholas
901         * t/op/rx.t: Patch from Simon Glover <scog@amnh.org>:
903          Enclosed patch fixes up a few more holes in our test coverage.
905 2002-03-10 21:18  mrjoltcola
907         * classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
908         classes/parrotpointer.pmc, classes/perlarray.pmc,
909         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
910         classes/perlstring.pmc, classes/perlundef.pmc,
911         include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
912         argument to the init() vtable method so PMCs have the option to
913         know how to size themselves at creation. size could be N elements
914         or a byte count, depending on the PMC or it may simply be ignored.
915         Overloaded 'new' opcode for optional arg.
917 2002-03-10 21:15  mrjoltcola
919         * lib/Parrot/Assembler.pm: Minor patch to the assembler for the
920         new_p_ic_ic opcode to work same as new_p_ic (looks up a named
921         class).
923         Also added small hack for .sub directive (which simply translates
924         to a label, however we might eventually want to collect these to
925         validate bsr calls.
927 2002-03-10 15:09  ajgough
929         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
930         Added round_floor and round_ceiling.  3403 tests pass, none fail.
932 2002-03-10 03:56  ajgough
934         * types/: bignum.c, bignum_atest.pl: Added extended stuff to
935         divide, divide integer and remainder.  All filled in functions now
936         have special values capability.
938         Much remains to be done though, and the pdd needs to catch up.
940 2002-03-10 01:36  ajgough
942         * types/bignum.c: Added extended stuff to _add, _subtract.
944 2002-03-10 00:14  nicholas
946         * t/op/: integer.t, number.t: Patch from Simon Glover
947         <scog@roe.ac.uk>:
949          The enclosed patch fixes a few of the holes in our test coverage
950          uncovered by Josh Wilmes
952 2002-03-09 23:03  ajgough
954         * types/: bignum.c, bignum.h: Modified compare to work with
955         extended values.  Made a couple of changes here and there to allow
956         BN_comp to take a context, so that an is_zero check doesn't clobber
957         negative zeros.
959 2002-03-09 22:19  ajgough
961         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
962         Unary plus now copes with special values.
964 2002-03-09 04:25  ajgough
966         * types/: bignum.c, bignum_atest.pl, bignum_test.pl: Exception
967         traps and flags are now enabled and tested for all the standard
968         tests for all the functions which are currently implemented.  Test
969         harness faffed with to allow these to be tested.
971 2002-03-09 02:29  josh
973         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
974         encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
975         Re-indented
977 2002-03-09 02:22  josh
979         * config_h.in: tab-blastin'
981 2002-03-09 02:21  josh
983         * check_source_standards.pl: Play nicer with M-x compile- don't
984         bother giving line numbers for things you don't want to look at.
986 2002-03-09 02:10  josh
988         * examples/mops/mops.c: re-indented
990 2002-03-09 02:07  josh
992         * classes/pmc2c.pl: Use the usual header so that we can detect the
993         autogeneratedness.
995 2002-03-09 02:05  josh
997         * jit2h.pl: Avoid accidental /* inside a comment, which generates a
998         compiler warning
1000 2002-03-09 01:59  josh
1002         * io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
1003         patch- re-indent io/*.c.
1005 2002-03-09 01:52  ajgough
1007         * types/: bignum.c, bignum.h, bignum_test.pl: Added handling of
1008         special values to the string conversion functions, some other
1009         functions now need context (to let -0 pass through really_zero)
1010         which have also been added.
1012 2002-03-09 01:47  josh
1014         * test_main.c: Re-indented.
1016 2002-03-09 01:41  josh
1018         * rx.c: killed a stray tab
1020 2002-03-09 01:38  josh
1022         * rx.c: Re-indented.
1024 2002-03-09 01:36  josh
1026         * misc.c: Oops, some tabs remained- cleaned up.
1028 2002-03-09 01:31  josh
1030         * misc.c: Re-indented (major patch, sorry)
1032 2002-03-09 00:59  josh
1034         * embed.c: Re-indented.
1036 2002-03-08 23:08  simon
1038         * MANIFEST, docs/pdds/pdd10_embedding.pod,
1039         docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
1040         docs/pdds/pdd13_bytecode.pod:
1041         Placeholder PDDs.
1043 2002-03-08 21:12  ajgough
1045         * include/parrot/string.h: Added private flags to string.h, mostly
1046         so that other GCed stuff can also have its very own private flags.
1048 2002-03-08 19:53  simon
1050         * MANIFEST:
1051         Great PDD Renaming
1053 2002-03-08 19:41  robert
1055         * docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
1056         pdd6.pod, pdd7.pod: Renamed...
1058 2002-03-08 18:51  simon
1060         * MANIFEST, docs/pdds/pdd08_keys.pod:
1061         Add keys PDD.
1063 2002-03-08 18:20  ajgough
1065         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl:
1066         Introduced exception handlers and exception flags to context, will
1067         allow support of extended standard.  Unified exception checking
1068         mechanism (sort of) and made minimal changes to bulk of code to use
1069         this.  Tests pass, I'm happy, and further changes will happen more
1070         gradually.
1072 2002-03-08 04:38  josh
1074         * interpreter.c, string.c, testparrotsizes_c.in: More indenting
1075         tweaks.
1077 2002-03-08 04:37  josh
1079         * platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
1081 2002-03-08 04:24  josh
1083         * embed.c: A bit more re-indenting
1085 2002-03-08 04:20  josh
1087         * embed.c: Indenting fixes
1089 2002-03-08 04:14  josh
1091         * jit.c: Re-indented (run_indent.pl)
1093 2002-03-08 03:36  josh
1095         * ops2c.pl: Fix the line numbers which get reported while compiling
1096         core_ops*.c
1098 2002-03-08 03:22  josh
1100         * packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
1101         The variable "type" is set but never used.
1103               opcode_t type;
1105 2002-03-08 03:04  josh
1107         * resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
1108         io/io_unix.c: Clean up unused and set-but-not-referenced variables
1109         noticed by the sgi compiler.
1111 2002-03-08 03:02  josh
1113         * misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
1114         misc.c, Line = 417   The indicated type qualifier is meaningless on
1115         cast type.
1118         (const char) 'f');
1119                                                                          ^
1121 2002-03-08 02:55  josh
1123         * Makefile.in: Clean up one of the object files it was missing
1125 2002-03-08 01:15  josh
1127         * include/parrot/interpreter.h: Fixes the following error (tcc):
1128         "./include/parrot/interpreter.h", line 27: Error:   [Syntax]: Extra
1129         comma at end of list.
1131 2002-03-06 22:15  simon
1133         * stacks.c:
1134         Tidy up stack chunk allocation.
1136 2002-03-06 21:00  simon
1138         * interpreter.c:
1139         Create strings only once we've got string register heads set up.
1141 2002-03-06 20:31  simon
1143         * classes/perlarray.pmc:
1144         malloc(0) considered harmful.
1146 2002-03-06 20:24  simon
1148         * include/parrot/resources.h:
1149         I like it when Parrot compiles.
1151 2002-03-06 17:02  dan
1153         * classes/array.pmc: Changed over to data pointing to a Buffer.
1155 2002-03-06 15:45  dan
1157         * core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
1158         packfile.c, pbc2c.pl, pdump.c, resources.c,
1159         include/parrot/interpreter.h, include/parrot/memory.h,
1160         include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
1161         and opcode_t > longs will now be even more suspect than what they
1162         were beforehand.  2) Feel free to bicker with names.  I don't think
1163         we've come to *any* sort of agreement with these, although we
1164         really, really, need to.  3) I forget the third thing.  4) But I
1165         thought of a fourth.  5) I've now remembered the third thing: IIRC,
1166         ANSI C states that enums will fit within the smallest type (int or
1167         greater) that can hold the values. Is that actually correct, and
1168         does it state whether unsigned is preferred to signed for
1169         non-negative enums? 6) Since I'm no longer constrained by "three"
1170         or "quick", I'm going size_t happy for a lot of memory-related
1171         storage.  (That's good.  No sense wasting the size or performance
1172         of an UINTVAL for strange values of UINTVAL.)  I'm also using it in
1173         a couple other internal things (like the GC stat counters, seen
1174         here).  Size and performance, again, and unpromotable to a bigint,
1175         so we know that we (theoretically) will wrap.  However, size_t
1176         isn't the best choice for the type.  (Not that there's anything
1177         wrong with size_t, just that it shouldn't be called size_t.)  Any
1178         thoughts?  I was thinking of just doing unsigned int, because,
1179         IIRC, int is usually the natural word size, and will be most
1180         efficient.  Thoughts? 7) I forgot what the fourth thing I thought
1181         of was while writing down the others.  Sorry.
1183         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1185 2002-03-06 15:26  dan
1187         * memory.c, resources.c, string.c, classes/perlarray.pmc,
1188         include/parrot/resources.h: Now we allocate generic Buffers from
1189         arenas too
1191 2002-03-05 21:42  brentdax
1193         * Configure.pl: Minor cleanup and enhancements.
1195 2002-03-05 21:25  dan
1197         * resources.c: non-special GC now works with PMCs
1199 2002-03-05 19:48  brentdax
1201         * Configure.pl, DEVELOPING, MANIFEST, config_h.in, test_main.c:
1202         Parrot now "knows" if it's a development version or a release
1203         version.  See the instructions in the DEVELOPING file.
1205 2002-03-05 18:05  brentdax
1207         * MANIFEST: pasm.vim wasn't in the manifest.
1209 2002-03-05 17:57  simon
1211         * Makefile.in:
1212         Now, through much evilness, make distclean and make cvsclean work
1213         again.
1215 2002-03-05 17:38  dan
1217         * memory.c, resources.c, docs/pdds/pdd09_gc.pod,
1218         include/parrot/interpreter.h, include/parrot/pmc.h,
1219         include/parrot/resources.h: PMC tracing complete
1221 2002-03-05 16:28  gregor
1223         * languages/jako/Makefile.in:
1224         Changed -I ../../ to -I ../../lib when calling the assembler, since
1225         the perl modules have moved.
1227 2002-03-05 05:30  josh
1229         * packfile.c, pdump.c, pmc.c, register.c, rxstacks.c, stacks.c,
1230         string.c: More re-indenting via run_indent.pl.
1232 2002-03-05 05:17  josh
1234         * runops_cores.c, trace.c, warnings.c: Re-indented (via
1235         run_indent.pl)
1237 2002-03-05 04:26  josh
1239         * key.c, memory.c, test_gnuc.c, testparrotfuncptr.c: Re-indented
1240         using run_indent.pl and some minor tweaking.
1242 2002-03-05 04:21  josh
1244         * chartype.c, encoding.c, exceptions.c, global_setup.c,
1245         interpreter.c: Re-indented using run_indent.pl and some minor
1246         tweaking.
1248 2002-03-05 03:30  josh
1250         * include/parrot/trace.h: These functions are no longer used (or
1251         even implemented)
1253 2002-03-04 18:21  josh
1255         * include/parrot/trace.h: Fix a typo in the argument type.
1257         Patch from <daniel.ritz@gmx.ch>
1259 2002-03-04 03:39  josh
1261         * check_source_standards.pl, jit2h.pl: Add the "autogenerated file"
1262         header to jit_struct.h so we don't try to check it for conformance.
1263          (no way will it conform)
1265 2002-03-04 03:38  josh
1267         * include/parrot/: chartype.h, interpreter.h, io.h, rx.h, trace.h,
1268         unicode.h, warnings.h: Remove some remaining tabs and split some of
1269         the remaining long lines.
1271 2002-03-04 03:17  josh
1273         * include/parrot/: chartype.h, embed.h, encoding.h, exceptions.h,
1274         global_setup.h, interpreter.h, io.h, jit.h, key.h, memory.h,
1275         misc.h, op.h, oplib.h, packfile.h, parrot.h, pmc.h, register.h,
1276         resources.h, runops_cores.h, rx.h, rxstacks.h, stacks.h, string.h,
1277         string_funcs.h, trace.h, warnings.h: This is the first batch of
1278         re-indenting.   This patch is the result of running run_indent.pl
1279         on the header files and manually tweaking the results where errors
1280         were noticed.   This should get us closed, but some refinement may
1281         follow.
1283 2002-03-04 03:06  josh
1285         * resources.c: Return without parens, as mentioned in PDD 7
1287 2002-03-04 03:01  josh
1289         * core.ops: POD fixes.
1291 2002-03-04 02:58  josh
1293         * config_h.in, ops2c.pl, classes/pmc2c.pl: More consistent headers
1294         on autogenerated files- used by the check_source_standards.pl
1295         script (for now) to exempt autogenerated files from the checks.
1297 2002-03-04 02:51  josh
1299         * embed.c, key.c, pmc.c, resources.c, rx.c, testparrotfuncptr.c,
1300         warnings.c: Added the editor "boilerplate" footer to a few files
1301         which were missing it.
1303 2002-03-04 02:34  josh
1305         * check_source_standards.pl, interpreter.c, jit.c, test_gnuc.c,
1306         include/parrot/io.h, include/parrot/parrot.h, io/io_win32.c: Fixes
1307         c preprocessor directive indentation to comply with pdd 7.
1309         (also fixes the check for this indentation in
1310         check_source_standards.pl)
1312 2002-03-04 02:32  josh
1314         * lib/Parrot/Test.pm: Fixes this error seen on perl 5.005_02 on
1315         irix.
1317         perl t/harness t/op/basic..........Use of uninitialized value at
1318         lib/Parrot/Test.pm line 81.  #     Failed test (t/op/basic.t at
1319         line 6) #          got: undef #     expected: ''
1321 2002-03-04 02:30  josh
1323         * MANIFEST, run_indent.pl, docs/pdds/pdd07_codingstd.pod,
1324         docs/pdds/pdd7.pod: Added documentation and code to invoke the GNU
1325         "indent" program to enforce some of the code style standards
1326         outlined in PDD 7.
1328         Usage: ./run_indent.pl <file>
1330 2002-03-03 19:04  simon
1332         * examples/mops/mops.c:
1333         Let's make it compile, huh?
1335 2002-03-03 19:04  simon
1337         * examples/mops/mops.cs:
1338         I R AN IDIOT
1340 2002-03-03 18:11  simon
1342         * examples/mops/mops.cs, examples/mops/mops.il, MANIFEST:
1343         Added C# and MS-IL versions of mops tester.
1345 2002-03-03 14:52  simon
1347         * core.ops:
1348         Add a sub() op to make mops_p work.
1350 2002-03-02 18:12  nicholas
1352         * examples/mops/mops.c, include/parrot/embed.h,
1353         include/parrot/interp_guts.h, include/parrot/jit.h,
1354         include/parrot/misc.h, include/parrot/packfile.h,
1355         include/parrot/rx.h, include/parrot/warnings.h,
1356         platforms/generic.c, platforms/generic.h, platforms/win32.c,
1357         platforms/win32.h, types/bignum.c, types/bignum.h: Patch from Josh
1358         Wilmes to add the emacs and vim "ending boilerplate" that sets the
1359         indent variables correctly.
1361 2002-03-02 17:41  nicholas
1363         * resources.c: Patch from Josh Wilmes <josh@hitchhiker.org>: Little
1364         patch to fix a compiler warning.
1366 2002-03-01 22:35  dan
1368         * memory.c, resources.c, include/parrot/pmc.h,
1369         include/parrot/resources.h: PMCs now come out of arenas.
1371 2002-03-01 06:15  dan
1373         * string.c:
1374         A non-existing buffer + a non-existing buffer should be a
1375         non-existing buffer, not "", which is really '\0'.
1377         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1379 2002-03-01 06:02  dan
1381         * classes/: array.pmc, perlarray.pmc, perlhash.pmc, perlstring.pmc:
1383         TMTOWTDI, but strcmp is probably the worse.
1385         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1387 2002-03-01 02:32  brentdax
1389         * embed.c: Debug mode now prints out the GC data.
1391 2002-02-28 23:44  dan
1393         * core.ops, resources.c, include/parrot/resources.h: Added collect
1394         and sweep opcodes
1396 2002-02-28 22:58  dan
1398         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Add docs for interpinfo
1399         opcode
1401 2002-02-28 22:50  dan
1403         * core.ops, interpreter.c, resources.c,
1404         examples/assembly/life.pasm, include/parrot/interpreter.h,
1405         include/parrot/resources.h: Add some stat gathering to the resource
1406         allocation code.
1408         Also add an interpreter info retrieval op, and teach it about the
1409         different things it can retrieve.
1411         Finally, add some stat info to life.pasm as an example
1413 2002-02-28 21:27  dan
1415         * editor/pasm.vim: VIM mode commands for parrot assembly files
1417         Courtesy of Scott Beck <scott@gossamer-threads.com>
1419 2002-02-28 19:20  dan
1421         * examples/assembly/life.pasm: Fix a creeping string length leak.
1423         Courtesy of  "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1425 2002-02-28 18:26  dan
1427         * string.c: When you clone a constant, it ain't constant no mo'.
1429         Cocurtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1431 2002-02-28 00:51  dan
1433         * MANIFEST: Add missing files
1435         Courtesy of "Bryan C. Warnock" <Bryan.Warnock@raba.com>
1437 2002-02-28 00:49  dan
1439         * docs/pdds/: pdd0.pod, pdd00_pdd.pod: The pod version of PDD 0 in
1440         CVS seems to have several chunks missing out of it, too.  This
1441         patch is simply an administrative patch, with the differences
1442         between my last version, and the one currently in there.  There
1443         will be a forthcoming patch for some minor tweaking to the PDD, but
1444         I wanted a common baseline before I make any (potential) semantic
1445         changes.
1447         There's only one semi-major change, which noone needs to worry
1448         about just yet.  That's a change from PDD Format 1 to PDD Format
1449         6.0 - rationale can be found under 'Standard (Version #)' of the
1450         STANDARDS TRACK infomation.  Don't worry about this yet, because it
1451         should be 6.0.0, and we need to discuss Perl versus Parrot with
1452         PDDs.
1454         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
1456 2002-02-28 00:27  dan
1458         * packfile.c, resources.c, examples/assembly/life.pasm,
1459         include/parrot/register.h, include/parrot/resources.h,
1460         include/parrot/string.h: First pass of semi-full GC. (Strings only,
1461         no PMCs yet)
1463         This patch now implements a real copying collector. We trace from
1464         our root set and compact the contents of Buffer structs.
1466         Todo:
1468         *) It's very STRING-centric and doesn't handle memory stuffed in
1469         Buffers.  But, then, we don't have pool allocation for Buffers
1470         either, and we need to have that soonish for this to work.
1472         *) Doesn't trace PMCs, so if you trigger a collection and there's
1473         memory or STRING structs only accessible from PMCs, you'll fail
1474         horribly. That needs fixing too
1476         *) Better algorithms for when to trace or collect vs when to just
1477         go allocate more memory from the system. Should probably be more
1478         cache friendly too.
1480 2002-02-27 21:04  dan
1482         * jit.c, memory.c, resources.c, string.c, docs/pdds/pdd09_gc.pod,
1483         examples/assembly/life.pasm, include/parrot/resources.h,
1484         include/parrot/string.h, include/parrot/string_funcs.h,
1485         jit/i386/core.jit: Start of GC in
1487 2002-02-26 16:41  dan
1489         * jit/i386/string.jit: Fix a typo
1491         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
1493 2002-02-26 16:37  dan
1495         * interpreter.c: Fix solaris test failures
1497         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1499 2002-02-26 16:36  dan
1501         * include/parrot/: interp_guts.h, io.h, packfile.h, rx.h,
1502         unicode.h, warnings.h: Fixes various warts in header files, such
1503         as: * macros   -added parens to prevent problems with operator
1504         precedence   -removed ; at end * removed SSIZE_MAX, since ssize_t
1505         is no longer used * added some more INLINE definitions for MSVC and
1506         C99 compilers
1508         Courtesy of Brian Lee Ray <blray@ualr.edu>
1510 2002-02-26 16:20  dan
1512         * Configure.pl: Turns out we were using a warning flag which
1513         doesn't exist on 2.7.  Simple tweak though:
1515         Courtesy of  Josh Wilmes <josh@hitchhiker.org>
1517 2002-02-25 22:58  dan
1519         * MANIFEST, docs/pdds/pdd09_gc.pod: Add docs of GC
1521 2002-02-25 17:36  dan
1523         * include/parrot/pmc.h: Fix the bits
1525 2002-02-23 21:57  dan
1527         * include/parrot/resources.h: Another 1.5% never hurts
1529 2002-02-23 21:44  dan
1531         * global_setup.c, memory.c, resources.c, string.c,
1532         include/parrot/resources.h: Allocate STRING headers from an arena
1533         with freelist rather than with the system malloc. First step in a
1534         good (or even a bad) GC system.
1536 2002-02-23 20:37  brentdax
1538         * misc.c: lint has been doing Evil and Wrong things to misc.c.
1540 2002-02-22 14:59  ajgough
1542         * types/bignum.c: BN_multiply split into BN_multiply and
1543         BN_imultiply, the internal version to be used by idivide so that
1544         rounding isn't performed during intermediate stages of division.
1546         following test scripts now all pass: divide divideint add multiply
1547         subtract remainder compare rounding plus minus (these are all the
1548         operations currently implemented, rescale and power must still be
1549         written, so don't pass right now).
1551 2002-02-22 13:13  ajgough
1553         * types/bignum_atest.pl: Test harness modified to understand
1554         comments better, and be able to run unary (and rounding) tests.
1555         Currently a few rounding tests fail, which are being investigated.
1557 2002-02-22 01:41  dan
1559         * key.c: Although there's more work being done on the key stuff and
1560         this isn't the final fix, applying this patch does get parrot to
1561         build with two more compilers, so it's probably worthwhile.
1563         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1565 2002-02-22 00:53  dan
1567         * config_h.in, misc.c, include/parrot/embed.h,
1568         include/parrot/exceptions.h, include/parrot/interpreter.h,
1569         include/parrot/io.h, include/parrot/parrot.h, include/parrot/pmc.h,
1570         include/parrot/resources.h, include/parrot/rx.h,
1571         include/parrot/string.h, include/parrot/unicode.h,
1572         include/parrot/warnings.h, io/io_stdio.c, io/io_unix.c,
1573         io/io_win32.c: Fixes the following (lcc) warnings:
1575           - interpreter.c:470: warning: expression with no effect elided
1576                (related to the way warnings flags were defined)
1578           - misc.c:352: warning: unreachable code
1579             misc.c:483: warning: unreachable code
1580                (i introduced these with some overzealous de-linting)
1582           - numerous warnings like this:
1583             io/io_unix.c:383: warning: conversion from pointer to void' to
1584         pointer to
1585             pointer to struct _ParrotIO function(pointer to struct
1586         Parrot_Interp,pointer
1587             to struct _ParrotIOLayer,pointer to const char,pointer to const
1588         char,pointer
1589             to pointer to void)' is compiler dependent
1591         Fixes the following nits:    - remove bad indenting (tabs) in the
1592         includes
1594         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1596 2002-02-21 21:12  ajgough
1598         * types/: bignum.c, bignum.h: These might look like massive
1599         changes, but really it's just he imposition of coding standards.
1600         The file still isn't entirely compliant, but is now much more so.
1602         Also changed:
1604          o a few more comments
1605          o BN_compare uses internal BN_comp to compare
1606          o lost_digits behaviour is now correct (test harness modified to
1607         test
1608            this).
1610         All binary functions now pass all the tests in the basic standard.
1611         Unary functions not yet tested, will be soon.
1613 2002-02-21 18:20  dan
1615         * lib/Parrot/OpTrans/CPrederef.pm: The "inline" bit of that patch
1616         was no longer needed, and the ssize_t thing really shouldn't be
1617         needed either.
1619         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1621 2002-02-21 18:15  dan
1623         * Configure.pl, embed.c, pdump.c, hints/mswin32.pl,
1624         include/parrot/parrot.h: this patch adds support for the freely
1625         available borland c++ 5.5.1 compiler
1627         depends on: - josh's patch to remove ssize_t from CPrederef.pm -
1628         working borland compiler (compiler must know where to find headers
1629         and libs) - Perl's Config.pm modified to use cc='bcc32.exe' not of
1630         cc='cl.exe' - a working make utility (borland make doesn't work,
1631         nmake does)
1633         changes: - add bcc in hints/mswin32.pl - clean up for msvc++ in
1634         hints/mswin32.pl - remove a space from Configure.pl (very very
1635         important for bcc) - add a O_BINARY flag to open() in pdump.c,
1636         embed.c (required by bcc) - define O_BINARY 0 when it's not defined
1637         (win32 knows it, linux not)
1639         and the why: - parrot is MUCH faster when compiled with borland c
1640         (make test on p2-450, 320MB):   * msvc++: 313 seconds   * bcc: 251
1641         seconds
1643         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1645 2002-02-21 18:09  dan
1647         * jit.c, testparrotfuncptr.c, trace.c, classes/array.pmc, io/io.c,
1648         io/io_stdio.c, io/io_unix.c, io/io_win32.c: This patch removes
1649         cuddled elses, as required by PDD 7.
1651         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1653 2002-02-21 18:04  dan
1655         * MANIFEST, Makefile.in, check_source_standards.pl: This patch adds
1656         a new Makefile target called "check_source".  This target scans all
1657         the .c and .h files in the directory and checks for conformance to
1658         a number of the standards outlined in PDD 7.
1660         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1662 2002-02-21 16:38  ajgough
1664         * types/: bignum.c, bignum.h, bignum_atest.pl: Modifications to
1665         allow arithmetic with numbers with a fixed fractional part, buffer
1666         structures now more ready to be integrated into the parrot memory
1667         allocation game, test harness modified to allow lost_digits
1668         condition to be checked.  Some more comments.
1670 2002-02-21 15:53  simon
1672         * io/io_unix.c:
1673         Fix typo
1675         Courtesy of: "David M. Lloyd" <dmlloyd@tds.net>
1677 2002-02-20 16:41  dan
1679         * MANIFEST, docs/pdds/pdd_template.pod: Added in template PDD
1681 2002-02-18 18:25  dan
1683         * MANIFEST, lib_deps.pl: Added in lib_deps.pl and MANIFEST change.
1685         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1687 2002-02-18 18:21  dan
1689         * lib/Parrot/OpTrans/CPrederef.pm: this is a quick fix for
1690         CPrederef.pm to make to generated code compile with the MS
1691         compiler.
1693         fixes: - ms compiler allows inline only for c++, for c there's
1694         __inline - ms header files knows nothing about ssize_t
1696         Courtesy of "Ritz Daniel" <daniel_ritz@gmx.ch>
1698 2002-02-18 17:49  dan
1700         * MANIFEST: Add the PDDs
1702 2002-02-18 17:47  dan
1704         * docs/pdds/: pdd07_codingstd.pod, pdd7.pod: Added in PDD 7, the
1705         coding standards PDD.
1707 2002-02-18 17:40  dan
1709         * docs/pdds/: pdd06_pasm.pod, pdd6.pod: Updated to latest rev
1711 2002-02-18 12:41  gregor
1713         * test_main.c:
1714         Remove warning about exit() not being declared.
1716 2002-02-18 08:29  simon
1718         * misc.c, warnings.c, include/parrot/misc.h,
1719         include/parrot/warnings.h:
1720         This patch adds some missing const's to silence a number of gcc
1721         warnings.
1723         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1725 2002-02-18 08:26  simon
1727         * Makefile.in, core.ops, embed.c, interpreter.c, key.c, misc.c,
1728         ops2c.pl, packfile.c, pdump.c, stacks.c, string.c,
1729         classes/array.pmc, classes/perlarray.pmc, classes/perlhash.pmc,
1730         include/parrot/parrot.h, include/parrot/rx.h,
1731         include/parrot/stacks.h, io/io_stdio.c, io/io_unix.c,
1732         lib/Parrot/OpTrans/CPrederef.pm:
1733            - add makefile target and script to test for external libc
1734         dependencies
1735            - fix return values in hash and array PMCs (returning 0 in a
1736         void func)
1737            - remove unnecessary data pointer <=> function pointer
1738         conversions
1739              outside of the JIT code.
1740            - move the definition of the "INLINE" macro out of the rx header
1741         and make
1742              available for general use on C++ compilers and gcc.
1743            - remove a few unused variables
1745         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
1747 2002-02-17 16:29  simon
1749         * docs/pdds/: pdd0.pod, pdd00_pdd.pod, pdd01_overview.pod,
1750         pdd02_vtables.pod, pdd04_datatypes.pod, pdd05_opfunc.pod,
1751         pdd06_pasm.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod, pdd6.pod:
1752         We're organised and responsible. Honest.
1754 2002-02-17 02:46  sfink
1756         * Makefile.in: Remove $^ for nmake compatibility.
1758 2002-02-16 09:20  brentdax
1760         * config_h.in, test_main.c, include/parrot/chartype.h,
1761         include/parrot/embed.h, include/parrot/encoding.h,
1762         include/parrot/string.h, include/parrot/string_funcs.h: Better
1763         embedding exposure and hiding, part 1.
1765 2002-02-16 04:38  dan
1767         * Makefile.in, core.ops, interpreter.c, pbc2c.pl, pdump.c,
1768         runops_cores.c, docs/running.pod, lib/Parrot/OpTrans/C.pm,
1769         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
1770         Anyway, here's a patch to repair pbc2c.pl, combined with removing
1771         typecasts in various places throughout the code. It probably won't
1772         work for Windows yet. The libparrot.a target might need to be
1773         modified to at least prevent it from confusing make on Windows; I
1774         don't know.
1776         Preliminary instructions for using pbc2c.pl are in
1777         docs/running.pod.  I'll try to do better later.
1779         Courtesy of Steve Fink <steve@fink.com>
1781 2002-02-16 04:15  dan
1783         * exceptions.c, include/parrot/exceptions.h: Warnings cleaned up
1785         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1787 2002-02-16 00:03  simon
1789         * classes/: perlarray.pmc, perlhash.pmc:
1791         pmc is already defined!
1793 2002-02-15 23:20  brentdax
1795         * Configure.pl, config_h.in, exceptions.c, pmc.c,
1796         include/parrot/exceptions.h: Far more informative panic messages.
1798 2002-02-15 03:24  dan
1800         * lib/Parrot/: Op.pm, OpsFile.pm, OpTrans/CPrederef.pm: Here's a
1801         much more extensive patch that fixes it to work properly, and
1802         deletes a bazillion casts as well.  It also points to the question
1803         "can we make the byte_code be an opcode_t* already?"
1805         Oh, and it makes some of the formatting prettier, so it's gotta be
1806         good.
1808         Courtesy of * Steve Fink <steve@fink.com>
1810 2002-02-15 02:30  dan
1812         * Makefile.in, core.ops, embed.c, misc.c, packfile.c, rx.ops,
1813         stacks.c: I've tweaked the "lint" target somewhat and fixed a few
1814         of the things it finds.  Attaching the patch as well as the current
1815         lint output.
1817         Courtesy of Josh Wilmes <josh@hitchhiker.org>
1819 2002-02-15 01:59  dan
1821         * t/pmc/: array.t, perlhash.t: Disable non-functional bits for the
1822         moment.
1824 2002-02-15 01:48  dan
1826         * t/pmc/perlarray.t: Skip tests for features that need twiddling
1828 2002-02-15 01:40  dan
1830         * t/op/rx.t: Skip a test that's waiting for us to rejig some array
1831         things
1833 2002-02-14 23:30  dan
1835         * resources.c: Added comment for buffer tag routine. D'oh!
1837 2002-02-14 23:28  dan
1839         * resources.c, include/parrot/resources.h: Added buffer mark
1840         routine for GC
1842 2002-02-14 23:17  dan
1844         * memory.c, classes/array.pmc, classes/perlarray.pmc,
1845         include/parrot/memory.h, include/parrot/string.h, t/pmc/perlhash.t:
1846         Rejigged memory system a bit. Now should be ready for the horror
1847         that is garbage collection.
1849 2002-02-14 19:33  gregor
1851         * ops2c.pl, include/parrot/oplib.h:
1852         Added code to automatically generate a function within an oplib to
1853         lookup opinfos given the op name. This will come in handy in future
1854         when we want to twiddle opcode tables at run time and possibly at
1855         startup time.
1857 2002-02-14 19:25  gregor
1859         * examples/assembly/queens.pasm:
1860         Regenerated queens.pasm from queens.jako since the clone_* stuff
1861         went away.
1863 2002-02-14 17:12  dan
1865         * resources.c, include/parrot/resources.h: Finished up the
1866         interface for memory and tracked interpreter thingies.
1868 2002-02-14 16:53  dan
1870         * memory.c, include/parrot/memory.h: intercept free and realloc
1872 2002-02-14 05:53  dan
1874         * interpreter.c, runops_cores.c: The type changes in struct
1875         Packfile break the pointer math used in a few places to calculate
1876         the address of the end of the loaded byte code. This causes
1877         segfaults in build_asm in jit.c when using -j. It also breaks the
1878         bounds checking on opcode address in runops_slow_core.
1880         The patch adds the necessary cast to correct the code_end
1881         calculations.
1883         Courtesy of Jason Gloudon <perl@gloudon.com>
1885 2002-02-14 01:01  ajgough
1887         * types/: bignum.c, bignum.h, bignum_test.pl: Added support for
1888         BigInt operations (I think), tests for normal operation continue to
1889         pass.  Also a shed load of comments.
1891 2002-02-13 01:34  ajgough
1893         * types/: bignum.c, bignum.h, bignum_atest.pl, bignum_test.pl: This
1894         is a (mostly) working bignumber library.  There remains much work
1895         to do though, some functions are not yet implemented and headers
1896         need to find their way to the correct place RSN.  Also support for
1897         bigints and a sensible error reporting mechanism are needed.
1899 2002-02-12 18:51  dan
1901         * misc.c: Fix some warnings
1903 2002-02-12 17:10  dan
1905         * misc.c: Run through indent -kr -nce so I can read it
1907 2002-02-12 16:49  dan
1909         * misc.c: Need standard header/footer comments
1911 2002-02-11 20:32  simon
1913         * classes/array.pmc:
1914         get and set pmc methods.
1916 2002-02-11 20:19  simon
1918         * classes/array.pmc:
1919         Maybe the keys aren't integer...
1921 2002-02-11 20:03  simon
1923         * core.ops, vtable.tbl, classes/default.pmc:
1924         {g,s}et_pmc_keyed
1926 2002-02-11 19:07  simon
1928         * vtable.tbl, classes/default.pmc:
1929         Add set_pmc. Usee with caution.
1931 2002-02-11 18:20  dan
1933         * classes/: array.pmc, perlarray.pmc: Patch array classes to
1934         compile
1936 2002-02-11 17:59  simon
1938         * core.ops, embed.c, global_setup.c, key.c, rx.ops,
1939         classes/perlarray.pmc, classes/perlhash.pmc:
1940         Make it compile.
1942 2002-02-11 17:57  simon
1944         * packfile.c, include/parrot/packfile.h:
1945         Reduce warnings
1947         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1949 2002-02-11 17:55  dan
1951         * docs/parrot_assembly.pod: Document some key ops
1953 2002-02-11 09:20  brentdax
1955         * pmc.c, include/parrot/exceptions.h: Adding a panic ought to be
1956         disgustingly easy.
1958 2002-02-11 00:34  simon
1960         * core.ops, include/parrot/exceptions.h:
1961         This is what keyed set ops look like. Remember, however, that for
1962         keyed functions, all operands must be PMCs. set(PMC, PMC, INT)
1963         means $1 = $2[$3], not $1[$2] = $3. set(PMC,PMC,PMC) is so
1964         obviously ambiguous that you ought to use the 4-arg version
1965         instead.
1967 2002-02-10 23:12  jgoff
1969         * classes/: array.pmc, perlarray.pmc: Properly allocate
1970         SELF->data's array of PMC* data in array and perlarray.pmc.  This
1971         isn't tested yet, but should be fairly straightforward.  PerlHash
1972         needs to be finished before the system will compile again, and that
1973         should be done in the next few days.
1975 2002-02-09 04:46  jgoff
1977         * classes/: array.pmc, default.pmc, intqueue.pmc,
1978         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlundef.pmc:
1979         Added basic _keyed member functions.  Unfortunately this still
1980         doesn't fix the problems that are causing the build to break. It's
1981         a start though. I'm not implementing the PMC add functions just
1982         yet.
1984 2002-02-08 15:59  simon
1986         * classes/array.pmc:
1987         Some more work on getting the array stuff up to date.
1989 2002-02-08 12:23  simon
1991         * classes/array.pmc, classes/perlhash.pmc, include/parrot/key.h,
1992         lib/Parrot/Vtable.pm:
1993         Got array->get_integer_keyed doing what I think it ought to. One
1994         down, all the rest to go.
1996 2002-02-08 11:47  simon
1998         * vtable.tbl:
1999         Although I didn't intend it to be quite that broken...
2001 2002-02-08 11:42  simon
2003         * vtable.tbl, include/parrot/parrot.h, lib/Parrot/Vtable.pm:
2004         Completely break Parrot, but at least we get the key stuff right
2005         for now.
2007 2002-02-08 06:25  dan
2009         * hints/darwin.pl: Silences the warning about passing in
2010         -flat_namespace to the compile.  That's a link-only flag.
2012 2002-02-08 04:52  jgoff
2014         * classes/: array.pmc, default.pmc, intqueue.pmc,
2015         parrotpointer.pmc, perlarray.pmc, perlhash.pmc, perlint.pmc,
2016         perlnum.pmc, perlstring.pmc, perlundef.pmc: Filled in missing
2017         return values in *.pmc, added some missing casts to the repeat_foo
2018         members, and deleted the _index members from the perlscalar
2019         classes.  Basic cleanup, and getting ready for _keyed functions.
2021 2002-02-07 04:49  mrjoltcola
2023         * examples/assembly/bsr.pasm: Elaborated on the bsr/ret example,
2024         added a nested subroutine call.
2026 2002-02-07 04:32  jgoff
2028         * vtable.tbl, lib/Parrot/Vtable.pm: vtable.tbl got some minor
2029         changes in order to give the whitespace rules a little workout, and
2030         do a little bit more testing. No actual structural changes were
2031         made.  lib/Parrot/Vtable.pm got an interface change, and more
2032         importantly should be ready to support the new '_keyed' attribute,
2033         which will work roughly thus: PMC* src_value gets remapped to 'PMC*
2034         src_value' followed by 'KEY* src_key'.  This will be how the new
2035         _keyed operators will function, and those should be written within
2036         a few days.
2038 2002-02-06 18:00  doughera
2040         * misc.c: Change C++-style comments to C comments (again).  Remove
2041         unused perl5 code that was in #if 0/#endif.
2043 2002-02-06 17:59  doughera
2045         * warnings.c: Add trailing newline.
2047 2002-02-06 04:14  mrjoltcola
2049         * include/parrot/io.h, io/io.c: Minor cleanup.
2051 2002-02-06 03:11  mrjoltcola
2053         * examples/assembly/io1.pasm, io/io.c, io/io_win32.c: Tied up a
2054         couple of loose end in win32 IO stuff. Open behaves now but needs
2055         more work.
2057 2002-02-05 21:02  brentdax
2059         * classes/pmc2c.pl: Length on whoami init was always 7--a problem
2060         which showed up in Purify builds.
2062 2002-02-05 17:15  simon
2064         * misc.c:
2065         Warning fixes.
2067         Courtesy of: Jonathan Stowe <gellyfish@gellyfish.com>
2069 2002-02-05 17:08  doughera
2071         * misc.c: Avoid C++-style comments.
2073 2002-02-05 17:07  doughera
2075         * lib/Parrot/Jit/sun4Generic.pm: Generated assembly programs were
2076         not valid assembler for Sun's /usr/ccs/bin/as.  Now they are,
2077         thanks to Jason Gloudon <perl@gloudon.com>.
2079 2002-02-05 14:04  simon
2081         * misc.c:
2082         Make the problem different, perhaps even better.
2084 2002-02-05 13:49  simon
2086         * misc.c:
2087         Possibly fix a `short int' is promoted to `int' when passed through
2088         `...' scary error, possibly make things absolutely worse.
2090 2002-02-05 13:15  simon
2092         * Configure.pl:
2093         Placate Tru64.
2095 2002-02-05 13:12  simon
2097         * warnings.c:
2098         Not going to get far without this one...
2100 2002-02-05 11:41  simon
2102         * string.c:
2103         Don't barf when handed null pointers.
2105 2002-02-05 10:04  simon
2107         * misc.c, include/parrot/misc.h:
2108         Fix some trivial bugs in warnings code.
2110 2002-02-05 09:27  simon
2112         * misc.c:
2113         Oops, forgot this one; also added %P support.
2115 2002-02-05 09:20  simon
2117         * MANIFEST, Makefile.in, core.ops, embed.c, interpreter.c,
2118         test_main.c, classes/perlundef.pmc, include/parrot/embed.h,
2119         include/parrot/interpreter.h, include/parrot/misc.h,
2120         include/parrot/parrot.h, include/parrot/warnings.h:
2121         Warnings support.
2123         Courtesy of: Brent Dax <brentdax@cpan.org>
2125 2002-02-05 05:41  jgoff
2127         * vtable.tbl, lib/Parrot/Vtable.pm, t/pmc/perlstring.t: Changed the
2128         format of vtable.tbl to get rid of the tab-dependence.  The format
2129         now looks roughly like this:
2131         init() # 'void' and 'unique' are assumed INTVAL type ( ) # 'unique'
2132         is assumed str void concatenate (PMC* value, PMC* dest) # Nothing
2133         assumed here, but note the C-like prototyping.  Also had to disable
2134         one test that depended upon 'concat_p_p_s', which isn't necessary
2135         anyway.
2137         Vtable.pm will change again when the type '_keyed' is added,
2138         because that requires remapping parameters slightly differently
2139         again.  Also, note that it assumes 'value' is the first parameter
2140         in the list. This assumption will go away at the same time.
2142 2002-02-04 16:57  ajgough
2144         * core.ops, t/pmc/perlstring.t, t/pmc/pmc.t: More tests for pmc
2145         functions.  Thanks to Simon Glover.
2147 2002-02-04 02:47  ajgough
2149         * hints/os2.pl: Removes a flag from the os/2 hints file that isn't
2150         needed.  I suspect that the entire hints file isn't really needed,
2151         but there's no one to actually tell us this.
2153 2002-02-02 15:45  ask
2155         * docs/ParrotFAQ.htm: fix internal links
2157 2002-02-02 04:06  jgoff
2159         * classes/: array.pmc, intqueue.pmc, perlarray.pmc, perlhash.pmc:
2160         Moving the internal KEY structure from the cache.struct_val member,
2161         where it doesn't really belong, to the internal SELF->data member.
2162         This frees up the cache/type members for other usage.
2164         This is the first step in moving PMCs to the point where we can do
2165         multidimensional PMC handles. The next step is to change the
2166         assembler to accept the syntax of 'set P0["foo"],7'.
2168 2002-02-02 00:13  nicholas
2170         * include/parrot/global_setup.h: Patch from Jonathan Stowe to
2171         prototype Parrot_Array_class_init
2173 2002-02-02 00:13  nicholas
2175         * embed.c: Casts to tidy up warnings from Jonathan Stowe Change
2176         time to sum_time to avoid warning on FreeBSD about tracking a
2177         global [No, this warning does not appear on Linux. Yes, it is real
2178         :-)]
2180 2002-02-01 23:02  nicholas
2182         * embed.c: Fix fprintf format warning in Parrot_runcode. From Simon
2183         Glover
2185 2002-02-01 20:20  nicholas
2187         * t/pmc/pmc.t: Add end at end of asm in test (from Simon Glover)
2189 2002-02-01 18:20  nicholas
2191         * lib/Parrot/Test.pm: Env.pm on 5.005_03 doesn't do a use vars for
2192         you
2194 2002-02-01 13:22  nicholas
2196         * MANIFEST: Add docs/embed.pod and t/op/ifunless.t
2198 2002-02-01 12:19  simon
2200         * core.ops, t/op/ifunless.t, t/op/integer.t:
2201         Added "unless" op.
2203 2002-02-01 12:11  simon
2205         * lib/Parrot/Test.pm:
2206         Remove a warning.
2208 2002-02-01 01:38  nicholas
2210         * MANIFEST, MANIFEST.SKIP, Makefile.in: Add a MANIFEST.SKIP file,
2211         and a manitest target to Makefile.in that lets one test the
2212         manifest.
2214 2002-02-01 00:03  dan
2216         * core.ops, global_setup.c, include/parrot/pmc.h: More setup for
2217         PMC dynaloading
2219 2002-01-31 21:46  gregor
2221         * Configure.pl, Makefile.in, hints/mswin32.pl:
2222         A few more things are now configable, so we are closer to win32
2223         shared library builds. Not there yet, but closer.
2225 2002-01-31 21:00  dan
2227         * global_setup.c, classes/pmc2c.pl, include/parrot/global_setup.h,
2228         include/parrot/pmc.h: First step in dynamically loading PMC classes
2230 2002-01-31 19:38  dan
2232         * Makefile.in: Dependencies in the Makefile are currently too broad
2233         brush.  I don't enjoy waiting for everything to recompile every
2234         time I try to tweak the jit. The only file that #includes
2235         jit_struct.h is jit.c, so I feel that the Makefile dependencies
2236         should reflect this, and not cause a gratuitous recompile of
2237         everything.  There are probably other auto-generated header files
2238         that world+dog should not depend on.
2240         Courtesy of  Nicholas Clark <nick@unfortu.net>
2242 2002-01-31 19:03  gregor
2244         * Makefile.in, lib/Parrot/Test.pm, t/harness:
2245         Added two new make targets:
2247           * testp: Like 'make test', but passes -P to t/harness, so you get
2248         to
2249             see how broken predereferencing is.
2251           * testj: Like 'make test', but passes -j to t/harness, so you get
2252         to
2253             see how broken JIT is.
2255         Now, anyone who wants to see how good all three ways of running are
2256         can do so, at the cost of about 3x the time.
2258 2002-01-31 17:09  brentdax
2260         * embed.c, test_main.c: Implement the ARGV-in-P0 thing.
2262 2002-01-31 03:41  grunblatt
2264         * docs/jit.pod: Update jit.pod
2266 2002-01-31 03:20  grunblatt
2268         * jit/i386/core.jit: Hold this until we get an assemble tool,
2269         because of the different objdump problems.
2271 2002-01-31 03:13  grunblatt
2273         * Configure.pl, lib/Parrot/Jit/sun4-solaris.pm,
2274         lib/Parrot/Jit/sun4Generic.pm: Use dis intead of objdump.  Courtesy
2275         of: Jason Gloudon <perl@gloudon.com>
2277 2002-01-31 02:22  grunblatt
2279         * jit/i386/core.jit: Continue if the register is null
2281 2002-01-30 23:50  grunblatt
2283         * lib/Parrot/Jit/: alpha-bsd.pm, alpha-linux.pm, alphaGeneric.pm,
2284         i386-bsd.pm, i386-linux.pm, i386Generic.pm, sun4-solaris.pm,
2285         sun4Generic.pm: Move the AS and OBJDUMP constants to each os
2286         specific file.
2288 2002-01-30 23:35  mrjoltcola
2290         * io/io_win32.c: Change implementation of isatty on win32,
2291         suggested by Hong Zhang.
2293 2002-01-30 23:19  sfink
2295         * jit2h.pl, lib/Parrot/Op.pm, lib/Parrot/OpsFile.pm: Added
2296         Op::may_jump boolean method.
2298         Replaced jit2h's hardcoded pattern match to decide what ops might
2299         change the control flow.
2301 2002-01-30 22:13  dan
2303         * Configure.pl, MANIFEST, testparrotfuncptr.c: This patch allows
2304         parrot to mostly-build with tcc.  It allows one to skip compiling
2305         the JIT stuff (by specifying --define jitcapable=0), and it
2306         introduces a test program which gives a friendlier error in this
2307         case for compilers which are as picky as tcc is about function
2308         pointer conversion.
2310         If anyone figures out the proper way to cast these function
2311         pointers this may not be necessary.
2313         Courtesy of Josh Wilmes <josh@hitchhiker.org>
2315 2002-01-30 20:54  dan
2317         * docs/running.pod, lib/Parrot/Test.pm: I'm being anal again.
2318         Here's an update to docs/running.pod to better reflect the current
2319         state (both the test_parrot and assemble.pl improvements, plus
2320         documentation of a few more things.) And also a speling fiks
2321         s/POST_MORTERM/POST_MORTEM/.
2323         I could also replace some "perl foo" calls with "./foo" if someone
2324         wanted to set the executable flag in CVS on assemble.pl,
2325         optimize.pl, etc.
2327         Courtesy of Steve Fink <steve@fink.com>
2329 2002-01-30 20:43  dan
2331         * core.ops: find_global doesn't work, so stub out the wrong code
2333 2002-01-30 19:08  dan
2335         * lib/Parrot/Assembler.pm:  fixes the POD in Parrot::Assember so
2336         that perldoc
2337          can read it and just tidies it up generally. It also adds
2338         documentation
2339          for the constantize_integer and constantize_number functions.
2341         Courtesy of Simon Glover <scog@roe.ac.uk>
2343 2002-01-30 18:02  dan
2345         * assemble.pl, disassemble.pl, optimizer.pl, pbc2c.pl,
2346         classes/genclass.pl, classes/pmc2c.pl,
2347         languages/scheme/Scheme/Test.pm:  Many of the Perl scripts in the
2348         distribution (including assemble.pl !)
2349          can no longer find the Parrot::* modules. Enclosed patch fixes
2350         (although
2351          it would be nice if there were an easier way to do this).
2353         Courtesy of  Simon Glover <scog@roe.ac.uk>
2355 2002-01-30 16:00  mrjoltcola
2357         * io/io_win32.c: Correct function calls for win32_fdopen and arg
2358         types.
2360 2002-01-30 15:50  mrjoltcola
2362         * io/io_unix.c: Minor bug fix for fdopen flag arg type.
2364 2002-01-30 15:42  grunblatt
2366         * pbc2c.pl, examples/assembly/Makefile: Updates related to moving
2367         files around
2369 2002-01-30 15:38  grunblatt
2371         * MANIFEST: Enclosed patch adds the new SPARC-based JIT files to
2372         the manifest,  and also puts it back into alphabetical order.
2374         Courtesy of: Simon Glover <scog@roe.ac.uk>
2376 2002-01-30 14:41  nicholas
2378         * embed.c: Patch from Simon Glover to clean up warnings where
2379         prototype is () not (void)
2381 2002-01-30 13:54  nicholas
2383         * include/parrot/embed.h, test_main.c: Add void as an explicit
2384         parameter in test_main.c's usage(), version(void) and embed.h's
2385         Parrot_new() Without these gcc moans: include/parrot/embed.h:34:
2386         warning: function declaration isn't a prototype
2388 2002-01-30 12:08  simon
2390         * lib/Parrot/.cvsignore:
2391         Ignore generated Perl modules.
2393 2002-01-30 12:07  simon
2395         * t/harness:
2396         Run the PMC tests as well.
2398 2002-01-30 12:04  simon
2400         * MANIFEST:
2401         Fix MANIFEST after recent t/pmc rejig.
2403 2002-01-30 11:42  simon
2405         * lib/Parrot/Test.pm:
2406         Report non-zero exit codes.
2408         Courtesy of: Michael G Schwern <schwern@pobox.com>
2410 2002-01-30 11:39  simon
2412         * t/op/rx.t:
2413         Skip final test, TODO doesn't work yet.
2415 2002-01-30 09:54  brentdax
2417         * docs/embed.pod: Leon Brocard was kind enough to explain to me how
2418         predereferencing works.
2420 2002-01-30 09:38  brentdax
2422         * docs/: embed.pod, parrot.pod: Document this newfangled embedding
2423         subsystem.
2425 2002-01-30 09:37  brentdax
2427         * include/parrot/embed.h: Fix a mistake, clear up a warning.
2429 2002-01-30 09:37  brentdax
2431         * config_h.in: Expose another flag for embedders.
2433 2002-01-30 05:07  jgoff
2435         * make_vtable_ops.pl, t/harness: Both files didn't know of the new
2436         location for Parrot/, and t/harness wasn't able to run the new
2437         op/pmc tests. Both problems fixed, so I think I'm going to declare
2438         the build suitable for public consumption.
2440 2002-01-30 04:34  robert
2442         * docs/Makefile.in: update for CVS movement
2444 2002-01-30 04:32  robert
2446         * Makefile.in: Adjust for CVS reorganization.  (This time, edit the
2447         .in file, not the real Makefile)
2449 2002-01-30 04:20  robert
2451         * Configure.pl, jit2h.pl, ops2c.pl, ops2pm.pl, pmc_pm.pl,
2452         vtable_h.pl, classes/pmc2c.pl, include/parrot/parrot.h: Updates
2453         related to moving files around
2455 2002-01-30 04:10  robert
2457         * MANIFEST: Update MANIFEST to reflect CVS reorg.
2459 2002-01-30 04:07  robert
2461         * Configure.pl: Add './lib' to our @INC because Parrot/* moved.
2463 2002-01-30 03:56  robert
2465         * Parrot/: .cvsignore, Assembler.pm, BuildUtil.pm, Op.pm,
2466         OpTrans.pm, OpsFile.pm, Optimizer.pm, PackFile.pm, String.pm,
2467         Test.pm, Vtable.pm, Jit/alpha-bsd.pm, Jit/alpha-linux.pm,
2468         Jit/alphaGeneric.pm, Jit/i386-bsd.pm, Jit/i386-linux.pm,
2469         Jit/i386-nojit.pm, Jit/i386Generic.pm, Jit/sun4-solaris.pm,
2470         Jit/sun4Generic.pm, OpLib/.cvsignore, OpTrans/C.pm,
2471         OpTrans/CGoto.pm, OpTrans/CPrederef.pm, PackFile/ConstTable.pm,
2472         PackFile/Constant.pm, PackFile/FixupTable.pm: Moved Parrot/* to
2473         lib/Parrot/
2475 2002-01-30 03:46  robert
2477         * languages/miniperl/miniperlc: renamed to mpc
2479 2002-01-30 03:45  robert
2481         * t/op/: pmc.t, pmc_array.t, pmc_perlarray.t, pmc_perlhash.t,
2482         pmc_perlstring.t: Moved to t/op/pmc/
2484 2002-01-30 03:40  robert
2486         * include/parrot/register_funcs.h: Renamed to regfuncs.h
2488 2002-01-30 03:14  jgoff
2490         * classes/perlarray.pmc, t/op/pmc_perlarray.t, t/pmc/perlarray.t:
2491         Fixed some problems with PerlArray and added tests.  Previously,
2492         only integers could be accessed by negative indices.  After this
2493         change, all basic types can be accessed by negative indices, and
2494         they can also be set at negative indices.
2496 2002-01-29 22:13  brentdax
2498         * TODO: Just look at the stupid diff.
2500 2002-01-29 21:53  simon
2502         * TODO, docs/vtables.pod:
2503         New TODO, and tiny addition to vtables.pod
2505 2002-01-29 21:47  mrjoltcola
2507         * include/parrot/io.h, io/io_unix.c: Minor bug fix in io_unix.
2509 2002-01-29 21:38  mrjoltcola
2511         * Makefile.in: Makefile.in tweak for io depend.
2513 2002-01-29 21:15  brentdax
2515         * embed.c: Fix a segfault and some profiling formatting nits.
2517 2002-01-29 20:54  brentdax
2519         * pmc.c: Oops.
2521 2002-01-29 20:50  brentdax
2523         * pmc.c, include/parrot/exceptions.h: Exceptions are better than
2524         segfaults.
2526 2002-01-29 20:17  mrjoltcola
2528         * interpreter.c, core.ops, io.ops: CVS missed this.
2530 2002-01-29 20:17  mrjoltcola
2532         * io/io.c: These should have gone in Sunday with the rest. CVS is
2533         out to get me.
2535 2002-01-29 18:39  brentdax
2537         * platforms/win32.h: Fix Win32 whoops.
2539 2002-01-29 18:29  brentdax
2541         * embed.c, include/parrot/embed.h: A couple minor embedding fixes.
2543 2002-01-29 17:51  simon
2545         * MANIFEST, Makefile.in, config_h.in, embed.c, test_main.c,
2546         include/parrot/embed.h, include/parrot/parrot.h:
2547         Embedding support. Cool.
2549         Courtesy of: <brentdax@cpan.org>
2551 2002-01-29 15:40  grunblatt
2553         * Configure.pl: Detect if we can use "objdump".  Courtesy of: Jason
2554         Gloudon <perl@gloudon.com>
2556 2002-01-29 14:42  simon
2558         * include/parrot/parrot.h:
2559         Platform stuff has to be included *after* system headers.
2561 2002-01-29 14:05  grunblatt
2563         * interpreter.c, jit.c, Parrot/Jit/sun4-solaris.pm,
2564         Parrot/Jit/sun4Generic.pm, lib/Parrot/Jit/sun4-solaris.pm,
2565         lib/Parrot/Jit/sun4Generic.pm, include/parrot/jit.h,
2566         jit/sun4/core.jit, jit/sun4/lib.jit, jit/sun4/string.jit: Added
2567         support for SPARC.  Courtesy of: Jason Gloudon <perl@gloudon.com>
2569 2002-01-29 10:56  simon
2571         * platforms/generic.h:
2572         If we don't have a S_ISREG, produce something close to it.
2574 2002-01-29 06:01  dan
2576         * MANIFEST, README, LICENSES/Artistic: Finally added licenses
2578 2002-01-29 04:38  jgoff
2580         * classes/array.pmc: Forgot to remove some C++-isms from the
2581         get_{foo}_index routines.
2583 2002-01-29 04:26  jgoff
2585         * MANIFEST, Makefile.in, global_setup.c, classes/Makefile.in,
2586         classes/array.pmc, include/parrot/pmc.h, t/op/pmc_array.t,
2587         t/pmc/array.t: Added array class that languages other than perl can
2588         use for a basis.  It has no features like preextension, and the
2589         array index starts at 0.
2591         MANIFEST - added classes/array.pmc and t/op/pmc_array.t Makefile.in
2592         and classes/Makefile.in - Added array.pmc to the makefile.
2593         (Assuming rules like .pmc.o are portable (or even possible) I might
2594         alter classes/Makefile.in to autobuild the appropriate files.
2596 2002-01-29 02:32  dan
2598         * MANIFEST, Parrot/Test.pm, lib/Parrot/Test.pm,
2599         lib/Test/Builder.pm, lib/Test/More.pm, lib/Test/Simple.pm,
2600         lib/Test/Utils.pm, t/op/interp.t, t/op/macro.t, t/op/pmc.t,
2601         t/op/rx.t, t/op/stacks.t, t/pmc/pmc.t:
2602             Update to Test::More 0.41 which adds Test::Builder
2604             Delete the vestigal Test::Utils
2606             Change Parrot::Test so it uses Test::Builder instead of Evil
2607         Wrappers
2608             around Test::More
2610             output_* now returns whether the test passes or fails
2612             Parrot::Test no longer exports Test::More's functions.  Instead
2613         they
2614             can simply be used together.  The few tests which used
2615         Test::More
2616             features (ie. skip) have 'use Test::More' added.
2618             I ditched the export_to_level() crutch.  Do we expect parrot to
2619         work on
2620             5.004?  (literally 5.004, not 5.004_04)
2622         Courtesy of Michael G Schwern <schwern@pobox.com>
2624 2002-01-28 21:04  dan
2626         * docs/overview.pod:  There is no opcodes.pod; I'm assuming the
2627         pointer should actually be to
2628          parrot_assembly.pod, as the canonical documentation.
2630         Courtesy of Simon Glover <scog@roe.ac.uk>
2632 2002-01-28 20:21  dan
2634         * languages/jako/jakoc, t/op/stacks.t: Toss the last traces of
2635         clone[inps]
2637 2002-01-28 19:18  dan
2639         * core.ops, register.c: clone[insp] is dead
2641 2002-01-28 17:46  grunblatt
2643         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2644         jit/i386/core.jit: Fix to make the jit work in linux yet again.
2646 2002-01-28 16:45  dan
2648         * MANIFEST, README.OS_X: Added Mac OS X specific readme documenting
2649         the requirement for fink at the moment.
2651 2002-01-28 15:59  simon
2653         * test_main.c:
2654         People might try and run a directory file, with spectacular
2655         results.  We don't want that. No.
2657 2002-01-28 14:58  doughera
2659         * core.ops: Avoid C++-style comments.
2661 2002-01-28 14:16  grunblatt
2663         * jit.c, io/io.c: Changed jit.c to fit the way registers are
2664         accessed.  Readded the pio_(stdin|stdout|stderr) to make builds
2665         work again.
2667 2002-01-28 13:47  doughera
2669         * include/parrot/register.h: Avoid C++-style comment.
2671 2002-01-28 06:03  dan
2673         * MANIFEST, core.ops, interpreter.c, key.c, register.c, trace.c,
2674         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
2675         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
2676         docs/parrot_assembly.pod, include/parrot/interpreter.h,
2677         include/parrot/parrot.h, include/parrot/regfuncs.h,
2678         include/parrot/register.h, include/parrot/register_funcs.h,
2679         include/parrot/string.h, include/parrot/string_funcs.h: Registers
2680         are now stored in the interpreter structure itself, rather than
2681         just a pointer to the top of the register structure. Pushes and
2682         pops now involve memcpys, but register access has one fewer
2683         dereference.
2685         Fails four of the register stack tests, though, so not perfect.
2686         Needs fixing, but this is a good place to start.
2688 2002-01-28 04:40  mrjoltcola
2690         * test_main.c: cvs commit missed this. ??
2692 2002-01-28 04:27  mrjoltcola
2694         * examples/assembly/io1.pasm, include/parrot/exceptions.h,
2695         include/parrot/interpreter.h, include/parrot/io.h, io/io.c,
2696         io/io_stdio.c, io/io_unix.c, io/io_win32.c: ParrotIO local to each
2697         interpreter now (at least in theory).  IO handle array added.  Misc
2698         bug fixes in layer handling.  Changed any IO_ constants to PIO_ so
2699         we don't conflict         with system libraries.  Still have broken
2700         stuff in win32 and stdio layer.
2702 2002-01-28 04:01  mrjoltcola
2704         * include/parrot/chartype.h: Typo in chartype.h include guard.
2706 2002-01-28 03:41  mrjoltcola
2708         * t/op/interp.t: Fix flag for interp so we don't get "info"
2709         messages which break tests.
2711 2002-01-28 01:54  dan
2713         * include/parrot/string.h: A few more buffer/string flags
2715 2002-01-27 11:33  nicholas
2717         * chartypes/unicode.c: Cast unsigned argument to int in call to
2718         isdigit to silence gcc warning.
2720 2002-01-26 23:18  grunblatt
2722         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm: Turn
2723         off that flag.
2725 2002-01-26 23:17  grunblatt
2727         * Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2728         jit/i386/core.jit: [no log message]
2730 2002-01-26 22:18  simon
2732         * jit/i386/core.jit:
2733         Jumping to 0x0 is a recipe for segfaults.
2735 2002-01-26 18:35  simon
2737         * t/harness:
2738         Allow user to select which tests to harness
2740         Courtesy of: Nicholas Clark <nick@unfortu.net>
2742 2002-01-26 17:20  grunblatt
2744         * Parrot/Jit/i386-linux.pm, Parrot/Jit/i386Generic.pm,
2745         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386Generic.pm: Patch
2746         to make the jit work in linux again.
2748 2002-01-26 16:52  dan
2750         * Configure.pl, hints/darwin.pl: Add -Wno-shadow, as Darwin's
2751         headers can't cope with this. Darwin-only
2753 2002-01-26 16:04  dan
2755         * include/parrot/parrot.h: Quick note to remind folks that this
2756         isn't the file they're looking for if they're writing extensions or
2757         embedding parrot.
2759         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2761 2002-01-26 00:41  mrjoltcola
2763         * MANIFEST: Oopsy.
2765 2002-01-26 00:37  mrjoltcola
2767         * docs/ParrotFAQ.htm: Parrot FAQ : Created and maintained by Adam
2768         Turoff
2770 2002-01-25 01:31  grunblatt
2772         * jit/alpha/core.jit: There is no neg or fneg.
2774 2002-01-25 01:27  grunblatt
2776         * core.ops, Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386Generic.pm,
2777         lib/Parrot/Jit/alphaGeneric.pm, lib/Parrot/Jit/i386Generic.pm,
2778         jit/alpha/core.jit, jit/i386/core.jit, t/op/integer.t,
2779         t/op/number.t: Added Parrot_neg.  Erase t.s
2781 2002-01-24 23:26  dan
2783         * interpreter.c: Best make sure unused elements are NULL
2785 2002-01-24 23:24  dan
2787         * interpreter.c: Fix stupid thinko
2789 2002-01-24 18:37  doughera
2791         * Makefile.in: Add a few missing dollar signs in the lifetest
2792         section so that ${exe} and the like get properly interpolated.
2794 2002-01-24 18:15  mrjoltcola
2796         * docs/: .cvsignore, Makefile.in, parrot.pod: Fix pod generation
2797         for io.ops file. Add reference to it in parrot.pod.  Courtesy of
2798         Simon Glover <scog@roe.ac.uk>
2800 2002-01-24 06:43  mrjoltcola
2802         * io/io_stdio.c: Oops.
2804 2002-01-24 06:34  mrjoltcola
2806         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c: Did a bit
2807         of work on the buffering layer.  Decided to use shared read/write
2808         buffer (as do most implementations) for now since its the simplest
2809         way to keep everything synced, (flush on seeks, flush read on
2810         writes, etc.)
2812 2002-01-24 03:38  mrjoltcola
2814         * test_main.c: Cleaned up option handling code a bit for main().
2816 2002-01-23 23:22  dan
2818         * interpreter.c, include/parrot/interpreter.h,
2819         include/parrot/resources.h: Now each interpreter gets its own hash
2820         for globals.
2822 2002-01-23 20:45  dan
2824         * Configure.pl: Fix a warning when there's no - in an architecture
2826 2002-01-22 23:57  grunblatt
2828         * docs/running.pod: [no log message]
2830 2002-01-22 20:29  doughera
2832         * KNOWN_ISSUES: long doubles don't work on SPARC either.  It
2833         appears to be a generic problem (if sizeof(long double) >
2834         sizeof(double)), not an x86-specific one.
2836 2002-01-22 16:57  doughera
2838         * runops_cores.c: Change variable name from time to starttime to
2839         avoid gcc warning about variable name shadowing.
2841 2002-01-22 16:55  doughera
2843         * classes/pmc2c.pl: Include class_init prototype too.
2845 2002-01-22 16:01  doughera
2847         * MANIFEST: [no log message]
2849 2002-01-22 01:04  ajgough
2851         * global_setup.c, classes/default.pmc, classes/intqueue.pmc,
2852         classes/parrotpointer.pmc, classes/perlarray.pmc,
2853         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
2854         classes/perlstring.pmc, classes/perlundef.pmc, classes/pmc2c.pl,
2855         include/parrot/global_setup.h: Patch from Nick Clark to quieten
2856         warnings from pmc files.  Message-ID:
2857         <20020121224719.GE1726@Bagpuss.unfortu.net>
2859 2002-01-22 00:53  ajgough
2861         * test_main.c: Clears up a couple of warnings in test_main.c.
2862         Thanks to Nick Clark.  Message-ID:
2863         <20020121190457.GB1726@Bagpuss.unfortu.net>
2865 2002-01-22 00:47  ajgough
2867         * string.c, chartypes/unicode.c, chartypes/usascii.c,
2868         include/parrot/chartype.h: Cause all codepoints to be treated as
2869         UNITVALS, and get_digit to return INTVAL, just in case. (Thanks to
2870         Nick Clark, see also: Message-ID:
2871         <20020121214137.GC2371@Bagpuss.unfortu.net> )
2873 2002-01-22 00:24  dan
2875         * key.c: We do mandate an ANSI conformant C compiler, don't we?
2877         Appended patch cures these warnings:
2879         key.c: In function `debug_key': key.c:29: warning: int format,
2880         INTVAL arg (arg 3) key.c:33: warning: int format, INTVAL arg (arg
2881         3) key.c:33: warning: int format, INTVAL arg (arg 4) key.c:36:
2882         warning: int format, INTVAL arg (arg 3) key.c:36: warning: int
2883         format, INTVAL arg (arg 4)
2885         Courtesy of Nicholas Clark <nick@unfortu.net>
2887 2002-01-21 12:41  mrjoltcola
2889         * MANIFEST, io.ops: For some reason cvs commit didn't get this, may
2890         be clock skew.
2892 2002-01-21 06:37  mrjoltcola
2894         * io/io.c: Cleanup a warning
2896 2002-01-21 06:28  mrjoltcola
2898         * examples/assembly/io1.pasm, include/parrot/io.h, io/io.c,
2899         io/io_stdio.c, io/io_unix.c, io/io_win32.c: Added 32/64 bit seek
2900         ops. Various other IO twiddlings.
2902 2002-01-21 03:25  grunblatt
2904         * Makefile.in: Use $jitcpuarch instead of $cpuarch.  Thanks to
2905         Melvin Smith for the catch up.
2907 2002-01-20 23:13  sfink
2909         * stacks.c: Fixed logic errors, need tests
2911 2002-01-20 22:17  brentdax
2913         * rx.c, rx.ops, include/parrot/rx.h, t/op/rx.t: Make /m work and
2914         prepare for /i to work.
2916 2002-01-20 20:52  grunblatt
2918         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
2919         jit2h.pl, Parrot/Jit/alpha-bsd.pm, Parrot/Jit/alpha-linux.pm,
2920         Parrot/Jit/alphaGeneric.pm, Parrot/Jit/i386-bsd.pm,
2921         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/alpha-bsd.pm,
2922         lib/Parrot/Jit/alpha-linux.pm, lib/Parrot/Jit/alphaGeneric.pm,
2923         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
2924         Parrot/Jit/i386Generic.pm, lib/Parrot/Jit/i386Generic.pm,
2925         include/parrot/jit.h, jit/alpha/core.jit, jit/alpha/lib.jit,
2926         jit/alpha/string.jit:
2927         - Added support for ALPHA, by now linux and bsd.
2929         - Reduced jit2h.pl execution time by precompiling the call to the
2930         unimplemented op.
2932         - Reduced the duplicated code in Parrot/Jit/*.pm by adding
2933         Parrot/Jit/${cpuarch}Generic.pm
2935         - Changed the way to detect quads to what is written in "man
2936         perlfunc".
2938 2002-01-20 17:23  brentdax
2940         * rx.ops: There's no such thing as rx_allocateinfo.
2942 2002-01-19 08:26  brentdax
2944         * pbc2c.pl: Stop this stupid "hard-code the new oplib" stuff.
2946 2002-01-19 07:12  mrjoltcola
2948         * MANIFEST, core.ops, io.ops, pbc2c.pl: Separate pure ParrotIO ops
2949         into io.ops, leave the STDIO wrappers        in core.ops until they
2950         disappear.  Added debug op for switching on VM debug flag
2952 2002-01-19 01:55  mrjoltcola
2954         * include/parrot/io.h, io/TODO, io/io.c, io/io_stdio.c,
2955         io/io_unix.c, io/io_win32.c: Added a few more Win32 layer calls
2957 2002-01-19 00:55  brentdax
2959         * Makefile.in, rx.c, rx.ops, rxstacks.c, include/parrot/rx.h,
2960         include/parrot/rxstacks.h: Add regex-specific stacks for
2961         efficiency.
2963 2002-01-18 23:58  dan
2965         * Configure.pl: I think the optimal fix here is simply to remove
2966         -ansi -pedantic.  -ansi may well have some uses, but even the gcc
2967         man pages say "There is no reason to use this option [-pedantic];
2968         it exists only to satisfy pedants."
2970         Courtesy of Andy Dougherty <doughera@lafayette.edu>
2972 2002-01-18 23:23  dan
2974         * MANIFEST, docs/parrot.pod, docs/running.pod: This patch add
2975         docs/running.pod, which lists the various executables Parrot
2976         currently includes, examples of running them, and mentions of where
2977         they fail to work. It's more of a cry for help than a useful
2978         reference. :-) I've been having trouble recently when making
2979         changes in figuring out whether I broke anything, because any
2980         non-default way of running the system seems to be already broken. I
2981         can't tell what brokenness is expected and what isn't.
2983         Courtesy of  Steve Fink <steve@fink.com>
2985 2002-01-15 22:13  brentdax
2987         * include/parrot/rx.h, rx.c, rx.ops: Remove the last vestiges of
2988         substring use and enhance performance.
2990 2002-01-15 21:03  ajgough
2992         * string.c: Fix problem with string_transcode, &dest not being
2993         updated if src was already in desired encoding.
2995 2002-01-15 16:54  brentdax
2997         * rx.c, rx.ops, include/parrot/rx.h: Hunt down and destroy
2998         warnings.  Leaves only one warning, at rx.ops line 409, that I
2999         can't manage to get rid of.
3001 2002-01-15 16:50  dan
3003         * pbc2c.pl: Pointer arithmetic not quite right in the generated
3004         code.  Also patches pbc2c.pl to work with rx.ops.
3006         Courtesy of Jason Gloudon <perl@gloudon.com>
3008 2002-01-15 16:15  dan
3010         * classes/Makefile.in: All the C files in classes/ weren't being
3011         compiled with an of the gcc warnings flags. With this patch they
3012         are, and there are an awful lot of warnings, more than I could hope
3013         to understand and clear up (within any sensible time period before
3014         submitting a rash of patches, by which time everyone else would
3015         have moved the code on)
3017         Courtesy of Nicholas Clark <nick@unfortu.net>
3019 2002-01-15 16:10  dan
3021         * core.ops, ops2c.pl, Parrot/Op.pm, Parrot/OpTrans.pm,
3022         Parrot/OpsFile.pm, lib/Parrot/Op.pm, lib/Parrot/OpTrans.pm,
3023         lib/Parrot/OpsFile.pm, Parrot/OpTrans/C.pm,
3024         Parrot/OpTrans/CGoto.pm, Parrot/OpTrans/CPrederef.pm,
3025         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
3026         lib/Parrot/OpTrans/CPrederef.pm, chartypes/unicode.c,
3027         chartypes/usascii.c: This patch adds a few more macros for .ops
3028         files to use. In addition to the existing
3030          goto OFFSET(...)
3031          goto ADDRESS(...)
3032          goto POP()
3033          goto NEXT()
3035         it adds
3037          expr OFFSET(...)
3038          expr ADDRESS(...)
3039          expr POP()
3040          expr NEXT()
3042         This is intended mainly for use in helper functions in .ops files,
3043         but also for ops that need to eg push the address of the next
3044         opcode onto a stack. The only place this currently happens (outside
3045         of my private code) is in the bsr opcode, which previously
3046         hardcoded the computation.
3048         This patch also makes ops2c.pl move the CUR_OPCODE #define a bit
3049         higher in the generated file so that it can be used by static
3050         functions in the preamble.
3052         Finally, I ran into a parentheses matching problem -- should goto
3053         OFFSET(...) rewrite    \bgoto\s+OFFSET\((.*)\) or
3054         \bgoto\s+OFFSET\((.*?)\)
3056         It was done inconsistently for the different calculations, and of
3057         course neither are correct because you really want matching
3058         parentheses. But that seems like too much bother. (Currently,
3059         there's only one place that uses anything other than $n in the
3060         parentheses, and that's the enternative() op.) So I made them all
3061         .*? but emulated recent POD by also allowing (( ... )) (that's two
3062         parenthesis with a space padding the body.)
3064         The generated core_ops.c and core_ops_prederef.c files after this
3065         patch are identical except for the CUR_OPCODE and REL_PC macros
3066         getting moved a little higher, and the bsr in the regular path (not
3067         prederef) uses 'CUR_OPCODE' instead of the hardcoded 'cur_opcode'.
3069         In summary, this is a big wad of meaningless changes for the
3070         current code. But it will make adding some opcodes easier in the
3071         future, and cleans up a small nit in the current bsr.
3073         Courtesy of Steve Fink <steve@fink.com>
3075 2002-01-15 08:48  brentdax
3077         * include/parrot/rx.h: Bitmaps can now include chars >255 (well,
3078         sort of).
3080 2002-01-15 08:45  brentdax
3082         * rx.c, rx.ops: Bitmaps can now include chars >255 (well, sort of).
3084 2002-01-15 05:00  brentdax
3086         * rx.ops: Speed up rx_literal--roughly doubles benchmark
3087         performance.
3089 2002-01-14 20:18  dan
3091         * vtable.tbl, vtable_h.pl: Clean up a zillion warnings
3093         Courtesy of Nicholas Clark <nick@unfortu.net>
3095 2002-01-14 20:03  dan
3097         * Configure.pl, MANIFEST, Makefile.in, core.ops, exceptions.c,
3098         global_setup.c, interpreter.c, key.c, ops2c.pl, register.c,
3099         runops_cores.c, rx.ops, stacks.c, string.c, test_main.c, trace.c,
3100         chartypes/unicode.c, chartypes/usascii.c, classes/default.pmc,
3101         classes/parrotpointer.pmc, classes/perlarray.pmc,
3102         classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
3103         classes/perlstring.pmc, classes/perlundef.pmc,
3104         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
3105         encodings/utf8.c, include/parrot/exceptions.h, include/parrot/io.h,
3106         include/parrot/parrot.h, include/parrot/rx.h, io/io_stdio.c,
3107         io/io_win32.c, platforms/win32.c, platforms/win32.h, t/op/pmc.t,
3108         t/op/pmc_perlhash.t, t/op/rx.t, t/pmc/perlhash.t, t/pmc/pmc.t: This
3109         patch cleans up most of the MSVC-warnings when using warning level
3110         4 (the highest, one above the default level 3). It turns off two
3111         level-4 warnings for 'unreferenced formal parameter' and 'named
3112         type definition in parentheses', the latter of which was turning up
3113         warnings in MS VC headers.  Level 4 warnings also helped me find a
3114         couple of other lurking bugs in the parrot code.
3116         Replaces the various fprintf/exit combos with calls to
3117         internal_exception, which uses var_args to emulate printf. Various
3118         exception types were added as well. These are probably temporary
3119         until a real exception system arrives.
3121         Fixed some places in the IO code where wrong functions were being
3122         called, or put into the vtable.
3124         Courtesy of "Michel Lambert" <mlambert@legendent.com>
3126 2002-01-14 19:00  dan
3128         * MANIFEST: D'oh! Forgot a file.
3130         Courtesy of Andy Dougherty <doughera@lafayette.edu>
3132 2002-01-14 18:44  brentdax
3134         * rx.c, rx.ops, include/parrot/rx.h: Use bitmaps where it makes
3135         sense (and a few other enhancements to regexes).
3137 2002-01-14 07:07  brentdax
3139         * interpreter.c, runops_cores.c, test_main.c,
3140         include/parrot/interpreter.h: Make profiling a little more useful.
3142 2002-01-13 19:44  dan
3144         * Configure.pl: Turn off unsed things warnings for now
3146 2002-01-13 19:39  dan
3148         * key.c, classes/perlarray.pmc: key.c:   intialize KEY.keys
3150         classes/perlarray.c:  * get_string: is casting
3151         SELF->cache.struct_val to a STRING*,    while all other methods are
3152         using it as a KEY*; don't know    what a perlarray stringifies to,
3153         so replacing with NULL  * get_bool: the default behaviour does not
3154         look right to me
3156         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3158 2002-01-13 19:37  dan
3160         * Makefile.in, classes/Makefile.in: Makefile.in:   (Re)add ld_debug
3161         flags to LDFLAGS, so that Configure.pl --debugging   works with
3162         MSVC
3164         classes/Makefile.in   make easier to add pmb2c.pl flags to all
3165         pmc2c calls
3167         Courtesy of "Mattia Barbon" <mbarbon@dsi.unive.it>
3169 2002-01-13 19:36  dan
3171         * io/io_win32.c:   according to my MSVC docs, you should use
3172         _tcslen only after
3173           #including tchar.h
3175         Courtesy of  "Mattia Barbon" <mbarbon@dsi.unive.it>
3177 2002-01-13 19:35  dan
3179         * docs/intro.pod: Doc tweak.
3181         Courtesy of Simon Glover <scog@roe.ac.uk>
3183 2002-01-13 19:34  dan
3185         * t/: op/pmc_perlstring.t, pmc/perlstring.t:  Enclosed test checks
3186         that
3188           if Px, ...
3190          works with PerlString PMCs; these should be false if they are "",
3191         0, or
3192          are undefined, and true in every other case.
3194         Courtesy of Simon Glover <scog@roe.ac.uk>
3196 2002-01-13 19:23  dan
3198         * Configure.pl, config_h.in, core.ops, classes/perlnum.pmc: Change
3199         NUMVAL_FMT to FLOATVAL_FMT.
3201         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3203 2002-01-13 17:45  jgoff
3205         * Makefile.in, global_setup.c, classes/Makefile.in,
3206         classes/intqueue.pmc, include/parrot/pmc.h, t/op/pmc.t,
3207         t/pmc/pmc.t: IntQueue is for an upcoming article on perl.com on
3208         designing your own classes.
3210 2002-01-13 08:47  simon
3212         * interpreter.c, Parrot/OpTrans/CPrederef.pm,
3213         lib/Parrot/OpTrans/CPrederef.pm:
3214         Fix bsr in prederef mode.
3216         Courtesy of: Jason Gloudon <perl@gloudon.com>
3218 2002-01-12 15:33  dan
3220         * interpreter.c, key.c, packfile.c, register.c, resources.c,
3221         string.c, encodings/singlebyte.c, encodings/utf32.c,
3222         include/parrot/parrot.h, io/io.c, io/io_stdio.c, io/io_unix.c:
3223         Silence most of the unused variable warnings.
3225         Courtesy of Nicholas Clark <nick@unfortu.net>
3227 2002-01-12 15:18  dan
3229         * rx.ops: This patch fixes a warning and also changes an 'int' to
3230         an 'INTVAL'.  All tests should pass on Solaris.
3232         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3234 2002-01-12 15:13  dan
3236         * interpreter.c, string.c, test_main.c, classes/parrotpointer.pmc,
3237         examples/assembly/life.pasm, include/parrot/interpreter.h,
3238         include/parrot/io.h, io/io.c, io/io_stdio.c, io/io_unix.c,
3239         io/io_win32.c: More IO work. (Plus some misc twiddles)
3241         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3243 2002-01-12 01:14  dan
3245         * include/parrot/string.h: fix a missing name
3247 2002-01-12 00:39  grunblatt
3249         * include/parrot/string.h: Few typos.
3251 2002-01-12 00:16  grunblatt
3253         * jit.c, jit2h.pl, jit/i386/core.jit: Added support for opcodes
3254         that change the program control flow.
3256 2002-01-11 23:53  brentdax
3258         * classes/parrotpointer.pmc: Tell the GC to keep its hands out of a
3259         ParrotPointer's guts.
3261 2002-01-11 23:03  dan
3263         * include/parrot/string.h: flags for the buffers, for GC
3265 2002-01-11 22:31  dan
3267         * include/parrot/pmc.h: PMC flag docs. Those'd be good...
3269 2002-01-11 22:21  dan
3271         * include/parrot/pmc.h: Started with PMC flags
3273 2002-01-11 19:33  dan
3275         * config_h.in, memory.c, resources.c, string.c,
3276         include/parrot/resources.h: Beginnings of a memory allocation/gc
3277         system. Without the GC part.
3279 2002-01-11 18:05  dan
3281         * core.ops: Make sure constant pushes are right on mixed 32/64 bit
3282         systems
3284         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3286 2002-01-11 17:50  dan
3288         * core.ops, pbc2c.pl, Parrot/OpTrans/CGoto.pm,
3289         lib/Parrot/OpTrans/CGoto.pm, include/parrot/interpreter.h: Here is
3290         a patch that makes pbc2c generated code work with the bsr opcode.
3291         It creates a new opcode 'enternative', and uses this to support a
3292         mixed model of interpretation and execution of compiled C code.
3294         Courtesy of Jason Gloudon <perl@gloudon.com>
3296 2002-01-11 17:48  dan
3298         * Makefile.in: Add life as a potential .exe target
3300 2002-01-11 17:30  dan
3302         * include/parrot/resources.h: Start of arena stuff for GC
3304 2002-01-11 05:34  brentdax
3306         * rx.ops: Docs modifications.
3308 2002-01-11 04:19  brentdax
3310         * rx.ops, include/parrot/rx.h: Remove unnecessary evilness from
3311         regular expressions.
3313 2002-01-11 03:44  grunblatt
3315         * jit/i386/core.jit: off by one.
3317 2002-01-11 02:25  dan
3319         * Makefile.in, examples/assembly/life.pasm: Tweak to life benchmark
3321         Courtesy of Steve Fink <steve@fink.com>
3323 2002-01-11 00:32  brentdax
3325         * MANIFEST: Forgot to put parrotpointer.pmc in the MANIFEST.
3327 2002-01-10 23:22  ajgough
3329         * string.c, docs/strings.pod: Removed all the nul termination code,
3330         as this is in general a bad idea.  Note added to docs/strings.pod
3331         to warn people away from assuming termination.
3333 2002-01-10 23:14  dan
3335         * core.ops, interpreter.c, jit.c, rx.c, rx.ops, stacks.c,
3336         testparrotsizes_c.in, include/parrot/interpreter.h,
3337         include/parrot/rx.h, include/parrot/stacks.h: Much nicer stack
3338         implementation
3340         Courtesy of Steve Fink <steve@fink.com>
3342 2002-01-10 22:48  dan
3344         * core.ops: Fix 'basic' test 1 for sizeof(opcode_t) !=
3345         sizeof(INTVAL)
3347         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3349 2002-01-10 22:46  dan
3351         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3352         t/pmc/perlhash.t:  Well, actually two bugs.
3354          The first is an off-by-one error in key.c than can cause parrot
3355          to segfault if hash % NUM_BUCKETS happens to be zero.
3357          The other is a bug in the PerlHash init() code that causes new
3358         PerlHash
3359          PMCs to start with the wrong size.
3361          Both fixed below; also tests to prevent them recurring.
3363         Courtesy of Simon Glover <scog@roe.ac.uk>
3365 2002-01-10 22:30  dan
3367         * classes/default.pmc, classes/perlarray.pmc, t/op/pmc_perlarray.t,
3368         t/pmc/perlarray.t:  The enclosed patch allows one to use the if op
3369         with a PerlArray,
3371         Courtesy of Simon Glover <scog@roe.ac.uk>
3373 2002-01-10 21:31  dan
3375         * examples/assembly/life.pasm: Tweaked to be a benchmarkable thing
3377 2002-01-10 20:30  grunblatt
3379         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
3380         Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-bsd.pm,
3381         lib/Parrot/Jit/i386-linux.pm, jit/i386/core.jit, jit/i386/lib.jit:
3382         All the op codes that doesn't change the program control flow now
3383         work in the JIT by calling the code generated by the compiler when
3384         the op is not in core.jit TODO:     * Make all the ops that change
3385         the program control flow (and are not on core.jit) work.      *
3386         Remove the dispatch payload.
3388 2002-01-10 17:13  dan
3390         * classes/parrotpointer.pmc: This patch fixes parrotpointer.pmc,
3391         which tries to return 0 from a void function.
3393         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3395 2002-01-10 17:12  dan
3397         * t/op/macro.t: Skip tests, don't comment them out.
3399         Courtesy of Simon Glover <scog@roe.ac.uk>
3401 2002-01-10 17:10  dan
3403         * rx.c: This fixes a couple of nits in rx.c:
3405            1. There's no newline at the end, which makes gcc unhappy.
3406            2. We should use NULL, not 0 or "", for creating null pointers.
3408         Courtesy of Simon Glover <scog@roe.ac.uk>
3410 2002-01-10 17:09  dan
3412         * MANIFEST:  Adds rx.t, removes duplicated rx.c and puts everything
3413         back in
3414          alphabetical order.
3416         Courtesy of Simon Glover <scog@roe.ac.uk>
3418 2002-01-10 16:54  ajgough
3420         * resources.c: Made free_string check that there was a string to
3421         free.  In reponse to a bug spotted by Joshua Nye.
3423 2002-01-09 22:44  dan
3425         * global_setup.c: Forgot the setup
3427 2002-01-09 22:35  dan
3429         * rx.ops: Forgot this one
3431 2002-01-09 22:35  dan
3433         * MANIFEST, Makefile.in, rx.c, string.c, include/parrot/pmc.h,
3434         include/parrot/rx.h, t/op/rx.t: Preliminary regex implementation.
3435         Tests don't work, though.
3437         Courtesy of "Brent Dax" <brentdax@cpan.org>
3439 2002-01-09 21:48  dan
3441         * t/: op/pmc_perlarray.t, pmc/perlarray.t: Whoops, forgot that
3443 2002-01-09 21:22  dan
3445         * classes/Makefile.in, classes/parrotpointer.pmc, Makefile.in:
3446         Generic pointer holder class
3448         Courtesy of "Brent Dax" <brentdax@cpan.org>
3450 2002-01-09 21:19  dan
3452         * MANIFEST, classes/perlarray.pmc, t/op/pmc.t, t/pmc/pmc.t: Array
3453         patches.
3455 2002-01-09 19:54  dan
3457         * io/io_unix.c: Whoops. Forgot one
3459 2002-01-09 19:43  dan
3461         * key.c, classes/perlhash.pmc, t/op/pmc_perlhash.t,
3462         t/pmc/perlhash.t: Fix hash crash bugs
3464         Courtesy of Simon Glover <scog@roe.ac.uk>
3466 2002-01-09 19:13  dan
3468         * memory.c: Signedness whoops.
3470         Courtesy of Simon Glover <scog@roe.ac.uk>
3472 2002-01-09 18:23  dan
3474         * MANIFEST, Makefile.in, include/parrot/io.h, io/io.c, io/io_os.c,
3475         io/io_stdio.c, io/io_win32.c: Changes:
3477         -Minor layer cleanups -Win32 layer added (mostly stubs for now) but
3478         will be using the   Win32 API and company rather than the unix-ish
3479         fake ones.  -stdin/stdout/stderr Win32 specific code added. Rather
3480         than use   0,1,2, Microsoft says use GetStdHandle(), etc. so that
3481         stuff is   there. Soon we should be able to start using these
3482         rather than   fprintf(stderr, ...) and remove stdio linkage.
3484         Courtesy of <mrjoltcola@mindspring.com>
3486 2002-01-09 17:26  dan
3488         * test_main.c: Fixes bad code gen on x86.
3490         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3492 2002-01-09 17:24  dan
3494         * Configure.pl, config_h.in, core.ops, key.c, classes/perlint.pmc,
3495         classes/perlnum.pmc: This patch adds macros to the config.h file
3496         for INTVAL and NUMVAL printf formats.
3498         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3500 2002-01-08 22:55  ajgough
3502         * docs/vtables.pod: Clarify what get_string should do.
3504 2002-01-08 20:05  dan
3506         * key.c: Keep comments in sync.
3508         Courtesy of Simon Glover <scog@roe.ac.uk>
3510 2002-01-08 19:50  dan
3512         * memory.c, include/parrot/memory.h: Need a realloc
3514 2002-01-08 17:24  gregor
3516         * .cvsignore, Configure.pl, Makefile.in:
3517         Added 'reconfig' make target and corresponding --reconfig option to
3518         Configure.pl, so its very easy to re-run Configure.pl with the last
3519         (command-line) options you passed it.
3521 2002-01-08 16:33  dan
3523         * core.ops, make_vtable_ops.pl, Parrot/OpsFile.pm,
3524         lib/Parrot/OpsFile.pm: Add in, out, and inout parameters to teh ops
3525         in core.ops. Potential help for optimizers and JITters.
3527         Courtesy of gregor@linux1.kennedytech.com
3529 2002-01-08 16:32  dan
3531         * key.c: Grab key length from the right spot
3533         Courtesy of "Peter Gibbs" <peter@emkel.co.za>
3535 2002-01-08 13:27  ajgough
3537         * test_main.c: Fix slight thinko in realloc usage for reading from
3538         stdin.
3540 2002-01-08 11:34  ajgough
3542         * test_main.c: Allow test_parrot to read bytecode stream from
3543         stdin, adds -f command line option, with "-f -" doing the stdin
3544         stuff.
3546 2002-01-08 06:34  jgoff
3548         * key.c, include/parrot/key.h: key.c - Added simple implementation
3549         of buckets.  include/parrot/key.h - Added enum_key_bucket type
3551 2002-01-08 03:21  jgoff
3553         * include/parrot/key.h: Added an undef type to the key structure,
3554         so we can delete keys without confusion.
3556 2002-01-07 22:09  dan
3558         * key.c, packfile.c, string.c, include/parrot/key.h,
3559         include/parrot/packfile.h, include/parrot/string.h: Fix whines
3560         about index being redefined
3562         Courtesy of Nick Clark
3564 2002-01-07 21:15  dan
3566         * ops2pm.pl: Don't allow the same ops lib to be included twice.
3568         Courtesy of Steve Fink <steve@fink.com>
3570 2002-01-07 20:48  dan
3572         * Parrot/Test.pm, lib/Parrot/Test.pm: Report useful info for test
3573         failures
3575         Courtesy of "Brent Dax" <brentdax@cpan.org>
3577 2002-01-07 20:43  dan
3579         * docs/intro.pod: Missing a comma
3581         Courtesy of "coral" <coral@eekeek.org>
3583 2002-01-07 20:41  dan
3585         * global_setup.c: Quiet a warning
3587         Courtesy of Simon Glover <scog@roe.ac.uk>
3589 2002-01-07 18:58  gregor
3591         * t/op/.cvsignore:
3592         Ignore intermediate test files.
3594 2002-01-07 17:01  gregor
3596         * ops2c.pl:
3597         Print a warning if an .ops file is mentioned more than once on the
3598         command line.
3600 2002-01-07 16:12  ajgough
3602         * t/: op/pmc_perlhash.t, pmc/perlhash.t: A couple more hash tests,
3603         these shouldn't fail.
3605 2002-01-07 15:15  simon
3607         * t/: op/pmc_perlhash.t, pmc/perlhash.t:
3608         Stop segfaults.
3610 2002-01-07 15:11  simon
3612         * key.c:
3613         Fix zero-termination bug in hash function.
3615 2002-01-07 13:37  ajgough
3617         * MANIFEST, t/op/pmc_perlhash.t, t/pmc/perlhash.t: Added
3618         pmc_perlhash.t, one test currently fails, one passes, yin-yang fun.
3620 2002-01-07 11:53  brentdax
3622         * Configure.pl: Fixes the + thing in prompts, plus adds a synonym
3623         (:add{foo}) and a new deleting thing (:rem{foo})
3625 2002-01-07 11:43  simon
3627         * Configure.pl:
3628         Gobble the + before concatenating.
3630 2002-01-07 03:53  dan
3632         * Makefile.in: Dependency fix for new ops setup.
3634 2002-01-07 03:33  jgoff
3636         * classes/perlarray.pmc: Add negative indices, and fix a small
3637         allocation problem.
3639 2002-01-06 23:54  ajgough
3641         * hints/os2.pl: Makes the hints file take account of ldflags and
3642         ccflags being split.  This hints file is still very specific to
3643         builds with gnu tools, but a proper solution can wait.   Thanks to
3644         Nick Burch.
3646 2002-01-06 22:12  dan
3648         * Makefile.in, ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
3649             -changes Parrot::OpLib::core's dependencies to reflect the new
3650         selectable ops files    -allows some of the special forms of 'goto'
3651         inside the PREAMBLE of an opcode file
3653         Courtesy of "Brent Dax" <brentdax@cpan.org>
3655 2002-01-06 19:59  simon
3657         * Makefile.in:
3658         *cough*
3660 2002-01-06 18:19  dan
3662         * classes/perlhash.pmc: Fix some type issues.
3664         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3666 2002-01-06 18:03  dan
3668         * Configure.pl, Makefile.in: It adds a prompt to Configure asking
3669         for a list of opcode files to use.  The default is everything
3670         available except for obscure.ops.
3672         In addition, it makes it so that if your answer to a question
3673         starts with '+', it will concatenate it to the default.  For
3674         example:
3676         What C compiler do you want to use? [cl] +HAHAHA!!!
3678         will result in $PConfig{cc} eq "cl HAHAHA!!!".  While that example
3679         is not terribly useful, it is quite useful with things like
3680         command-line flags and the like.
3682         Finally, it contains a couple tweaks so that my syntax-highlighting
3683         editor recognizes some heredocs correctly.  :^)
3685         Courtesy of "Brent Dax" <brentdax@cpan.org>
3687 2002-01-06 17:59  dan
3689         * KNOWN_ISSUES, MANIFEST, README: Doc Patches
3691         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3693 2002-01-06 17:58  dan
3695         * MANIFEST:  We're missing a couple of files from the MANIFEST.
3697         Courtesy of Simon Glover <scog@roe.ac.uk>
3699 2002-01-06 17:57  dan
3701         * ops2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:   1.
3702         Compiler directives, etc. in files other than core.ops will now
3703         work.   2.  Compiler warnings will now display the file and line
3704         number of the  opcode file.
3706         Courtesy of "Brent Dax" <brentdax@cpan.org>
3708 2002-01-06 17:52  dan
3710         * languages/jako/jakoc: Fix breakage caused by iton/ntoi going away
3712         Courtesy of Simon Glover <scog@roe.ac.uk>
3714 2002-01-06 17:36  dan
3716         * docs/intro.pod: Lots of updates
3718         Courtesy of Simon Glover <scog@roe.ac.uk>
3720 2002-01-06 02:34  gregor
3722         * interpreter.c:
3723         Add some internal documentation on the theory of operation of the
3724         prederef code.
3726 2002-01-06 02:17  gregor
3728         * interpreter.c:
3729         Removed unnecessary include.
3731 2002-01-05 12:37  simon
3733         * classes/.cvsignore:
3734         Ignore generated .h files.
3736         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3738 2002-01-05 12:37  simon
3740         * Configure.pl:
3741         Make lcc happier by adding a dummy structure.
3743         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
3745 2002-01-05 12:35  simon
3747         * global_setup.c, classes/perlundef.pmc, t/op/pmc.t, t/pmc/pmc.t:
3748         Make perlundef work. (And coincidentally stop segfaults in the
3749         tests :)
3751         Courtesy of: Jason Gloudon <perl@gloudon.com>
3753 2002-01-05 04:59  dan
3755         * t/: op/pmc.t, pmc/pmc.t: Undef tests added.
3757 2002-01-05 04:55  jgoff
3759         * classes/perlhash.pmc: Added perlhash class definition
3761 2002-01-05 04:48  dan
3763         * core.ops: Fix on 64 bit platforms with 32-bit opcode_t
3765         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3767 2002-01-05 03:57  jgoff
3769         * MANIFEST, Makefile.in, core.ops, global_setup.c, key.c,
3770         vtable.tbl, classes/Makefile.in, classes/default.pmc,
3771         include/parrot/key.h, include/parrot/pmc.h, t/op/pmc.t,
3772         t/pmc/pmc.t: Initial hash commit.
3774         core.ops - Adding set({i,n,s},p,s) and set(p,{i,n,s},s) operations.
3775          key.h  - Adding NUM_BUCKETS classes/default.pmc - Adding
3776         set_{integer,number,string}_index_s
3778         This does not yet do collision resolution, but will soon.
3780 2002-01-05 02:54  dan
3782         * interpreter.c: More unsigned fixes
3784         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3786 2002-01-04 22:13  dan
3788         * Configure.pl, hints/mswin32.pl: Makes config's building of the
3789         test programs happier.
3791         Courtesy of "Jason Diamond" <jason@injektilo.org>
3793 2002-01-04 19:00  dan
3795         * Configure.pl, Makefile.in, hints/darwin.pl: Add link flags as
3796         separate things
3798 2002-01-04 18:27  dan
3800         * Configure.pl, Makefile.in, classes/Makefile.in, hints/mswin32.pl:
3801         Fixes to get things configuring and building on Win32 Native.
3803         Courtesy of "Jason Diamond" <jason@injektilo.org>
3805 2002-01-04 17:39  dan
3807         * hints/vms.pl: debug cleanup
3809 2002-01-04 16:53  dan
3811         * docs/parrot.pod:  The enclosed patch brings the list of
3812         documentation in parrot.pod
3813          up to date.
3815         Courtesy of Simon Glover <scog@roe.ac.uk>
3817 2002-01-04 16:47  dan
3819         * test_main.c, Parrot/Jit/i386-linux.pm,
3820         lib/Parrot/Jit/i386-linux.pm: In an attempt to just keep knocking
3821         off warnings..
3823         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3825 2002-01-04 16:44  dan
3827         * Configure.pl, Makefile.in: Fixed linking to use linker.
3829         Courtesy of Josh Wilmes <josh@hitchhiker.org>
3831 2002-01-04 16:39  dan
3833         * io/io_stdio.c: Added CVS tag info
3835 2002-01-04 16:35  dan
3837         * hints/cygwin.pl: Time for this. We need a sane linker, and ld2
3838         isn't it
3840 2002-01-04 16:26  dan
3842         * languages/miniperl/Miniperl/Tokenizer.pm: Quiet a warning in the
3843         Tokenizer test
3845         Courtesy of Jonathan Stowe <gellyfish@gellyfish.com>
3847 2002-01-04 16:17  dan
3849         * chartypes/unicode.c: Silence some warnings.
3851         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3853 2002-01-04 16:09  dan
3855         * classes/: genclass.pl, perlarray.pmc, perlint.pmc, perlnum.pmc,
3856         perlstring.pmc, perlundef.pmc:  - genclass.pl attempts to put $Id$
3857         into generated files
3858            but the $Id$ string gets mangled when it's committed.
3859            This patch fixes the existing .pmc files and fixes genclass.pl.
3861          - Makes capitalization in .pmc header match actual filenames
3863          - The command for calling genclass.pl in vtables.pod is incorrect,
3864            since it assumes you're running in classes/ but genclass.pl
3865         assumes
3866            it's being run from the main directory. I changed genclass.pl to
3867         not
3868            care.
3870         Courtesy of Steve Fink <steve@fink.com>
3872 2002-01-04 03:57  dan
3874         * MANIFEST, io/TODO, io/io_stdio.c: No wonder things worked for
3875         me--I *had* the files:wq!
3877 2002-01-04 03:40  dan
3879         * MANIFEST: Whoops--remove files not really there
3881 2002-01-04 03:37  dan
3883         * interpreter.c, stacks.c, include/parrot/stacks.h: The patch below
3884         my sig adds a new_stack() function to take care of the allocation
3885         and setup of "generic" stacks.
3887         Courtesy of "Brent Dax" <brentdax@cpan.org>
3889 2002-01-04 02:36  dan
3891         * core.ops:  The entry in core.ops for puts(s|sc) is missing a =cut
3892         and so
3893          writes a load of junk in core_ops.pod. Applied patch fixes.
3895         Courtesy of Simon Glover <scog@roe.ac.uk>
3897 2002-01-04 02:35  dan
3899         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: The PerlInt
3900         logical-or is using get_integer instead of get_bool for logical
3901         operations. This patch corrects that.
3903         Perlnum and perlstring have working get_bool's, so the default
3904         logical_or and logical_and should be sufficient. The empty methods
3905         are pointed to the default logical_or.
3907         Courtesy of Jason Gloudon <perl@gloudon.com>
3909 2002-01-04 02:31  dan
3911         * Makefile.in: docs/Makefile should be removed by realclean, but
3912         isn't
3914         Courtesy of Kevin Falcone <kevin@jibsheet.com>
3916 2002-01-04 02:29  dan
3918         * classes/: Makefile.in, pmc2c.pl: PMC inheritance! Yay!
3920         Courtesy of Steve Fink <steve@fink.com>
3922 2002-01-04 00:51  dan
3924         * docs/vtables.pod: More docs
3926         Courtesy of Steve Fink <steve@fink.com>
3928 2002-01-04 00:47  dan
3930         * Configure.pl: Updated 64-bit patch
3932         Courtesy of "David M. Lloyd" <dmlloyd@tds.net>
3934 2002-01-04 00:43  dan
3936         * Configure.pl: 64-bit Fix.
3938         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
3940 2002-01-03 22:37  dan
3942         * MANIFEST, Makefile.in, interpreter.c, include/parrot/io.h,
3943         io/io.c, io/io_os.c: Code cleanup, started STDIO layer, started
3944         some buffering work.       Additional work on other layers.
3946         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
3948 2002-01-03 19:41  gregor
3950         * disassemble.pl, obscure.ops, packfile.c, pbc2c.pl:
3951         Updated copyright messages on top-level files.
3953 2002-01-03 04:23  robert
3955         * make.pl: Add author information.  Bonsai test.
3957 2002-01-03 04:02  dan
3959         * io/io_os.c: Twig Bonsai
3961 2002-01-03 03:45  dan
3963         * io/: io_os.c, io_os.c: Twig Bonsai
3965 2002-01-03 03:41  dan
3967         * io/io_os.c: Twig Bonsai
3969 2002-01-02 21:42  gregor
3971         * packfile.c, include/parrot/packfile.h:
3972         Get rid of warnings in packfile.[hc]
3974 2002-01-02 20:39  gregor
3976         * manicheck.pl:
3977         Bracketed translated patterns with ^ and $.
3979 2002-01-02 20:11  dan
3981         * io/io_os.c: silence a warning
3983 2002-01-02 19:52  grunblatt
3985         * jit.c, jit2h.pl, include/parrot/jit.h: Moved the definition of
3986         op_assembly to jit_struct.h, so that we get the real number of ops.
3987          Removed some warnings.
3989 2002-01-02 19:31  tom
3991         * string.c: Fix string transcoding so that it actually works.
3993         Patch from Peter Gibbs <peter@emkel.co.za>
3995 2002-01-02 19:20  gregor
3997         * manicheck.pl:
3998         A program to check the MANIFEST file, accounting for .cvsignore
3999         files.
4001 2002-01-02 19:19  dan
4003         * t/harness: twig bonsai
4005 2002-01-02 19:13  dan
4007         * t/harness: twig bonsai
4009 2002-01-02 18:54  dan
4011         * t/harness: Tweak to test Bonsai
4013 2002-01-02 16:27  dan
4015         * Configure.pl: Allow 64-bit build of parrot on systems with a
4016         mixed 32/64 bit perl
4018         Courtesy of David M. Lloyd <dmlloyd@tds.net>
4020 2002-01-02 15:33  simon
4022         * MANIFEST, docs/Makefile:
4023         Fixed up MANIFEST. (And I removed the Makefile in docs/)
4025         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
4027 2002-01-02 13:51  simon
4029         * Configure.pl:
4030         Die on broken manifest.
4032 2002-01-02 13:48  simon
4034         * jit2h.pl, examples/assembly/mops.pasm:
4035         Clear up JIT warnings.
4037         Courtesy of: Nick Clark <nick@unfortu.net>
4039 2002-01-02 04:10  dan
4041         * io/io.c, io/io_os.c, t/op/interp.t: IO stack now gets initialized
4042         only once, so new interp creation works again
4044         Courtesy of Melvin Smith <mrjoltcola@mindspring.com>
4046 2002-01-02 03:32  dan
4048         * t/op/interp.t: Stubbed the test out, since it's hanging at the
4049         moment.
4051 2002-01-02 00:55  dan
4053         * MANIFEST, Makefile.in, core.ops, include/parrot/io.h, io/io.c,
4054         io/io_os.c: Initial IO system patches
4056         Courtesy of <mrjoltcola@mindspring.com>
4058 2002-01-01 22:55  ajgough
4060         * classes/default.pmc: On second thoughts, and some prodding, the
4061         set_* methods now only set the appropriate part of the cache, and
4062         do nothing else.
4064 2002-01-01 22:29  ajgough
4066         * classes/default.pmc:  Wrote a whole host of default pmc methods.
4068          set_* create appropriate Perl* result.
4069          get_* simply grabs needed bit of cache.*_val
4071          Other methods do the rightest thing I can think of, at the moment.
4073          None yet cope with overflow, the modulus operation needs to be
4074         checked as
4075         I don't know quite which semantics we really want.
4077         Not tested yet.
4079 2002-01-01 20:23  dan
4081         * docs/Makefile, encodings/singlebyte.c, encodings/utf16.c,
4082         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h: Got
4083         rid of unneeded tmp var and eliminated const from encode prototype
4084         since it does make changes to the string.
4086         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4088 2002-01-01 20:11  dan
4090         * Makefile.in: Make clean now tosses pdump.o
4092         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4094 2002-01-01 19:49  dan
4096         * pdump.c, test_main.c: Warnings cleanup
4098         Courtesy of Josh Wilmes <josh@sky.net>
4100 2002-01-01 19:45  dan
4102         * Configure.pl, Makefile.in, docs/.cvsignore, docs/Makefile.in,
4103         hints/mswin32.pl, languages/jako/Makefile.in,
4104         languages/scheme/Makefile.in: Makes cleanup better on non-Unix
4105         platforms
4107         Courtesy of "Jason Diamond" <jason@injektilo.org>
4109 2002-01-01 19:41  dan
4111         * include/parrot/register.h: Clean up some warnings
4113         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4115 2002-01-01 19:10  simon
4117         * pbc2c.pl, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
4118         Hack-around to enable compilation of code using vtable ops.
4120 2002-01-01 18:43  dan
4122         * encodings/: singlebyte.c, utf16.c, utf32.c, utf8.c: Toss <0
4123         checks on unsigned things
4125         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4127 2002-01-01 18:26  dan
4129         * runops_cores.c: More warning silences.
4131         Courtesy of Nicholas Clark <nick@unfortu.net>
4133 2002-01-01 18:25  dan
4135         * trace.c: Shuts up a warning.
4137         Courtesy of Nicholas Clark <nick@unfortu.net>
4139 2002-01-01 18:24  dan
4141         * encodings/singlebyte.c: Clean up some warnings.
4143         Courtesy of Nicholas Clark <nick@unfortu.net>
4145 2002-01-01 18:20  dan
4147         * Configure.pl: Hey, those PPros are really x86 systems! Who'dve
4148         thunk it?
4150         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4152 2002-01-01 18:17  dan
4154         * packfile.c: Warning cleanup
4156         Courtesy of Nicholas Clark <nick@unfortu.net>
4158 2002-01-01 17:53  dan
4160         * string.c: New string size should be based on output encoding's
4161         size, not input encoding's size.
4163         Courtesy of: "Peter Gibbs" <peter@emkel.co.za>
4165 2002-01-01 17:22  dan
4167         * Configure.pl, core.ops, interpreter.c, memory.c, runops_cores.c,
4168         string.c, test_main.c, trace.c, include/parrot/exceptions.h,
4169         include/parrot/interpreter.h, include/parrot/memory.h,
4170         include/parrot/oplib.h, include/parrot/string.h, t/op/string.t:
4171         Warnings fixups.
4173         Courtesy of Chip Turner <cturner@redhat.com>
4175 2002-01-01 17:09  dan
4177         * encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
4178         encodings/utf8.c, include/parrot/encoding.h: Some signed things are
4179         now unsigned, as is proper.
4181         Courtesy of: "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4182         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4184 2002-01-01 16:59  dan
4186         * include/parrot/trace.h: Useless debugging prototype removed
4188         Courtesy of: "Bryan C. Warnock" <bwarnock@raba.com>
4190 2002-01-01 16:58  dan
4192         * MANIFEST: We forgot a file.
4194         Courtesy of "Bryan C. Warnock" <bwarnock@raba.com>
4196 2002-01-01 03:53  dan
4198         * Configure.pl: Okay, I give. Removed some warnings because the
4199         darned system headers were triggering them. Sloppy, sloppy
4200         coding...
4202 2002-01-01 03:48  dan
4204         * config_h.in: Add in an unsigned INTVAL.
4206         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4208 2002-01-01 03:46  dan
4210         * global_setup.c: Clean up some compiler warnings.
4212         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4214 2002-01-01 03:43  dan
4216         * ops2c.pl, Parrot/OpTrans.pm, Parrot/OpTrans/CPrederef.pm,
4217         lib/Parrot/OpTrans.pm, lib/Parrot/OpTrans/CPrederef.pm,
4218         include/parrot/op.h: Cleaned up some things to make the compiler
4219         happier.
4221         Courtesy of Nicholas Clark <nick@unfortu.net>
4223 2002-01-01 03:14  dan
4225         * Configure.pl: Quad updates.
4227         Courtesy of Nicholas Clark <nick@unfortu.net>
4229 2001-12-31 22:53  dan
4231         * include/parrot/op.h: Typedef had parameters backwards. Threw
4232         core.ops for a big whiny warnings loop.
4234 2001-12-31 22:37  dan
4236         * Makefile.in, resources.c: Tweaks to try and get things to build
4237         in the right order.
4239 2001-12-31 21:58  dan
4241         * Configure.pl: Stupid thinko fix
4243 2001-12-31 21:34  dan
4245         * Configure.pl, hints/mswin32.pl: Tweaks for Win32 builds
4247         Courtesy of: "Jason Diamond" <jason@injektilo.org>
4249 2001-12-31 21:32  dan
4251         * Configure.pl: Fix for non-gcc systems
4253 2001-12-31 20:22  dan
4255         * interpreter.c: Tweak so we can build on non-JIT platforms
4257 2001-12-31 20:11  dan
4259         * Configure.pl: Force the time on some copied files to be 'now' to
4260         make the Win builds much less annoying.
4262         Courtesy of "Jason Diamond" <jason@injektilo.org>
4264 2001-12-31 20:07  dan
4266         * Configure.pl: Nuke all object files in the parrot tree that
4267         matter when configuring.  Shouldn't be necessary with good
4268         dependencies in the makefile, but we don't have those yet.
4270 2001-12-31 20:00  gregor
4272         * chartypes/unicode.c:
4273         Silence unused variable warnings.
4275 2001-12-31 19:40  dan
4277         * Configure.pl: Minor Win32 tweaks. Tossed -Wtraditional, too
4279 2001-12-31 19:37  gregor
4281         * interpreter.c, jit.c, include/parrot/jit.h:
4282         Created a prototype for JIT functions and used it in interpreter.c.
4284 2001-12-31 19:31  dan
4286         * Configure.pl, test_gnuc.c: Better GCC detection (and version
4287         detection) with really cranky warnings if we find we're using it.
4289         Courtesy of: Nicholas Clark <nick@unfortu.net>
4291 2001-12-31 18:01  gregor
4293         * interpreter.c, include/parrot/interpreter.h, include/parrot/op.h:
4295         Fixed a few warnings wrt prototypes, etc.
4297 2001-12-31 17:23  dan
4299         * string.c: Silenced most of the compiler whines
4301 2001-12-31 17:15  gregor
4303         * Configure.pl:
4304         Get the ccname from either ccname or just cc config var.
4306 2001-12-31 17:14  gregor
4308         * Parrot/Op.pm, lib/Parrot/Op.pm:
4309         Another intermediate opbody notation. Could come in handy. Explicit
4310         types.
4312 2001-12-31 17:05  dan
4314         * string.c: Minor warnings update
4316 2001-12-31 17:00  dan
4318         * include/parrot/string.h: Warnings cleanup
4320 2001-12-31 16:00  simon
4322         * encodings/utf8.c, include/parrot/encoding.h:
4323         Remove a couple more.
4325 2001-12-31 15:58  simon
4327         * vtable_h.pl, include/parrot/global_setup.h, include/parrot/jit.h,
4328         include/parrot/op.h:
4329         Rid ourselves of a few warnings.
4331 2001-12-31 15:32  dan
4333         * Configure.pl: Made GCC ever so much pickier.
4335         Switch list courtesy of Jarkko.
4337 2001-12-31 15:22  dan
4339         * string.c: Tightened up initial allocation.
4341         Courtesy of:  "Peter Gibbs" <peter@emkel.co.za>
4343 2001-12-31 06:48  dan
4345         * Configure.pl: Minor Windows tweak
4347 2001-12-31 05:32  dan
4349         * core.ops: Unused temp variable tossed.
4351         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4353 2001-12-31 05:09  grunblatt
4355         * Configure.pl, Makefile.in, interpreter.c: Link jit.o only on
4356         supported plataforms
4358 2001-12-31 03:05  dan
4360         * Configure.pl, Makefile.in, classes/Makefile.in: Added in a
4361         platform-independent quote substitution for the makefiles.
4362         Hopefully this'll make the Win32 builds happier.
4364 2001-12-30 21:08  dan
4366         * string.c, include/parrot/string.h: More string system tweaks.
4368         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4370 2001-12-30 20:45  dan
4372         * core.ops: Some pod cleanup
4374         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4376 2001-12-30 20:22  ajgough
4378         * docs/parrot_assembly.pod: removed ntoi and iton ops from docs, as
4379         we aren't using them right now.  Clarified the workings of set Px,
4380         Py and clone Px, Py.
4382 2001-12-30 20:15  grunblatt
4384         * jit.c, jit2h.pl, jit/i386/core.jit: Removed the warnings in jit.c
4385         Added readjit() to read *.jit files Updated core.jit to the new
4386         set_n_i
4388 2001-12-30 20:14  ajgough
4390         * examples/assembly/mops.pasm: Changed iton/ntoi to set.
4392 2001-12-30 19:52  dan
4394         * packfile.c, pdump.c, register.c, string.c, include/parrot/key.h,
4395         include/parrot/trace.h, platforms/generic.c: Compiler whine
4396         cleanups
4398         Courtesy of Josh Wilmes <josh@hitchhiker.org>
4400 2001-12-30 19:13  dan
4402         * Configure.pl, Makefile.in: Make GCC pickier by default.
4404         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
4406 2001-12-30 18:41  dan
4408         * core.ops, t/op/integer.t, t/op/number.t: Transformed iton and
4409         ntoi opcodes to sets.
4411         Courtesy of "David & Lisa Jacobs" <jacobsl001@hawaii.rr.com>
4413 2001-12-30 17:58  gregor
4415         * Makefile.in:
4416         'make' no longer builds the mops test. Use 'make mops' for that. To
4417         run the test, you can do 'make mopstest'.
4419 2001-12-30 17:30  gregor
4421         * Makefile.in:
4422         Fixed one oversight. 'make clean' was removing Parrot/Types.pm. Bad
4423         Gregor.
4425 2001-12-30 17:26  gregor
4427         * .cvsignore, Configure.pl, Makefile.in, VERSION, config_h.in,
4428         core.ops, interpreter.c, make_vtable_ops.pl, obscure.ops, ops2c.pl,
4429         Parrot/BuildUtil.pm, Parrot/OpsFile.pm, lib/Parrot/BuildUtil.pm,
4430         lib/Parrot/OpsFile.pm, include/parrot/oplib.h:
4431         Build enhancements. Originally to support building shared
4432         libraries, but now of broader impact.
4434           * .cvsignore: Ignore the blib/ directory, about which more later.
4436           * Configure.pl:
4438               * Got rid of TAB formatting and lined a few things up.
4440               * Added header comment with CVS Id variable, and a few other
4441                 block header comments.
4443               * Uses new Parrot::BuildUtil module to determine the Parrot
4444                 version.
4446               * Reworded a few messages, added a couple, and wrapped
4447         messages
4448                 to 79 columns.
4450               * Added 2002 to the Copyright statement.
4452               * Added new configure variables: VERSION, MAJOR, MINOR and
4453         PATCH
4455               NOTE: Please see the 'Alas perl5.7.2' comment. 5.7.2 is
4456         greater
4457               than 5.6.0, but the comment implies it isn't.
4459           * Makefile.in:
4461               * Added $(SO), $(A) and $(AR_CRS) defines for library
4462         building.
4464               * Added $(RM_RF) define for removing directory trees
4466               * Grouped generated files into two classes: "sticky" (made by
4467         configure,
4468                 persisting across 'make clean') and 'fluid' (made during
4469         the build
4470                 process, deleted by 'make clean').
4472               * Added header comments.
4474               * Added target for test_prog linked with shared library.
4476               * Added rules to build shared libraries in blib/lib. The
4477         libraries are
4478                 built with trailing version numbers in their file names,
4479         and then
4480                 symbolic links are created for shorter and no version tag
4481         variants.
4483               * Added some missing dependencies
4485               * Added some missing 'make clean' targets.
4487               * Added 'make realclean' target that deletes files created by
4488                 Configure.pl (including Makefile), forcing a re-configure.
4490               * Added a 'status' CVS target.
4492           * VERSION: New file, contains only the version. This version
4493         number is
4494             propagated to a few places, such as the core oplib version
4495         number. This
4496             reduces the amount of coordination that has to happen to get
4497         version
4498             number stuff throughout the tree in sync and updated prior to
4499         cutting
4500             a new release. Feel free to grep for '0.0.3' to see the other
4501         files
4502             that contain the version number (but, do that in a fresh CVS
4503         copy, or
4504             after doing 'make realclean').
4506           * config_h.in: Renamed PARROT_CORE_OPLIB_*_VERSION to
4507         PARROT_*_VERSION,
4508             since the oplib and Parrot itself share a version number now.
4509         Added
4510             PARROT_PATCH_VERSION (the third component) and PARROT_VERSION
4511         (a
4512             string).
4514           * core.ops: Uses new notation "VERSION = PARROT_VERSION" instead
4515         of
4516             specifying the version by hand. Non-core oplibs will set this
4517         to
4518             a quoted dot-string with three natural number components
4519         without
4520             leading zeros.
4522           * interpreter.c: Make use of PARROT_VERSION to simplify some
4523         sprintf()s, and
4524             to get the complete version number in the resulting strings
4525         (including the
4526             new PATCH portion).
4528           * make_vtable_ops.pl: Put the "VERSION = PARROT_VERSION" line int
4529         the
4530             generated file.
4532           * obscure.ops: Use the new "VERSION = PARROT_VERSION" technique.
4534           * ops2c.pl: Account for the PATCH version, too. This affects the
4535         name of the
4536             oplib init function, and the oplib info struct initializer.
4538           * Parrot/BuildUtil.pm: New file for reading in and validating the
4539         contents of
4540             the new VERSION file. Other build utilities could go here in
4541         futuer.
4543           * Parrot/OpsFile.pm:
4545               * Allow three components in version number, and require that
4546         the value
4547                 be in double quotes.
4549               * Allow "VERSION = PARROT_VERSION", substituting the shared
4550         Parrot
4551                 VERSION in that case.
4553           * include/parrot/oplib.h: Add the patch_version member.
4555 2001-12-30 12:16  simon
4557         * MANIFEST, Makefile.in:
4558         More stuff forgotten from MANIFEST.
4560 2001-12-30 12:13  simon
4562         * MANIFEST:
4563         Missing JIT file.
4565 2001-12-30 12:12  simon
4567         * jit2h.pl:
4568         Safety first.
4570 2001-12-30 12:12  simon
4572         * Makefile.in:
4573         Gragh.
4575 2001-12-30 12:04  simon
4577         * Makefile.in, core.ops, packfile.c, pbc2c.pl, string.c,
4578         classes/perlstring.pmc, encodings/singlebyte.c, encodings/utf16.c,
4579         encodings/utf32.c, encodings/utf8.c, include/parrot/encoding.h,
4580         include/parrot/string.h, t/op/string.t:
4581         * Expand the strings test suite to be more complete * Make string
4582         commands more consistent (i.e, now the only string command that
4583         actually changes the original is chopn) * Significantly reduce the
4584         number of memory allocations and eliminate reallocations.
4586         Courtesy of: David Jacobs <jacobsl001@hawaii.rr.com>
4588 2001-12-29 22:12  dan
4590         * interpreter.c, key.c, register.c, stacks.c, string.c,
4591         test_main.c, trace.c: Updates to match the coding standards.
4593         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
4595 2001-12-29 20:42  grunblatt
4597         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4598         Parrot/Jit/i386-nojit.pm, jit/i386/core.jit, jit/i386/lib.jit,
4599         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4600         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm: Allow
4601         us to write asm in *.jit files instead of hex.  Courtesy of: Rafael
4602         Kitover <caelum@debian.org>
4604 2001-12-28 21:20  dan
4606         * core.ops: Okay, now print takes a preceding file handle.
4608         I feel so dirty now.
4610 2001-12-28 20:46  dan
4612         * core.ops, t/op/hacks.t: Added in the readline op, as well as
4613         changing the open op to use fopen under the hood.
4615         THESE OPS ARE EVIL! AND TEMPORARY! USE FOR DEBUGGING PURPOSES ONLY!
4617 2001-12-28 18:20  ajgough
4619         * core.ops, make_vtable_ops.pl, string.c, classes/default.pmc,
4620         classes/perlstring.pmc, docs/parrot_assembly.pod, docs/strings.pod,
4621         include/parrot/exceptions.h, include/parrot/string.h,
4622         t/op/pmc_perlstring.t, t/op/string.t, t/pmc/perlstring.t: Added
4623         repeat op, so that "foo" x 10 can be done.  Filled in PerlString
4624         vtables appropriately.  Also tests for same, new pmc_perlstring.t
4625         to hold tests specific to PerlStrings, as the pmc.t file is taking
4626         too long to run and slowing down my thought processes.
4628         Changes to strings.c etc to take string functions.
4630         Some changes to the strings docs, but not yet complete.
4632         Also, PerlString was copying pointers to strings, rather than
4633         strings themselves, so some action-at-a-distance bugs were creeping
4634         in, I think I've fixed this so everything works nicely.
4636 2001-12-28 04:56  gregor
4638         * examples/assembly/pmcmops.pasm:
4639         PMC-using version of mops.pasm.
4641         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
4643 2001-12-28 04:56  gregor
4645         * examples/assembly/.cvsignore:
4646         Small tinkering. Removed old stuff, etc.
4648 2001-12-28 01:26  gregor
4650         * examples/mops/mops.scheme:
4651         Scheme example. Major GC thrashing on umb-scheme here. Probably due
4652         to the very un-scheme-like implementation.
4654 2001-12-28 01:19  gregor
4656         * examples/mops/mops.c:
4657         Some people's picky compilers don't like us redefineing time(), so
4658         we call it time_n().  :)
4660 2001-12-28 00:28  gregor
4662         * examples/mops/: README, mops.ps:
4663         Added a PostScript example and a README.
4665 2001-12-27 23:57  gregor
4667         * Makefile.in:
4668         Build the C mops translation in examples/mops/mops.c
4670 2001-12-27 23:56  gregor
4672         * examples/mops/: .cvsignore, mops.c, mops.pl, mops.py, mops.rb:
4673         Some translations of mops.pasm into other languages, for inner loop
4674         performance comparisons.
4676 2001-12-27 22:40  gregor
4678         * examples/assembly/mops.pasm:
4679         Fixed erroneous file name in header comment.
4681 2001-12-27 21:18  gregor
4683         * pbc2c.pl:
4684         One-liner to avoid no-op gotos to the next op.
4686 2001-12-27 21:06  gregor
4688         * runops_cores.c:
4689         Fixed -p (profiling). Slow runops core was doing unconditional
4690         tracing, when it should have been checking the flags.
4692 2001-12-27 18:50  ajgough
4694         * core.ops, string.c, chartypes/unicode.c, chartypes/usascii.c,
4695         classes/perlstring.pmc, include/parrot/chartype.h,
4696         include/parrot/string.h, t/op/pmc.t, t/op/string.t, t/pmc/pmc.t:
4697         dded get_digit() to chartypes  * Added string_bool() to strings  *
4698         Added if_s_ic op, to use same  * Added (PerlString)->get_bool stuff
4699         to perlstring.pmc  * Tests for above, also a for couple of other
4700         ops without tests
4702         The unicode chartype has only had placeholders added for get_digit,
4703         string_to_num has been updated to use type->get_digit rather than
4704         the previous ascii-isms.  Some remain, but we need to carefully
4705         define what we mean by a number before we let thousands of code
4706         points act as a minus sign.
4708 2001-12-27 18:32  dan
4710         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Silenced some
4711         compiler warnings.
4713         Courtesy of "David  Jacobs" <jacobsl001@hawaii.rr.com>
4715 2001-12-27 18:23  dan
4717         * t/op/bitwise.t: More tests.
4719         Courtesy of "David Jacobs" <jacobsl001@hawaii.rr.com>
4721 2001-12-27 17:08  gregor
4723         * MANIFEST, Makefile.in, config_h.in, core.ops, interpreter.c,
4724         make_vtable_ops.pl, obscure.ops, ops2c.pl, ops2pm.pl, test_main.c,
4725         trace.c, Parrot/OpsFile.pm, include/parrot/interp_guts.h,
4726         include/parrot/interpreter.h, include/parrot/oplib.h,
4727         lib/Parrot/OpsFile.pm, platforms/generic.c, platforms/generic.h,
4728         platforms/win32.c, platforms/win32.h:
4729         Initial code for dynamic loading of oplibs, applied for now to the
4730         loading of the core_prederef oplib when the -P flag is passed to
4731         test_parrot.
4733           * MANIFEST: Added entry for the new file include/parrot/oplib.h.
4735           * Makefile.in:
4737               * Added libcore_prederef_0_3.so to the shared target.
4738               * Added build rule for libcore_prederef_0_3.so.
4739               * Added dependencies on Parrot/OpsFile.pm and Parrot/Op.pm
4740                 to Parrot/OpLib/core.pm, core_ops.c and
4741                 core_ops_prederef.c.
4743           * config_h.in: Added defines for constants used to locate the
4744             core oplib's init function, and the core_prederef oplib for
4745             dynaloading.
4747           * core.ops: Added a VERSION = 0.3 line near the top. This is now
4748             required by Parrot/OpsFile.pm.
4750           * interpreter.c:
4752               * Added init_prederef() and stop_prederef() functions to load
4753                 and unload the core_prederef oplib when we are in prederef
4754                 mode.
4756                 NOTE: In all likelihood, the prederef stuff has a rapidly
4757                 dwindling time-to-live. The JIT should provide vastly
4758         superior
4759                 performance, and loading an alternate set of core_ops isn't
4760                 the real direction for the dynaloading stuff. Loading
4761                 *additional* ops is. It does provide a handy test case for
4762         the
4763                 general idea for now, though.
4765               * Gets the core copcode table, etc. via the core oplibs oplib
4766                 info pointer, as returned by the core oplib's init
4767         function.
4769           * ops2c.pl
4771               * Make use of the version, major version and minor version
4772                 stuff parsed by Parrot/OpsFile.pm
4774               * The only exported symbol in the generated files is the init
4775                 function now, since that returns an oplib info struct
4776                 pointer, and all the important stuff can be found there.
4778           * ops2pm.pl: Put the oplib version in the generated .pm file.
4780           * test_main.c: Small changes necessitated by changes in the names
4781             of some members of the interpreter struct.
4783           * trace.c: Small changes necessitated by changes in the names
4784             of some members of the interpreter struct.
4786           * Parrot/OpsFile.pm: Require a "VERSION = x.y" line before any
4787             ops are found.
4789           * include/parrot/interp_guts.h: Small changes necessitated by
4790             changes in the names of some members of the interpreter struct.
4792           * include/parrot/interpreter.h: Include the new
4793             include/parrot/oplib.h header. Small changes to the oplib-
4794             related members.
4796           * include/parrot/oplib.h: Define the type of the oplib init
4797             function, and the struct type for the oplib info.
4799           * platforms/*.[hc]: Remove the second argument to Parrot_dlopen()
4800             since not all platforms have it. For those that do, a default
4801             second argument is provided.
4803 2001-12-26 05:12  gregor
4805         * Configure.pl:
4806         Make jitarch calculation not get tripped up by extra components to
4807         archname.
4809 2001-12-24 21:23  gregor
4811         * jit.c, jit2h.pl, Parrot/Jit/i386-bsd.pm,
4812         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm,
4813         include/parrot/jit.h, jit/i386/core.jit, jit/i386/lib.jit,
4814         jit/i386/string.jit, lib/Parrot/Jit/i386-bsd.pm,
4815         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4816         Some more JIT work from Daniel Grunblatt.
4818           * Ops added set_s_s, set_s_sc, bsr_i and eq_s_sc but using calls
4819         to C
4820             functions.
4822           * Added JUMP(END) to place the number of bytes to the end of the
4823         current
4824             op.
4826           * The *.jit files syntax changed.
4828           * Added jit/i386/lib.jit to place handly functions as jump that
4829         take as
4830             argument the address where is the opcode number to jump to.
4832           * There is a bug at some point, but I will start writing
4833             jit/i386/string.jit and jit/i386/stacks.jit so that we don't
4834         have use
4835             calls, which make the jit as slow as the interpreter.
4837         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4839 2001-12-24 03:46  dan
4841         * Parrot/OpTrans.pm, Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4842         Parrot/OpTrans/CPrederef.pm, lib/Parrot/OpTrans.pm,
4843         lib/Parrot/OpTrans/C.pm, lib/Parrot/OpTrans/CGoto.pm,
4844         lib/Parrot/OpTrans/CPrederef.pm: Commented out the use warnings.
4845         Perls before 5.6.0 don't like it.
4847 2001-12-22 16:02  ajgough
4849         * t/op/stacks.t: stopped skipping tests we can run now.  added
4850         clonep tests.
4852 2001-12-21 21:13  gregor
4854         * jit2h.pl, Parrot/Jit/i386-bsd.pm, Parrot/Jit/i386-linux.pm,
4855         Parrot/Jit/i386-nojit.pm, lib/Parrot/Jit/i386-bsd.pm,
4856         lib/Parrot/Jit/i386-linux.pm, lib/Parrot/Jit/i386-nojit.pm:
4857         Fixed some package name goofs.
4859         Thanks to: Andy Dougherty <doughera@mail.lafayette.edu>
4861 2001-12-21 19:32  gregor
4863         * MANIFEST, Makefile.in, core.ops, interpreter.c,
4864         make_vtable_ops.pl, obscure.ops, ops2c-prederef.pl, ops2c.pl,
4865         pbc2c.pl, stacks.c, Parrot/Op.pm, Parrot/OpTrans.pm,
4866         Parrot/Opcode.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
4867         lib/Parrot/OpTrans.pm, lib/Parrot/Opcode.pm, lib/Parrot/OpsFile.pm,
4868         Parrot/OpTrans/C.pm, Parrot/OpTrans/CGoto.pm,
4869         Parrot/OpTrans/CPrederef.pm, docs/intro.pod, include/parrot/op.h,
4870         include/parrot/stacks.h, lib/Parrot/OpTrans/C.pm,
4871         lib/Parrot/OpTrans/CGoto.pm, lib/Parrot/OpTrans/CPrederef.pm:
4872         Changes to syntax of .ops files and refactoring of ops2c*.pl and
4873         pbc2c.pl.
4875           * Removed ops2c-prederef.pl
4877           * (unrelated) Removed vestigial Parrot/Opcode.pm file.
4879           * Added Parrot/OpTrans.pm, Parrot/OpTrans/C.pm (needed for old
4880             functionality of ops2c.pl), Parrot/OpTrans/CPrederef.pm (needed
4881             for old functionality of ops2c-prederef.pl), and
4882             Parrot/OpTrans/CGoto.pm (needed for functionality of pbc2c.pl).
4884             "OpTrans" == "Op Transformation"
4886           * Makefile.in modifications to call "ops2c.pl C" where it used
4887             to be just "ops2c.pl", and "ops2c.pl CPrederef" where it used
4888             to be "ops2c-prederef.pl".
4890           * core.ops and obscure.ops changes to syntax. Semantics are
4891             identical with previous version:
4893               return HALT         -->  HALT()
4894               return AUTO         -->  goto NEXT()
4895               return RETREL(...)  -->  goto OFFSET(...)
4896               return RESTART(*)   -->  restart NEXT()
4898             Also, pop_generic_entry() stuff (local var + 5 lines of code)
4899             for dest-less branch ops replaced with new notation "goto
4900         POP()",
4901             which uses the new pop_dest() function in stacks.c. This also
4902             allowed these ops to become 'inline' ops, since they no longer
4903             have local variables.
4905             The 'ret' op also became simplified to just "goto POP()", and
4906             also became an inline op.
4908           * interpreter.c reflects the change in type name:
4910               prederef_op_func_t   -->  op_func_prederef_t
4912             that occurred in include/parrot/op.h
4914           * make_vtable_ops.pl uses "goto NEXT()" where it used to use
4915             "return AUTO".
4917           * ops2c.pl is now generic. Its first argument is the last
4918             package name component of a subclass of Parrot::OpTrans. These
4919             subclasses all have full names of the form Parrot::OpTrans::*.
4920             An instance of the class is created and later consulted for
4921             various bits of information needed to generate the C code.
4923           * pbc2c.pl now uses an instance of Parrot::OpTrans::CGoto to
4924             contain its transformation rules.
4926           * stacks.c has a new function pop_dest() that pops a destination
4927             off the control stack. include/parrot/stacks.h has the
4928         prototype.
4930           * Parrot/Op.pm now supports the syntax generated by
4931         Parrot::OpsFile
4932             for the "goto POP" case.
4934             Also, the source() method now expects its second argument to be
4935             an object that ISA Parrot::OpTrans. Methods of this object are
4936             called to perform the substitutions.
4938           * Parrot/OpsFile.pm supports the change in notation mentioned
4939             above.
4941           * docs/intro.pod reflects these changes.
4943           * include/parrot/op.h: Renamed type prederef_op_func_t to
4944             op_func_prederef_t because it made the implementation of the
4945             shared ops2c.pl easier.
4947 2001-12-21 13:47  gregor
4949         * Configure.pl, config_h.in, interpreter.c, test_main.c:
4950         Both test_parrot (via test_main.c) and the intepreter itself (via
4951         interpreter.c) use the JIT_CAPABLE config to decide whether to
4952         actually attempt JIT operation, or to complain.
4954 2001-12-20 23:25  gregor
4956         * core.ops, make_vtable_ops.pl, obscure.ops, Parrot/OpsFile.pm,
4957         lib/Parrot/OpsFile.pm, docs/intro.pod, include/parrot/op.h:
4958         Changes to the format of *.ops files. An attempt to provide hints
4959         for future opfunc processing logic that wants to know if an opfunc
4960         is simple enough to JIT (e.g.) inline, or not.
4962         See the POD in Parrot/OpsFile.pm and the updated docs/intro.pod in
4963         addition to The Source in core.ops and Parrot/OpsFile.pm for more
4964         info.
4966 2001-12-20 21:28  gregor
4968         * Configure.pl, jit.c, jit2h.pl, include/parrot/jit.h,
4969         jit/i386/core.jit:
4970         More JIT stuff:
4972           * A fix to Gregor's last Configure.pl update.
4974           * Remove the need for hardcoded "\n" at the end of the "%f"
4975             format for printing floating-point numbers.
4977           * New, improved *.jit syntax for references to registers,
4978             e.g. INT_REG[n].
4980           * Support for C() improved.
4982         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
4984 2001-12-20 16:55  dan
4986         * MANIFEST: Added jit.c to the manifest.
4988 2001-12-20 15:24  simon
4990         * jit2h.pl:
4991         Off-by-one error fixed.
4993 2001-12-20 14:18  simon
4995         * jit/i386/core.jit:
4996         Just a noop. It's the only machine code I know.
4998 2001-12-20 13:10  gregor
5000         * Configure.pl, Makefile.in, jit2h.pl:
5001         Attempt to fix Win32 builds.
5003           * No more empty braces in include/parrot/jit_struct.h
5005         Also:
5007           * ${jitarchname} has the *bsd -> bsd substitution on it, but
5008         ${archname}
5009             does not.
5011 2001-12-20 11:56  simon
5013         * Makefile.in:
5014         De-cp
5016 2001-12-20 01:57  gregor
5018         * Configure.pl, MANIFEST, Makefile.in, interpreter.c, jit.c,
5019         jit2h.pl, test_main.c, Parrot/.cvsignore, Parrot/Jit/i386-bsd.pm,
5020         Parrot/Jit/i386-linux.pm, Parrot/Jit/i386-nojit.pm, docs/jit.pod,
5021         include/parrot/.cvsignore, include/parrot/interpreter.h,
5022         include/parrot/jit.h, jit/i386/core.jit, jit/i386/string.jit,
5023         lib/Parrot/Jit/i386-bsd.pm, lib/Parrot/Jit/i386-linux.pm,
5024         lib/Parrot/Jit/i386-nojit.pm:
5025         Initial JIT implementation.
5027           * Enabled with test_parrot -j. 20x speed boosts seen.
5029           * Unsupported archs mapped to i386-nojit. Don't do -j on them.
5031           * More to come.
5033         Courtesy of: Daniel Grunblatt <daniel@grunblatt.com.ar>
5035 2001-12-20 01:53  jgoff
5037         * MANIFEST, core.ops, t/op/key.t: MANIFEST - Removed t/op/key.t
5038         core.ops - Removed key operators, they should be hidden from the
5039         assembler.  t/op/key.t - No need to test the nonexistent key
5040         operators.
5042 2001-12-20 00:13  ajgough
5044         * core.ops, t/op/stacks.t: Added tests for entrytype op, noticed
5045         that asking for type of entry at depth causes segfault as stack is
5046         zero based, fixed cmp in core.ops to reflect this.  Last test is
5047         skipped as we don't do exceptions right yet.
5049 2001-12-19 19:11  ajgough
5051         * t/op/debuginfo.t: Added C<end> ops to debuginfo.t, as thier
5052         non-being was causing Irix "issues".
5054 2001-12-19 03:37  jgoff
5056         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 003_generator.t,
5057         004_combined.t: Changed tests to make sure they pass with the
5058         addition of the clone operator.
5060 2001-12-18 20:06  gregor
5062         * interpreter.c, include/parrot/interp_guts.h:
5063         Performance improvements to the predereferencing code path
5064         suggested to me over lunch yesterday by my friend John Kennedy.
5065         The goal is to remove the additional test in the inner loop that
5066         was checking for NULL to decide whether or not to call the
5067         prederef() function. Also moved pc & pc_prederef syncing outside
5068         the inner loop.
5070           * Changed the prototype of the prederef() function in
5071             interpreter.c to match that of an opfunc.
5073           * Instead of initializing the prederef void * array with NULL,
5074             we initialize it with pointers to prederef().
5076           * prederef() now returns the prederef_pc passed in, so that
5077             after predereferencing, the same location is executed, but now
5078             with the real code being called.
5080         Thanks to: John Kennedy
5082 2001-12-18 19:59  ajgough
5084         * t/: op/pmc.t, pmc/pmc.t: Added some more num -> string tests
5085         (including some more in the skipped string -> int tests).
5087 2001-12-18 07:06  jgoff
5089         * MANIFEST: Forgot to add classes/perlarray.pmc
5091 2001-12-18 07:05  jgoff
5093         * Makefile.in, core.ops, global_setup.c, vtable.tbl,
5094         classes/Makefile.in, classes/default.pmc, classes/perlarray.pmc,
5095         classes/perlint.pmc, classes/perlnum.pmc, classes/perlstring.pmc,
5096         classes/perlundef.pmc, include/parrot/pmc.h, t/op/pmc.t,
5097         t/pmc/pmc.t: Big update...  Makefile.in - Added
5098         classes/perlarray.pmc core.ops - Added new series of set() ops for
5099         arrays global_setup.c - Initialized perlarray classes/Makefile.in -
5100         Added perlarray.pmc classes/*.pmc - Added
5101         set_{integer,number,string}_index and
5102         get_{integer,number,string}_index include/parrot/pmc.h - Added new
5103         type t/op/pmc.t - Added basic array test
5105         classes/perlarray.pmc - Added
5107 2001-12-17 05:29  jgoff
5109         * languages/miniperl/Miniperl/Generator.pm: Altered miniperl code
5110         generator to use clone operator instead of set Px,Py
5112 2001-12-17 05:25  jgoff
5114         * core.ops, classes/perlint.pmc, classes/perlnum.pmc,
5115         classes/perlstring.pmc, t/op/pmc.t, t/pmc/pmc.t: Added clone
5116         PMC,PMC operator. Uses the clone() vtable entries.
5118 2001-12-17 04:51  jgoff
5120         * MANIFEST: Added miniperl test suite, removed old Miniperl/Test.pm
5121         entry
5123 2001-12-17 04:41  jgoff
5125         * languages/miniperl/Miniperl/Makefile.PL: Now in its proper
5126         directory...
5128 2001-12-17 04:41  jgoff
5130         * languages/miniperl/Makefile.PL: Moved it to the proper directory.
5132 2001-12-17 04:39  jgoff
5134         * languages/miniperl/: Makefile.PL, Miniperl.pm, miniperlc, mpc,
5135         Miniperl/Tokenizer.pm: Makefile.PL to let us run the test suite in
5136         t/
5138 2001-12-17 04:27  jgoff
5140         * languages/miniperl/Miniperl.pm: Latest version of the driver.
5141         Admittedly it's a little thin on true OO, but the algorithms are
5142         the key.
5144 2001-12-17 04:24  jgoff
5146         * languages/miniperl/Miniperl/t/: 001_tokenizer.t, 002_parser.t,
5147         003_generator.t, 004_combined.t: Much more comprehensive test suite
5148         for the codegen et al
5150 2001-12-17 04:22  jgoff
5152         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm,
5153         Tokenizer.pm: Newer codegen, tightened up parser output, added hash
5154         key handling
5156 2001-12-17 04:20  jgoff
5158         * languages/miniperl/Miniperl/Test.pm: The newer test suite is much
5159         more comprehensive.
5161 2001-12-17 04:17  jgoff
5163         * languages/miniperl/foo.mpl: Test file that'll be outdated by
5164         changes to the new compiler
5166 2001-12-17 04:11  jgoff
5168         * languages/miniperl/t/: harness, 001_basic/basic.t: Moving testing
5169         files to Miniperl/
5171 2001-12-16 14:11  simon
5173         * classes/perlint.pmc, examples/assembly/mops_p.pasm, t/op/pmc.t,
5174         t/pmc/pmc.t:
5175         Fix bogus assumption that multiplying an integer by an integer
5176         yields an integer.
5178 2001-12-16 12:48  simon
5180         * make_vtable_ops.pl:
5181         Fixed op exploder.
5183 2001-12-16 12:45  simon
5185         * make_vtable_ops.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm:
5186         Expand multimethod vtable ops.
5188 2001-12-16 12:04  simon
5190         * Makefile.in:
5191         Added 'cvsclean' which doesn't zap CVS/* directories.
5193 2001-12-15 01:50  dan
5195         * include/parrot/string.h: Fixed typo in string.h. lagnuage,
5196         indeed!
5198         Thanks to grunblatt fom #parrot for the catch
5200 2001-12-15 01:39  dan
5202         * .cvsignore, Configure.pl, MANIFEST, languages/jako/Makefile.in,
5203         languages/miniperl/.cvsignore, languages/miniperl/Makefile,
5204         languages/miniperl/Makefile.in,
5205         languages/miniperl/Miniperl/Test.pm, languages/scheme/.cvsignore,
5206         languages/scheme/Makefile, languages/scheme/Makefile.in: Build
5207         tweaks.
5209         Courtesy of: Jay McCarthy <jay@kenyamountain.com>
5211 2001-12-14 17:39  dan
5213         * t/op/trans.t: More trans tests.
5215         Courtesy of: Simon Glover <scog@roe.ac.uk>
5217 2001-12-14 07:41  robert
5219         * make.pl: - define MAKE macro - topological sort and subgraph
5220         order - start of timestamp stuff   (still badly broken)
5222 2001-12-14 06:06  jgoff
5224         * optimizer.pl: Hopefully this should do the trick..
5226 2001-12-14 06:04  jgoff
5228         * Parrot/Optimizer.pm, lib/Parrot/Optimizer.pm: Optimizer
5230           optimizer.pl is the stub, Parrot/Optimizer.pm is the driver.
5232           The optimizer performs its work on a file post-macro expansion.
5233           Run it on a .pasm file, preferably with some trivially reducible
5234         operations
5235           like 'add I0,5,-6' or 'mul I0,I1,0'
5237 2001-12-14 05:48  robert
5239         * Makefile.in: case error EXE -> exe
5241 2001-12-14 05:42  robert
5243         * Makefile.in: remove legacy PDISASM macro
5245 2001-12-14 04:01  dan
5247         * classes/Makefile.in, languages/Makefile.in: Makefile tweaks for
5248         better Win building
5250         Courtesy of: Garrett Goebel <garrett@scriptpro.com>
5252 2001-12-13 22:03  dan
5254         * Configure.pl, Makefile.in, Parrot/Test.pm,
5255         languages/scheme/Makefile, languages/scheme/Scheme/Test.pm,
5256         lib/Parrot/Test.pm: Parrot test prog's now a config variable, so we
5257         can change it without having to change the world.
5259 2001-12-13 21:57  dan
5261         * core.ops, interpreter.c, docs/parrot_assembly.pod,
5262         include/parrot/interpreter.h, t/op/debuginfo.t: Added current
5263         file/line/package to interp structure, with ops to get and set
5264         them. Now we can know where we are!
5266 2001-12-13 19:43  dan
5268         * Configure.pl, Makefile.in: Makefile tweaks to hopefully make
5269         WinXP builds work out of the box
5271 2001-12-13 17:05  dan
5273         * Makefile.in, Parrot/Test.pm, lib/Parrot/Test.pm: Change test prog
5274         name again--makes case-insensitive systems much happier.
5276 2001-12-13 16:21  dan
5278         * core.ops, key.c, string.c, test_main.c, trace.c,
5279         classes/Makefile.in, include/parrot/trace.h: Fixes to clean up
5280         compiler warnings
5282         Courtesy of: Josh Wilmes <josh@sky.net>
5284 2001-12-13 13:33  gregor
5286         * languages/jako/Makefile.in:
5287         Improved the method of calling the assembler.
5289 2001-12-13 13:30  gregor
5291         * languages/jako/Makefile.in:
5292         Improve the build process. It now works from the main parrot dir,
5293         and from the languages/jako directory. Now uses the .SUFFIXES
5294         target and generic build rules to reduce clutter in the
5295         Makefile.in.
5297 2001-12-13 13:29  gregor
5299         * languages/jako/.cvsignore:
5300         Ignore the (now generated Makefile), and don't ignore .list files
5301         anymore, since we aren't generating them.
5303 2001-12-13 13:11  gregor
5305         * Configure.pl, MANIFEST, Makefile.in, languages/.cvsignore,
5306         languages/Makefile.in, languages/jako/Makefile,
5307         languages/jako/Makefile.in:
5308         Added a 'languages' target to the top-level Makefile.in, and
5309         modified the jako build procedure to involve Makefile.in -->
5310         Makefile too (done by Configure.pl).
5312         NOTE: languages/jako and language/scheme are built.
5313         languages/miniperl wasn't building right, so it was left off for
5314         now.
5316 2001-12-13 12:15  gregor
5318         * MANIFEST:
5319         Added MAINTAINER file and mandelzoom.jako from languages/jako to
5320         the MANIFEST.
5322 2001-12-13 12:12  gregor
5324         * .cvsignore, MANIFEST, Makefile.in, core.ops, interpreter.c,
5325         ops2c-prederef.pl, ops2c.pl, test_main.c,
5326         include/parrot/interp_guts.h, include/parrot/interpreter.h,
5327         include/parrot/op.h, include/parrot/oplib/.cvsignore:
5328         Welcome to the Just-in-Time Predereferencing Patch!
5330         This patch implements a "predereferencing" mode for parrot. That
5331         means that a lot of the dereferencing you see in DO_OP and in the
5332         opfuncs is done up front (really, JIT) rather than as and each time
5333         we execute each op in the byte code stream.
5335         This works by creating an array of void pointers with the same
5336         number of elements as the byte code array. This array starts out
5337         life zero-initialized.  Each time we go to execute an op, we check
5338         first to see if we have a NULL pointer at *cur_opcode. If so, we
5339         know we haven't done our predereferencing yet (this is the JIT
5340         part), so we call the prederef() function with sufficient args that
5341         it can go look up opfunc pointers and op arg types and put the
5342         opfunc and arg pointers at cur_opcode[0] .. cur_opcode[N - 1],
5343         where N is the number of args (counting the op itself as one arg).
5345         We assume that sizeof(INTVAL) <= sizeof(void *), so we can continue
5346         to have inline INTVAL constants.
5348         I've been getting about a 22% speed increase over vanilla code path
5349         when I compile with -O0. Advantage decreases at -O9 here. I tested
5350         with mops.pbc, and also by temporarily putting the -P flag in
5351         Parrot/Test.pm and running all the tests. So, this code is as
5352         correct as the test suite can detect.
5354         Here's how it plays out in the code:
5356           * New script ops2c-prederef.pl
5358             Copy-paste code reuse from ops2c.pl. Modified to expect the
5359         args to give
5360             a void ** cur_opcode and to return a void **.
5362           * Modified ops2c.pl
5364               * opfuncs are now static. Who needs to call them by name from
5365         outside,
5366                 anyway? They are accessed via the opfunc table.
5368               * Some MACRO stuff to make things work whether we prederef or
5369         not. It
5370                 may be possible to get rid of these some day if other folks
5371         agree
5372                 that we should be using CODE object pointers + offsets as
5373         our PC
5374                 rather than raw pointers to either opcode_t's or (void *)'s
5375                 (depending on prederef mode or no).
5377           * core.ops modified to be usable to build both kinds of opfuncs.
5378         For now,
5379             this means:
5381               * calls to push_generic_entry(... cur_opcode ...) were
5382         changed to
5383                 push_generic_entry(... CUR_OPCODE ...), where CUR_OPCODE is
5384         a
5385                 macro that does the right thing in both kinds of ops.c
5386         files.
5388                 This is applicable to the bsr op. If we treated
5389         destinations as
5390                 (Code PMC + local offset) rather than as
5391         pointer-to-memory-somewhere,
5392                 this wouldn't be a big deal. We may need to do that at some
5393         point
5394                 anyway, so that when you jump around and return not only do
5395         you have
5396                 the right PC (pointer, today), but you also have the
5397         thread/interpreter
5398                 knowing what chunk of bytecode it is in at all times
5399         (assuming we'll
5400                 allow reflection, as in ops that query or affect the
5401         current CODE PMC).
5403               * runinterp was modified. Instead of copying the top-level
5404         PackFile struct
5405                 and blasting its byte_code pointer, we simply call runops
5406         on the new
5407                 interp, passing in the pointer to the current interp's code
5408         and the
5409                 offset into that code at which to start (this last arg used
5410         to be a
5411                 pointer PC, now its an offset PC).
5413           * include/parrot/op.h
5415               * new typedef for prederef opfuncs (they return void **)
5417           * include/parrot/interp_guts.h
5419               * New DO_OP_PREDEREF() macro described above.
5421           * include/parrot/interpreter.h
5423               * New prototype of runops() -- see below.
5425               * resume_addr field changed to resume_flag and resume_offset
5426         pair of fields.
5427                 We might be resuming from interp using prederef to one not
5428         or vice-versa,
5429                 so pointers between the two don't play nice together.
5430         Offsets are beautiful.
5432               * New PARROT_PREDEREF_FLAG constant
5434           * interpreter.c
5436               * include "parrot/oplib/core_ops_prederef.h"
5438               * prederef() function described above.
5440               * runops_prederef() runops variant. Uses DO_OP_PREDEREF()
5441         macro as its core.
5443               * runops() modified to take size_t CODE-relative offset PC
5444         rather than
5445                 pointer PC. This made other things workable and doesn't
5446         seem to have lost
5447                 anything important (IMO).
5449           * test_main.c
5451               * New flag '-P' to enable predereferencing.
5453           * Makefile modified to build core_ops_prederef.c from core.ops
5454         via
5455             ops2c-prederef.pl.
5457             BTW, also added missing $(INC)/interp_guts.h to H_FILES.
5459             Added core_ops_prederef$(O) to O_FILES
5461 2001-12-13 12:12  gregor
5463         * languages/jako/MAINTAINER:
5464         Thought it would be nice to put this right in the code...
5466 2001-12-13 04:36  jgoff
5468         * languages/miniperl/Miniperl/Generator.pm: Commented out
5469         debugging, fixed register spillover algorithm
5471 2001-12-13 04:23  jgoff
5473         * make.pl: Found and fixed obob in the parser (Wasn't parsing last
5474         line) Restructured a bit of the dependency generator to fix a
5475         different obob bug.
5477 2001-12-13 03:43  robert
5479         * MANIFEST, docs/opcodes.pod: remove old docs/opcodes.pod
5481 2001-12-13 03:03  jgoff
5483         * make.pl: Added make.pl
5485 2001-12-13 02:44  jgoff
5487         * languages/miniperl/Miniperl.pm: Nearly-complete 'make'
5488         replacement in perl.  Non-compliant bits - Takes absolutely -NO-
5489         special flags...                     - Dies on undefined macros
5490         such as $(PDISASM) in current make                     - Dies on
5491         recursive macro expansions                       (Doesn't test for
5492         mutual or multipart loops)                     - In general it
5493         seems to be a little less lenient...  Missing bits - File
5494         mod/creation times aren't being looked at              - Actions
5495         aren't being taken              - The few funky variables ($@, $<)
5496         aren't being dealt with Bugs - Line numbers are slipping a bit.
5498 2001-12-13 02:29  jgoff
5500         * languages/miniperl/Miniperl/: Generator.pm, Parser.pm:
5501         Reconstructing files to make the parser flow a little better.
5503 2001-12-13 00:51  dan
5505         * resources.c: Be a bit less wasteful with resources that don't
5506         need to be aligned
5508 2001-12-12 18:22  dan
5510         * Makefile.in: D'oh! Fixed looping makefile bug.
5512         Courtesy of: "Jaen Saul" <jaen@saul.ee>
5514 2001-12-12 16:23  jgoff
5516         * languages/miniperl/t/001_basic/basic1.scheme: Bogus entry
5518 2001-12-12 16:22  jgoff
5520         * MANIFEST: Manifest additions for languages/miniperl
5522 2001-12-12 16:19  jgoff
5524         * languages/miniperl/t/001_basic/: basic.t, basic1.scheme: Basic
5525         tests. These are left over from the Scheme suite and shouldn't be
5526         used yet.
5528 2001-12-12 16:18  jgoff
5530         * languages/miniperl/: Miniperl/Generator.pm, Miniperl/Parser.pm,
5531         Miniperl/Test.pm, Miniperl/Tokenizer.pm, t/harness: Miniperl base
5532         modules. Miniperl/ is where the real work gets done.  t/ is largely
5533         vacant because it isn't ready to survive real tests yet.
5535 2001-12-12 16:17  jgoff
5537         * languages/miniperl/: Makefile, Miniperl.pm, foo.mpl, miniperlc,
5538         mpc: Final go-round, hopefully.
5540         languages/miniperl/Makefile - Used basically to run tests, as there
5541         is nothing                               here that needs to be
5542         dynamically built.  languages/miniperl/Miniperl.pm - Stub module
5543         that calls the real Miniperl/ mods languages/miniperl/foo.mpl -
5544         Sample miniperl file.  languages/miniperl/miniperlc - Miniperl
5545         compiler stub
5547 2001-12-12 16:09  dan
5549         * Configure.pl: Setting a variable with the make command name is
5550         useful.
5552 2001-12-12 15:07  simon
5554         * Makefile.in, languages/jako/Makefile, languages/scheme/Makefile:
5555         Recursive make considered "ow, don't do that".
5557 2001-12-12 14:45  dan
5559         * Makefile.in: Makefile had some non-portable code. (Okay, a lot of
5560         non-portable code) Killing builds on Win32 native. Small patch
5561         applied which hopefully fixes it.
5563 2001-12-12 06:12  ajgough
5565         * classes/Makefile.in: perl is $(PERL), you know it makes sense.
5567 2001-12-12 06:08  ajgough
5569         * Makefile.in: perl is $(PERL).
5571 2001-12-12 06:00  ajgough
5573         * t/op/integer.t: Added tests to integer.t so that all permutations
5574         of arguments are actually called at some point.
5576 2001-12-12 05:18  ajgough
5578         * t/op/time.t: I can't sleep, but I don't see why parrot shouldn't.
5579          Tests for sleep i|ic
5581 2001-12-12 05:09  ajgough
5583         * t/op/stacks.t: Added pushp and popp register stack tests.
5585 2001-12-12 04:51  ajgough
5587         * t/op/stacks.t: Added tests for save and restore, for all register
5588         types.  Let there be Haiku.
5590 2001-12-12 04:27  ajgough
5592         * t/op/basic.t: bsr_i test.  You know you want it.
5594 2001-12-12 02:55  ajgough
5596         * MANIFEST: Added hints/os2.pl to MANIFEST.
5598 2001-12-12 02:52  jgoff
5600         * core.ops, key.c: Final checkin... These are actually the correct
5601         copies.
5603 2001-12-12 02:12  jgoff
5605         * include/parrot/key.h: key.c - Removed a few functions,
5606         generalized set_element_value and element_value         to accept
5607         KEY_PAIRs from core.ops include/parrot/key.h - Modified header.
5608         core.ops - Modified to accept the new return style.
5610         This is a prelude to adding virtual-table methods to allow hashing
5611         &c. Expect at least one or two more redesigns before this settles
5612         down. However, it still passes the original tests.
5614 2001-12-11 13:35  gregor
5616         * runops_cores.c:
5617         Fixed a typo.
5619 2001-12-11 12:03  gregor
5621         * .cvsignore:
5622         Don't ignore test_prog, but do ignore parrot.
5624 2001-12-11 12:03  gregor
5626         * classes/.cvsignore:
5627         Ignore the generated file default.h
5629 2001-12-11 04:07  jgoff
5631         * key.c: Key source
5633 2001-12-11 04:05  jgoff
5635         * include/parrot/key.h, t/op/key.t: Needed header file, new test
5637 2001-12-11 04:00  jgoff
5639         * core.ops: Added new key aggregate operations to core ops.
5641 2001-12-11 04:00  jgoff
5643         * include/parrot/parrot.h: Added key.h to header list
5645 2001-12-11 03:59  jgoff
5647         * MANIFEST: Added key.c, include/parrot/key.h, t/op/key.t
5649 2001-12-11 03:58  jgoff
5651         * Makefile.in: Added implementation of key aggregates.
5653 2001-12-08 23:07  simon
5655         * README:
5656         README good to go.
5658 2001-12-08 23:05  simon
5660         * Configure.pl, Makefile.in, README, Parrot/Test.pm,
5661         docs/intro.pod, languages/jako/Makefile, languages/scheme/Makefile,
5662         languages/scheme/Scheme/Test.pm, lib/Parrot/Test.pm:
5663         test_prog? What is test_prog?
5665 2001-12-08 22:57  simon
5667         * ChangeLog:
5669         Oops, the changelog commit was on *this* machine.
5671 2001-12-08 22:56  simon
5673         * NEWS:
5674         Updates to NEWS and ChangeLog pre-release.
5676 2001-12-08 22:07  simon
5678         * MANIFEST, Makefile.in, classes/Makefile.in, classes/default.pmc,
5679         classes/perlnum.pmc, classes/pmc2c.pl:
5680         Add "default" PMC vtable so you can inherit implied stuff.
5682 2001-12-08 21:24  simon
5684         * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
5685         docs/vtables.pod, lib/Parrot/PackFile.pm:
5686         Getting the documentation up to scratch.
5688 2001-12-08 21:21  simon
5690         * classes/pmc2c.pl:
5691         Allow inheriting from default class.
5693 2001-12-07 20:43  gregor
5695         * examples/assembly/queens.pasm:
5696         Regenerated the file with the latest jakoc.
5698 2001-12-07 20:29  simon
5700         * core.ops, t/op/stacks.t:
5701         Rename "rotate" to "rotate_up".
5703 2001-12-07 20:15  simon
5705         * t/op/stacks.t:
5706         Some tests for rotate.
5708 2001-12-07 00:55  gregor
5710         * core.ops:
5711         Cast the result of the pointer arithmetic, since without the cast
5712         there are warnings with some compilers, and without the parens
5713         around the pointer arithmetic, precedence breaks the meaning and
5714         causes crashes.
5716 2001-12-06 23:37  simon
5718         * core.ops:
5719         Temporary. I prefer compiler warnings to segfaults, thanks.
5721 2001-12-06 23:34  simon
5723         * runops_cores.c:
5724         Make "trace" work again.
5726 2001-12-06 21:23  dan
5728         * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
5730 2001-12-06 21:22  dan
5732         * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
5733         lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
5735 2001-12-06 19:22  simon
5737         * core.ops:
5738         Yet another "How the *%$! did that compile?" moment.
5740 2001-12-06 18:28  dan
5742         * hints/vms.pl: Fix to build, with a HERE logical required
5744 2001-12-06 17:48  dan
5746         * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
5747         docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
5748         changes to the interpreter--flags are now part of the interp
5749         structure.
5751         Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
5753 2001-12-06 14:02  gregor
5755         * docs/intro.pod:
5756         s/little_languages/languages/ in Jako section.
5758 2001-12-06 13:15  simon
5760         * Makefile.in:
5761         Ensure the documentation gets made.
5763 2001-12-06 13:12  simon
5765         * MANIFEST, docs/intro.pod:
5766         Documentation! Added the "Some Assembly Required" article with
5767         minor updates.
5769 2001-12-06 00:39  simon
5771         * core.ops:
5772         More "eq" support.
5774         Courtesy of: Nguon Hao Ching <hao@netaxs.com>
5776 2001-12-06 00:37  simon
5778         * test_main.c:
5779         Add the "-d" debug flag. Doesn't actually *do* anything yet.
5781         Courtesy of: Melvin <mrjoltcola@mindspring.com>
5783 2001-12-06 00:11  tom
5785         * string.c, chartypes/unicode.c, chartypes/usascii.c,
5786         encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
5787         include/parrot/chartype.h, include/parrot/encoding.h,
5788         include/parrot/parrot.h: Moved string to number conversion code out
5789         of the encoding layer and into the main string layer as neither the
5790         encoding layer nor the character type layer knows enough on it's
5791         own to do the conversion correctly.
5793 2001-12-05 23:12  tom
5795         * Makefile.in: Rebuild the classes directory if any of the object
5796         files for the classes are missing rather than only when perlint.o
5797         is missing.
5799 2001-12-05 19:43  gregor
5801         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
5802           * Reworked the constantize_string() stuff a little bit because it
5803         was
5804             puking on things like "\033[H\033[2J\0" (which occurs in the
5805             languages/jako/mandelzoom.jako example).
5807 2001-12-05 19:39  gregor
5809         * languages/jako/: Makefile, mandelzoom.jako:
5810         Added 'mandelzoom' example.
5812 2001-12-05 19:38  gregor
5814         * languages/jako/jakoc:
5815           * Added sleep()
5817           * Changed some instances of die() to confess()
5819 2001-12-05 18:34  gregor
5821         * t/: op/pmc.t, pmc/pmc.t:
5822         s/sting->int/string->int/
5824 2001-12-05 18:08  gregor
5826         * Parrot/.cvsignore:
5827         Ignore PMC.pm
5829 2001-12-05 18:05  gregor
5831         * classes/.cvsignore:
5832         Ignore the generated files.
5834 2001-12-05 17:19  gregor
5836         * pbc2c.pl:
5837           * Reverted recent changes, since they broke the script. Real fix
5838         coming
5839             later.
5841 2001-12-05 17:03  simon
5843         * classes/Makefile.in:
5844         Remember: change Makefile.in, not Makefile. D'oh.
5846 2001-12-05 17:02  simon
5848         * Makefile.in:
5849         Ensure PMC.pm gets remade.
5851 2001-12-05 16:58  simon
5853         * MANIFEST, Makefile.in, classes/Makefile.in,
5854         classes/perlundef.pmc, include/parrot/pmc.h:
5855         Add perlundef class.
5857 2001-12-05 16:45  simon
5859         * core.ops:
5860         Document "new P0, foo"
5862 2001-12-05 16:43  simon
5864         * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
5865         lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
5866         Allow assembler to know about PMC class names.
5868 2001-12-04 13:39  ajgough
5870         * MANIFEST: Added t/op/pmc.t to MANIFEST.
5872 2001-12-04 05:02  ajgough
5874         * classes/perlnum.pmc: Picky compiler pointed out probable thinko
5875         in perlnum.c
5877 2001-12-04 04:24  ajgough
5879         * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
5880         broken form of strtod and appropriate tests.  Does not yet check
5881         for overflow.
5883 2001-12-04 01:31  ajgough
5885         * string.c, encodings/singlebyte.c, encodings/utf16.c,
5886         encodings/utf8.c, include/parrot/encoding.h: Added length parameter
5887         to extract_num and extract_int string vtables, without this it
5888         would be impossible to have strings with nulls in while still
5889         knowing where they ended.
5891 2001-12-03 18:40  ajgough
5893         * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
5894         encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
5895         include/parrot/string.h: Moved pmc string to number conversion into
5896         the string encoding tables.
5898 2001-12-03 00:21  ajgough
5900         * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
5901         for p-> integer.
5903 2001-12-02 23:09  jgoff
5905         * classes/Makefile.in: Removed some redundant targets.
5907 2001-12-02 19:02  ajgough
5909         * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
5910         equality macro rather than using perl to generate expected output,
5911         all tests now have <<OUTPUT.
5913 2001-12-02 17:44  ajgough
5915         * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
5916         for pmc.t as well.  Will probably move macros into another file at
5917         some point, although this might be best left until the tests are
5918         unperled.
5920 2001-12-02 06:16  jgoff
5922         * classes/pmc2c.pl: It wasn't properly setting the vtable index
5923         within Parrot_Perl{Class}_init.
5925 2001-12-02 06:09  jgoff
5927         * classes/Makefile.in: I seem to have removed *$(O) twice..
5929 2001-12-02 05:06  jgoff
5931         * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
5932         Configure.pl - Removed '-I./include', added classes/Makefile
5933         generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
5934         Removed old classes/* make stuff                Added target for
5935         classes/Makefile
5937 2001-12-02 04:48  jgoff
5939         * classes/Makefile.in: Going to be used shortly...
5941 2001-12-02 04:40  jgoff
5943         * docs/Makefile: Configure.pl - Added automatic makefile creation
5944         for docs/ and classes/                Removed '-I./include' because
5945         it was getting incorrectly                passed to classes/
5946         MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
5947         - Removed classes/ build stuff, replaced with classes/Makefile.in
5948                     Added '-I./include' locally docs/Makefile - Should no
5949         longer be used, but I'm not brave enough to do a
5950         cvs delete.
5952 2001-12-02 01:21  ajgough
5954         * t/op/trans.t: Refactored trans math tests to have hard coded
5955         expected return values and be more ready to be unperled at some
5956         point in the future.  Added $fp_equality_macro which is a
5957         "nearly-equal-to" function.
5959 2001-12-02 01:18  ajgough
5961         * Makefile.in: Humph.  People really ought to use Makefile
5962         variables, s/perl/$(PERL)/ throughout.
5964 2001-12-01 18:15  jgoff
5966         * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
5967         figure out what to do vis-a-vis the lack of snprintf.
5969 2001-11-30 13:14  ajgough
5971         * t/op/: integer.t, number.t: Added tests for abs ops to number.t
5972         and integer.t
5974 2001-11-30 13:14  ajgough
5976         * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
5977         -, else ... form.
5979 2001-11-30 10:36  simon
5981         * core.ops:
5982         Rewrite print_p to do the right thing.
5984 2001-11-30 06:21  jgoff
5986         * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
5987         concat,               integer/number/string math
5989 2001-11-30 06:20  jgoff
5991         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
5992         classes/perlint.pmc - Fixes and expanding for concat and math with
5993         strings classes/perlnum.pmc - Fixes and expanding for concat and
5994         math with strings classes/perlstring.pmc - Fixes and expanding for
5995         concat and math with strings
5997 2001-11-29 15:21  ajgough
5999         * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
6000         $^X lies, which confused bash which make uses to run things when
6001         doing its stuff.
6003 2001-11-29 04:58  jgoff
6005         * classes/perlstring.pmc: Removed C++-style comments for good
6006         measure
6008 2001-11-29 04:51  jgoff
6010         * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
6012 2001-11-29 04:28  jgoff
6014         * global_setup.c: Initialize PMC strings
6016 2001-11-29 04:25  jgoff
6018         * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
6019         string PMCs.
6021 2001-11-29 04:24  jgoff
6023         * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
6024         files to properly upgrade int to num, do calculations.  Also added
6025         basic string operations. Currently errors out on anything but set
6026         operations, but this will be fixed soon.
6028 2001-11-29 04:22  jgoff
6030         * Makefile.in: PMC .c files weren't getting cleaned out.
6032 2001-11-28 17:00  simon
6034         * t/harness:
6036         Make csh-glob happy.
6038         Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
6040 2001-11-28 16:40  simon
6042         * classes/perlnum.pmc:
6044         De-C++
6046 2001-11-28 15:22  simon
6048         * string.c:
6050         Fixes Alex's string concat worry.
6052 2001-11-28 14:27  ajgough
6054         * t/op/string.t: test "null onto null" incorrectly passing as it
6055         produced no output.  Output provided.
6057 2001-11-28 11:14  simon
6059         * include/parrot/pmc.h:
6061         Placate AIX.
6063 2001-11-26 21:03  dan
6065         * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
6067 2001-11-26 17:29  simon
6069         * classes/perlint.pmc:
6071         Various subtle but non-showstopper bugs.
6073 2001-11-26 11:23  simon
6075         * classes/pmc2c.pl:
6077         Replace dependency on Text::Balanced
6079         Courtesy of: Bart Lateur <bart.lateur@pandora.be>
6081 2001-11-26 05:22  jgoff
6083         * global_setup.c: Last file that should need to be committed. I
6084         swear.
6086 2001-11-26 05:09  jgoff
6088         * core.ops: Let's try this again... Changes to core.ops required
6090 2001-11-26 04:58  jgoff
6092         * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
6093         t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
6094         core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
6095         Uncommented PerlNum_init classes/perlint.pmc - Added set_number
6096         functions classes/perlnum.pmc - Set up basic number functions
6097         t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
6098         tests against numbers and numbers+integers
6100 2001-11-25 13:18  simon
6102         * Makefile.in:
6103         Windows XP make doesn't like $<
6105 2001-11-25 12:56  simon
6107         * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
6108         classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
6109         classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
6110         examples/assembly/mops_p.pasm:
6111         PMC preprocessor.
6113         Courtesy of: Angel Faus <afaus@corp.vlex.com>
6115         I (Simon) also added a couple more integer methods, but no tests
6116         since I'm a Bad Person.
6118 2001-11-25 08:40  brentdax
6120         * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
6121         lib/Parrot/OpsFile.pm: Allow _ in op names
6123 2001-11-25 05:54  jgoff
6125         * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
6126         Added basic math ops t/op/pmc.t - Added tests of basic math ops
6128 2001-11-23 18:27  simon
6130         * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
6131         Add everything you need to make MOPS use PMCs.
6133 2001-11-23 18:06  simon
6135         * core.ops:
6136         Eh, you'll need this for rewriting mops.pasm.
6138 2001-11-23 17:55  simon
6140         * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
6141         t/pmc/pmc.t:
6142         More work on integer PMCs.
6144 2001-11-23 17:29  simon
6146         * Makefile.in:
6147         Surprise! Whitespace! HLAGHLAGHLAGH
6149 2001-11-23 17:28  simon
6151         * Makefile.in, ops2c.pl, ops2pm.pl:
6152         Add vtables.ops to the core
6154         Courtesy of: Jeff Goff <jgoff@speakeasy.net>
6156 2001-11-22 18:39  simon
6158         * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
6159         t/pmc/pmc.t:
6160         We can now create PMCs.
6162 2001-11-21 05:49  jgoff
6164         * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
6166 2001-11-20 16:00  simon
6168         * docs/vtables.pod, include/parrot/pmc.h:
6169         Reorder PMC flags so there's a fixed number of user-defined flags.
6171         Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
6173 2001-11-19 03:39  jgoff
6175         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
6176         Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
6177         nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
6178         escaped quotes, and proper                handling of newlines.
6180 2001-11-16 22:03  simon
6182         * classes/perlint.c:
6183         More work on the Perl Integer class. More needed, though.
6185 2001-11-16 21:57  simon
6187         * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
6188         Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
6190 2001-11-16 20:49  simon
6192         * interpreter.c, runops_cores.c, trace.c,
6193         include/parrot/runops_cores.h:
6194         Kill superfluous runops cores.
6196 2001-11-16 17:50  simon
6198         * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
6199         classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
6200         include/parrot/parrot.h, include/parrot/pmc.h:
6201         Skeleton for Perl scalar types, done right.
6203 2001-11-16 16:15  simon
6205         * classes/genclass.pl:
6206         This tidies up genclass to deal with the new-style multimethods.
6208 2001-11-16 15:29  simon
6210         * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6211         lib/Parrot/Vtable.pm, include/parrot/parrot.h:
6212         Rework multimethods to be *true* multimethods - that is, have
6213         different types.
6215 2001-11-15 22:29  simon
6217         * MANIFEST, Makefile.in, pmc.c:
6218         pmc.c linkage and support. Oh, and making it compile.
6220 2001-11-15 22:26  dan
6222         * t/op/interp.t: Forgot to tell CVS about the test...
6224 2001-11-15 22:10  dan
6226         * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
6227         docs/parrot_assembly.pod, include/parrot/string.h: Added in support
6228         for PMC registers for the interpreter.
6230         Added in the docs for the runinterp opcode.
6232         Added in code for both the newinterp and runinterp opcodes, so we
6233         can now create new interpreters from within parrot and have them do
6234         things. (Though we can't pass data back and forth. Yet)
6236 2001-11-15 21:24  simon
6238         * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
6239         More documentation, and other changes as discussed with Dan.
6241 2001-11-15 19:51  simon
6243         * classes/scalarclass.c:
6244         De-cut-and-pasto.
6246 2001-11-15 19:50  simon
6248         * classes/scalarclass.c:
6249         A little code tidiness.
6251 2001-11-15 19:33  simon
6253         * include/parrot/pmc.h:
6254         Missed this in the previous commit - un-constantize the base for
6255         user-defined PMC flags.
6257 2001-11-15 19:28  simon
6259         * classes/scalarclass.c:
6260         Hey look, sanity.
6262 2001-11-15 17:09  simon
6264         * classes/scalarclass.c:
6265         It seems I have completely forgotten how to write C.
6267 2001-11-15 16:53  simon
6269         * docs/vtables.pod:
6270         Start of the PMC classes documentation.
6272 2001-11-15 14:46  simon
6274         * classes/scalarclass.c:
6275         Changing to use a Perl-style struct instead of the union cache.
6277 2001-11-13 23:56  tom
6279         * string.c: Removed leading _ from string_index as function names
6280         starting with _ are reserved to implementors by the C standard.
6282         Also fixed string_index to use the encoding routines instead of
6283         assuming a single byte encoding.
6285 2001-11-13 12:59  jgoff
6287         * string.c: Patched string_concat to accept null strings.  That
6288         test was failing. Nothing to do with ord().
6290 2001-11-13 12:43  jgoff
6292         * string.c: string_ord function, string_concat fixes
6294 2001-11-13 04:52  jgoff
6296         * core.ops: Added ord to core.ops
6298 2001-11-13 04:35  jgoff
6300         * docs/strings.pod, include/parrot/exceptions.h,
6301         include/parrot/string.h, t/op/string.t: core.ops - Added ord
6302         operator, documentation string.c - Added string_ord, _string_index
6303         (_string_index is a static helper)              Patched
6304         string_concat to handle null strings properly.  docs/strings.pod -
6305         Description of string_ord include/parrot/exceptions.h - Added
6306         ORD_OUT_OF_STRING exception include/parrot/string.h - Added
6307         string_ord() t/op/string.t - Added full set of test for
6308         ord_i_(s|sc)(_(i|ic))?
6310         string.c contains a bit of documentation explaining the logic
6311         behind _string_index, primarily having to do with multiple encoding
6312         formats.
6314 2001-11-12 22:30  simon
6316         * t/op/macro.t:
6317         Count 'em.
6319 2001-11-12 22:28  simon
6321         * Makefile.in:
6322         Add a rule to compile "platform"
6324 2001-11-12 22:26  simon
6326         * Makefile.in:
6327         Tidy up distclean target.
6329 2001-11-12 16:54  dan
6331         * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
6332         t/op/macro.t: Fixes to the assembler's macro facility and a test
6334         Courtesy of: Jeff <jgoff@speakeasy.net>
6336 2001-11-12 16:50  dan
6338         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
6339         stdin
6341         Courtesy of: Jeff <jgoff@speakeasy.net>
6343 2001-11-12 16:36  dan
6345         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
6346         CygWin
6348         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6350 2001-11-12 11:22  simon
6352         * examples/assembly/mops.pasm:
6354         Trivial tightening of mops loop.
6356 2001-11-07 23:57  ajgough
6358         * docs/tests.pod: This is a basic quide to writing tests with
6359         assembler.
6361 2001-11-07 22:29  dan
6363         * stacks.c: Added a little documentation on the cleanup parameter
6364         for an entry
6366 2001-11-07 14:43  dan
6368         * MANIFEST, platforms/generic.c, platforms/linux.c,
6369         platforms/linux.h: Portability patches.
6371         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6373 2001-11-06 19:51  tom
6375         * Makefile.in: Clean up object files in the subdirectories as well
6376         as those in the top level directory.
6378         Enhanced version of patch from Daniel Grunblatt
6379         <daniel@grunblatt.com.ar>
6381 2001-11-06 16:14  dan
6383         * Configure.pl, MANIFEST, Makefile.in, core.ops,
6384         platforms/generic.c, platforms/generic.h: Made things a bit more
6385         platform-independent. Makefile still needs work to pick up changes
6386         to the platform-specific files.
6388 2001-11-05 21:32  dan
6390         * docs/parrot_assembly.pod: Added docs for the GC control ops
6392 2001-11-04 02:52  gregor
6394         * platforms/: win32.c, win32.h:
6395           * win32 dynamic loading functions.
6397         Courtesy of Jason Diamond <jason@injektilo.org>
6399 2001-11-04 00:04  brentdax
6401         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
6402         allows an absolute path to be used and gives a useful error message
6403         if the original source file can't be found
6405 2001-11-02 12:37  gregor
6407         * platforms/: linux.c, linux.h:
6408           * Beginning of dynamic loading support. Linux only for now.
6410 2001-11-02 12:13  gregor
6412         * MANIFEST, time.c, include/parrot/time.h:
6413           * Removed time.[hc], since they have been superseded by the new
6414         platform
6415             stuff.
6417 2001-11-02 12:11  gregor
6419         * Configure.pl, Makefile.in, core.ops, vtable.tbl,
6420         classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
6421         include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
6422         platforms/win32.c, platforms/win32.h:
6423         Patch from Jason Diamond to make win32 platform stuff work:
6425         * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
6426         platform specific files in the platforms directory gets copied to
6427         the correct directories. The Makefile will re-copy the platform.h
6428         and .c files if the original is modified.
6430         * #include platform.h in parrot.h instead of time.h.
6432         * Removed time.h and time.obj from the Makefile. time.h and time.c
6433         aren't being used anymore since that code was moved to linux.c and
6434         win32.c.
6436         * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
6437         INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
6438         windows.h. This required updating several files besides parrot.h.
6440         * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
6441         instead of the missing identifiers (on Windows) in core.ops in the
6442         calls to open.
6444         * Added Parrot_sleep and Parrot_setenv to both the linux and win32
6445         platform files and called those from core.ops. The Linux code for
6446         these functions came from core.ops so they should hopefully work.
6448         Courtesy of Jason Diamond <jason@injektilo.org>
6450 2001-11-02 06:43  brentdax
6452         * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
6453         for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
6455 2001-11-02 02:26  gregor
6457         * .cvsignore, MANIFEST, include/parrot/.cvsignore,
6458         platforms/linux.c, platforms/linux.h, platforms/win32.c,
6459         platforms/win32.h:
6460           * Beginnings of platform support files in platform/*.[hc]
6462 2001-11-01 23:37  tom
6464         * classes/intclass.c: Added missing *'s to STRING arguments and
6465         return values to avoid compiler warnings.
6467 2001-11-01 22:21  gregor
6469         * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
6470         include/parrot/parrot.h, include/parrot/time.h:
6471         Initial "fix" of time(n) op for Win32:
6473           * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
6475           * time.c and include/parrot/time.h
6477             First attempt at getting this working across platforms. The
6478             macro WIN32 being tested might not be right.
6480           * New functions Parrot_intval_time() and Parrot_floatval_time()
6481             wrap the appropriate functionality depending upon platform.
6482             Changed core.ops to call these.
6484         Added obscure.ops with obscure transcendental ops.
6486         Added simple file I/O ops (close, open, read, write):
6488           * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
6490           * I changed some arg ordering stuff.
6492           * I added read/write of INTVALs and FLOATVALs.
6494         Added environment variable ops (getenv, setenv)
6496         Added system error ops (err(i) and err(s) for accessing errno and
6497         strerr().
6499         Moved print ops in with other "temporary" developer ops, since
6500         they'll move to a devel.ops or temp.ops oplib once we have oplibs.
6502 2001-10-31 22:51  tom
6504         * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
6505         packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
6506         strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
6507         encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
6508         encodings/utf8.c, include/parrot/chartype.h,
6509         include/parrot/encoding.h, include/parrot/exceptions.h,
6510         include/parrot/parrot.h, include/parrot/string.h,
6511         include/parrot/strnative.h, include/parrot/strutf16.h,
6512         include/parrot/strutf32.h, include/parrot/strutf8.h,
6513         include/parrot/transcode.h: Reworked the string code in line with
6514         Dan's latest design that separates character sets from encodings.
6516 2001-10-31 19:53  dan
6518         * docs/parrot_assembly.pod: Finished I/O section of docs
6520 2001-10-31 16:51  dan
6522         * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
6523         Moved includes out of core.ops and into parrot.h where they belong
6524         (suitably guarded with #ifdefs). Also some updates to
6525         parrot_assembly.pod
6527 2001-10-30 21:43  dan
6529         * core.ops, stacks.c, docs/parrot_assembly.pod,
6530         include/parrot/stacks.h: Added entrytype opcode to fetch the type
6531         of the entry on the stack
6533 2001-10-29 18:30  dan
6535         * stacks.c: You can turn off stack entry type validation on pop by
6536         passing in a type of 0 now. (For those cases where you just want to
6537         throw the darned thing away)
6539 2001-10-29 14:37  gregor
6541         * core.ops, languages/jako/jakoc:
6542           * New variants of the save ops to save constants on the stack.
6543         This is
6544             useful for saving zero arg and result counts on the stack, for
6545         example.
6547           * Modified jakoc to to adapt to the newly announced calling
6548         conventions.
6549             Even though Jako source code appears to show subroutines with
6550         fixed
6551             numbers of arguments and results, they are implemented with the
6552             variable count calling convention. Future modifications will be
6553         needed
6554             to ensure that an exception is raised if the stack frame is of
6555         the
6556             wrong size (or, at least that we pop the complete frame off).
6557         We'll
6558             also have to make more changes to support the true
6559         fixed-arg-count
6560             and fixed-result-count parts of the calling convention spec.
6562 2001-10-28 16:53  simon
6564         * MANIFEST, stacks.c, classes/scalarclass.c,
6565         include/parrot/stacks.h:
6566         Unbelievably bad errors of mine, plus a type incompatibility of
6567         Dan's.
6569 2001-10-28 08:30  simon
6571         * classes/scalarclass.c:
6572         Beginning of a scalar class.
6574 2001-10-28 08:29  simon
6576         * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
6577         lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6578         include/parrot/pmc.h:
6579         This fixes the problem with vtables and pointer arithmetic.
6581 2001-10-26 19:58  dan
6583         * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
6584         include/parrot/stacks.h: Split the generic stack into a user push
6585         stack and a control stack
6587 2001-10-26 02:59  bdwheele
6589         * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
6591 2001-10-24 20:27  dan
6593         * languages/scheme/: Makefile, Scheme.pm, schemec,
6594         Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
6595         Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
6596         t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
6597         Scheme compiler
6599 2001-10-24 20:23  dan
6601         * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
6602         interpreter needs in pdump.c. Added scheme bits to manifest
6604 2001-10-24 16:43  gregor
6606         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6607           * Make the assembler handle octal character code escapes in
6608         string
6609             constants.
6611 2001-10-24 15:56  dan
6613         * MANIFEST, examples/assembly/life.pasm: Added an example in to
6614         play the game of life
6616 2001-10-24 15:54  dan
6618         * core.ops: Added sleep. We'll need to override this to do events
6619         properly anyway, so...
6621 2001-10-24 14:03  gregor
6623         * Makefile.in, pbc2c.pl, pdump.c:
6624           * Adapt pdump.c and pbc2c.pl to the new requirement to pass
6625         interpreter
6626             pointer into string functions.
6628         Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
6630 2001-10-23 20:09  gregor
6632         * languages/jako/jakoc:
6633           * Terminological refinement in regexp capture comment.
6635 2001-10-23 15:23  simon
6637         * classes/genclass.pl:
6638         Use a saner ANSI C construct to make MIPSPro happy.
6640         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
6642 2001-10-23 00:34  tom
6644         * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
6645         strutf8.c, include/parrot/string.h: Make sure the interpreter
6646         structure is passed to the transcoder as necessary, including
6647         passing it to string_compare().
6649 2001-10-23 00:32  tom
6651         * Makefile.in: Make pdump build again by including resources.o in
6652         the link.
6654 2001-10-22 22:43  dan
6656         * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
6657         strutf32.c, strutf8.c, test_main.c, transcode.c,
6658         include/parrot/packfile.h, include/parrot/parrot.h,
6659         include/parrot/resources.h, include/parrot/string.h,
6660         include/parrot/transcode.h: Everything now uses the allocators and
6661         deallocators in resources.c.
6663         Unfortunately we lost standalone string-test mode, but I can cope
6664         with that.
6666         Please note that until we have a real allocation/deallocation/GC
6667         system, this'll leak. A *lot*.
6669 2001-10-22 20:27  dan
6671         * MANIFEST, Makefile.in, pmc.c, resources.c,
6672         include/parrot/resources.h: First cut to handle arena allocation of
6673         PMC headers. (Amongst other things)
6675 2001-10-22 19:02  dan
6677         * Configure.pl, config_h.in, register.c, include/parrot/register.h:
6678         Now each register type has its own mask macro, which is the right
6679         thing to do.
6681         Patch courtesy of Jason Gloudon <perl@gloudon.com>
6683 2001-10-21 23:40  tom
6685         * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
6686         stack chunk and add a test to test this rollover in future.
6688         Courtesy of Jason Gloudon <perl@gloudon.com>.
6690 2001-10-21 19:14  dan
6692         * include/parrot/string.h: Changed string 'unused' field to the
6693         language field.
6695 2001-10-21 18:18  gregor
6697         * languages/jako/: Makefile, mops.jako:
6698           * Makefile: 'clean' target removes .list files, too. And, it does
6699         rm -f
6700             with wildcards rather than listing things explicitly.
6702           * mops.jako actually prints out the
6703         millions-of-operations-per-second
6704             (mops) value instead of just the operations-per-second value.
6706 2001-10-21 18:03  simon
6708         * classes/intclass.o:
6709         *smack*! WRONG!
6711 2001-10-21 17:47  simon
6713         * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
6714         Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
6715         classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
6716         lib/Parrot/Vtable.pm:
6717         Initial work on PMCs. Explanation to follow
6719 2001-10-21 15:20  gregor
6721         * examples/assembly/queens.pasm:
6722           * Modernize the calling conventions in queens.pasm. It was using
6723         swap,
6724             which now must be rotate. Also, changed to use return values on
6725         the
6726             stack instead of in I0.
6728 2001-10-19 18:14  gregor
6730         * core.ops, stacks.c, include/parrot/stacks.h,
6731         languages/jako/jakoc:
6732         Per Dan's request, replacing 'swap' op by 'rotate'.
6734           * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
6736           * stacks.c and stacks.h: Removed swap-related functions from my
6737             prior commit, replacing them with stack_depth(), stack_entry()
6738             and rotate_entries().
6740             NOTE: The stack_depth() and rotate_entries() routines could
6741             be made more efficient through the caching of the sum of chunk
6742             'used' members from lower chunks in a field in the upper
6743             chunks. Also, if the interpreter's stack_base was changed to
6744             hold the pointer to the *top* chunk (since we usually come
6745             at the stack from the top down) instead of the *bottom*
6746             chunk. The code here at least works, and we can decide about
6747             bigger changes separately.
6749             For now, rotate only handles rotates in one direction and
6750             of magnituded one. A fully general rotate would do handle
6751             rotates in both directions and of arbitrary amounts. Again,
6752             this implementation is sufficient for current applications,
6753             and a feature-complete version can be developed if this turns
6754             out to be otherwise the right type of implementation.
6756             This change includes a new exception for ERROR_STACK_SHALLOW,
6757             meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
6759           * jakoc: Changed the calling convention to use rotate instead
6760             of swap (of course). Also changed the convention for return
6761             value passing to use the stack as well.
6763 2001-10-19 13:36  gregor
6765         * MANIFEST, core.ops, disassemble.pl, stacks.c,
6766         examples/assembly/queens.pasm, include/parrot/stacks.h,
6767         languages/jako/.cvsignore, languages/jako/Makefile,
6768         languages/jako/bench.jako, languages/jako/euclid.jako,
6769         languages/jako/fact.jako, languages/jako/jakoc,
6770         languages/jako/mandelbrot.jako, languages/jako/mops.jako,
6771         languages/jako/primes.jako, languages/jako/queens.jako,
6772         languages/jako/sub.jako:
6773           * New stack functions push_entry(), pop_entry() and swap_entry().
6774             The first two exist for the support of the last one. These
6775             functions don't care what is in the stack entries. These exist
6776             to support the new 'swap' op (see next bullet).
6778           * New op 'swap' for swapping the top two elements on the stack.
6779             This is necessary for passing arguments to functions, since
6780             the return address will be on top of any arguments that have
6781             been pushed on the stack. This way, you can use a (swap, pop)
6782             pair to retrieve each argument (for subroutine linkage).
6784           * Disassembler now prints numbers in decimal by default, with
6785             a new '-x' flag to turn on hexadecimal display. Since other
6786             members of the Parrot Tool Set use decimal by default, this
6787             makes it easier to compare output from the various tools.
6789           * Jako compiler has more explanatory comments and the following
6790             new features:
6792               * Lexically scoped variables.
6794               * Subroutines that take arguments and return values:
6796                   sub int foo(int bar) {
6797                     if (bar == 1) {
6798                       return 42;
6799                     } else {
6800                       return 13;
6801                     }
6802                   }
6803               * ... if (...) and ... unless (...) statement modifiers
6804                 can be used on next, last and redo.
6806               * Bitwise and (&, &=) and or (|, |=) ops.
6808               * Type names are just 'int', 'num', 'str', and 'poly' now.
6809                 The old long names 'integer', 'number', 'string', and
6810                 'polytype' are no longer valid.
6812               * Integer variable assignments can now use 0b (binary),
6813                 0 (octal) and 0x (hexadecimal) radix prefixes on literals.
6815           * New Jako and Parrot assembly examples queens.{jako,pasm} for
6816             solving the eight-queens problem. The assembly example is a
6817             hand-modified version of the assembly code produced by the
6818             Jako compiler from queens.jako. A few unnecessary ops have
6819             been removed, lots of unnecessary labels have been removed,
6820             and all the Jako source code comments have been removed.
6822           * Makefile and .cvsignore in languages/jako modified so that
6823             the assembler produces listings when assembling the programs,
6824             yet the *.list files are ignored by CVS.
6826           * Made the default target in languages/jako/Makefile 'all'.
6828           * Modified some of the Jako examples to use some of the new
6829             features of Jako, such as subroutines and lexical variable
6830             scoping.
6832 2001-10-19 02:43  gregor
6834         * runops_cores.c, include/parrot/runops_cores.h:
6835         Bug fix (gcc doesn't complain, but MIPSpro does):
6837           * Added missing extern to runops_cores array declaration in
6838             include/parrot/runops_cores.h
6840           * Also added 'const' there and in runops_cores.c
6842 2001-10-18 15:18  gregor
6844         * .cvsignore, include/parrot/oplib/.cvsignore:
6845           * Ignore the vtable-related generated files.
6847 2001-10-18 15:14  gregor
6849         * core.ops:
6850           * left and right shifts now allow the 2nd argument to be a
6851         constant.
6853 2001-10-18 14:55  simon
6855         * make_vtable_ops.pl:
6856         This is C, not Perl. How on earth did that even compile?
6858 2001-10-18 14:54  simon
6860         * make_vtable_ops.pl:
6861         More vtable ops.
6863 2001-10-18 12:33  simon
6865         * Makefile.in, make_vtable_ops.pl, vtable.tbl:
6866         Initial stab at vtable opcode creation stuff.
6868 2001-10-18 02:15  gregor
6870         * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
6871         include/parrot/interpreter.h, include/parrot/runops_cores.h,
6872         include/parrot/trace.h: Preparation for autogenerated runops cores:
6874           * Split tracing and runops core stuff out of interpreter.c into
6875             trace.c and runops_cores.c
6877           * Similar split of stuff from include/parrot/interpreter.h
6879           * Manifest and Makefile.in updates to make things still compile.
6881 2001-10-18 01:21  gregor
6883         * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
6885           * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
6887           * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
6889           * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
6891           * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
6893           * pbc2c.pl: Removed explicit include of <math.h>, replacing it
6894         with
6895             copy of $ops->preamble.
6897 2001-10-17 22:32  bdwheele
6899         * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
6900         request.
6902 2001-10-17 22:08  gregor
6904         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
6905           * Now handles label-and-comment-only lines.
6907 2001-10-17 22:04  bdwheele
6909         * interpreter.c: added more comprehensive trace output
6911 2001-10-17 16:50  tom
6913         * Makefile.in: Removed the explicit rule for building mops.o from
6914         mops.c so that the implicit rule for compiling C files is used
6915         instead. This means that the chosen C flags are used, including any
6916         optimisation options.
6918 2001-10-17 15:24  tom
6920         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
6921         op explosion logic to be able to handle exploding this:
6923           sub(i, i|ic, i|ic)
6925         into these:
6927           sub(i, i, i)
6928           sub(i, i, ic)
6929           sub(i, ic, i)
6931         without also generating this unwanted version:
6933           sub(i, ic, ic)
6935         The enhanced version rejects any expansion where there is more than
6936         one expanded argument and all the expanded arguments are constants.
6938 2001-10-17 14:20  simon
6940         * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
6941         Build fixes to use correct Perl version and ensure that things are
6942         running in the right directory.
6944         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
6946 2001-10-17 13:16  simon
6948         * Makefile.in:
6949         core.pm is more critical than that.
6951 2001-10-17 13:05  simon
6953         * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
6954         "Explode" ops into multiple versions for different parameters.
6956         Courtesy of: Tom Hughes <tom@compton.nu>
6958 2001-10-17 12:54  simon
6960         * Makefile.in:
6961         Fix dependencies and cleaning.
6963 2001-10-17 12:45  simon
6965         * Configure.pl, Makefile.in:
6966         Fixes to make Parrot compile without the temporary build hack
6968         Courtesy of: Jason Gloudon <perl@gloudon.com>
6970 2001-10-16 20:43  gregor
6972         * Makefile.in:
6973           * Fixed dependencies for building Parrot/OpLib/core.pm
6975 2001-10-16 19:35  bdwheele
6977         * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
6978         added test, thanks to Alex Gough
6980 2001-10-16 16:49  bdwheele
6982         * core.ops: added opcode variants for constants and 3 arg concat
6984 2001-10-16 15:12  bdwheele
6986         * core.ops: added "set Sx,Sy" as a string copy to match the other
6987         register-to-register copies available
6989 2001-10-16 13:09  gregor
6991         * core.ops:
6992           * Added #include <sys/time.h> in the preamble for gettimeofday().
6994 2001-10-16 13:09  gregor
6996         * Makefile.in:
6997           * Removed cd t; make, which no longer applies
6999 2001-10-16 03:18  bdwheele
7001         * core.ops: fix save & restore operations to push correct type onto
7002         stack. [good eye to Jason Gloudon for noticing this]
7004 2001-10-16 01:38  bdwheele
7006         * core.ops, register.c, examples/assembly/fact.pasm,
7007         include/parrot/register.h: send in the clones:  clone routines for
7008         parrot + example program
7010 2001-10-15 22:37  gregor
7012         * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
7013         examples/assembly/Makefile, examples/assembly/bsr.pasm,
7014         examples/assembly/call.pasm, examples/assembly/euclid.pasm,
7015         examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
7016         examples/assembly/mops.pasm, examples/assembly/stack.pasm,
7017         examples/assembly/substr.pasm, examples/assembly/trace.pasm,
7018         t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
7019         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7020         t/test4.pasm, t/test5.pasm, t/trace.pasm:
7021           * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
7022         some
7023             renames so the names match what they demonstrate.
7025 2001-10-15 22:18  gregor
7027         * core.ops, t/test.pasm:
7028           * time_n uses gettimeofday() to get sub-second times.
7030           * t/test.pasm uses time_n directly rather than doing int stuff
7031         and
7032             converting to num later.
7034 2001-10-15 12:28  gregor
7036         * t/: test.pasm, test2.pasm, trace.pasm:
7037           * t/test.pasm prints using string constants instead of string
7038         regs.
7040           * t/test2.pasm assembles (using implicit op modes)
7042           * t/trace.pasm updated for new behavior of trace_ic, which does
7043         not
7044             require an 'end' after 'trace'.
7046 2001-10-15 00:47  gregor
7048         * core.ops, interpreter.c, test_main.c,
7049         include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
7050         PARROT_PROFILE_FLAG
7052           * New runops cores to handle profiling
7054           * Support for -p flag in test_prog to enable profiling
7056           * New profile_ic op to control profiling at run-time
7058 2001-10-14 21:54  gregor
7060         * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
7061         lib/Parrot/OpsFile.pm: Integrated op documentation.
7063           * core.ops now contains POD documentation of ops, interspersed
7064         with the
7065             ops themselves
7067           * Ops are organized into POD =head2 sections
7069           * Parrot/OpsFile.pm now treats the preamble of the ops file as
7070         anything
7071             up to the first POD directive OR op definition.
7073           * docs/Makefile now generates core_ops.pod from core.ops vi
7074         perldoc -u.
7076 2001-10-14 11:58  simon
7078         * Makefile.in:
7079         Unbreak Digital Un^W^WTru64
7081 2001-10-14 11:00  simon
7083         * Configure.pl:
7084         Remove weird typo.
7086 2001-10-14 10:56  tom
7088         * Configure.pl: Stop Configure trying to make op_info.c and op.h as
7089         op_info.c no longer exists and op.h is no longer a generated file.
7091 2001-10-14 10:54  tom
7093         * Makefile.in: Added vtable.h to the list of things removed by the
7094         clean target.
7096 2001-10-14 01:43  gregor
7098         * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
7099         build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
7100         make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
7101         ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
7102         Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
7103         Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
7104         lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
7105         include/parrot/.cvsignore, include/parrot/interp_guts.h,
7106         include/parrot/interpreter.h, include/parrot/op.h,
7107         include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
7108         t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
7109         t/op/stacks.t, t/op/string.t, t/op/trans.t:
7110         Moby Patch:
7112           * basic_opcodes.ops and opcode_table replaced by core.ops
7114           * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
7115             and ops2c.pl. These convert *.ops to *_ops.c and
7116             include/parrot/oplib/*_ops.h
7118           * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
7120           * disassemble.pl modified to use
7122           * interpreter.c modified to use structures in core_ops.c instead
7123             of the old op_info and op_func stuff. We're not yet to the
7124             point of handling multiple oplibs at a time, but we are getting
7125             there...
7127             Fingerprinting stuff disabled for now. We used to go off
7128             opcode_table. We need to rethink this. I have some ideas to
7129             make it unnecessary, but it remains to be seen whether others
7130             will like the direction they take us.
7132             Termination condition for while(){} loop in runops is now
7133             (pc) instead of (*pc). Any op can cause a HALT by returning
7134             a NULL pointer. Ops end, bounds and trace all do this. So, now
7135             the 'end' op body is actually executed, although all it does
7136             is HALT.
7138           * Makefile.in modified to perform a test build using pbc2c.pl,
7139             which is the bytecode --> C compiler I've posted to the
7140             list before.
7142           * Op full names are now autogenerated. Op root names must not
7143             contain underscores, so some op renamings have happened.
7144             Such as clear_i becoming cleari.
7146 2001-10-13 11:49  simon
7148         * Configure.pl, MANIFEST:
7149         Make parrot actually build again.
7151 2001-10-12 21:34  dan
7153         * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
7154         opcodes
7156 2001-10-12 20:56  dan
7158         * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
7159         opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
7160         t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
7161         generic stack now in. We also have subroutines, of a simple sort!
7163 2001-10-12 19:15  tom
7165         * t/op/string.t: Improved string comparison tests try all string
7166         combinations with each of the comparison ops.
7168 2001-10-12 19:09  dan
7170         * interpreter.c: Properly sets up generic stack now
7172 2001-10-12 19:09  dan
7174         * include/parrot/interpreter.h: Fixed stack chunk struct type in
7175         interpreter structure
7177 2001-10-12 18:59  dan
7179         * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
7180         changes to get the generic stack working
7182 2001-10-12 18:59  dan
7184         * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
7185         hints/vms.pl: Made the changes to figure out mask bits for various
7186         register and stack chunks
7188 2001-10-11 22:09  dan
7190         * docs/parrot_assembly.pod: Tossed the parameter for return
7192 2001-10-11 19:28  tom
7194         * strnative.c: Assignment, not comparison.  (Plus formatted for
7195         coding standards)
7197         Courtesy of Bryan C. Warnock
7199 2001-10-10 19:21  tom
7201         * basic_opcodes.ops, opcode_table, string.c, strnative.c,
7202         strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
7203         include/parrot/string.h, t/op/string.t: Added support for string
7204         comparisons and extended the comparison ops to include comparison
7205         of strings.
7207 2001-10-10 17:58  dan
7209         * MANIFEST: Shouldn't have added vtable.h to the manifest...
7211 2001-10-10 17:54  dan
7213         * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
7214         lib/Parrot/Vtable.pm: Now spits out the #defines for the various
7215         vtable type entries properly
7217 2001-10-10 15:37  dan
7219         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
7220         parse new vtable.tbl file now that I've actually checked *in* the
7221         new format vtable.tbl file...
7223 2001-10-10 15:32  dan
7225         * vtable.tbl: New Column to indicate the type of the vtabel entry
7226         so we can know how many slots it takes
7228 2001-10-10 05:26  thgibbs
7230         * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
7231         allow parrot to compile.  PACKAGE is not defined, therefore, I
7232         added a struct before it to have it not complain until we define
7233         PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
7234         semicolon at the end of the struct declaration.
7236 2001-10-10 05:09  thgibbs
7238         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
7239         string constants of the form U"string" become unicode encoded
7240         parrot strings and the form N"string" become native encoded parrot
7241         strings.
7243         Courtesy of: Tom Hughes <tom@compton.nu>
7245 2001-10-10 04:55  dan
7247         * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
7248         support for generating the vtable function table offset macros
7250 2001-10-10 01:05  simon
7252         * t/op/integer.t:
7253         The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
7254         compiles into the mod op, not the cmod_i op, hence wasn't testing
7255         what it thought it was.
7257         Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
7259 2001-10-09 03:45  thgibbs
7261         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
7262         assembler to generate unicode strings.
7264         Courtesy of: Tom Hughes <tom@compton.nu>
7266 2001-10-08 19:30  brentdax
7268         * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
7269         info for Parrot::Config to remember, more flexible test.c stuff
7271 2001-10-08 15:04  gregor
7273         * basic_opcodes.ops:
7274           * Removed trash from early mod_i experiments (pardon our dust)
7276 2001-10-08 14:56  gregor
7278         * basic_opcodes.ops:
7279           * Fixed a couple of typos.
7281 2001-10-08 14:45  gregor
7283         * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
7284         Arithmetic enhancements:
7286           * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
7288             NOTE: This "uncorrected mod" algorithm uses the C language's
7289         built-in
7290             mod operator (x % y), which is
7292                 ... the remainder when x is divided by y, and thus is zero
7293         when y
7294                 divides x exactly.
7295                 ...
7296                 The direction of truncation for / and teh sign of the
7297         result for %
7298                 are machine-dependent for negative operands, as is the
7299         action taken
7300                 on overflow or underflow.
7301                                                                      --
7302         [1], page 41
7304             Also:
7306                 ... if the second operand is 0, the result is undefined.
7307         Otherwise, it
7308                 is always true that (a/b)*b + a%b is equal to z. I both
7309         operands are
7310                 non-negative, then teh remainder is non-negative and
7311         smaller than the
7312                 divisor; if not, it is guaranteed only that the absolute
7313         value of the
7314                 remainder is smaller than the absolute value of the
7315         divisor.
7316                                                                      --
7317         [1], page 205
7319             This op is provided for those who need it (such as
7320         speed-sensitive
7321             applications with heavy use of mod, but using it only with
7322         positive
7323             arguments), but a more mathematically useful numeric mod based
7324         on
7325             floor(x/y) and defined with y == 0 is provided by the mod_i op.
7327               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7328         Programming
7329                   Language*, Second Edition. Prentice Hall, 1988.
7331           * Added "corrected" mod_i:
7333             NOTE: This "corrected mod" algorithm is based on the C code on
7334         page 70
7335             of [1]. Assuming correct behavior of C's built-in mod operator
7336         (%) with
7337             positive arguments, this algorithm implements a mathematically
7338         convenient
7339             version of mod, defined thus:
7341               x mod y = x - y * floor(x / y)
7343             For more information on this definition of mod, see section 3.4
7344         of [2],
7345             pages 81-85.
7347             References:
7349               [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
7350                   Millennium* Springer, 1999.
7352               [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
7353         *Concrete
7354                   Mathematics*, Second Edition. Addison-Wesley, 1994.
7356           * Added mod_n, using the same formula as above, but with FLOATVAL
7357             arguments.
7359           * Added cmod_n, using the C math library's fmod() function:
7361             NOTE: This "uncorrected mod" algorithm uses the built-in C math
7362         library's
7363             fmod() function, which computes
7365                 ... the remainder of dividing x by y. The return value is x
7366         - n * y,
7367                 where n is the quotient of x / y, rounded towards zero to
7368         an
7369                 integer.
7370                                                 -- fmod() manpage on RedHat
7371         Linux 7.0
7373             In addition, fmod() returns
7375                 the remainder, unless y is zero, when the function fails
7376         and errno
7377                 is set.
7379             According to page 251 of [1], the result when y is zero is
7380         implementation-
7381             defined.
7383             This op is provided for those who need it, but a more
7384         mathematically
7385             useful numeric mod based on floor(x/y) instead of truncate(x/y)
7386         and
7387             defined with y == 0 is provided by the mod_n op.
7389               [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
7390         Programming
7391                   Language*, Second Edition. Prentice Hall, 1988.
7393           * Added and modified tests as appropriate for the above.
7395 2001-10-08 08:49  thgibbs
7397         * include/parrot/exceptions.h, include/parrot/parrot.h,
7398         include/parrot/string.h, include/parrot/strutf16.h,
7399         include/parrot/strutf32.h, include/parrot/strutf8.h,
7400         include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
7401         Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
7402         strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
7403         strings for utf8, utf16, and utf32.
7405         Courtesy of: Tom Hughes <tom@compton.nu>
7407 2001-10-08 08:10  thgibbs
7409         * memory.c: Fixed uninitialized variables.
7411         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7413 2001-10-08 01:21  gregor
7415         * packfile.c:   * Casting a return value
7417           * Potential uninitialized variable fix
7419         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7421 2001-10-08 01:15  gregor
7423         * packfile.c, test_main.c: One of Bryan's languishing patches (with
7424         a few tweaks of my own):
7426           * Line wrapping
7428           * Printf format fixes
7430         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7432 2001-10-07 22:39  thgibbs
7434         * build_interp_starter.pl: No longer adds (void*) casts to
7435         interp_guts.c function table as they are not necessary in ANSI C.
7437 2001-10-07 16:27  gregor
7439         * basic_opcodes.ops, interpreter.c, opcode_table,
7440         process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
7441         t/trace.pasm:
7442           * Two new ops, trace_ic and bounds_ic that twiddle bits in
7443             interpreter->flags and set interpreter->resume_addr.
7445           * Two new runops core variants, so now we cover the relevant
7446             flag space over {trace, notrace} x {boundscheck, noboundscheck}
7448           * Runops core selection that converts the flags into an index
7449         into
7450             a core table (runops_cores) to get the core function pointer.
7452           * A new trace_op variant that doesn't do bounds checking (used by
7453             the non-bounds-checking-but-tracing runops core).
7455           * PC is passed into the cores so that they can be used when
7456             resuming (they used to assume starting at the beginning of the
7457             code, which would thwart resumption).
7459           * runops() itself is changed to have a while() loop in it so that
7460             any time we drop out of the core, we'll resume if we have an
7461             interpreter->resume_addr set (after reselecting the core,
7462         though).
7464           * process_opfunc.pl has a new "macro": RESUME(), that sets up
7465             interpreter->resume_addr. This is used by the new ops. The new
7466             ops still return the new PC as the next op (which MUST be an
7467             'end' op to force the core loop to terminate -- *pc being false
7468             is the only termination condition we can count on for all
7469         cores).
7471           * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
7472             bounds checking core selection.
7474           * test_prog now has a '-b' flag in addition to the '-t' flag.
7475         Now,
7476             bounds checking is off by default (I saw a performance boost:
7477             6.3 Mop/s with -b, 7.0 Mop/s without).
7479           * A new sample/test program: t/trace.pasm that twiddles the trace
7480             flag while it is running.
7482 2001-10-07 15:41  gregor
7484         * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
7485         include/parrot/.cvsignore, include/parrot/interpreter.h:
7486         Now that 0.0.2 is released, I can clear out the backlog of approved
7487         but uncommitted patches. Here's one Dan approved on 2001-09-21
7488         (Simplified DO_OP):
7490           * test_prog and pdump are linked with only the files the need,
7491         not
7492             al the files.
7494           * build_interp_starter.pl writes out op_info.[hc], too. These
7495         files
7496             contain op name, arg count and arg type information. This will
7497         be
7498             useful for multiple things in the future, including better
7499         trace
7500             output and the crystalizing loader.
7502           * The DO_OP macro is now simpler and doesn't require explicit
7503             temporaries.
7505           * interpreter.c is modified to use the new op info in tracing
7506         output.
7508           * The interpreter just points its opcode_funcs and opcode_info
7509             members at the default tables rather than allocating memory on
7510             the fly.
7512 2001-10-07 03:58  thgibbs
7514         * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
7515         comment and adding vtable.h to .cvsignore as it is produced by
7516         vtable_h.in
7518 2001-10-06 20:58  thgibbs
7520         * vtable.tbl: Added * to REGEX type.
7522         Courtesy of Bryan C. Warnock <bwarnock@raba.com>
7524 2001-10-06 13:41  simon
7526         * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
7527         include/parrot/parrot.h, lib/Parrot/Vtable.pm:
7528         Framework for vtable functions.
7530 2001-10-06 06:52  thgibbs
7532         * make_op_header.pl: Removed confusing and unused typedef.
7534 2001-10-06 06:31  thgibbs
7536         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
7537         are no longer used.
7539 2001-10-06 06:26  thgibbs
7541         * disassemble.pl: Changed intval to op in disassembler.
7543 2001-10-06 06:21  thgibbs
7545         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
7546         Assembler, local labels, and integer constants.
7548 2001-10-06 03:11  ask
7550         * Makefile.in: make `make test` actually run the tests on
7551         darwin/macosx
7553 2001-10-06 02:04  thgibbs
7555         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7556         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7557         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7558         include/parrot/register.h, lib/Parrot/Assembler.pm,
7559         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7560         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7561         t/op/integer.t: No, it didn't mess anything up.  I just forgot to
7562         type make. :)
7564 2001-10-06 02:02  thgibbs
7566         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7567         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7568         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7569         include/parrot/register.h, lib/Parrot/Assembler.pm,
7570         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7571         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7572         t/op/integer.t: oops...this messed something up.  I must have
7573         missed something in the patch...I have reverted.
7575 2001-10-06 01:57  thgibbs
7577         * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
7578         Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
7579         Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
7580         include/parrot/register.h, lib/Parrot/Assembler.pm,
7581         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7582         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
7583         t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
7584         memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
7585         This patch ensures that all bytecode is of type opcode_t except for
7586         the constant table constants.  That means that almost all of the
7587         INTVALs in the code were replaced with opcode_t and the i pack type
7588         was replaced with the op pack type in calls to pack_arg and such.
7589         Also, since it has been declared that ALL integer constants are to
7590         be 32 bits, some test cases were changed to ensure that an integer
7591         constant was no bigger than 2 ** 31.
7593         process_opfunc.pl was also cleaned up to no longer look at either
7594         opcode_table or interp_guts.h but gather all of its information
7595         from Opcode.pm.
7597         The Assembler.pm module was changed to do late binding of arguments
7598         so that 0 could be treated like 0.0 without having to be so
7599         declared.  Also, only strings now use the [sc:N] intermediate form
7600         as it was unnecessary for integer and float types.
7602 2001-10-05 21:59  gregor
7604         * MANIFEST, languages/jako/Makefile:
7605         Fixed things due to the movement of little_languages/* to
7606         languages/jako.
7608 2001-10-05 18:31  gregor
7610         * MANIFEST:
7611         Updated MANIFEST to reflect recent additions for Jako.
7613 2001-10-05 17:54  gregor
7615         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
7616         fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
7617         mops.jako, primes.jako, sub.jako:
7618           * Compiler:
7620               * User-defined subroutines.
7621               * Generates assembly code with the Jako code in comments.
7622               * "end;" no longer required at the end of programs.
7623               * Better handling of const-reg and reg-const.
7624               * Optimizes const-const operations to compile-time
7625         evaluations.
7626               * Constants in addition to variables.
7627               * Arithmetic fixes.
7628               * Allow leading minus signs in integer and number constants
7629         (ahem).
7630               * goto's.
7632           * New sample programs:
7634               * leibniz.jako (based on Greg McCarroll's leibniz.pasm
7635         example)
7636               * mandelbrot.jako (based on Leon Brocard's translation of
7637         Glenn Rhodes' C code)
7638               * mops.jako (based on t/test.pasm)
7639               * primes.jako (based on Leon Brocard's primes.pasm example)
7640               * sub.jako (demonstrates a simple user-defined subroutine)
7642 2001-10-05 12:54  gregor
7644         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7645           * Removed mysterious extra copy of code after POD.
7647 2001-10-05 12:46  gregor
7649         * basic_opcodes.ops, t/op/string.t:
7650           * Enabled the previously SKIPped test of printing string regs
7651         after
7652             clear_s
7654           * Made print_s do nothing if the STRING pointer in the register
7655         file
7656             is NULL.
7658 2001-10-04 21:19  dan
7660         * Configure.pl: VMS tweaks
7662 2001-10-04 21:17  dan
7664         * hints/vms.pl: Hints file for VMS
7666 2001-10-04 00:58  bdwheele
7668         * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
7669         Assembler which stopped equates from working.
7671 2001-10-03 21:50  gregor
7673         * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
7675           * More documentation updates for the packfile stuff.
7677 2001-10-03 21:37  gregor
7679         * docs/parrotbyte.pod:
7680           * Pointed the reader at Parrot::PackFile.
7682 2001-10-03 21:34  gregor
7684         * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
7685           * Updated documentation to match current implementation.
7687 2001-10-03 18:30  gregor
7689         * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
7690         lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
7691         t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
7692         t/op/basic.t:
7693           * Added new syntax to the assembler to allow square-bracket
7694             arithmetic expressions involving (global) labels, the current
7695             instructions base address ('@'), numeric constants (not
7696         equates)
7697             and basic arithmetic operators (+, -, *, / -- although + and -
7698             are likely to be the only ones used in practice).
7700           * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
7701         to
7702             fail (argument passing wasn't working).
7704           * Enabled t/op/basic.t's last test, which is actually a copy of
7705         the
7706             code from t/call.pasm. Now all tests there are enabled and
7707         working.
7709           * Added new example/test program t/call.pasm to demonstrate
7710         working
7711             macros and poor-man's subroutine calls
7713           * Added header comments to t/*.pasm
7715 2001-10-03 18:00  simon
7717         * ChangeLog:
7718         Needed, since it's in the MANIFEST.
7720 2001-10-03 17:56  simon
7722         * t/op/: string.t, time.t:
7723         Small fixes to help Win32 on its way.
7725 2001-10-03 17:41  simon
7727         * MANIFEST, README:
7728         Oops. Tiny bugs.
7730 2001-10-03 17:39  simon
7732         * MANIFEST, NEWS, README:
7733         README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
7734         think so!
7736 2001-10-03 17:21  simon
7738         * basic_opcodes.ops, interpreter.c, packfile.c:
7739         Evil printf bandaid (which allows Sparc64 to pass tests)
7741         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
7743 2001-10-03 16:58  simon
7745         * string.c, t/op/string.t:
7746         chop fixes for n < 0 and tests
7748         Courtesy of: Alex Gough <alex@rcon.org>
7750 2001-10-03 15:51  thgibbs
7752         * interpreter.c: Changed an occurrence of INTVAL to opcode_t
7754         Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
7756 2001-10-02 17:48  dan
7758         * include/parrot/stacks.h: Fix typo in function name
7760 2001-10-02 17:35  dan
7762         * include/parrot/stacks.h: changed to support new stack stuff
7763         coming after 0.02
7765 2001-10-02 15:01  simon
7767         * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
7768         interpreter.c, make_op_header.pl, memory.c, packfile.c,
7769         process_opfunc.pl, register.c, string.c, strnative.c,
7770         Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
7771         lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
7772         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7773         docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
7774         include/parrot/memory.h, include/parrot/packfile.h,
7775         include/parrot/parrot.h, include/parrot/register.h,
7776         include/parrot/stacks.h, include/parrot/string.h,
7777         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
7779         The Great Renaming.
7781 2001-10-02 12:49  gregor
7783         * process_opfunc.pl:
7784           * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
7786 2001-10-02 12:40  simon
7788         * basic_opcodes.ops, process_opfunc.pl, register.c,
7789         include/parrot/register.h:
7790         Move preprocessing of register accessors to process_opfunc.pl
7792         Courtesy of: Jason Gloudon <perl@gloudon.com>
7794 2001-10-02 01:20  ask
7796         * README: add a few lines about lists.
7798 2001-10-01 23:00  brentdax
7800         * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
7801         work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
7803 2001-10-01 22:50  brentdax
7805         * Configure.pl, test_c.in: More changes for 64-bit compatibility
7807 2001-10-01 21:51  simon
7809         * process_opfunc.pl:
7810         Michael Fischer's patch broke conditionals.
7812 2001-10-01 15:38  simon
7814         * process_opfunc.pl:
7815         Small hack to keep process_opfunc.pl from generating extra return()
7816         statements.
7818         Courtesy of: Michael Fischer <michael@visv.net>
7820 2001-10-01 15:32  simon
7822         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
7823         Documentation fix.
7825         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
7827 2001-10-01 01:49  simon
7829         * packfile.c:
7830         Simon is an idiot. Don't trust him with your code.
7832         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
7834 2001-10-01 00:59  simon
7836         * Parrot/String.pm, lib/Parrot/String.pm:
7837         Was in manifest, but not in CVS.
7839 2001-09-30 21:25  simon
7841         * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
7842         disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
7843         Parrot/Assembler.pm, Parrot/PackFile.pm,
7844         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
7845         Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
7846         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
7847         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
7848         include/parrot/packfile.h, include/parrot/string.h:
7849         Move NVs to the constant table.    * Changes to Types_pm.in to make
7850         life easier for some of the      packing/etc. I'm doing elsewhere.
7851         Also, we now pack 'n' as      'i'.
7853           * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
7854             eventually we can use all these tools together inside scripts
7855             rather than call out to the shell to run the programs.
7857           * As I was tracking down problems, I converted the internal
7858             documentation of the assembler to POD from comments.
7860           * Changed the numeric regexp in the assembler to detect leading
7861             signs and trailing exponents.
7863           * Updated basic_opcodes.ops to fetch numeric constants from the
7864             constant table.
7866           * Enhanced the disassembler in a number of ways to make my life
7867             easier while tracking down bugs (try it out). It now puts in
7868             labels for ops that are the destinations of flow control ops.
7870           * packfile.c now has a TRACE_PACKFILE switch that can be set
7871             to get it to print info as it processes. I needed this while
7872             debugging, but I can remove it or change it before committing
7873             if its a problem.
7875           * Updated pdump.c because it was missing a call to init_world().
7877           * Updated process_opfunc.pl to deal with numeric constants
7878             being stored in the constant table instead of inline.
7880           * Added multiple type support to Parrot/PackFile/Constant.pm
7882           * Added Parrot/String.pm, to be used for constants.
7884           * Added packfile.[hc] functions for allocating new constants
7885             of various types.
7887           * Made string_copy visible to the world in parrot/string.h.
7889         Wow.
7891         Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
7893 2001-09-29 15:56  gregor
7895         * languages/jako/Makefile:
7896         Removed assumption that '.' is on the path.
7898 2001-09-29 15:55  gregor
7900         * languages/jako/Makefile:
7901         Removed references to leibnitz test program.
7903 2001-09-29 15:21  thgibbs
7905         * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
7906         math ops args to work on Solaris.
7908 2001-09-27 15:15  thgibbs
7910         * assemble.pl: Added case insensitive matches to hex and binary
7911         characters
7913         Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
7915 2001-09-27 04:46  thgibbs
7917         * assemble.pl: This patch makes integer constants of the form
7918         0b[01]+ work with perl 5.005.  The oct function in versions of perl
7919         before 5.6 did not handle the 0b numeric prefix; therefore, it was
7920         returning 0.  To fix this, I added a from_binary function that
7921         would take a binary string and return its decimal representation.
7922         Now, instead of blindly calilng oct, it makes a distinction between
7923         0/0x numbers and 0b numbers.
7925 2001-09-26 19:30  thgibbs
7927         * assemble.pl: Error now returns a non-zero status
7929         Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
7931 2001-09-26 19:13  gregor
7933         * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
7934         interpreter.c, packfile.c, pdump.c, test_main.c,
7935         include/parrot/bytecode.h, include/parrot/interpreter.h,
7936         include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
7937         t/op/stacks.t:
7938           * bytecode.[hc] removed. packfile.[hc] are the interface to the
7939             packfile/bytecode file from C. May be renamed in the future.
7941           * packfile.[hc] changed to use 'struct PackFile *', etc. instead
7942             of 'PackFile *', just like the interpreter, etc.
7944           * Constants are accessed via the interpreter's 'code' member
7945             (struct PackFile * code). Macros PCONST(i) and PNCONST are
7946             provided to access constants by index and the number of
7947             constants, respectively (assumes a variable 'interpreter' of
7948             the appropriate type is in scope).
7950           * Byte Code is accessed via the interpreter's 'code' member.
7952           * Changed PackFile_Constant to point to a STRING instead of
7953         having
7954             members for the string_make() arguments. Also has a 'type' IV
7955             in preparation for allowing multiple types of constants in
7956             const_table.
7958           * Removed hardcoded example program from test_main.c. We have
7959             plenty of test programs elsewhere.
7961           * test_prog now uses a PackFile to deal with the program before
7962             sending it on to the interpreter.
7964           * Added missing 'end' ops to some tests in t/op/integer.t and
7965             t/op/stacks.t.
7967 2001-09-26 18:38  thgibbs
7969         * assemble.pl: Separated code into functions and added comments.
7971 2001-09-26 18:29  simon
7973         * config_h.in:
7974         Fix 64-bit chunk-base issue.
7976 2001-09-26 06:55  thgibbs
7978         * t/op/bitwise.t: Added end to bitwise tests.
7980 2001-09-26 00:54  dan
7982         * docs/parrot_assembly.pod: Added in the base for threading, I/O,
7983         and interpreter creation. Skeleton only, but it's something to peer
7984         at.
7986 2001-09-25 21:44  thgibbs
7988         * t/op/trans.t: Removed loops in transcendtal op test.
7990 2001-09-25 10:12  simon
7992         * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
7993         t/op/string.t, t/op/time.t:
7994         More tests
7996         Courtesy of: Alex Gough <alex@rcon.org>
7998 2001-09-24 19:08  gregor
8000         * t/op/number.t:
8001           * Enabled the clear_n test.
8003 2001-09-24 18:56  gregor
8005         * Parrot/.cvsignore:
8006           * Ignore the generated Types.pm file.
8008 2001-09-24 18:52  gregor
8010         * languages/jako/Makefile, t/op/number.t:
8011           * No need to skip the inc and dec numeric tests anymore. I fixed
8012         the
8013             assembler earlier today.
8015 2001-09-24 18:21  simon
8017         * MANIFEST, t/op/stacks.t:
8018         Oops.
8020 2001-09-24 18:19  simon
8022         * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
8023         include/parrot/exceptions.h, include/parrot/interpreter.h,
8024         lib/Parrot/Test.pm, t/op/string.t:
8025         1) captured error output, so can test errors, this might be bad,
8026         not sure.  2) basic tests for register stack frames, including some
8027         errors 3) I think we can stop skipping one of the string tests 4) I
8028         added some more substr tests, but substr was broken, so 5) changed
8029         substr to work with out of range values, or 6) throw an error if
8030         they're far too silly
8032         Courtesy of: Alex Gough <alex@rcon.org>
8034 2001-09-24 17:27  gregor
8036         * basic_opcodes.ops, opcode_table, t/op/number.t:
8037           * Op set_n was missing. Added it and a test for it. We now have
8038         the
8039             same int and num ops, except mod is int-only.
8041 2001-09-24 17:01  gregor
8043         * assemble.pl:
8044           * Fixed a typo: s/Line/line/
8046 2001-09-24 16:02  gregor
8048         * basic_opcodes.ops:
8049           * Fixed dec_n_nc opcode, which had += where it should have had
8050         -=.
8052 2001-09-24 15:34  gregor
8054         * assemble.pl:
8055           * Fixed handling of constants starting with '0' that should not
8056         be
8057             sent through oct(). For example 'set N2 0.1' was being
8058         interpreted
8059             as 'set N2 0' (naughty).
8061             As reported by Leon Brocard <acme@astray.com> in the comments
8062         of
8063             his mandelbrot.pasm example.
8065 2001-09-24 02:21  bdwheele
8067         * assemble.pl: fixed dumb code when --include was not specified.
8069 2001-09-24 02:17  simon
8071         * assemble.pl:
8072         Shit-sweeping.
8074 2001-09-24 01:56  bdwheele
8076         * assemble.pl: * Added --include=dir option to assembler to provide
8077         a path to look for included files.  * Error message of a macro is
8078         defined inside of a macro
8080 2001-09-23 21:29  bdwheele
8082         * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
8084 2001-09-23 15:50  simon
8086         * Configure.pl:
8087         Fixed typo. Parrot might work again on non-8.3 filesystems. :)
8089 2001-09-23 02:03  ask
8091         * Configure.pl, test_c.in: fix missing newline at the end of test.c
8092         Courtesy of: acme@astray.com (Leon Brocard)
8094         rename 'test' executable used in Configure process to test_siz.
8096 2001-09-23 01:03  simon
8098         * process_opfunc.pl:
8099         iPaq fix. No, really.
8101 2001-09-23 00:47  simon
8103         * MANIFEST:
8104         Missed several, in fact.
8106 2001-09-23 00:46  simon
8108         * MANIFEST:
8109         Missed one.
8111 2001-09-22 21:13  simon
8113         * assemble.pl:
8114         Assembler register numbering rigour.
8116         Courtesy of: Leon Brocard <acme@astray.com>
8118 2001-09-22 18:20  simon
8120         * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
8121         lib/Test/Utils.pm:
8122         I'm sick of having to install Test::More everywhere. Temporary
8123         measure until we remove this silly dependency.
8125         Also a typo in Makefile.in which suggests some things were only
8126         happening correctly by sheer chance. :)
8128 2001-09-22 18:06  simon
8130         * README:
8131         test.pasm is dead, long like make test.
8133 2001-09-22 17:47  simon
8135         * t/op/number.t:
8136         De-fang overzealous floating point test.
8138 2001-09-22 17:39  simon
8140         * process_opfunc.pl:
8141         Remove hard-coded NV size assumption. Tru64 is nearly there!
8143 2001-09-22 17:18  simon
8145         * assemble.pl, disassemble.pl:
8146         More portability fixups.
8148 2001-09-22 16:44  simon
8150         * assemble.pl, Parrot/PackFile/Constant.pm,
8151         lib/Parrot/PackFile/Constant.pm:
8152         And I *think* this fixes Tru64.
8154 2001-09-22 16:37  simon
8156         * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
8158         Oops.
8160 2001-09-22 16:36  simon
8162         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8163         Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
8164         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8166         More removal of hard-coded pack formats.
8168 2001-09-22 15:21  simon
8170         * assemble.pl:
8172         Grrr. Why isn't this working?
8174 2001-09-22 15:18  simon
8176         * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8177         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
8179         Make assemble use the PackFile modules; also fixed some bugs in
8180         them.
8182 2001-09-22 14:38  simon
8184         * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
8186         Abstract the argument and opcode packing types and functions out
8187         into a separate module. This *should* help us maintain consistency
8188         when we change the various types.
8190 2001-09-22 00:46  brentdax
8192         * Configure.pl: Delete test.o (or its equivalent) after Configure's
8193         test program finishes.
8195 2001-09-21 21:24  brentdax
8197         * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
8198         separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
8200 2001-09-21 21:09  gregor
8202         * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8203         lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
8205           * Fixed pad calculation (similar to recent bug fix on C library)
8207 2001-09-21 20:23  simon
8209         * disassemble.pl:
8210         Pack types and sizes have gone askew.
8212 2001-09-21 20:18  brentdax
8214         * Configure.pl: Fix typo in setting stuff from the C test program
8216 2001-09-21 10:25  simon
8218         * basic_opcodes.ops, process_opfunc.pl:
8219         Document patches.
8221         Courtesy of: Leon Brocard <acme@astray.com>
8223 2001-09-21 06:06  ask
8225         * Config_pm.in, assemble.pl: fix 5.005_03.
8227 2001-09-21 06:03  ask
8229         * Configure.pl: make the ivsize detection work for us normal people
8230         without . in our PATH.  :-)
8232 2001-09-21 05:56  brentdax
8234         * test_main.c: Change _read to read for portability to Tru64
8235         (Damien Neil <neild@misago.org> and likely many others)
8237 2001-09-21 05:46  ask
8239         * Makefile.in: "update" target to update from cvs.
8241 2001-09-21 05:44  brentdax
8243         * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
8245 2001-09-21 02:43  brentdax
8247         * Configure.pl: Fix a typo that forced the -g flag on
8249 2001-09-20 22:41  dan
8251         * packfile.c: Had some no-value returns. Naughty
8253 2001-09-20 22:40  dan
8255         * t/test.pasm: Added labels to output
8257 2001-09-20 15:39  simon
8259         * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
8260         lib/Parrot/Test.pm:
8261         This patch does two only somewhat related things.
8263         Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
8264         = 2*sizeof(iv) to a PConfig-type computed value.
8266         Parrot/Test.pm:  Change it to run with the perl that was used to
8267         generate this version of Parrot.  This is useful if, for example,
8268         you want to use bleadperl to build and test parrot (e.g. to try out
8269         various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
8270         installed as the default 'perl' on your system.  Since perl-5.7.x
8271         is installed 'version-only', a plain 'perl' is quite likely to pick
8272         up the older perl in such cases. Such an older perl might well not
8273         understand pack('q') used in the assembler.
8275         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8277 2001-09-20 15:14  gregor
8279         * packfile.c:
8280           * Fixed a typo in pad calculation that throwing off unpack and
8281         pack.
8283 2001-09-20 15:03  thgibbs
8285         * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
8286         tests now cover all registers.
8288         Courtesy of: Damien Neil neild@misago.org
8290 2001-09-20 14:48  thgibbs
8292         * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
8293         machines.
8295 2001-09-20 14:35  simon
8297         * Configure.pl, assemble.pl:
8298         Pack IVs correctly.
8300         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8302 2001-09-20 14:06  gregor
8304         * languages/jako/jakoc:
8305           * Fixed a tyop in the string interpolation regex.
8307         Courtesy of Michael L Maraist <maraist@UDel.Edu>
8309 2001-09-20 13:56  gregor
8311         * languages/jako/jakoc:
8312           * Updated jakoc to work with the single-destination comp ops.
8314 2001-09-20 05:08  bdwheele
8316         * assemble.pl: macro expansion.  Here's the test macro I was using:
8318         # this uses I32,I31 as temporaries.  # macro must be preceeded by a
8319         label.  testi       macro   num,got,want    print   "Test #"
8320         print   num     print   "..."   set     I32,want        set
8321         I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
8322         $end $ok:       print   "OK\n" $end:    endm
8324         It is invoked as:
8326         Test1:  testi   1,I3,I2
8328 2001-09-20 03:52  dan
8330         * stacks.c, include/parrot/stacks.h: Preliminary files for the
8331         generic stack support
8333 2001-09-20 02:49  bdwheele
8335         * assemble.pl: Added include processing to assemble.pl  the syntax
8336         is: include 'file.to.include'
8338 2001-09-19 23:57  thgibbs
8340         * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
8341         opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
8342         function to only use 2 args, but the opcode_table still had three
8343         listed.  Fixed integer.t and number.t to use the new comparison
8344         operators.  Improved assemble.pl ability to grok operators by
8345         constructing a function set and comparing operator types.
8347 2001-09-19 22:42  dan
8349         * assemble.pl: Binmodes the output filehandles now. (No more
8350         bytecode munching...)
8352 2001-09-19 22:32  dan
8354         * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
8355         t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
8356         conditional branches take a single argument, and fall through
8357         otherwise.
8359 2001-09-19 21:19  thgibbs
8361         * memory.c: Added explanation of mem_allocate_aligned give by Dan
8362         Sugalski
8364         Courtesy of: Josh Wilmes <josh@hitchhiker.org>
8366 2001-09-19 21:04  thgibbs
8368         * include/parrot/interpreter.h, Configure.pl,
8369         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8370         process_opfunc.pl: Changed opcode_t from a union to a configurable
8371         type.
8373 2001-09-19 20:54  thgibbs
8375         * assemble.pl: Missed a couple of changes for 64 bit portability.
8377 2001-09-19 20:37  gregor
8379         * packfile.c, include/parrot/packfile.h:
8380           * Added "methods" for setting and getting all the various
8381         attributes,
8382             probably sufficient for an assembler to use the library.
8384 2001-09-19 20:04  thgibbs
8386         * assemble.pl: Modifications to run on 64 bit platforms.  To run on
8387         a 64 bit platform manually change the  setting for 'i' from 'l' to
8388         'q'.  This should be automatically done by a Configure setting in
8389         the near future.
8391 2001-09-19 19:10  thgibbs
8393         * config_h.in: changed c++ comment to c comment.
8395         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8397 2001-09-19 17:48  gregor
8399         * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
8400         include/parrot/packfile.h:
8401           * C code for dealing with PackFiles as if they were objects.
8402         Mostly
8403             read-only interface for now, but it would not be hard to make
8404         it
8405             read-write. [packfile.c, include/parrot/packfile.h]
8407           * PackFile Dumping program that falls short of disassembling, but
8408             tests the above code and provides a hex listing of the byte
8409         code
8410             contents of the PackFile. [pdump.c]
8412           * New Makefile target 'pdump' for the above program, and related
8413             Makefile.in changes.
8415           * Updated MANIFEST to reflect the added files
8417           * Update .cvsignore to ignore pdump.
8419 2001-09-19 14:55  thgibbs
8421         * MANIFEST: Added number.t and trans.t to MANIFEST
8423 2001-09-19 05:40  thgibbs
8425         * process_opfunc.pl: Now taking & of opcode_t instead of i member
8426         of union opcode_t.  I hope this will be more portable for set_n_nc.
8428 2001-09-19 05:39  thgibbs
8430         * t/op/integer.t: Added end to test 1.
8432 2001-09-19 00:09  thgibbs
8434         * t/op/number.t: Added end to each test
8436 2001-09-19 00:00  simon
8438         * t/op/number.t:
8439         Number tests! Wooo!
8441         Courtesy of: Damien Neil <neild@misago.org>
8443 2001-09-18 23:52  thgibbs
8445         * interpreter.c: Added casts to appropriate types to make -Wall not
8446         complain on certain printf formats
8448 2001-09-18 23:31  thgibbs
8450         * t/op/integer.t: Added end to each test.
8452 2001-09-18 22:54  thgibbs
8454         * t/op/trans.t: Added trans.t for transcendental math function
8455         tests.
8457 2001-09-18 22:28  simon
8459         * MANIFEST:
8460         MANIFEST updates. (And notice how I carefully snuck in the
8461         t/op/integer.t there...)
8463         Courtesy of: Andy Dougherty <doughera@lafayette.edu>
8465 2001-09-18 22:26  simon
8467         * t/: integer.t, op/integer.t:
8468         Except it doesn't go there. Duh.
8470 2001-09-18 22:25  simon
8472         * t/integer.t:
8473         Tests for integer ops.
8475         Courtesy of: Damien Neil <neild@misago.org>
8477 2001-09-18 22:03  thgibbs
8479         * include/parrot/bytecode.h, include/parrot/interpreter.h,
8480         build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
8481         make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
8482         opcode_t union for operators.  This required a few perl script
8483         changes to output the correct type.  There were also some changes
8484         to allow -pedantic in gcc
8486 2001-09-18 21:07  gregor
8488         * disassemble.pl, Parrot/PackFile.pm,
8489         Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
8490         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8491         lib/Parrot/PackFile/Constant.pm:
8492         Converted the disassembler to use the Parrot::PackFile Perl classes
8493         to do its job.
8495 2001-09-18 19:18  brentdax
8497         * Makefile.in: Fix missing functions for real this time.  (I
8498         swear!)
8500 2001-09-18 18:49  brentdax
8502         * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
8503         <doughera@lafayette.edu>}
8505 2001-09-18 18:47  brentdax
8507         * Makefile.in: Fix bugs with missing math, etc. functions
8509 2001-09-18 14:42  thgibbs
8511         * strnative.c: Sorry Simon...forgot bustart was a void* not a
8512         char*.
8514 2001-09-18 13:59  thgibbs
8516         * strnative.c: Removed unnecessary IV cast in concat.
8518 2001-09-18 13:58  thgibbs
8520         * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
8521         to concat test in string.t
8523 2001-09-18 12:07  gregor
8525         * languages/jako/jakoc:
8526           * var num ... no longer requires assignment
8527           * automatic casting between int and num
8528           * Fixed an error message
8530         Courtesy of: Simon Cozens <simon@cvs.perl.org>
8532 2001-09-18 11:57  simon
8534         * TODO:
8535         Gonna have to start thinking of more things to do, soon.
8537 2001-09-18 10:42  simon
8539         * opcode_table:
8540         Introduce a little more tidiness into the opcode table.
8542 2001-09-18 03:06  gregor
8544         * basic_opcodes.ops, opcode_table, t/euclid.pasm:
8545         Resurrected register-const ops per Dan's request.
8547 2001-09-18 02:20  gregor
8549         * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
8550         build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
8551         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8552         process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
8553         Committed some files that were missed in the last *.h moving
8554         commit.
8556 2001-09-18 02:17  gregor
8558         * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
8560 2001-09-18 02:16  gregor
8562         * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
8563         global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
8564         register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
8565         missed in last commit for the move of *.h to include/parrot.
8567 2001-09-18 01:32  simon
8569         * t/Makefile:
8570         Trivial "clean" target to t/Makefile.
8572 2001-09-18 01:32  simon
8574         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8575         Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8576         Change icky Digest::MD5 for nice simple unpack()
8578         Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
8580 2001-09-18 00:35  simon
8582         * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
8583         t/op/string.t:
8584         New concat op. Hey, if I'm going to talk about it in an article,
8585         better implement it...
8587 2001-09-17 22:54  gregor
8589         * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
8590         Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
8591         lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
8592         lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
8594         Functions for reading, writing and manipulating Parrot Pack Files.
8595         NOTE: This is a proposed term based on the fact that the file
8596         contains more than just byte code, and another language (Java)
8597         calls its binary files by a broader notion of what's in them (Class
8598         Files). Since Perl has packages, and since we use pack() to write
8599         them, we'll call them PackFiles (at least for now).
8601         That does, however, beg the question of file extension. Should we
8602         name the files "foo.pack" instead of "foo.pbc"?
8604 2001-09-17 20:23  thgibbs
8606         * interpreter.c, test_main.c: Uncuddled else statements for coding
8607         standard.
8609 2001-09-17 19:57  gregor
8611         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
8612         Added a $revision variable, parsing of the CVS Id line in
8613         opcode_table and a &revision() subroutine.
8615 2001-09-17 19:53  gregor
8617         * opcode_table:
8618         Added a CVS Id tag to it.
8620 2001-09-17 18:58  thgibbs
8622         * interpreter.c: Cleared interpreter flags on creation.
8624 2001-09-17 18:38  gregor
8626         * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
8627         interpreter.h, test_main.c:
8628           * Provides macros in interp_guts.h for setting up arrays with
8629             op names and op arg counts (done via build_interp_starter.pl).
8631             These are used in the op tracing
8633           * The functions in bytecode.[hc] pass around a pointer to the
8634         length
8635             of the bytecode so that later when we get to runops, we know
8636             how much bytecode we've got and we can detect out-of-bounds
8637             jumping. The documentation is updated, too.
8639           * runops in interpreter.c now looks at interpreter->flags to
8640             decide if the core of runops should be runops_trace_core or
8641             runops_notrace_core. These new functions contain just the
8642             while-loop portion of runops. A new function runops_generic
8643             does any other setup (such as checking the bytecode
8644             fingerprint) or wrapup (such as complaining if we ended up
8645             out-of-bounds). NOTE: I didn't know what we should do for
8646             functions in here that are not part of the api, so I gave
8647             them docs with 'TODO' marks mentioning they really aren't
8648             part of the api. Guidance appreciated.
8650           * test_main.c now checks for '-t' arg and sets the tracing flag
8651             on its interpreter instance as appropriate.
8653 2001-09-17 17:47  bdwheele
8655         * assemble.pl: added some default equates, and if they're sub
8656         references, they are computed each time it is referenced.
8658 2001-09-17 16:15  dan
8660         * interpreter.h:
8662         Added flags to the interpreter structure and defined a few.
8664 2001-09-17 15:51  simon
8666         * bytecode.h, string.h:
8667         VAR_SCOPE on globals.
8669 2001-09-17 15:20  simon
8671         * MANIFEST:
8672         Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
8674 2001-09-17 15:05  gregor
8676         * t/jump.pasm, MANIFEST:
8677         Added a test program to demonstrate jump_i.
8679 2001-09-17 14:44  thgibbs
8681         * register.c: Fixed register pop not using correct offset (off by
8682         one).
8684         Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
8686 2001-09-17 13:56  thgibbs
8688         * interpreter.c, register.c: Added code to call Parrot_clear_s
8689         during initialization and Parrot_clear_s and Parrot_clear_p when a
8690         new stack frame is pushed.
8692 2001-09-17 13:51  gregor
8694         * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
8695         fib.jako, hello.jako: Added bench.pasm to "clean"
8697 2001-09-17 13:49  gregor
8699         * languages/jako/: jakoc, Makefile:
8700         Added CVS Id tag.
8702 2001-09-17 13:49  gregor
8704         * languages/jako/jakoc:
8705         Code streamlining.
8707         Courtesy of: Buggs <buggs-perl6@splashground.de>
8709 2001-09-17 13:29  gregor
8711         * MANIFEST, opcheck.pl:
8712         Added an opcode_table checker to make sure that all opcodes listed
8713         there conform to a simple set of naming rules (rules themselves, of
8714         course, are subject to change).
8716 2001-09-17 13:23  thgibbs
8718         * string.c: Modified string.c to correctly use the return value of
8719         realloc.
8721 2001-09-17 05:26  brentdax
8723         * Makefile.in: Making the Makefile smarter
8725 2001-09-16 23:06  brentdax
8727         * hints/mswin32.pl: Finishing the Configure hints
8729 2001-09-16 23:05  brentdax
8731         * Configure.pl, Makefile.in, parrot.h, test_main.c,
8732         Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
8733         Configure hints, 5.005 compatibility, MANIFEST checking
8735 2001-09-16 19:25  bdwheele
8737         * assemble.pl: parrot assembly equates
8739 2001-09-16 18:03  gregor
8741         * Makefile.in:
8742         Added 'test' target to run new test suite.
8744 2001-09-16 17:33  simon
8746         * basic_opcodes.ops:
8747         'not' was being !, rather than ~. Too many Perl programmers here, I
8748         suspect.
8750         Courtesy of: Tom Hughes <tom@compton.nu>
8752 2001-09-16 17:21  simon
8754         * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
8755         t/op/string.t:
8756         A *real* test suite!
8758         Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
8760 2001-09-16 16:49  gregor
8762         * basic_opcodes.ops, opcode_table:
8763         At Dan's request, my new register-constant comparison ops have been
8764         removed.
8766 2001-09-16 16:40  gregor
8768         * languages/jako/jakoc:
8769         Fixed a copy-paste error in one of jakoc's error messages.
8771         Courtesy of: Buggs <buggs-perl6-list@splashground.de>
8773 2001-09-16 16:37  gregor
8775         * languages/jako/jakoc:
8776         Modified comparison implementation to use temporary registers in
8777         the case of register-constant and constant-register comparisons.
8778         This will allow the compiler to emit code that works when the
8779         constant-comparison ops are backed out of Parrot. If the ops ever
8780         make their way back in, then jakoc can emit more efficient code
8781         again.
8783 2001-09-16 16:19  bdwheele
8785         * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
8786         ... though not subroutine based like the documentation wants, they
8787         are local to the last non-local label defined.
8789 2001-09-16 14:02  simon
8791         * MANIFEST:
8792         And remember, when you add stuff, keep the manifest up to date.
8794 2001-09-16 02:55  ask
8796         * Makefile.in: a "shared" target for building libparrot.so
8798 2001-09-16 02:45  thgibbs
8800         * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
8801         global_setup.h, interpreter.c, interpreter.h, io.h,
8802         make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
8803         process_opfunc.pl, register.c, register.h, stacks.h, string.c,
8804         string.h, strnative.c, strnative.h, test_main.c: Updated files to
8805         use the coding standard PDD.  Also changed Perl_Interp to
8806         Parrot_Interp.
8808 2001-09-16 02:21  ask
8810         * README: emphasise the bits about the license not being worked out
8811         yet.
8813 2001-09-15 22:21  simon
8815         * process_opfunc.pl:
8816         basic_opcodes.c should *scream* that it's autogenerated.
8818 2001-09-15 21:58  gregor
8820         * languages/jako/Makefile:
8821         Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
8822         compile.
8824 2001-09-15 21:58  gregor
8826         * languages/jako/: jako_compiler.pl, jakoc:
8827         Renamed the Jako compiler to jakoc from jako_compiler.pl
8829 2001-09-15 21:51  gregor
8831         * languages/jako/: Makefile, bench.jako, euclid.jako,
8832         jako_compiler.pl:
8833         Added a new bench.jako example based on Leon Brocard's Bench.java.
8835         Jako Compiler:   * fix a bug in assignment handling   * add some
8836         more conditionals to while and if   * revert to using implicit
8837         opcodes in a few cases that were broken     before the assembler
8838         patch went in recently.
8840 2001-09-15 21:46  gregor
8842         * assemble.pl, basic_opcodes.ops, opcode_table:
8843         New ops for register-constant INTEGER comparisons:
8845           {eq,ne,lt,le,gt,ge}_ic_ic
8847         New ops for register-register and register-constant NUMERIC
8848         comparisons:
8850           eq_nc_ic
8851           {ne,lt,le,gt,ge}_{n,nc}_ic
8853         Assembler:
8855           Allow uppercase and underscores in labels.
8857           Tweaks to the op infer code to make it work with the examples
8858         I've been
8859           creating.
8861 2001-09-15 19:16  thgibbs
8863         * README: Updated README to include Configure.pl
8865 2001-09-15 17:05  simon
8867         * build_interp_starter.pl:
8868         Casting happiness
8870         Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
8872 2001-09-15 16:45  simon
8874         * assemble.pl:
8875         And the same again: Parrot/Opcode.pm wasn't "..-aware".
8877 2001-09-15 16:40  simon
8879         * t/Makefile:
8880         The Parrot/Opcode.pm dependency means we need to do -I.. in the
8881         test Makefile
8883 2001-09-15 12:26  simon
8885         * memory.c:
8886         Fixed to match the coding standards.
8888         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8890 2001-09-15 01:57  ask
8892         * Configure.pl, Makefile.in, Parrot/Opcode.pm,
8893         lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
8894         to run Configure.pl
8896 2001-09-15 01:48  ask
8898         * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
8899         say so. :-)
8901 2001-09-15 01:42  gregor
8903         * languages/jako/: euclid.jako, fact.jako, fib.jako,
8904         jako_compiler.pl:
8905         Compiler: Added variable interpolation in double-quoted strings.
8906         Examples: Made use of variable interpolation.
8908 2001-09-15 01:28  gregor
8910         * Parrot/.cvsignore:
8911         Ignore the Config.pm generated file.
8913 2001-09-15 01:22  gregor
8915         * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
8916         fib.jako, hello.jako, jako_compiler.pl:
8917         gnp: Added some more sample Jako files and added many more
8918         operators to the compiler. Preparations for supporting all the Math
8919         and bitwise ops.
8921 2001-09-14 19:06  simon
8923         * assemble.pl, build_interp_starter.pl, disassemble.pl,
8924         make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
8925         lib/Parrot/Opcode.pm:
8926         Move common table reading stuff to a module.
8928         Courtesy of: Damien Neil <neild@misago.org>
8930 2001-09-14 17:42  simon
8932         * .cvsignore:
8933         More .cvsignore foo.
8935 2001-09-14 17:40  simon
8937         * assemble.pl, config_h.in:
8938         De-coredump
8940         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8942 2001-09-14 17:38  simon
8944         * assemble.pl, t/Makefile:
8945         Make assemble.pl look in its parent directory if the data files it
8946         needs aren't in the current one. Plus a Makefile that lets "make
8947         foo.pbc" work in t/
8949         Courtesy of: Rocco Caputo <troc@netrus.net>
8951 2001-09-14 16:29  simon
8953         * make_op_header.pl:
8954         Wildly experimental patch to make Parrot compile on FreeBSD. (And
8955         probably segfault everywhere else.)
8957 2001-09-14 15:58  dan
8959         * languages/jako/: euclid.jako, jako_compiler.pl:
8961         Added in the first mini-language that targets Parrot.
8963         Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
8965 2001-09-14 15:20  dan
8967         * memory.c: Was misaligning returned memory. Fixed.
8969 2001-09-14 15:08  simon
8971         * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
8972         interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
8973         register.c, register.h, string.c, string.h, strnative.c,
8974         test_main.c:
8975         Fixes to include <parrot/foo.h>
8977         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
8979 2001-09-14 12:05  simon
8981         * strnative.c:
8982         Appease Tru64.
8984 2001-09-14 12:01  simon
8986         * memory.c:
8987         Appease Tru64.
8989 2001-09-14 11:54  simon
8991         * interpreter.c:
8992         Remove lvalue cast.
8994 2001-09-14 11:45  simon
8996         * Configure.pl:
8997         Be 5.005 friendly.
8999 2001-09-14 11:39  simon
9001         * Configure.pl:
9002         Tru64 cc doesn't like -Wall
9004 2001-09-14 10:57  simon
9006         * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
9007         assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
9008         config.h.in, config_h.in, disassemble.pl, interpreter.c:
9009         Configure now generates Makefile
9011         Courtesy of: Brent Dax <brentdax@cpan.org>
9013 2001-09-14 10:08  simon
9015         * t/test3.pasm:
9016         Add "end"
9018         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9020 2001-09-14 10:07  simon
9022         * assemble.pl:
9023                 * uses Getopt::Long for options.  -c is now --checksyntax.
9024         I wasn't
9025         sure how to keep compatible (patches welcome!)         * options
9026         include:                 --help                 --version
9027               --verbose                 --output=file
9028         --listing=file                 --checksyntax         * produces
9029         verbose listing of what the assembler saw :)  Only one nitpick with
9030         it:  unknown symbols are given as 0xffffffff, unfortunately, this
9031         includes symbols which may be defined later in the file (i.e.
9032         forward jumps).
9034         Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
9036 2001-09-14 10:06  simon
9038         * strnative.c:
9039         substr growth fixup
9041         Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9043 2001-09-14 10:03  simon
9045         * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
9046         register.c, string.c, strnative.c, test_main.c:
9047         Coding standards conformance
9049         Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9051 2001-09-14 09:46  simon
9053         * assemble.pl:
9054         Make the assembler grok transcendental maths again.  Courtesy of:
9055         Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
9057 2001-09-13 17:29  simon
9059         * assemble.pl:
9060         Better opcode guessing, from Brian Wheeler. (Again!)
9062 2001-09-13 17:20  dan
9064         * docs/parrot_assembly.pod:
9066         Took out duplicate entries for iton, ntoi, and tostring.
9068 2001-09-13 17:16  simon
9070         * assemble.pl, basic_opcodes.ops, opcode_table:
9071         From Brian Wheeler:
9073         This patch gives the assembler support of '\a','\n','\r','\t', and
9074         '\\' in string constants.
9076         In addition, it changes (for all registers) "I reg %li is ..." to
9077         just the value of the register.  Printing constants is also
9078         supported, but alas, you have to specify the type (print_sc,
9079         print_ic, print_nc).
9081 2001-09-13 15:38  simon
9083         * assemble.pl:
9084         Why don't I actually *test* this stuff before applying it, eh?
9086 2001-09-13 15:34  simon
9088         * TODO, t/euclid.pasm:
9089         From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
9090         (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
9091         inference
9093 2001-09-13 14:42  simon
9095         * assemble.pl:
9096         A new assembler, from Brian Wheeler.
9098 2001-09-13 09:44  simon
9100         * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
9101         test_main.c:
9102         Two more from Tom Hughes:     Patch to fix C++ style comments
9103         Patch to remove use of structure constant/cast
9105 2001-09-13 09:39  simon
9107         * TODO, docs/strings.pod:
9108         Update string docs.
9110 2001-09-13 09:36  simon
9112         * Makefile, basic_opcodes.ops:
9113         Tom Hughes      Patch to link with the maths library Tom Hughes
9114          Patch to fix += on rvalue
9116 2001-09-13 08:57  simon
9118         * MANIFEST:
9119         I guess nobody's been using the nightly builds...
9121 2001-09-13 08:27  simon
9123         * assemble.pl, basic_opcodes.ops, opcode_table:
9124         Bitwise ops, from Brian Wheeler.
9126 2001-09-13 08:23  simon
9128         * .cvsignore, t/.cvsignore:
9129         .cvsignore's, from Gregor Purdy.
9131 2001-09-13 08:22  simon
9133         * Makefile:
9134         Euclidean test and test output rearranging from Gregor Purdy.
9136 2001-09-13 08:21  simon
9138         * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
9139         Math ops from Gibbs Tanton.
9141 2001-09-13 08:14  simon
9143         * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
9144         t/test2.pasm:
9145         String substr op; also rearranged "encoding" to be a vtable
9146         pointer, not an array index. Haven't changed docs to reflect this,
9147         oops.
9149         Simon
9151 2001-09-12 19:48  dan
9153         * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
9154         Gregor Purdy
9156 2001-09-12 19:39  dan
9158         * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
9160 2001-09-12 19:23  dan
9162         * interpreter.h, parrot.h: Quick placeholder entry for string
9163         function tables
9165 2001-09-12 18:58  dan
9167         * memory.c: Added in a cast to make gcc happy.
9169 2001-09-12 16:44  dan
9171         * docs/parrot_assembly.pod:
9173         PDD describing parrot's assembly language and the opcodes in it
9175 2001-09-12 14:20  dan
9177         * memory.c:
9178         Fixed alignment issues with allocation
9180 2001-09-12 10:54  simon
9182         * Makefile, assemble.pl, bytecode.c, disassemble.pl,
9183         make_op_header.pl, opcode_table, process_opfunc.pl:
9184         Brian Wheeler's big patch:
9186         * Changes the opcode_table file to provide additional information
9187         about the operands.  Case shouldn't be a problem since that data
9188         never becomes a C symbol [this is pretty much as before]
9190         * Padding errors solved:  assemble.pl and bytecode.c were padding
9191         the constants incorrectly.  It should have been 4-(size % 4), not
9192         just (size % 4).  It is now fixed in both places.
9194         * assembler has less special cases, and should be easier to hang
9195         error checking on
9197         * disassembler dumps constant table and the format is a bit
9198         prettier, including register names, etc.
9200 2001-09-11 23:21  dan
9202         * build_interp_starter.pl, interpreter.c:
9204         Abstracted the runops function core into a macro for easy
9205         replacement later.
9207 2001-09-11 10:43  simon
9209         * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
9210         Configure system from Brent Dax <brentdax@cpan.org>
9212 2001-09-11 09:38  simon
9214         * assemble.pl, test.pbc:
9215         From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
9216         assembler deferred output
9218         Also got rid of the bytecode, since that's probably way out of
9219         date.
9221 2001-09-11 09:26  simon
9223         * basic_opcodes.ops, opcode_table, t/test2.pasm:
9224         From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
9225         patch
9227 2001-09-10 23:20  simon
9229         * MANIFEST:
9230         And that move needs a MANIFEST change. So many things to remember!
9232 2001-09-10 23:18  simon
9234         * t/: test.pasm, test2.pasm, test3.pasm:
9235         Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
9237 2001-09-10 23:18  simon
9239         * test.pasm, test2.pasm, test3.pasm:
9240         Move tests to t/
9242 2001-09-10 23:04  dan
9244         * test3.pasm:
9246         Register push/pop test
9248 2001-09-10 22:47  simon
9250         * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
9251         Fix up format warnings, from Sam Tregar <sam@tregar.com>.
9252         (Modified to avoid conflict with Dan's changes.)
9254 2001-09-10 22:45  dan
9256         * disassemble.pl:
9258         Happier about blanks in opcode_table
9260 2001-09-10 22:40  dan
9262         * interpreter.c, register.c:
9264         Yanked out debugging code, since these work OK. The bug I want is
9265         elsewhere.
9267 2001-09-10 22:30  simon
9269         * MANIFEST:
9270         Uhm. We want make_op_header.pl. We really, really do.
9272 2001-09-10 22:26  simon
9274         * Makefile, TODO, assemble.pl, basic_opcodes.ops,
9275         build_interp_starter.pl, disassemble.pl, make_op_header.pl,
9276         opcode_table, process_opfunc.pl:
9277         Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
9278         This means we can add lots more opcodes without fiddling about with
9279         the numbers. Hooray!
9281         Don't forget that "end" needs to be op zero, else the interpreter
9282         falls off the end of the code. This is Bad, and I wonder if there's
9283         a way around it.
9285 2001-09-10 19:49  simon
9287         * MANIFEST, make_op_table_build.pl:
9288         Hey! This doesn't do anything...
9290 2001-09-10 19:46  simon
9292         * Makefile:
9293         "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
9295 2001-09-10 18:31  simon
9297         * MANIFEST:
9298         You know what this means...
9300 2001-09-10 18:30  simon
9302         * assemble.pl:
9303         "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
9304         wait for a release...? :)
9306 2001-09-10 18:13  simon
9308         * interpreter.c:
9309         Bad Dan! No cookie!
9311 2001-09-10 17:56  simon
9313         * README:
9314         A *real* README file, which doesn't claim it isn't for public
9315         consumption.
9317 2001-09-10 17:02  simon
9319         * TODO:
9320         More things to do.
9322 2001-09-10 16:56  dan
9324         * TODO: Added in assembler gripe. Also added a few blank lines for
9325         clarity
9327 2001-09-10 16:49  dan
9329         * register.h, register.c: Renamed the core functions so the opcodes
9330         can find 'em OK. (There were some conflicts)
9332 2001-09-10 16:48  dan
9334         * basic_opcodes.ops, opcode_table: Added register window ops
9336 2001-09-10 11:07  simon
9338         * TODO:
9339         Trivial TODO list.
9341 2001-09-10 11:05  simon
9343         * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
9344         note "-s" flag to test prog.
9346 2001-09-10 11:01  simon
9348         * docs/strings.pod:
9349         New string documentation.
9351 2001-09-10 11:01  simon
9353         * basic_opcodes.ops, opcode_table:
9354         String ops.
9356 2001-09-10 10:53  simon
9358         * global_setup.c:
9359         More string fu.
9361 2001-09-10 10:51  simon
9363         * memory.h:
9364         Just some more aliases for now. Used by string handling stuff.
9366 2001-09-10 10:50  simon
9368         * assemble.pl, bytecode.c, bytecode.h:
9369         Temporary hack to store string constants in bytecode and recreate
9370         them at runtime.
9372 2001-09-10 10:48  simon
9374         * op.h:
9375         op.h is now generated by the Makefile; remove it.
9377 2001-09-10 10:47  simon
9379         * Makefile:
9380         clean and op.h Makefile targets.
9382 2001-09-10 10:45  simon
9384         * string.c, string.h, strnative.c:
9385         More string vtable stuff.
9387 2001-09-07 21:07  dan
9389         * assemble.pl:
9391         Much less picky about whitespace in the opcode_table now. (Doesn't
9392         whine on blank lines)
9394 2001-09-07 16:23  dan
9396         * Makefile, assemble.pl, global_setup.h, interpreter.c,
9397         interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
9398         this takes) Added global_setup.h to declare init_world function
9400         Moved variable declarations out of the interpreter loop for small
9401         speed boost.
9403         Changed end opcode to now be opcode #0. A function is provided for
9404         it, but isn't ever executed.
9406         When the interpreter sees an opcode 0 in the stream it means the
9407         end of stream. Things were coring on Cygwin otherwise. (I think I
9408         was dereferencing a zero, which is bad)
9410 2001-09-06 22:07  dan
9412         * basic_opcodes.ops, process_opfunc.pl:
9414         Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
9415         are minor changes now that things are in a fixed state.
9417 2001-09-06 16:13  dan
9419         * basic_opcodes.c, test_opcodes.c:
9420         test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
9422         basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
9423         should be nuked. So it is. :)
9425 2001-09-06 03:35  dan
9427         * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
9428         Scripts to build the header file that holds the function table
9429         creation code, as well as the script to turn an opcode file to C
9430         source. (And the basic opcode functions turned into an opcode
9431         source file)
9433 2001-09-06 03:31  dan
9435         * Makefile, interpreter.c:
9436         Changes to support the autogeneration of the opcode function
9437         pointer table in interpreter.c, along with the changes to the
9438         Makefile needed.
9440 2001-09-05 13:27  simon
9442         * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
9443         docs/parrotbyte.pod, docs/vtables.pod:
9444         Added stubs for the documents; working on them this week. (What's
9445         left of it.) config.h change is just to type VTABLE, and the
9446         bytecode thing you might want to revoke. It's apidoc for the
9447         functions in there.
9449 2001-09-03 18:26  simon
9451         * docs/strings.pod:
9452         A start on the string API documentation.
9454 2001-09-03 17:43  simon
9456         * opcode_table:
9457         Since we specify the opcode number, we can rearrange to a more
9458         human-friendly ordering.
9460 2001-09-03 17:42  simon
9462         * basic_opcodes.c:
9463         Coupl'a logic bugs. (I think)
9465 2001-09-03 17:41  simon
9467         * string.c, string.h, strnative.c:
9468         Tidying up the string vtables.
9470 2001-09-03 17:38  simon
9472         * make_op_header.pl:
9473         Spit out the whole of op.h, not just the bit in the middle.
9475 2001-08-29 13:16  ask
9477         * README: it seems like we indeed can commit. What about sending
9478         commit mails?
9480 2001-08-29 13:07  simon
9482         * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
9483         bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
9484         global_setup.c, interpreter.c, interpreter.h, io.h,
9485         make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
9486         op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
9487         stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
9488         test.pbc, test_main.c, test_opcodes.c:
9489         Initial checkin of Simon's work directory - Dan, feel free to nuke.
9490          I'm still working on the string stuff, though.
9492 2001-08-29 12:44  ask
9494         * README: update README with list address
9496 2001-08-29 12:36  ask
9498         * README: first readme.