Ticket #330: ChangeLog

File ChangeLog, 109.3 KB (added by quevlar, 5 years ago)
Line 
1#1 $Id: ChangeLog 35854 2009-01-21 08:08:42Z chromatic $
2
32009.01.20999    chromatic
4        * Released 0.9.0
5        See NEWS for more.
6
72008.12.16999    Whiteknight
8        * Released 0.8.2
9        See NEWS for more.
10
112008.11.18999    chromatic
12        * Released 0.8.1
13        See NEWS for more.
14
152008.10.21999    particle
16        * Released 0.8.0
17        See NEWS for more.
18
192008.09.16999    pmichaud
20        * Released 0.7.1
21        See NEWS for more.
22
232008.08.19999    rgrjr
24        * Released 0.7.0
25        See NEWS for more.
26
272008.07.15999    barney
28        * Released 0.6.4
29        See NEWS for more.
30
312008.06.17999    smash
32        * Released 0.6.3
33        See NEWS for more.
34
352008.05.20999    chromatic
36        * Released 0.6.2
37        See NEWS for more.
38
392008.04.15999    particle
40        * Released 0.6.1
41        See NEWS for more.
42
432008.03.18999    bernhard
44        * Released 0.6.0
45        See NEWS for more.
46
472008.02.20999    pmichaud
48        * Released 0.5.3
49        See NEWS for more.
50
512008.01.15999    rgrjr
52        * Released 0.5.2
53        See NEWS for more.
54
552007.12.18999    jonathan
56        * Released 0.5.1
57        See NEWS for more.
58
592007.11.20999    chromatic
60        * Released 0.5.0
61        See NEWS for more.
62
632007.10.17999    coke
64        * Released 0.4.17
65        See NEWS for more.
66
672007.09.18999    particle
68        * Released 0.4.16
69        See NEWS for more.
70
712007.08.22999    pmichaud
72        * Released 0.4.15
73        See NEWS for more.
74
752007.07.17999    particle
76        * Released 0.4.14
77        See NEWS for more.
78
792007.06.19999    allison
80        * Released 0.4.13
81        See NEWS for more.
82
832007.05.15999    chromatic
84        * Released 0.4.12
85        See NEWS for more.
86
872007.04.17999    mdiep
88        * Released 0.4.11
89        See NEWS for more.
90
912007.03.20999    coke
92        * Released 0.4.10
93        See NEWS for more.
94
952007.3.10999     coke
96        * removed parakeet
97
982007.02.22999    pmichaud
99        * Released 0.4.9
100        See NEWS for more.
101
1022007.01.17999    chromatic
103        * changed 'name' method on namespaces to 'get_name' per pdd21
104
1052007.01.16999    particle
106        * Released 0.4.8
107        See NEWS for more.
108
1092006.12.12999    particle
110        * added C<isnull> opcode
111
1122006.11.14999    chip
113        * Released 0.4.7
114        See NEWS for more.
115
1162006.11.07999   tewk
117        * added :init pragma functionality to subs
118
1192006.10.28999   jonathan
120        * added :vtable pragma functionality to subs
121
1222006.09.18999    chromatic
123        * added Parrot::Embed under ext/Parrot-Embed
124
1252006.08.18999    leo
126        * remove the None PMC - if needed it can trivially be reimplemented
127          in languages from r14189
128
1292006.08.16999    creiss
130        Merged Software Transactional Memory branch into trunk, adds:
131        * several new opcodes whose names start with stm_
132        * read-only PMC support
133        * several new PMC types (whose names start with STM*)
134        * support for threads (again)
135
1362006.08.08999    chip
137        * Released 0.4.6
138        See NEWS for more.
139
1402006.08.02999    chip
141        * opcodes: "in PMC" is no longer a synonym for "invar PMC";
142        there are opcodes now that want the real "in PMC".
143        * namespace and global opcodes now accept name arrays again, as
144        well as keys; the corresponding namespace PMC methods are gone.
145
1462006.07.21999    leo
147        * Parrot_exit, Parrot_on_exit take now an Interp * argument
148
1492006.07.25999    chip
150        * add experimental op find_type_i_p
151        * fix longstanding bug that sometimes didn't encode pasm keys as
152        Key PMCs (specifically "[S0]" and "['stringliteral']").
153
1542006.07.24999    chip
155        further implementation of new pdd21:
156        * new opcodes {get,set}*global
157          (old {find,store}*global will be supported for a short while)
158
1592006.07.20999    audreyt
160        * --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
161          (or some such --leo)
162          (at the moment code is checking for 2.0 -- ambs)
163
1642006.07.17999    chip
165        partial implementation of new pdd21:
166        * old: "get_namespace KEY".  new: "get_hll_namespace KEY"
167        * get_namespace and find_global opcodes no longer accept arrays
168          of strings.  To use arrays, call namespace object methods.
169
1702006.06.19999    leo
171        * Released 0.4.5
172        See NEWS for more.
173
1742006.06.03999    leo
175        * I and N registers are never cleared to 0 / 0.0 on subroutine entry
176
1772006.05.14999    leo
178        * Released 0.4.4
179        See NEWS for more.
180
1812006.04.30999    bernhard
182        * Make the Perl PMCs dynamic and move them to src/dynpmc
183
1842006.04.02999    leo
185        * Released 0.4.3
186        See NEWS for more.
187
1882006.03.06999    leo
189        * Shifted argument type bits left by 2 according to r11754
190          change of docs/pdds/pdd03_calling_conventions.pod
191        * if you are creating PASM then code needs adjustment 
192
1932006.02.22999    leo
194        * Released 0.4.2
195        See NEWS for more.
196
1972006.01.16999    bernhard
198         * rename src/dynclasses to src/dynpmc
199         * rename src/classes to src/pmc
200
2012006.01.15999    leo
202
203         * find_global and friends returns a .Null PMC instead of .Undef on
204          lookup failure, iff lookup exceptions are off
205
2062006.01.08999    leo
207        * Released 0.4.1
208        See NEWS for more.
209
2102005.12.28999    particle
211        * renamed all .imc files to .pir
212        * modified all doc references to .pir as well
213
2142005.12.13999    particle
215        * moved jit/ directory to src/jit/
216
2172005.12.12999    particle
218        * moved io/ directory to src/io/
219        * moved classes/ directory to src/classes/
220        * moved dynclasses/ directory to src/dynclasses/
221
2222005.12.08999    particle
223        * moved types/ directory to src/types/
224        * moved pf/ directory to src/packfile/
225        * moved ops/ directory to src/ops/
226
2272005.12.08999    particle
228        * moved charset/ directory to src/charset/
229        * moved encodings/ directory to src/encodings/
230
2312005.12.07999    particle
232        * moved imcc/ directory to compilers/imcc/
233
2342005.12.06999    particle
235        * moved util/ directory to tools/util/
236        * removed imcc/examples/ directory
237        * moved ast/ directory to compilers/ast/
238
2392005.12.05999    particle
240        * moved imcc/docs/ directory to docs/imcc/
241        * moved build_tools/ directory to tools/build/
242        * modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
243
2442005.12.04999    leo
245        * Released 0.4.0
246        * See NEWS for changes
247
2482005.11.06999    leo
249        * Released 0.3.1
250        * See NEWS for changes
251
2522005.10.01999    leo
253        * Released 0.3.0
254        * See NEWS for changes
255
2562005.08.05999    leo
257        * Released 0.2.3
258        * See NEWS for changes
259
2602005.07.03999    leo
261        * Released 0.2.2
262        * See NEWS for changes
263
2642005.06.04999    leo
265        * Released 0.2.1
266        * allow short names for object attributes
267        * string encoding and charset can now be set independently
268        * experimental mmap IO layer for slurping files
269        * enable compile opcode support for compilers written in PASM/PIR
270        * improved HLL support with .HLL and n_operators pragmas
271        * simplified hash code
272        * more strength reduce optimizations
273        * distinct debug and trace flag settings
274        * glob support in PGE
275        * new character classification opcodes and interfaces
276        * numerous bug fixes and enhancements
277
2782005-05-08999    leo
279        * Released 0.2.0
280        * parrot repository is now under subversion
281        * MMD (Multi Method Dispatch) enhanced
282        * new unary and infix opcodes that return new result PMCs
283        * dynamic scalar PMCs inherit now almost all from Parrot core PMCs
284        * more unification of PMCs and ParrotObjects
285        * tailcalls for functions and methods
286        * PGE (Parrot Grammar Engine) reworked
287        * Pugs creates Parrot code and Pugs is a registered compiler now
288        * new languages/lisp
289        * the usual bug fixes and improvements
290
291
292
2932001-12-08 21:24  simon
294
295        * Parrot/PackFile.pm, docs/parrot.pod, docs/parrotbyte.pod,
296        docs/vtables.pod, lib/Parrot/PackFile.pm:
297        Getting the documentation up to scratch.
298
2992001-12-08 21:21  simon
300
301        * classes/pmc2c.pl:
302        Allow inheriting from default class.
303
3042001-12-07 20:43  gregor
305
306        * examples/assembly/queens.pasm:
307        Regenerated the file with the latest jakoc.
308
3092001-12-07 20:29  simon
310
311        * core.ops, t/op/stacks.t:
312        Rename "rotate" to "rotate_up".
313
3142001-12-07 20:15  simon
315
316        * t/op/stacks.t:
317        Some tests for rotate.
318
3192001-12-07 00:55  gregor
320
321        * core.ops:
322        Cast the result of the pointer arithmetic, since without the cast
323        there are warnings with some compilers, and without the parens
324        around the pointer arithmetic, precedence breaks the meaning and
325        causes crashes.
326
3272001-12-06 23:37  simon
328
329        * core.ops:
330        Temporary. I prefer compiler warnings to segfaults, thanks.
331
3322001-12-06 23:34  simon
333
334        * runops_cores.c:
335        Make "trace" work again.
336
3372001-12-06 21:23  dan
338
339        * Parrot/Test.pm, lib/Parrot/Test.pm: Undo twiddles to test.pm
340
3412001-12-06 21:22  dan
342
343        * core.ops, packfile.c, Parrot/Test.pm, include/parrot/stacks.h,
344        lib/Parrot/Test.pm: Fix up source issues that made Dec C unhappy
345
3462001-12-06 19:22  simon
347
348        * core.ops:
349        Yet another "How the *%$! did that compile?" moment.
350
3512001-12-06 18:28  dan
352
353        * hints/vms.pl: Fix to build, with a HERE logical required
354
3552001-12-06 17:48  dan
356
357        * core.ops, interpreter.c, pbc2c.pl, pdump.c, test_main.c,
358        docs/parrot_assembly.pod, include/parrot/interpreter.h: Sensible
359        changes to the interpreter--flags are now part of the interp
360        structure.
361
362        Courtesy of "Melvin Smith" <mrjoltcola@mindspring.com>
363
3642001-12-06 14:02  gregor
365
366        * docs/intro.pod:
367        s/little_languages/languages/ in Jako section.
368
3692001-12-06 13:15  simon
370
371        * Makefile.in:
372        Ensure the documentation gets made.
373
3742001-12-06 13:12  simon
375
376        * MANIFEST, docs/intro.pod:
377        Documentation! Added the "Some Assembly Required" article with
378        minor updates.
379
3802001-12-06 00:39  simon
381
382        * core.ops:
383        More "eq" support.
384
385        Courtesy of: Nguon Hao Ching <hao@netaxs.com>
386
3872001-12-06 00:37  simon
388
389        * test_main.c:
390        Add the "-d" debug flag. Doesn't actually *do* anything yet.
391
392        Courtesy of: Melvin <mrjoltcola@mindspring.com>
393
3942001-12-06 00:11  tom
395
396        * string.c, chartypes/unicode.c, chartypes/usascii.c,
397        encodings/singlebyte.c, encodings/utf16.c, encodings/utf8.c,
398        include/parrot/chartype.h, include/parrot/encoding.h,
399        include/parrot/parrot.h: Moved string to number conversion code out
400        of the encoding layer and into the main string layer as neither the
401        encoding layer nor the character type layer knows enough on it's
402        own to do the conversion correctly.
403
4042001-12-05 23:12  tom
405
406        * Makefile.in: Rebuild the classes directory if any of the object
407        files for the classes are missing rather than only when perlint.o
408        is missing.
409
4102001-12-05 19:43  gregor
411
412        * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
413          * Reworked the constantize_string() stuff a little bit because it
414        was
415            puking on things like "\033[H\033[2J\0" (which occurs in the
416            languages/jako/mandelzoom.jako example).
417
4182001-12-05 19:39  gregor
419
420        * languages/jako/: Makefile, mandelzoom.jako:
421        Added 'mandelzoom' example.
422
4232001-12-05 19:38  gregor
424
425        * languages/jako/jakoc:
426          * Added sleep()
427
428          * Changed some instances of die() to confess()
429
4302001-12-05 18:34  gregor
431
432        * t/: op/pmc.t, pmc/pmc.t:
433        s/sting->int/string->int/
434
4352001-12-05 18:08  gregor
436
437        * Parrot/.cvsignore:
438        Ignore PMC.pm
439
4402001-12-05 18:05  gregor
441
442        * classes/.cvsignore:
443        Ignore the generated files.
444
4452001-12-05 17:19  gregor
446
447        * pbc2c.pl:
448          * Reverted recent changes, since they broke the script. Real fix
449        coming
450            later.
451
4522001-12-05 17:03  simon
453
454        * classes/Makefile.in:
455        Remember: change Makefile.in, not Makefile. D'oh.
456
4572001-12-05 17:02  simon
458
459        * Makefile.in:
460        Ensure PMC.pm gets remade.
461
4622001-12-05 16:58  simon
463
464        * MANIFEST, Makefile.in, classes/Makefile.in,
465        classes/perlundef.pmc, include/parrot/pmc.h:
466        Add perlundef class.
467
4682001-12-05 16:45  simon
469
470        * core.ops:
471        Document "new P0, foo"
472
4732001-12-05 16:43  simon
474
475        * MANIFEST, Makefile.in, pbc2c.pl, pmc_pm.pl, Parrot/Assembler.pm,
476        lib/Parrot/Assembler.pm, t/op/pmc.t, t/pmc/pmc.t:
477        Allow assembler to know about PMC class names.
478
4792001-12-04 13:39  ajgough
480
481        * MANIFEST: Added t/op/pmc.t to MANIFEST.
482
4832001-12-04 05:02  ajgough
484
485        * classes/perlnum.pmc: Picky compiler pointed out probable thinko
486        in perlnum.c
487
4882001-12-04 04:24  ajgough
489
490        * encodings/singlebyte.c, t/op/pmc.t, t/pmc/pmc.t: A much less
491        broken form of strtod and appropriate tests.  Does not yet check
492        for overflow.
493
4942001-12-04 01:31  ajgough
495
496        * string.c, encodings/singlebyte.c, encodings/utf16.c,
497        encodings/utf8.c, include/parrot/encoding.h: Added length parameter
498        to extract_num and extract_int string vtables, without this it
499        would be impossible to have strings with nulls in while still
500        knowing where they ended.
501
5022001-12-03 18:40  ajgough
503
504        * string.c, classes/perlstring.pmc, encodings/singlebyte.c,
505        encodings/utf16.c, encodings/utf8.c, include/parrot/encoding.h,
506        include/parrot/string.h: Moved pmc string to number conversion into
507        the string encoding tables.
508
5092001-12-03 00:21  ajgough
510
511        * core.ops, t/op/pmc.t, t/pmc/pmc.t: Added set i, p and some tests
512        for p-> integer.
513
5142001-12-02 23:09  jgoff
515
516        * classes/Makefile.in: Removed some redundant targets.
517
5182001-12-02 19:02  ajgough
519
520        * t/: op/pmc.t, pmc/pmc.t: Modified all pmc tests to make use of fp
521        equality macro rather than using perl to generate expected output,
522        all tests now have <<OUTPUT.
523
5242001-12-02 17:44  ajgough
525
526        * t/op/trans.t: Upgraded fp_eq and fp_ne macros to be more useful
527        for pmc.t as well.  Will probably move macros into another file at
528        some point, although this might be best left until the tests are
529        unperled.
530
5312001-12-02 06:16  jgoff
532
533        * classes/pmc2c.pl: It wasn't properly setting the vtable index
534        within Parrot_Perl{Class}_init.
535
5362001-12-02 06:09  jgoff
537
538        * classes/Makefile.in: I seem to have removed *$(O) twice..
539
5402001-12-02 05:06  jgoff
541
542        * Configure.pl, MANIFEST, Makefile.in: (Hopefully the last time...)
543        Configure.pl - Removed '-I./include', added classes/Makefile
544        generation MANIFEST     - Added classes/Makefile.in Makefile.in  -
545        Removed old classes/* make stuff                Added target for
546        classes/Makefile
547
5482001-12-02 04:48  jgoff
549
550        * classes/Makefile.in: Going to be used shortly...
551
5522001-12-02 04:40  jgoff
553
554        * docs/Makefile: Configure.pl - Added automatic makefile creation
555        for docs/ and classes/                Removed '-I./include' because
556        it was getting incorrectly                passed to classes/
557        MANIFEST - added docs/Makefile.in, classes/Makefile.in Makefile.in
558        - Removed classes/ build stuff, replaced with classes/Makefile.in
559                    Added '-I./include' locally docs/Makefile - Should no
560        longer be used, but I'm not brave enough to do a
561        cvs delete.
562
5632001-12-02 01:21  ajgough
564
565        * t/op/trans.t: Refactored trans math tests to have hard coded
566        expected return values and be more ready to be unperled at some
567        point in the future.  Added $fp_equality_macro which is a
568        "nearly-equal-to" function.
569
5702001-12-02 01:18  ajgough
571
572        * Makefile.in: Humph.  People really ought to use Makefile
573        variables, s/perl/$(PERL)/ throughout.
574
5752001-12-01 18:15  jgoff
576
577        * classes/: perlint.pmc, perlnum.pmc: Temporary patch until we
578        figure out what to do vis-a-vis the lack of snprintf.
579
5802001-11-30 13:14  ajgough
581
582        * t/op/: integer.t, number.t: Added tests for abs ops to number.t
583        and integer.t
584
5852001-11-30 13:14  ajgough
586
587        * core.ops: Added abs(i|n, i|ic|n|nc) ops to core.ops, using if <0
588        -, else ... form.
589
5902001-11-30 10:36  simon
591
592        * core.ops:
593        Rewrite print_p to do the right thing.
594
5952001-11-30 06:21  jgoff
596
597        * t/: op/pmc.t, pmc/pmc.t: New tests for integer/number/string
598        concat,               integer/number/string math
599
6002001-11-30 06:20  jgoff
601
602        * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc:
603        classes/perlint.pmc - Fixes and expanding for concat and math with
604        strings classes/perlnum.pmc - Fixes and expanding for concat and
605        math with strings classes/perlstring.pmc - Fixes and expanding for
606        concat and math with strings
607
6082001-11-29 15:21  ajgough
609
610        * hints/os2.pl: This is a hints file for os/2, I've set $c{perl} as
611        $^X lies, which confused bash which make uses to run things when
612        doing its stuff.
613
6142001-11-29 04:58  jgoff
615
616        * classes/perlstring.pmc: Removed C++-style comments for good
617        measure
618
6192001-11-29 04:51  jgoff
620
621        * t/: op/pmc.t, pmc/pmc.t: New tests for PMC integers
622
6232001-11-29 04:28  jgoff
624
625        * global_setup.c: Initialize PMC strings
626
6272001-11-29 04:25  jgoff
628
629        * core.ops: Added set_p_s and set_p_sc, modified print_p to handle
630        string PMCs.
631
6322001-11-29 04:24  jgoff
633
634        * classes/: perlint.pmc, perlnum.pmc, perlstring.pmc: Changed PMC
635        files to properly upgrade int to num, do calculations.  Also added
636        basic string operations. Currently errors out on anything but set
637        operations, but this will be fixed soon.
638
6392001-11-29 04:22  jgoff
640
641        * Makefile.in: PMC .c files weren't getting cleaned out.
642
6432001-11-28 17:00  simon
644
645        * t/harness:
646
647        Make csh-glob happy.
648
649        Courtesy of: Andy Dougherty: <doughera@lafayette.edu>
650
6512001-11-28 16:40  simon
652
653        * classes/perlnum.pmc:
654
655        De-C++
656
6572001-11-28 15:22  simon
658
659        * string.c:
660
661        Fixes Alex's string concat worry.
662
6632001-11-28 14:27  ajgough
664
665        * t/op/string.t: test "null onto null" incorrectly passing as it
666        produced no output.  Output provided.
667
6682001-11-28 11:14  simon
669
670        * include/parrot/pmc.h:
671
672        Placate AIX.
673
6742001-11-26 21:03  dan
675
676        * MANIFEST, hints/darwin.pl: Tweaks to build on Mac OS X 10.1
677
6782001-11-26 17:29  simon
679
680        * classes/perlint.pmc:
681
682        Various subtle but non-showstopper bugs.
683
6842001-11-26 11:23  simon
685
686        * classes/pmc2c.pl:
687
688        Replace dependency on Text::Balanced
689
690        Courtesy of: Bart Lateur <bart.lateur@pandora.be>
691
6922001-11-26 05:22  jgoff
693
694        * global_setup.c: Last file that should need to be committed. I
695        swear.
696
6972001-11-26 05:09  jgoff
698
699        * core.ops: Let's try this again... Changes to core.ops required
700
7012001-11-26 04:58  jgoff
702
703        * classes/perlint.pmc, classes/perlnum.pmc, t/op/pmc.t,
704        t/pmc/pmc.t: Makefile.in - Added missing cleanup line for perl*.c
705        core.ops - Added set(p,n|nc), modified print(p) global_setup.c -
706        Uncommented PerlNum_init classes/perlint.pmc - Added set_number
707        functions classes/perlnum.pmc - Set up basic number functions
708        t/op/pmc.t - Added tests for set P0.<number> and {add,mul,sub,div}
709        tests against numbers and numbers+integers
710
7112001-11-25 13:18  simon
712
713        * Makefile.in:
714        Windows XP make doesn't like $<
715
7162001-11-25 12:56  simon
717
718        * MANIFEST, Makefile.in, classes/genclass.pl, classes/perlint.c,
719        classes/perlint.pmc, classes/perlnum.c, classes/perlnum.pmc,
720        classes/perlstring.c, classes/perlstring.pmc, classes/pmc2c.pl,
721        examples/assembly/mops_p.pasm:
722        PMC preprocessor.
723
724        Courtesy of: Angel Faus <afaus@corp.vlex.com>
725
726        I (Simon) also added a couple more integer methods, but no tests
727        since I'm a Bad Person.
728
7292001-11-25 08:40  brentdax
730
731        * ops2c.pl, Parrot/Op.pm, Parrot/OpsFile.pm, lib/Parrot/Op.pm,
732        lib/Parrot/OpsFile.pm: Allow _ in op names
733
7342001-11-25 05:54  jgoff
735
736        * classes/perlint.c, t/op/pmc.t, t/pmc/pmc.t: classes/perlint.c -
737        Added basic math ops t/op/pmc.t - Added tests of basic math ops
738
7392001-11-23 18:27  simon
740
741        * core.ops, classes/perlint.c, examples/assembly/mops_p.pasm:
742        Add everything you need to make MOPS use PMCs.
743
7442001-11-23 18:06  simon
745
746        * core.ops:
747        Eh, you'll need this for rewriting mops.pasm.
748
7492001-11-23 17:55  simon
750
751        * core.ops, classes/perlint.c, include/parrot/pmc.h, t/op/pmc.t,
752        t/pmc/pmc.t:
753        More work on integer PMCs.
754
7552001-11-23 17:29  simon
756
757        * Makefile.in:
758        Surprise! Whitespace! HLAGHLAGHLAGH
759
7602001-11-23 17:28  simon
761
762        * Makefile.in, ops2c.pl, ops2pm.pl:
763        Add vtables.ops to the core
764
765        Courtesy of: Jeff Goff <jgoff@speakeasy.net>
766
7672001-11-22 18:39  simon
768
769        * core.ops, global_setup.c, docs/parrot_assembly.pod, t/op/pmc.t,
770        t/pmc/pmc.t:
771        We can now create PMCs.
772
7732001-11-21 05:49  jgoff
774
775        * Makefile.in: Makefile cleans up *.pasm *.pbc *.out
776
7772001-11-20 16:00  simon
778
779        * docs/vtables.pod, include/parrot/pmc.h:
780        Reorder PMC flags so there's a fixed number of user-defined flags.
781
782        Courtesy of: Dave Mitchell <davem@fdgroup.co.uk>
783
7842001-11-19 03:39  jgoff
785
786        * Parrot/Assembler.pm, lib/Parrot/Assembler.pm, t/op/basic.t:
787        Parrot/Assembler.pm - Allow "print 'foo'", and properly escape
788        nested quotes.  t/op/basic.t - Add tests for single-quoted strings,
789        escaped quotes, and proper                handling of newlines.
790
7912001-11-16 22:03  simon
792
793        * classes/perlint.c:
794        More work on the Perl Integer class. More needed, though.
795
7962001-11-16 21:57  simon
797
798        * pmc.c, vtable.tbl, classes/genclass.pl, classes/perlint.c:
799        Rename ->new to ->init, and rework pmc.c:pmc_new to fiddle it.
800
8012001-11-16 20:49  simon
802
803        * interpreter.c, runops_cores.c, trace.c,
804        include/parrot/runops_cores.h:
805        Kill superfluous runops cores.
806
8072001-11-16 17:50  simon
808
809        * MANIFEST, Makefile.in, classes/intclass.c, classes/perlint.c,
810        classes/perlnum.c, classes/perlstring.c, classes/scalarclass.c,
811        include/parrot/parrot.h, include/parrot/pmc.h:
812        Skeleton for Perl scalar types, done right.
813
8142001-11-16 16:15  simon
815
816        * classes/genclass.pl:
817        This tidies up genclass to deal with the new-style multimethods.
818
8192001-11-16 15:29  simon
820
821        * Makefile.in, make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
822        lib/Parrot/Vtable.pm, include/parrot/parrot.h:
823        Rework multimethods to be *true* multimethods - that is, have
824        different types.
825
8262001-11-15 22:29  simon
827
828        * MANIFEST, Makefile.in, pmc.c:
829        pmc.c linkage and support. Oh, and making it compile.
830
8312001-11-15 22:26  dan
832
833        * t/op/interp.t: Forgot to tell CVS about the test...
834
8352001-11-15 22:10  dan
836
837        * MANIFEST, Types_pm.in, core.ops, vtable_h.pl,
838        docs/parrot_assembly.pod, include/parrot/string.h: Added in support
839        for PMC registers for the interpreter.
840
841        Added in the docs for the runinterp opcode.
842
843        Added in code for both the newinterp and runinterp opcodes, so we
844        can now create new interpreters from within parrot and have them do
845        things. (Though we can't pass data back and forth. Yet)
846
8472001-11-15 21:24  simon
848
849        * vtable.tbl, classes/scalarclass.c, docs/vtables.pod:
850        More documentation, and other changes as discussed with Dan.
851
8522001-11-15 19:51  simon
853
854        * classes/scalarclass.c:
855        De-cut-and-pasto.
856
8572001-11-15 19:50  simon
858
859        * classes/scalarclass.c:
860        A little code tidiness.
861
8622001-11-15 19:33  simon
863
864        * include/parrot/pmc.h:
865        Missed this in the previous commit - un-constantize the base for
866        user-defined PMC flags.
867
8682001-11-15 19:28  simon
869
870        * classes/scalarclass.c:
871        Hey look, sanity.
872
8732001-11-15 17:09  simon
874
875        * classes/scalarclass.c:
876        It seems I have completely forgotten how to write C.
877
8782001-11-15 16:53  simon
879
880        * docs/vtables.pod:
881        Start of the PMC classes documentation.
882
8832001-11-15 14:46  simon
884
885        * classes/scalarclass.c:
886        Changing to use a Perl-style struct instead of the union cache.
887
8882001-11-13 23:56  tom
889
890        * string.c: Removed leading _ from string_index as function names
891        starting with _ are reserved to implementors by the C standard.
892
893        Also fixed string_index to use the encoding routines instead of
894        assuming a single byte encoding.
895
8962001-11-13 12:59  jgoff
897
898        * string.c: Patched string_concat to accept null strings.  That
899        test was failing. Nothing to do with ord().
900
9012001-11-13 12:43  jgoff
902
903        * string.c: string_ord function, string_concat fixes
904
9052001-11-13 04:52  jgoff
906
907        * core.ops: Added ord to core.ops
908
9092001-11-13 04:35  jgoff
910
911        * docs/strings.pod, include/parrot/exceptions.h,
912        include/parrot/string.h, t/op/string.t: core.ops - Added ord
913        operator, documentation string.c - Added string_ord, _string_index
914        (_string_index is a static helper)              Patched
915        string_concat to handle null strings properly.  docs/strings.pod -
916        Description of string_ord include/parrot/exceptions.h - Added
917        ORD_OUT_OF_STRING exception include/parrot/string.h - Added
918        string_ord() t/op/string.t - Added full set of test for
919        ord_i_(s|sc)(_(i|ic))?
920
921        string.c contains a bit of documentation explaining the logic
922        behind _string_index, primarily having to do with multiple encoding
923        formats.
924
9252001-11-12 22:30  simon
926
927        * t/op/macro.t:
928        Count 'em.
929
9302001-11-12 22:28  simon
931
932        * Makefile.in:
933        Add a rule to compile "platform"
934
9352001-11-12 22:26  simon
936
937        * Makefile.in:
938        Tidy up distclean target.
939
9402001-11-12 16:54  dan
941
942        * MANIFEST, Parrot/Assembler.pm, lib/Parrot/Assembler.pm,
943        t/op/macro.t: Fixes to the assembler's macro facility and a test
944
945        Courtesy of: Jeff <jgoff@speakeasy.net>
946
9472001-11-12 16:50  dan
948
949        * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Allow input from
950        stdin
951
952        Courtesy of: Jeff <jgoff@speakeasy.net>
953
9542001-11-12 16:36  dan
955
956        * Parrot/Test.pm, lib/Parrot/Test.pm: Fix to make test work on
957        CygWin
958
959        Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
960
9612001-11-12 11:22  simon
962
963        * examples/assembly/mops.pasm:
964
965        Trivial tightening of mops loop.
966
9672001-11-07 23:57  ajgough
968
969        * docs/tests.pod: This is a basic quide to writing tests with
970        assembler.
971
9722001-11-07 22:29  dan
973
974        * stacks.c: Added a little documentation on the cleanup parameter
975        for an entry
976
9772001-11-07 14:43  dan
978
979        * MANIFEST, platforms/generic.c, platforms/linux.c,
980        platforms/linux.h: Portability patches.
981
982        Courtesy of: Andy Dougherty <doughera@lafayette.edu>
983
9842001-11-06 19:51  tom
985
986        * Makefile.in: Clean up object files in the subdirectories as well
987        as those in the top level directory.
988
989        Enhanced version of patch from Daniel Grunblatt
990        <daniel@grunblatt.com.ar>
991
9922001-11-06 16:14  dan
993
994        * Configure.pl, MANIFEST, Makefile.in, core.ops,
995        platforms/generic.c, platforms/generic.h: Made things a bit more
996        platform-independent. Makefile still needs work to pick up changes
997        to the platform-specific files.
998
9992001-11-05 21:32  dan
1000
1001        * docs/parrot_assembly.pod: Added docs for the GC control ops
1002
10032001-11-04 02:52  gregor
1004
1005        * platforms/: win32.c, win32.h:
1006          * win32 dynamic loading functions.
1007
1008        Courtesy of Jason Diamond <jason@injektilo.org>
1009
10102001-11-04 00:04  brentdax
1011
1012        * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Assembler fixes:
1013        allows an absolute path to be used and gives a useful error message
1014        if the original source file can't be found
1015
10162001-11-02 12:37  gregor
1017
1018        * platforms/: linux.c, linux.h:
1019          * Beginning of dynamic loading support. Linux only for now.
1020
10212001-11-02 12:13  gregor
1022
1023        * MANIFEST, time.c, include/parrot/time.h:
1024          * Removed time.[hc], since they have been superseded by the new
1025        platform
1026            stuff.
1027
10282001-11-02 12:11  gregor
1029
1030        * Configure.pl, Makefile.in, core.ops, vtable.tbl,
1031        classes/intclass.c, classes/scalarclass.c, hints/mswin32.pl,
1032        include/parrot/parrot.h, platforms/linux.c, platforms/linux.h,
1033        platforms/win32.c, platforms/win32.h:
1034        Patch from Jason Diamond to make win32 platform stuff work:
1035
1036        * Modified Configure.pl, mswin32.pl, and Makefile.in so that the
1037        platform specific files in the platforms directory gets copied to
1038        the correct directories. The Makefile will re-copy the platform.h
1039        and .c files if the original is modified.
1040
1041        * #include platform.h in parrot.h instead of time.h.
1042
1043        * Removed time.h and time.obj from the Makefile. time.h and time.c
1044        aren't being used anymore since that code was moved to linux.c and
1045        win32.c.
1046
1047        * Renamed the BOOL typedef in parrot.h to BOOLVAL (inspired by
1048        INTVAL and FLOATVAL). This was conflicting with the BOOL typedef in
1049        windows.h. This required updating several files besides parrot.h.
1050
1051        * Added a DEFAULT_OPEN_MODE to linux.h and win32.h and used that
1052        instead of the missing identifiers (on Windows) in core.ops in the
1053        calls to open.
1054
1055        * Added Parrot_sleep and Parrot_setenv to both the linux and win32
1056        platform files and called those from core.ops. The Linux code for
1057        these functions came from core.ops so they should hopefully work.
1058
1059        Courtesy of Jason Diamond <jason@injektilo.org>
1060
10612001-11-02 06:43  brentdax
1062
1063        * Makefile.in, hints/mswin32.pl: Fix classes/intclass.obj building
1064        for Win32 (courtesy of Jason Diamond <jason@injektilo.org>)
1065
10662001-11-02 02:26  gregor
1067
1068        * .cvsignore, MANIFEST, include/parrot/.cvsignore,
1069        platforms/linux.c, platforms/linux.h, platforms/win32.c,
1070        platforms/win32.h:
1071          * Beginnings of platform support files in platform/*.[hc]
1072
10732001-11-01 23:37  tom
1074
1075        * classes/intclass.c: Added missing *'s to STRING arguments and
1076        return values to avoid compiler warnings.
1077
10782001-11-01 22:21  gregor
1079
1080        * MANIFEST, Makefile.in, core.ops, obscure.ops, time.c,
1081        include/parrot/parrot.h, include/parrot/time.h:
1082        Initial "fix" of time(n) op for Win32:
1083
1084          * Initial Win32 code Courtesy of Richard J Cox <rjcox@cix.co.uk>
1085
1086          * time.c and include/parrot/time.h
1087
1088            First attempt at getting this working across platforms. The
1089            macro WIN32 being tested might not be right.
1090
1091          * New functions Parrot_intval_time() and Parrot_floatval_time()
1092            wrap the appropriate functionality depending upon platform.
1093            Changed core.ops to call these.
1094
1095        Added obscure.ops with obscure transcendental ops.
1096
1097        Added simple file I/O ops (close, open, read, write):
1098
1099          * Initial versions Courtesy of Jeff <jgoff@speakeasy.net>
1100
1101          * I changed some arg ordering stuff.
1102
1103          * I added read/write of INTVALs and FLOATVALs.
1104
1105        Added environment variable ops (getenv, setenv)
1106
1107        Added system error ops (err(i) and err(s) for accessing errno and
1108        strerr().
1109
1110        Moved print ops in with other "temporary" developer ops, since
1111        they'll move to a devel.ops or temp.ops oplib once we have oplibs.
1112
11132001-10-31 22:51  tom
1114
1115        * MANIFEST, Makefile.in, chartype.c, encoding.c, global_setup.c,
1116        packfile.c, string.c, strnative.c, strutf16.c, strutf32.c,
1117        strutf8.c, transcode.c, chartypes/unicode.c, chartypes/usascii.c,
1118        encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
1119        encodings/utf8.c, include/parrot/chartype.h,
1120        include/parrot/encoding.h, include/parrot/exceptions.h,
1121        include/parrot/parrot.h, include/parrot/string.h,
1122        include/parrot/strnative.h, include/parrot/strutf16.h,
1123        include/parrot/strutf32.h, include/parrot/strutf8.h,
1124        include/parrot/transcode.h: Reworked the string code in line with
1125        Dan's latest design that separates character sets from encodings.
1126
11272001-10-31 19:53  dan
1128
1129        * docs/parrot_assembly.pod: Finished I/O section of docs
1130
11312001-10-31 16:51  dan
1132
1133        * core.ops, docs/parrot_assembly.pod, include/parrot/parrot.h:
1134        Moved includes out of core.ops and into parrot.h where they belong
1135        (suitably guarded with #ifdefs). Also some updates to
1136        parrot_assembly.pod
1137
11382001-10-30 21:43  dan
1139
1140        * core.ops, stacks.c, docs/parrot_assembly.pod,
1141        include/parrot/stacks.h: Added entrytype opcode to fetch the type
1142        of the entry on the stack
1143
11442001-10-29 18:30  dan
1145
1146        * stacks.c: You can turn off stack entry type validation on pop by
1147        passing in a type of 0 now. (For those cases where you just want to
1148        throw the darned thing away)
1149
11502001-10-29 14:37  gregor
1151
1152        * core.ops, languages/jako/jakoc:
1153          * New variants of the save ops to save constants on the stack.
1154        This is
1155            useful for saving zero arg and result counts on the stack, for
1156        example.
1157
1158          * Modified jakoc to to adapt to the newly announced calling
1159        conventions.
1160            Even though Jako source code appears to show subroutines with
1161        fixed
1162            numbers of arguments and results, they are implemented with the
1163            variable count calling convention. Future modifications will be
1164        needed
1165            to ensure that an exception is raised if the stack frame is of
1166        the
1167            wrong size (or, at least that we pop the complete frame off).
1168        We'll
1169            also have to make more changes to support the true
1170        fixed-arg-count
1171            and fixed-result-count parts of the calling convention spec.
1172
11732001-10-28 16:53  simon
1174
1175        * MANIFEST, stacks.c, classes/scalarclass.c,
1176        include/parrot/stacks.h:
1177        Unbelievably bad errors of mine, plus a type incompatibility of
1178        Dan's.
1179
11802001-10-28 08:30  simon
1181
1182        * classes/scalarclass.c:
1183        Beginning of a scalar class.
1184
11852001-10-28 08:29  simon
1186
1187        * make_vtable_ops.pl, vtable.tbl, Parrot/Vtable.pm,
1188        lib/Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
1189        include/parrot/pmc.h:
1190        This fixes the problem with vtables and pointer arithmetic.
1191
11922001-10-26 19:58  dan
1193
1194        * core.ops, interpreter.c, stacks.c, include/parrot/interpreter.h,
1195        include/parrot/stacks.h: Split the generic stack into a user push
1196        stack and a control stack
1197
11982001-10-26 02:59  bdwheele
1199
1200        * Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: [no log message]
1201
12022001-10-24 20:27  dan
1203
1204        * languages/scheme/: Makefile, Scheme.pm, schemec,
1205        Scheme/Generator.pm, Scheme/Parser.pm, Scheme/Test.pm,
1206        Scheme/Tokenizer.pm, t/harness, t/arith/basic.t, t/arith/logic.t,
1207        t/arith/nested.t, t/io/basic.t, t/logic/basic.t: Added the mini
1208        Scheme compiler
1209
12102001-10-24 20:23  dan
1211
1212        * MANIFEST, pdump.c, docs/parrot_assembly.pod: Update for
1213        interpreter needs in pdump.c. Added scheme bits to manifest
1214
12152001-10-24 16:43  gregor
1216
1217        * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
1218          * Make the assembler handle octal character code escapes in
1219        string
1220            constants.
1221
12222001-10-24 15:56  dan
1223
1224        * MANIFEST, examples/assembly/life.pasm: Added an example in to
1225        play the game of life
1226
12272001-10-24 15:54  dan
1228
1229        * core.ops: Added sleep. We'll need to override this to do events
1230        properly anyway, so...
1231
12322001-10-24 14:03  gregor
1233
1234        * Makefile.in, pbc2c.pl, pdump.c:
1235          * Adapt pdump.c and pbc2c.pl to the new requirement to pass
1236        interpreter
1237            pointer into string functions.
1238
1239        Courtesy of: Ryan O'Neil <talisman580@yahoo.com>
1240
12412001-10-23 20:09  gregor
1242
1243        * languages/jako/jakoc:
1244          * Terminological refinement in regexp capture comment.
1245
12462001-10-23 15:23  simon
1247
1248        * classes/genclass.pl:
1249        Use a saner ANSI C construct to make MIPSPro happy.
1250
1251        Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
1252
12532001-10-23 00:34  tom
1254
1255        * core.ops, string.c, strnative.c, strutf16.c, strutf32.c,
1256        strutf8.c, include/parrot/string.h: Make sure the interpreter
1257        structure is passed to the transcoder as necessary, including
1258        passing it to string_compare().
1259
12602001-10-23 00:32  tom
1261
1262        * Makefile.in: Make pdump build again by including resources.o in
1263        the link.
1264
12652001-10-22 22:43  dan
1266
1267        * core.ops, packfile.c, string.c, strnative.c, strutf16.c,
1268        strutf32.c, strutf8.c, test_main.c, transcode.c,
1269        include/parrot/packfile.h, include/parrot/parrot.h,
1270        include/parrot/resources.h, include/parrot/string.h,
1271        include/parrot/transcode.h: Everything now uses the allocators and
1272        deallocators in resources.c.
1273
1274        Unfortunately we lost standalone string-test mode, but I can cope
1275        with that.
1276
1277        Please note that until we have a real allocation/deallocation/GC
1278        system, this'll leak. A *lot*.
1279
12802001-10-22 20:27  dan
1281
1282        * MANIFEST, Makefile.in, pmc.c, resources.c,
1283        include/parrot/resources.h: First cut to handle arena allocation of
1284        PMC headers. (Amongst other things)
1285
12862001-10-22 19:02  dan
1287
1288        * Configure.pl, config_h.in, register.c, include/parrot/register.h:
1289        Now each register type has its own mask macro, which is the right
1290        thing to do.
1291
1292        Patch courtesy of Jason Gloudon <perl@gloudon.com>
1293
12942001-10-21 23:40  tom
1295
1296        * stacks.c, t/op/stacks.t: Fix bug in handling of rollover to a new
1297        stack chunk and add a test to test this rollover in future.
1298
1299        Courtesy of Jason Gloudon <perl@gloudon.com>.
1300
13012001-10-21 19:14  dan
1302
1303        * include/parrot/string.h: Changed string 'unused' field to the
1304        language field.
1305
13062001-10-21 18:18  gregor
1307
1308        * languages/jako/: Makefile, mops.jako:
1309          * Makefile: 'clean' target removes .list files, too. And, it does
1310        rm -f
1311            with wildcards rather than listing things explicitly.
1312
1313          * mops.jako actually prints out the
1314        millions-of-operations-per-second
1315            (mops) value instead of just the operations-per-second value.
1316
13172001-10-21 18:03  simon
1318
1319        * classes/intclass.o:
1320        *smack*! WRONG!
1321
13222001-10-21 17:47  simon
1323
1324        * MANIFEST, Makefile.in, make_vtable_ops.pl, pmc.c, vtable_h.pl,
1325        Parrot/Vtable.pm, classes/genclass.pl, classes/intclass.c,
1326        classes/intclass.o, include/parrot/parrot.h, include/parrot/pmc.h,
1327        lib/Parrot/Vtable.pm:
1328        Initial work on PMCs. Explanation to follow
1329
13302001-10-21 15:20  gregor
1331
1332        * examples/assembly/queens.pasm:
1333          * Modernize the calling conventions in queens.pasm. It was using
1334        swap,
1335            which now must be rotate. Also, changed to use return values on
1336        the
1337            stack instead of in I0.
1338
13392001-10-19 18:14  gregor
1340
1341        * core.ops, stacks.c, include/parrot/stacks.h,
1342        languages/jako/jakoc:
1343        Per Dan's request, replacing 'swap' op by 'rotate'.
1344
1345          * core.ops: Replaced 'swap()' by 'rotate(i|ic)'.
1346
1347          * stacks.c and stacks.h: Removed swap-related functions from my
1348            prior commit, replacing them with stack_depth(), stack_entry()
1349            and rotate_entries().
1350
1351            NOTE: The stack_depth() and rotate_entries() routines could
1352            be made more efficient through the caching of the sum of chunk
1353            'used' members from lower chunks in a field in the upper
1354            chunks. Also, if the interpreter's stack_base was changed to
1355            hold the pointer to the *top* chunk (since we usually come
1356            at the stack from the top down) instead of the *bottom*
1357            chunk. The code here at least works, and we can decide about
1358            bigger changes separately.
1359
1360            For now, rotate only handles rotates in one direction and
1361            of magnituded one. A fully general rotate would do handle
1362            rotates in both directions and of arbitrary amounts. Again,
1363            this implementation is sufficient for current applications,
1364            and a feature-complete version can be developed if this turns
1365            out to be otherwise the right type of implementation.
1366
1367            This change includes a new exception for ERROR_STACK_SHALLOW,
1368            meaning "not-empty-yet-not-deep-enough-for-what-you-asked".
1369
1370          * jakoc: Changed the calling convention to use rotate instead
1371            of swap (of course). Also changed the convention for return
1372            value passing to use the stack as well.
1373
13742001-10-19 13:36  gregor
1375
1376        * MANIFEST, core.ops, disassemble.pl, stacks.c,
1377        examples/assembly/queens.pasm, include/parrot/stacks.h,
1378        languages/jako/.cvsignore, languages/jako/Makefile,
1379        languages/jako/bench.jako, languages/jako/euclid.jako,
1380        languages/jako/fact.jako, languages/jako/jakoc,
1381        languages/jako/mandelbrot.jako, languages/jako/mops.jako,
1382        languages/jako/primes.jako, languages/jako/queens.jako,
1383        languages/jako/sub.jako:
1384          * New stack functions push_entry(), pop_entry() and swap_entry().
1385            The first two exist for the support of the last one. These
1386            functions don't care what is in the stack entries. These exist
1387            to support the new 'swap' op (see next bullet).
1388
1389          * New op 'swap' for swapping the top two elements on the stack.
1390            This is necessary for passing arguments to functions, since
1391            the return address will be on top of any arguments that have
1392            been pushed on the stack. This way, you can use a (swap, pop)
1393            pair to retrieve each argument (for subroutine linkage).
1394
1395          * Disassembler now prints numbers in decimal by default, with
1396            a new '-x' flag to turn on hexadecimal display. Since other
1397            members of the Parrot Tool Set use decimal by default, this
1398            makes it easier to compare output from the various tools.
1399
1400          * Jako compiler has more explanatory comments and the following
1401            new features:
1402
1403              * Lexically scoped variables.
1404
1405              * Subroutines that take arguments and return values:
1406
1407                  sub int foo(int bar) {
1408                    if (bar == 1) {
1409                      return 42;
1410                    } else {
1411                      return 13;
1412                    }
1413                  }
1414              * ... if (...) and ... unless (...) statement modifiers
1415                can be used on next, last and redo.
1416
1417              * Bitwise and (&, &=) and or (|, |=) ops.
1418
1419              * Type names are just 'int', 'num', 'str', and 'poly' now.
1420                The old long names 'integer', 'number', 'string', and
1421                'polytype' are no longer valid.
1422
1423              * Integer variable assignments can now use 0b (binary),
1424                0 (octal) and 0x (hexadecimal) radix prefixes on literals.
1425
1426          * New Jako and Parrot assembly examples queens.{jako,pasm} for
1427            solving the eight-queens problem. The assembly example is a
1428            hand-modified version of the assembly code produced by the
1429            Jako compiler from queens.jako. A few unnecessary ops have
1430            been removed, lots of unnecessary labels have been removed,
1431            and all the Jako source code comments have been removed.
1432
1433          * Makefile and .cvsignore in languages/jako modified so that
1434            the assembler produces listings when assembling the programs,
1435            yet the *.list files are ignored by CVS.
1436
1437          * Made the default target in languages/jako/Makefile 'all'.
1438
1439          * Modified some of the Jako examples to use some of the new
1440            features of Jako, such as subroutines and lexical variable
1441            scoping.
1442
14432001-10-19 02:43  gregor
1444
1445        * runops_cores.c, include/parrot/runops_cores.h:
1446        Bug fix (gcc doesn't complain, but MIPSpro does):
1447
1448          * Added missing extern to runops_cores array declaration in
1449            include/parrot/runops_cores.h
1450
1451          * Also added 'const' there and in runops_cores.c
1452
14532001-10-18 15:18  gregor
1454
1455        * .cvsignore, include/parrot/oplib/.cvsignore:
1456          * Ignore the vtable-related generated files.
1457
14582001-10-18 15:14  gregor
1459
1460        * core.ops:
1461          * left and right shifts now allow the 2nd argument to be a
1462        constant.
1463
14642001-10-18 14:55  simon
1465
1466        * make_vtable_ops.pl:
1467        This is C, not Perl. How on earth did that even compile?
1468
14692001-10-18 14:54  simon
1470
1471        * make_vtable_ops.pl:
1472        More vtable ops.
1473
14742001-10-18 12:33  simon
1475
1476        * Makefile.in, make_vtable_ops.pl, vtable.tbl:
1477        Initial stab at vtable opcode creation stuff.
1478
14792001-10-18 02:15  gregor
1480
1481        * MANIFEST, Makefile.in, interpreter.c, runops_cores.c, trace.c,
1482        include/parrot/interpreter.h, include/parrot/runops_cores.h,
1483        include/parrot/trace.h: Preparation for autogenerated runops cores:
1484
1485          * Split tracing and runops core stuff out of interpreter.c into
1486            trace.c and runops_cores.c
1487
1488          * Similar split of stuff from include/parrot/interpreter.h
1489
1490          * Manifest and Makefile.in updates to make things still compile.
1491
14922001-10-18 01:21  gregor
1493
1494        * Makefile.in, ops2c.pl, ops2pm.pl, pbc2c.pl: Bug fixes:
1495
1496          * Makefile.in: examples/assembly/mops.c depends on pbc2c.pl
1497
1498          * Makefile.in: Parrot/OpLib/core.pm depends on ops2pm.pl
1499
1500          * ops2c.pl: Added second arg to mkdir (perl 5.005_02 complains)
1501
1502          * ops2pm.pl: Added second arg to mkdir (perl 5.005_02 complains)
1503
1504          * pbc2c.pl: Removed explicit include of <math.h>, replacing it
1505        with
1506            copy of $ops->preamble.
1507
15082001-10-17 22:32  bdwheele
1509
1510        * interpreter.c: Moved op dump code into trace_op_dump, per Dan's
1511        request.
1512
15132001-10-17 22:08  gregor
1514
1515        * Parrot/Assembler.pm, lib/Parrot/Assembler.pm:
1516          * Now handles label-and-comment-only lines.
1517
15182001-10-17 22:04  bdwheele
1519
1520        * interpreter.c: added more comprehensive trace output
1521
15222001-10-17 16:50  tom
1523
1524        * Makefile.in: Removed the explicit rule for building mops.o from
1525        mops.c so that the implicit rule for compiling C files is used
1526        instead. This means that the chosen C flags are used, including any
1527        optimisation options.
1528
15292001-10-17 15:24  tom
1530
1531        * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm: Enhanced the
1532        op explosion logic to be able to handle exploding this:
1533
1534          sub(i, i|ic, i|ic)
1535
1536        into these:
1537
1538          sub(i, i, i)
1539          sub(i, i, ic)
1540          sub(i, ic, i)
1541
1542        without also generating this unwanted version:
1543
1544          sub(i, ic, ic)
1545
1546        The enhanced version rejects any expansion where there is more than
1547        one expanded argument and all the expanded arguments are constants.
1548
15492001-10-17 14:20  simon
1550
1551        * Makefile.in, ops2c.pl, ops2pm.pl, examples/assembly/Makefile:
1552        Build fixes to use correct Perl version and ensure that things are
1553        running in the right directory.
1554
1555        Courtesy of: Andy Dougherty <doughera@lafayette.edu>
1556
15572001-10-17 13:16  simon
1558
1559        * Makefile.in:
1560        core.pm is more critical than that.
1561
15622001-10-17 13:05  simon
1563
1564        * core.ops, Parrot/OpsFile.pm, lib/Parrot/OpsFile.pm:
1565        "Explode" ops into multiple versions for different parameters.
1566
1567        Courtesy of: Tom Hughes <tom@compton.nu>
1568
15692001-10-17 12:54  simon
1570
1571        * Makefile.in:
1572        Fix dependencies and cleaning.
1573
15742001-10-17 12:45  simon
1575
1576        * Configure.pl, Makefile.in:
1577        Fixes to make Parrot compile without the temporary build hack
1578
1579        Courtesy of: Jason Gloudon <perl@gloudon.com>
1580
15812001-10-16 20:43  gregor
1582
1583        * Makefile.in:
1584          * Fixed dependencies for building Parrot/OpLib/core.pm
1585
15862001-10-16 19:35  bdwheele
1587
1588        * core.ops, t/op/string.t: Changed set s,sc to use string_copy &
1589        added test, thanks to Alex Gough
1590
15912001-10-16 16:49  bdwheele
1592
1593        * core.ops: added opcode variants for constants and 3 arg concat
1594
15952001-10-16 15:12  bdwheele
1596
1597        * core.ops: added "set Sx,Sy" as a string copy to match the other
1598        register-to-register copies available
1599
16002001-10-16 13:09  gregor
1601
1602        * core.ops:
1603          * Added #include <sys/time.h> in the preamble for gettimeofday().
1604
16052001-10-16 13:09  gregor
1606
1607        * Makefile.in:
1608          * Removed cd t; make, which no longer applies
1609
16102001-10-16 03:18  bdwheele
1611
1612        * core.ops: fix save & restore operations to push correct type onto
1613        stack. [good eye to Jason Gloudon for noticing this]
1614
16152001-10-16 01:38  bdwheele
1616
1617        * core.ops, register.c, examples/assembly/fact.pasm,
1618        include/parrot/register.h: send in the clones:  clone routines for
1619        parrot + example program
1620
16212001-10-15 22:37  gregor
1622
1623        * MANIFEST, Makefile.in, examples/assembly/.cvsignore,
1624        examples/assembly/Makefile, examples/assembly/bsr.pasm,
1625        examples/assembly/call.pasm, examples/assembly/euclid.pasm,
1626        examples/assembly/jump.pasm, examples/assembly/local_label.pasm,
1627        examples/assembly/mops.pasm, examples/assembly/stack.pasm,
1628        examples/assembly/substr.pasm, examples/assembly/trace.pasm,
1629        t/.cvsignore, t/Makefile, t/call.pasm, t/euclid.pasm, t/jump.pasm,
1630        t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
1631        t/test4.pasm, t/test5.pasm, t/trace.pasm:
1632          * Moved examples from t/*.pasm to examples/assembly/*.pasm, with
1633        some
1634            renames so the names match what they demonstrate.
1635
16362001-10-15 22:18  gregor
1637
1638        * core.ops, t/test.pasm:
1639          * time_n uses gettimeofday() to get sub-second times.
1640
1641          * t/test.pasm uses time_n directly rather than doing int stuff
1642        and
1643            converting to num later.
1644
16452001-10-15 12:28  gregor
1646
1647        * t/: test.pasm, test2.pasm, trace.pasm:
1648          * t/test.pasm prints using string constants instead of string
1649        regs.
1650
1651          * t/test2.pasm assembles (using implicit op modes)
1652
1653          * t/trace.pasm updated for new behavior of trace_ic, which does
1654        not
1655            require an 'end' after 'trace'.
1656
16572001-10-15 00:47  gregor
1658
1659        * core.ops, interpreter.c, test_main.c,
1660        include/parrot/interpreter.h, t/test.pasm:   * New interpreter flag
1661        PARROT_PROFILE_FLAG
1662
1663          * New runops cores to handle profiling
1664
1665          * Support for -p flag in test_prog to enable profiling
1666
1667          * New profile_ic op to control profiling at run-time
1668
16692001-10-14 21:54  gregor
1670
1671        * core.ops, Parrot/OpsFile.pm, docs/.cvsignore, docs/Makefile,
1672        lib/Parrot/OpsFile.pm: Integrated op documentation.
1673
1674          * core.ops now contains POD documentation of ops, interspersed
1675        with the
1676            ops themselves
1677
1678          * Ops are organized into POD =head2 sections
1679
1680          * Parrot/OpsFile.pm now treats the preamble of the ops file as
1681        anything
1682            up to the first POD directive OR op definition.
1683
1684          * docs/Makefile now generates core_ops.pod from core.ops vi
1685        perldoc -u.
1686
16872001-10-14 11:58  simon
1688
1689        * Makefile.in:
1690        Unbreak Digital Un^W^WTru64
1691
16922001-10-14 11:00  simon
1693
1694        * Configure.pl:
1695        Remove weird typo.
1696
16972001-10-14 10:56  tom
1698
1699        * Configure.pl: Stop Configure trying to make op_info.c and op.h as
1700        op_info.c no longer exists and op.h is no longer a generated file.
1701
17022001-10-14 10:54  tom
1703
1704        * Makefile.in: Added vtable.h to the list of things removed by the
1705        clean target.
1706
17072001-10-14 01:43  gregor
1708
1709        * .cvsignore, MANIFEST, Makefile.in, basic_opcodes.ops,
1710        build_interp_starter.pl, core.ops, disassemble.pl, interpreter.c,
1711        make_op_header.pl, memory.c, opcheck.pl, opcode_table, ops2c.pl,
1712        ops2pm.pl, packfile.c, pbc2c.pl, process_opfunc.pl,
1713        Parrot/Assembler.pm, Parrot/Op.pm, Parrot/OpsFile.pm,
1714        Parrot/OpLib/.cvsignore, lib/Parrot/Assembler.pm, lib/Parrot/Op.pm,
1715        lib/Parrot/OpsFile.pm, lib/Parrot/OpLib/.cvsignore,
1716        include/parrot/.cvsignore, include/parrot/interp_guts.h,
1717        include/parrot/interpreter.h, include/parrot/op.h,
1718        include/parrot/oplib/.cvsignore, t/.cvsignore, t/Makefile,
1719        t/euclid.pasm, t/test.pasm, t/op/integer.t, t/op/number.t,
1720        t/op/stacks.t, t/op/string.t, t/op/trans.t:
1721        Moby Patch:
1722
1723          * basic_opcodes.ops and opcode_table replaced by core.ops
1724
1725          * process_opfunc.pl replaced by Parrot/OpsFile.pm, Parrot/Op.pm,
1726            and ops2c.pl. These convert *.ops to *_ops.c and
1727            include/parrot/oplib/*_ops.h
1728
1729          * New ops2pm.pl converts *.ops to Parrot/OpLib/*.pm
1730
1731          * disassemble.pl modified to use
1732
1733          * interpreter.c modified to use structures in core_ops.c instead
1734            of the old op_info and op_func stuff. We're not yet to the
1735            point of handling multiple oplibs at a time, but we are getting
1736            there...
1737
1738            Fingerprinting stuff disabled for now. We used to go off
1739            opcode_table. We need to rethink this. I have some ideas to
1740            make it unnecessary, but it remains to be seen whether others
1741            will like the direction they take us.
1742
1743            Termination condition for while(){} loop in runops is now
1744            (pc) instead of (*pc). Any op can cause a HALT by returning
1745            a NULL pointer. Ops end, bounds and trace all do this. So, now
1746            the 'end' op body is actually executed, although all it does
1747            is HALT.
1748
1749          * Makefile.in modified to perform a test build using pbc2c.pl,
1750            which is the bytecode --> C compiler I've posted to the
1751            list before.
1752
1753          * Op full names are now autogenerated. Op root names must not
1754            contain underscores, so some op renamings have happened.
1755            Such as clear_i becoming cleari.
1756
17572001-10-13 11:49  simon
1758
1759        * Configure.pl, MANIFEST:
1760        Make parrot actually build again.
1761
17622001-10-12 21:34  dan
1763
1764        * docs/parrot_assembly.pod: Added docs for the new save/restore/bsr
1765        opcodes
1766
17672001-10-12 20:56  dan
1768
1769        * MANIFEST, Makefile.in, basic_opcodes.ops, interpreter.c,
1770        opcode_table, process_opfunc.pl, stacks.c, include/parrot/stacks.h,
1771        t/test3.pasm, t/test4.pasm, t/test5.pasm: Changes to support
1772        generic stack now in. We also have subroutines, of a simple sort!
1773
17742001-10-12 19:15  tom
1775
1776        * t/op/string.t: Improved string comparison tests try all string
1777        combinations with each of the comparison ops.
1778
17792001-10-12 19:09  dan
1780
1781        * interpreter.c: Properly sets up generic stack now
1782
17832001-10-12 19:09  dan
1784
1785        * include/parrot/interpreter.h: Fixed stack chunk struct type in
1786        interpreter structure
1787
17882001-10-12 18:59  dan
1789
1790        * stacks.c, include/parrot/parrot.h, include/parrot/stacks.h: More
1791        changes to get the generic stack working
1792
17932001-10-12 18:59  dan
1794
1795        * Configure.pl, MANIFEST, config_h.in, testparrotsizes_c.in,
1796        hints/vms.pl: Made the changes to figure out mask bits for various
1797        register and stack chunks
1798
17992001-10-11 22:09  dan
1800
1801        * docs/parrot_assembly.pod: Tossed the parameter for return
1802
18032001-10-11 19:28  tom
1804
1805        * strnative.c: Assignment, not comparison.  (Plus formatted for
1806        coding standards)
1807
1808        Courtesy of Bryan C. Warnock
1809
18102001-10-10 19:21  tom
1811
1812        * basic_opcodes.ops, opcode_table, string.c, strnative.c,
1813        strutf16.c, strutf32.c, strutf8.c, docs/strings.pod,
1814        include/parrot/string.h, t/op/string.t: Added support for string
1815        comparisons and extended the comparison ops to include comparison
1816        of strings.
1817
18182001-10-10 17:58  dan
1819
1820        * MANIFEST: Shouldn't have added vtable.h to the manifest...
1821
18222001-10-10 17:54  dan
1823
1824        * MANIFEST, stacks.c, vtable_h.pl, Parrot/Vtable.pm,
1825        lib/Parrot/Vtable.pm: Now spits out the #defines for the various
1826        vtable type entries properly
1827
18282001-10-10 15:37  dan
1829
1830        * Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Re-enabled change to
1831        parse new vtable.tbl file now that I've actually checked *in* the
1832        new format vtable.tbl file...
1833
18342001-10-10 15:32  dan
1835
1836        * vtable.tbl: New Column to indicate the type of the vtabel entry
1837        so we can know how many slots it takes
1838
18392001-10-10 05:26  thgibbs
1840
1841        * Parrot/Vtable.pm, lib/Parrot/Vtable.pm, vtable_h.pl: Patch to
1842        allow parrot to compile.  PACKAGE is not defined, therefore, I
1843        added a struct before it to have it not complain until we define
1844        PACKAGE.  Also, there was an extra shift in Vtable.pm and a missing
1845        semicolon at the end of the struct declaration.
1846
18472001-10-10 05:09  thgibbs
1848
1849        * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: This patch makes
1850        string constants of the form U"string" become unicode encoded
1851        parrot strings and the form N"string" become native encoded parrot
1852        strings.
1853
1854        Courtesy of: Tom Hughes <tom@compton.nu>
1855
18562001-10-10 04:55  dan
1857
1858        * vtable_h.pl, Parrot/Vtable.pm, lib/Parrot/Vtable.pm: Start of
1859        support for generating the vtable function table offset macros
1860
18612001-10-10 01:05  simon
1862
1863        * t/op/integer.t:
1864        The test for cmod_i was using the 'mod Ix, Ix, Ix' form which
1865        compiles into the mod op, not the cmod_i op, hence wasn't testing
1866        what it thought it was.
1867
1868        Courtesy of: Alex Gough <alexander.gough@st-hughs.oxford.ac.uk>
1869
18702001-10-09 03:45  thgibbs
1871
1872        * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Patch to allow
1873        assembler to generate unicode strings.
1874
1875        Courtesy of: Tom Hughes <tom@compton.nu>
1876
18772001-10-08 19:30  brentdax
1878
1879        * Configure.pl, test_c.in, hints/vms.pl: Cleaner VMS support, more
1880        info for Parrot::Config to remember, more flexible test.c stuff
1881
18822001-10-08 15:04  gregor
1883
1884        * basic_opcodes.ops:
1885          * Removed trash from early mod_i experiments (pardon our dust)
1886
18872001-10-08 14:56  gregor
1888
1889        * basic_opcodes.ops:
1890          * Fixed a couple of typos.
1891
18922001-10-08 14:45  gregor
1893
1894        * basic_opcodes.ops, opcode_table, t/op/integer.t, t/op/number.t:
1895        Arithmetic enhancements:
1896
1897          * Renamed existing mod_i as cmod_i and added "corrected" mod_i:
1898
1899            NOTE: This "uncorrected mod" algorithm uses the C language's
1900        built-in
1901            mod operator (x % y), which is
1902
1903                ... the remainder when x is divided by y, and thus is zero
1904        when y
1905                divides x exactly.
1906                ...
1907                The direction of truncation for / and teh sign of the
1908        result for %
1909                are machine-dependent for negative operands, as is the
1910        action taken
1911                on overflow or underflow.
1912                                                                     --
1913        [1], page 41
1914
1915            Also:
1916
1917                ... if the second operand is 0, the result is undefined.
1918        Otherwise, it
1919                is always true that (a/b)*b + a%b is equal to z. I both
1920        operands are
1921                non-negative, then teh remainder is non-negative and
1922        smaller than the
1923                divisor; if not, it is guaranteed only that the absolute
1924        value of the
1925                remainder is smaller than the absolute value of the
1926        divisor.
1927                                                                     --
1928        [1], page 205
1929
1930            This op is provided for those who need it (such as
1931        speed-sensitive
1932            applications with heavy use of mod, but using it only with
1933        positive
1934            arguments), but a more mathematically useful numeric mod based
1935        on
1936            floor(x/y) and defined with y == 0 is provided by the mod_i op.
1937
1938              [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
1939        Programming
1940                  Language*, Second Edition. Prentice Hall, 1988.
1941
1942          * Added "corrected" mod_i:
1943
1944            NOTE: This "corrected mod" algorithm is based on the C code on
1945        page 70
1946            of [1]. Assuming correct behavior of C's built-in mod operator
1947        (%) with
1948            positive arguments, this algorithm implements a mathematically
1949        convenient
1950            version of mod, defined thus:
1951
1952              x mod y = x - y * floor(x / y)
1953
1954            For more information on this definition of mod, see section 3.4
1955        of [2],
1956            pages 81-85.
1957
1958            References:
1959
1960              [1] Donald E. Knuth, *MMIXware: A RISC Computer for the Third
1961                  Millennium* Springer, 1999.
1962
1963              [2] Ronald L. Graham, Donald E. Knuth and Oren Patashnik,
1964        *Concrete
1965                  Mathematics*, Second Edition. Addison-Wesley, 1994.
1966
1967          * Added mod_n, using the same formula as above, but with FLOATVAL
1968            arguments.
1969
1970          * Added cmod_n, using the C math library's fmod() function:
1971
1972            NOTE: This "uncorrected mod" algorithm uses the built-in C math
1973        library's
1974            fmod() function, which computes
1975
1976                ... the remainder of dividing x by y. The return value is x
1977        - n * y,
1978                where n is the quotient of x / y, rounded towards zero to
1979        an
1980                integer.
1981                                                -- fmod() manpage on RedHat
1982        Linux 7.0
1983
1984            In addition, fmod() returns
1985
1986                the remainder, unless y is zero, when the function fails
1987        and errno
1988                is set.
1989
1990            According to page 251 of [1], the result when y is zero is
1991        implementation-
1992            defined.
1993
1994            This op is provided for those who need it, but a more
1995        mathematically
1996            useful numeric mod based on floor(x/y) instead of truncate(x/y)
1997        and
1998            defined with y == 0 is provided by the mod_n op.
1999
2000              [1] Brian W. Kernighan and Dennis M. Ritchie, *The C
2001        Programming
2002                  Language*, Second Edition. Prentice Hall, 1988.
2003
2004          * Added and modified tests as appropriate for the above.
2005
20062001-10-08 08:49  thgibbs
2007
2008        * include/parrot/exceptions.h, include/parrot/parrot.h,
2009        include/parrot/string.h, include/parrot/strutf16.h,
2010        include/parrot/strutf32.h, include/parrot/strutf8.h,
2011        include/parrot/transcode.h, include/parrot/unicode.h, MANIFEST,
2012        Makefile.in, global_setup.c, string.c, strnative.c, transcode.c,
2013        strutf16.c, strutf32.c, strutf8.c: Added code to handle unicode
2014        strings for utf8, utf16, and utf32.
2015
2016        Courtesy of: Tom Hughes <tom@compton.nu>
2017
20182001-10-08 08:10  thgibbs
2019
2020        * memory.c: Fixed uninitialized variables.
2021
2022        Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
2023
20242001-10-08 01:21  gregor
2025
2026        * packfile.c:   * Casting a return value
2027
2028          * Potential uninitialized variable fix
2029
2030        Courtesy of Bryan C. Warnock <bwarnock@raba.com>
2031
20322001-10-08 01:15  gregor
2033
2034        * packfile.c, test_main.c: One of Bryan's languishing patches (with
2035        a few tweaks of my own):
2036
2037          * Line wrapping
2038
2039          * Printf format fixes
2040
2041        Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
2042
20432001-10-07 22:39  thgibbs
2044
2045        * build_interp_starter.pl: No longer adds (void*) casts to
2046        interp_guts.c function table as they are not necessary in ANSI C.
2047
20482001-10-07 16:27  gregor
2049
2050        * basic_opcodes.ops, interpreter.c, opcode_table,
2051        process_opfunc.pl, test_main.c, include/parrot/interpreter.h,
2052        t/trace.pasm:
2053          * Two new ops, trace_ic and bounds_ic that twiddle bits in
2054            interpreter->flags and set interpreter->resume_addr.
2055
2056          * Two new runops core variants, so now we cover the relevant
2057            flag space over {trace, notrace} x {boundscheck, noboundscheck}
2058
2059          * Runops core selection that converts the flags into an index
2060        into
2061            a core table (runops_cores) to get the core function pointer.
2062
2063          * A new trace_op variant that doesn't do bounds checking (used by
2064            the non-bounds-checking-but-tracing runops core).
2065
2066          * PC is passed into the cores so that they can be used when
2067            resuming (they used to assume starting at the beginning of the
2068            code, which would thwart resumption).
2069
2070          * runops() itself is changed to have a while() loop in it so that
2071            any time we drop out of the core, we'll resume if we have an
2072            interpreter->resume_addr set (after reselecting the core,
2073        though).
2074
2075          * process_opfunc.pl has a new "macro": RESUME(), that sets up
2076            interpreter->resume_addr. This is used by the new ops. The new
2077            ops still return the new PC as the next op (which MUST be an
2078            'end' op to force the core loop to terminate -- *pc being false
2079            is the only termination condition we can count on for all
2080        cores).
2081
2082          * New interpreter flag: PARROT_BOUNDS_FLAG, used to control
2083            bounds checking core selection.
2084
2085          * test_prog now has a '-b' flag in addition to the '-t' flag.
2086        Now,
2087            bounds checking is off by default (I saw a performance boost:
2088            6.3 Mop/s with -b, 7.0 Mop/s without).
2089
2090          * A new sample/test program: t/trace.pasm that twiddles the trace
2091            flag while it is running.
2092
20932001-10-07 15:41  gregor
2094
2095        * .cvsignore, Makefile.in, build_interp_starter.pl, interpreter.c,
2096        include/parrot/.cvsignore, include/parrot/interpreter.h:
2097        Now that 0.0.2 is released, I can clear out the backlog of approved
2098        but uncommitted patches. Here's one Dan approved on 2001-09-21
2099        (Simplified DO_OP):
2100
2101          * test_prog and pdump are linked with only the files the need,
2102        not
2103            al the files.
2104
2105          * build_interp_starter.pl writes out op_info.[hc], too. These
2106        files
2107            contain op name, arg count and arg type information. This will
2108        be
2109            useful for multiple things in the future, including better
2110        trace
2111            output and the crystalizing loader.
2112
2113          * The DO_OP macro is now simpler and doesn't require explicit
2114            temporaries.
2115
2116          * interpreter.c is modified to use the new op info in tracing
2117        output.
2118
2119          * The interpreter just points its opcode_funcs and opcode_info
2120            members at the default tables rather than allocating memory on
2121            the fly.
2122
21232001-10-07 03:58  thgibbs
2124
2125        * include/parrot/.cvsignore, vtable_h.pl: Minor updates fixing a
2126        comment and adding vtable.h to .cvsignore as it is produced by
2127        vtable_h.in
2128
21292001-10-06 20:58  thgibbs
2130
2131        * vtable.tbl: Added * to REGEX type.
2132
2133        Courtesy of Bryan C. Warnock <bwarnock@raba.com>
2134
21352001-10-06 13:41  simon
2136
2137        * MANIFEST, Makefile.in, vtable.tbl, vtable_h.pl, Parrot/Vtable.pm,
2138        include/parrot/parrot.h, lib/Parrot/Vtable.pm:
2139        Framework for vtable functions.
2140
21412001-10-06 06:52  thgibbs
2142
2143        * make_op_header.pl: Removed confusing and unused typedef.
2144
21452001-10-06 06:31  thgibbs
2146
2147        * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Removed variables that
2148        are no longer used.
2149
21502001-10-06 06:26  thgibbs
2151
2152        * disassemble.pl: Changed intval to op in disassembler.
2153
21542001-10-06 06:21  thgibbs
2155
2156        * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: Fixed typo with
2157        Assembler, local labels, and integer constants.
2158
21592001-10-06 03:11  ask
2160
2161        * Makefile.in: make `make test` actually run the tests on
2162        darwin/macosx
2163
21642001-10-06 02:04  thgibbs
2165
2166        * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
2167        Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
2168        Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
2169        include/parrot/register.h, lib/Parrot/Assembler.pm,
2170        lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
2171        lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
2172        t/op/integer.t: No, it didn't mess anything up.  I just forgot to
2173        type make. :)
2174
21752001-10-06 02:02  thgibbs
2176
2177        * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
2178        Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
2179        Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
2180        include/parrot/register.h, lib/Parrot/Assembler.pm,
2181        lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
2182        lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
2183        t/op/integer.t: oops...this messed something up.  I must have
2184        missed something in the patch...I have reverted.
2185
21862001-10-06 01:57  thgibbs
2187
2188        * Parrot/Assembler.pm, Parrot/Opcode.pm, Parrot/PackFile.pm,
2189        Parrot/String.pm, Parrot/PackFile/ConstTable.pm,
2190        Parrot/PackFile/Constant.pm, include/parrot/packfile.h,
2191        include/parrot/register.h, lib/Parrot/Assembler.pm,
2192        lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
2193        lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm,
2194        t/op/integer.t, Types_pm.in, basic_opcodes.ops, config_h.in,
2195        memory.c, packfile.c, process_opfunc.pl, strnative.c, test_main.c:
2196        This patch ensures that all bytecode is of type opcode_t except for
2197        the constant table constants.  That means that almost all of the
2198        INTVALs in the code were replaced with opcode_t and the i pack type
2199        was replaced with the op pack type in calls to pack_arg and such.
2200        Also, since it has been declared that ALL integer constants are to
2201        be 32 bits, some test cases were changed to ensure that an integer
2202        constant was no bigger than 2 ** 31.
2203
2204        process_opfunc.pl was also cleaned up to no longer look at either
2205        opcode_table or interp_guts.h but gather all of its information
2206        from Opcode.pm.
2207
2208        The Assembler.pm module was changed to do late binding of arguments
2209        so that 0 could be treated like 0.0 without having to be so
2210        declared.  Also, only strings now use the [sc:N] intermediate form
2211        as it was unnecessary for integer and float types.
2212
22132001-10-05 21:59  gregor
2214
2215        * MANIFEST, languages/jako/Makefile:
2216        Fixed things due to the movement of little_languages/* to
2217        languages/jako.
2218
22192001-10-05 18:31  gregor
2220
2221        * MANIFEST:
2222        Updated MANIFEST to reflect recent additions for Jako.
2223
22242001-10-05 17:54  gregor
2225
2226        * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
2227        fib.jako, hello.jako, jakoc, leibniz.jako, mandelbrot.jako,
2228        mops.jako, primes.jako, sub.jako:
2229          * Compiler:
2230
2231              * User-defined subroutines.
2232              * Generates assembly code with the Jako code in comments.
2233              * "end;" no longer required at the end of programs.
2234              * Better handling of const-reg and reg-const.
2235              * Optimizes const-const operations to compile-time
2236        evaluations.
2237              * Constants in addition to variables.
2238              * Arithmetic fixes.
2239              * Allow leading minus signs in integer and number constants
2240        (ahem).
2241              * goto's.
2242
2243          * New sample programs:
2244
2245              * leibniz.jako (based on Greg McCarroll's leibniz.pasm
2246        example)
2247              * mandelbrot.jako (based on Leon Brocard's translation of
2248        Glenn Rhodes' C code)
2249              * mops.jako (based on t/test.pasm)
2250              * primes.jako (based on Leon Brocard's primes.pasm example)
2251              * sub.jako (demonstrates a simple user-defined subroutine)
2252
22532001-10-05 12:54  gregor
2254
2255        * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
2256          * Removed mysterious extra copy of code after POD.
2257
22582001-10-05 12:46  gregor
2259
2260        * basic_opcodes.ops, t/op/string.t:
2261          * Enabled the previously SKIPped test of printing string regs
2262        after
2263            clear_s
2264
2265          * Made print_s do nothing if the STRING pointer in the register
2266        file
2267            is NULL.
2268
22692001-10-04 21:19  dan
2270
2271        * Configure.pl: VMS tweaks
2272
22732001-10-04 21:17  dan
2274
2275        * hints/vms.pl: Hints file for VMS
2276
22772001-10-04 00:58  bdwheele
2278
2279        * Parrot/Assembler.pm, lib/Parrot/Assembler.pm: fixed but in
2280        Assembler which stopped equates from working.
2281
22822001-10-03 21:50  gregor
2283
2284        * Makefile.in, docs/.cvsignore, docs/Makefile, docs/parrotbyte.pod:
2285
2286          * More documentation updates for the packfile stuff.
2287
22882001-10-03 21:37  gregor
2289
2290        * docs/parrotbyte.pod:
2291          * Pointed the reader at Parrot::PackFile.
2292
22932001-10-03 21:34  gregor
2294
2295        * Parrot/PackFile.pm, lib/Parrot/PackFile.pm:
2296          * Updated documentation to match current implementation.
2297
22982001-10-03 18:30  gregor
2299
2300        * .cvsignore, disassemble.pl, Parrot/Assembler.pm,
2301        lib/Parrot/Assembler.pm, t/call.pasm, t/euclid.pasm,
2302        t/local_label.pasm, t/test.pasm, t/test2.pasm, t/test3.pasm,
2303        t/op/basic.t:
2304          * Added new syntax to the assembler to allow square-bracket
2305            arithmetic expressions involving (global) labels, the current
2306            instructions base address ('@'), numeric constants (not
2307        equates)
2308            and basic arithmetic operators (+, -, *, / -- although + and -
2309            are likely to be the only ones used in practice).
2310
2311          * Fixed a bug in Parrot/Assemble.pl that caused macro expansion
2312        to
2313            fail (argument passing wasn't working).
2314
2315          * Enabled t/op/basic.t's last test, which is actually a copy of
2316        the
2317            code from t/call.pasm. Now all tests there are enabled and
2318        working.
2319
2320          * Added new example/test program t/call.pasm to demonstrate
2321        working
2322            macros and poor-man's subroutine calls
2323
2324          * Added header comments to t/*.pasm
2325
23262001-10-03 18:00  simon
2327
2328        * ChangeLog:
2329        Needed, since it's in the MANIFEST.
2330
23312001-10-03 17:56  simon
2332
2333        * t/op/: string.t, time.t:
2334        Small fixes to help Win32 on its way.
2335
23362001-10-03 17:41  simon
2337
2338        * MANIFEST, README:
2339        Oops. Tiny bugs.
2340
23412001-10-03 17:39  simon
2342
2343        * MANIFEST, NEWS, README:
2344        README, NEWS and MANIFEST? Could it be time for Parrot 0.0.2? I
2345        think so!
2346
23472001-10-03 17:21  simon
2348
2349        * basic_opcodes.ops, interpreter.c, packfile.c:
2350        Evil printf bandaid (which allows Sparc64 to pass tests)
2351
2352        Courtesy of: Andy Dougherty <doughera@lafayette.edu>
2353
23542001-10-03 16:58  simon
2355
2356        * string.c, t/op/string.t:
2357        chop fixes for n < 0 and tests
2358
2359        Courtesy of: Alex Gough <alex@rcon.org>
2360
23612001-10-03 15:51  thgibbs
2362
2363        * interpreter.c: Changed an occurrence of INTVAL to opcode_t
2364
2365        Courtesy of: Bryan C. Warnock <bwarnock@raba.com>
2366
23672001-10-02 17:48  dan
2368
2369        * include/parrot/stacks.h: Fix typo in function name
2370
23712001-10-02 17:35  dan
2372
2373        * include/parrot/stacks.h: changed to support new stack stuff
2374        coming after 0.02
2375
23762001-10-02 15:01  simon
2377
2378        * Configure.pl, Types_pm.in, basic_opcodes.ops, config_h.in,
2379        interpreter.c, make_op_header.pl, memory.c, packfile.c,
2380        process_opfunc.pl, register.c, string.c, strnative.c,
2381        Parrot/Opcode.pm, Parrot/PackFile.pm, Parrot/String.pm,
2382        lib/Parrot/Opcode.pm, lib/Parrot/PackFile.pm, lib/Parrot/String.pm,
2383        Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
2384        docs/overview.pod, docs/strings.pod, include/parrot/interpreter.h,
2385        include/parrot/memory.h, include/parrot/packfile.h,
2386        include/parrot/parrot.h, include/parrot/register.h,
2387        include/parrot/stacks.h, include/parrot/string.h,
2388        lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
2389
2390        The Great Renaming.
2391
23922001-10-02 12:49  gregor
2393
2394        * process_opfunc.pl:
2395          * Fixed a tyop:  s/string/integer/ for INT_CONST expansion
2396
23972001-10-02 12:40  simon
2398
2399        * basic_opcodes.ops, process_opfunc.pl, register.c,
2400        include/parrot/register.h:
2401        Move preprocessing of register accessors to process_opfunc.pl
2402
2403        Courtesy of: Jason Gloudon <perl@gloudon.com>
2404
24052001-10-02 01:20  ask
2406
2407        * README: add a few lines about lists.
2408
24092001-10-01 23:00  brentdax
2410
2411        * Configure.pl, Makefile.in, hints/mswin32.pl: Make 'make clean'
2412        work on Win32 (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
2413
24142001-10-01 22:50  brentdax
2415
2416        * Configure.pl, test_c.in: More changes for 64-bit compatibility
2417
24182001-10-01 21:51  simon
2419
2420        * process_opfunc.pl:
2421        Michael Fischer's patch broke conditionals.
2422
24232001-10-01 15:38  simon
2424
2425        * process_opfunc.pl:
2426        Small hack to keep process_opfunc.pl from generating extra return()
2427        statements.
2428
2429        Courtesy of: Michael Fischer <michael@visv.net>
2430
24312001-10-01 15:32  simon
2432
2433        * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
2434        Documentation fix.
2435
2436        Courtesy of: Josh Wilmes <josh@hitchhiker.org>
2437
24382001-10-01 01:49  simon
2439
2440        * packfile.c:
2441        Simon is an idiot. Don't trust him with your code.
2442
2443        Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
2444
24452001-10-01 00:59  simon
2446
2447        * Parrot/String.pm, lib/Parrot/String.pm:
2448        Was in manifest, but not in CVS.
2449
24502001-09-30 21:25  simon
2451
2452        * MANIFEST, Types_pm.in, assemble.pl, basic_opcodes.ops,
2453        disassemble.pl, packfile.c, pdump.c, process_opfunc.pl,
2454        Parrot/Assembler.pm, Parrot/PackFile.pm,
2455        Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
2456        Parrot/PackFile/FixupTable.pm, lib/Parrot/Assembler.pm,
2457        lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
2458        lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm,
2459        include/parrot/packfile.h, include/parrot/string.h:
2460        Move NVs to the constant table.    * Changes to Types_pm.in to make
2461        life easier for some of the      packing/etc. I'm doing elsewhere.
2462        Also, we now pack 'n' as      'i'.
2463
2464          * Moved the guts of assemble.pl to Parrot/Assembler.pm so that
2465            eventually we can use all these tools together inside scripts
2466            rather than call out to the shell to run the programs.
2467
2468          * As I was tracking down problems, I converted the internal
2469            documentation of the assembler to POD from comments.
2470
2471          * Changed the numeric regexp in the assembler to detect leading
2472            signs and trailing exponents.
2473
2474          * Updated basic_opcodes.ops to fetch numeric constants from the
2475            constant table.
2476
2477          * Enhanced the disassembler in a number of ways to make my life
2478            easier while tracking down bugs (try it out). It now puts in
2479            labels for ops that are the destinations of flow control ops.
2480
2481          * packfile.c now has a TRACE_PACKFILE switch that can be set
2482            to get it to print info as it processes. I needed this while
2483            debugging, but I can remove it or change it before committing
2484            if its a problem.
2485
2486          * Updated pdump.c because it was missing a call to init_world().
2487
2488          * Updated process_opfunc.pl to deal with numeric constants
2489            being stored in the constant table instead of inline.
2490
2491          * Added multiple type support to Parrot/PackFile/Constant.pm
2492
2493          * Added Parrot/String.pm, to be used for constants.
2494
2495          * Added packfile.[hc] functions for allocating new constants
2496            of various types.
2497
2498          * Made string_copy visible to the world in parrot/string.h.
2499
2500        Wow.
2501
2502        Courtesy of: Gregor N. Purdy <gregor@focusresearch.com>
2503
25042001-09-29 15:56  gregor
2505
2506        * languages/jako/Makefile:
2507        Removed assumption that '.' is on the path.
2508
25092001-09-29 15:55  gregor
2510
2511        * languages/jako/Makefile:
2512        Removed references to leibnitz test program.
2513
25142001-09-29 15:21  thgibbs
2515
2516        * t/op/trans.t, basic_opcodes.ops: Added NV casts to transcendental
2517        math ops args to work on Solaris.
2518
25192001-09-27 15:15  thgibbs
2520
2521        * assemble.pl: Added case insensitive matches to hex and binary
2522        characters
2523
2524        Courtesy of: Johnathan Scott Duff <duff@cbi.tamucc.edu>
2525
25262001-09-27 04:46  thgibbs
2527
2528        * assemble.pl: This patch makes integer constants of the form
2529        0b[01]+ work with perl 5.005.  The oct function in versions of perl
2530        before 5.6 did not handle the 0b numeric prefix; therefore, it was
2531        returning 0.  To fix this, I added a from_binary function that
2532        would take a binary string and return its decimal representation.
2533        Now, instead of blindly calilng oct, it makes a distinction between
2534        0/0x numbers and 0b numbers.
2535
25362001-09-26 19:30  thgibbs
2537
2538        * assemble.pl: Error now returns a non-zero status
2539
2540        Courtesy of: Andrew Kuchling <akuchlin@mems-exchange.org>
2541
25422001-09-26 19:13  gregor
2543
2544        * MANIFEST, Makefile.in, basic_opcodes.ops, bytecode.c,
2545        interpreter.c, packfile.c, pdump.c, test_main.c,
2546        include/parrot/bytecode.h, include/parrot/interpreter.h,
2547        include/parrot/packfile.h, include/parrot/parrot.h, t/op/integer.t,
2548        t/op/stacks.t:
2549          * bytecode.[hc] removed. packfile.[hc] are the interface to the
2550            packfile/bytecode file from C. May be renamed in the future.
2551
2552          * packfile.[hc] changed to use 'struct PackFile *', etc. instead
2553            of 'PackFile *', just like the interpreter, etc.
2554
2555          * Constants are accessed via the interpreter's 'code' member
2556            (struct PackFile * code). Macros PCONST(i) and PNCONST are
2557            provided to access constants by index and the number of
2558            constants, respectively (assumes a variable 'interpreter' of
2559            the appropriate type is in scope).
2560
2561          * Byte Code is accessed via the interpreter's 'code' member.
2562
2563          * Changed PackFile_Constant to point to a STRING instead of
2564        having
2565            members for the string_make() arguments. Also has a 'type' IV
2566            in preparation for allowing multiple types of constants in
2567            const_table.
2568
2569          * Removed hardcoded example program from test_main.c. We have
2570            plenty of test programs elsewhere.
2571
2572          * test_prog now uses a PackFile to deal with the program before
2573            sending it on to the interpreter.
2574
2575          * Added missing 'end' ops to some tests in t/op/integer.t and
2576            t/op/stacks.t.
2577
25782001-09-26 18:38  thgibbs
2579
2580        * assemble.pl: Separated code into functions and added comments.
2581
25822001-09-26 18:29  simon
2583
2584        * config_h.in:
2585        Fix 64-bit chunk-base issue.
2586
25872001-09-26 06:55  thgibbs
2588
2589        * t/op/bitwise.t: Added end to bitwise tests.
2590
25912001-09-26 00:54  dan
2592
2593        * docs/parrot_assembly.pod: Added in the base for threading, I/O,
2594        and interpreter creation. Skeleton only, but it's something to peer
2595        at.
2596
25972001-09-25 21:44  thgibbs
2598
2599        * t/op/trans.t: Removed loops in transcendtal op test.
2600
26012001-09-25 10:12  simon
2602
2603        * MANIFEST, t/op/basic.t, t/op/bitwise.t, t/op/integer.t,
2604        t/op/string.t, t/op/time.t:
2605        More tests
2606
2607        Courtesy of: Alex Gough <alex@rcon.org>
2608
26092001-09-24 19:08  gregor
2610
2611        * t/op/number.t:
2612          * Enabled the clear_n test.
2613
26142001-09-24 18:56  gregor
2615
2616        * Parrot/.cvsignore:
2617          * Ignore the generated Types.pm file.
2618
26192001-09-24 18:52  gregor
2620
2621        * languages/jako/Makefile, t/op/number.t:
2622          * No need to skip the inc and dec numeric tests anymore. I fixed
2623        the
2624            assembler earlier today.
2625
26262001-09-24 18:21  simon
2627
2628        * MANIFEST, t/op/stacks.t:
2629        Oops.
2630
26312001-09-24 18:19  simon
2632
2633        * build_interp_starter.pl, interpreter.c, string.c, Parrot/Test.pm,
2634        include/parrot/exceptions.h, include/parrot/interpreter.h,
2635        lib/Parrot/Test.pm, t/op/string.t:
2636        1) captured error output, so can test errors, this might be bad,
2637        not sure.  2) basic tests for register stack frames, including some
2638        errors 3) I think we can stop skipping one of the string tests 4) I
2639        added some more substr tests, but substr was broken, so 5) changed
2640        substr to work with out of range values, or 6) throw an error if
2641        they're far too silly
2642
2643        Courtesy of: Alex Gough <alex@rcon.org>
2644
26452001-09-24 17:27  gregor
2646
2647        * basic_opcodes.ops, opcode_table, t/op/number.t:
2648          * Op set_n was missing. Added it and a test for it. We now have
2649        the
2650            same int and num ops, except mod is int-only.
2651
26522001-09-24 17:01  gregor
2653
2654        * assemble.pl:
2655          * Fixed a typo: s/Line/line/
2656
26572001-09-24 16:02  gregor
2658
2659        * basic_opcodes.ops:
2660          * Fixed dec_n_nc opcode, which had += where it should have had
2661        -=.
2662
26632001-09-24 15:34  gregor
2664
2665        * assemble.pl:
2666          * Fixed handling of constants starting with '0' that should not
2667        be
2668            sent through oct(). For example 'set N2 0.1' was being
2669        interpreted
2670            as 'set N2 0' (naughty).
2671
2672            As reported by Leon Brocard <acme@astray.com> in the comments
2673        of
2674            his mandelbrot.pasm example.
2675
26762001-09-24 02:21  bdwheele
2677
2678        * assemble.pl: fixed dumb code when --include was not specified.
2679
26802001-09-24 02:17  simon
2681
2682        * assemble.pl:
2683        Shit-sweeping.
2684
26852001-09-24 01:56  bdwheele
2686
2687        * assemble.pl: * Added --include=dir option to assembler to provide
2688        a path to look for included files.  * Error message of a macro is
2689        defined inside of a macro
2690
26912001-09-23 21:29  bdwheele
2692
2693        * assemble.pl: Added __FILE__ equate, fixed __LINE__ equate.
2694
26952001-09-23 15:50  simon
2696
2697        * Configure.pl:
2698        Fixed typo. Parrot might work again on non-8.3 filesystems. :)
2699
27002001-09-23 02:03  ask
2701
2702        * Configure.pl, test_c.in: fix missing newline at the end of test.c
2703        Courtesy of: acme@astray.com (Leon Brocard)
2704
2705        rename 'test' executable used in Configure process to test_siz.
2706
27072001-09-23 01:03  simon
2708
2709        * process_opfunc.pl:
2710        iPaq fix. No, really.
2711
27122001-09-23 00:47  simon
2713
2714        * MANIFEST:
2715        Missed several, in fact.
2716
27172001-09-23 00:46  simon
2718
2719        * MANIFEST:
2720        Missed one.
2721
27222001-09-22 21:13  simon
2723
2724        * assemble.pl:
2725        Assembler register numbering rigour.
2726
2727        Courtesy of: Leon Brocard <acme@astray.com>
2728
27292001-09-22 18:20  simon
2730
2731        * Makefile.in, lib/Test/More.pm, lib/Test/Simple.pm,
2732        lib/Test/Utils.pm:
2733        I'm sick of having to install Test::More everywhere. Temporary
2734        measure until we remove this silly dependency.
2735
2736        Also a typo in Makefile.in which suggests some things were only
2737        happening correctly by sheer chance. :)
2738
27392001-09-22 18:06  simon
2740
2741        * README:
2742        test.pasm is dead, long like make test.
2743
27442001-09-22 17:47  simon
2745
2746        * t/op/number.t:
2747        De-fang overzealous floating point test.
2748
27492001-09-22 17:39  simon
2750
2751        * process_opfunc.pl:
2752        Remove hard-coded NV size assumption. Tru64 is nearly there!
2753
27542001-09-22 17:18  simon
2755
2756        * assemble.pl, disassemble.pl:
2757        More portability fixups.
2758
27592001-09-22 16:44  simon
2760
2761        * assemble.pl, Parrot/PackFile/Constant.pm,
2762        lib/Parrot/PackFile/Constant.pm:
2763        And I *think* this fixes Tru64.
2764
27652001-09-22 16:37  simon
2766
2767        * Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/ConstTable.pm:
2768
2769        Oops.
2770
27712001-09-22 16:36  simon
2772
2773        * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
2774        Parrot/PackFile/Constant.pm, lib/Parrot/PackFile.pm,
2775        lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
2776
2777        More removal of hard-coded pack formats.
2778
27792001-09-22 15:21  simon
2780
2781        * assemble.pl:
2782
2783        Grrr. Why isn't this working?
2784
27852001-09-22 15:18  simon
2786
2787        * Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
2788        lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm:
2789
2790        Make assemble use the PackFile modules; also fixed some bugs in
2791        them.
2792
27932001-09-22 14:38  simon
2794
2795        * Configure.pl, MANIFEST, Types_pm.in, assemble.pl, disassemble.pl:
2796
2797        Abstract the argument and opcode packing types and functions out
2798        into a separate module. This *should* help us maintain consistency
2799        when we change the various types.
2800
28012001-09-22 00:46  brentdax
2802
2803        * Configure.pl: Delete test.o (or its equivalent) after Configure's
2804        test program finishes.
2805
28062001-09-21 21:24  brentdax
2807
2808        * Parrot/Test.pm, lib/Parrot/Test.pm: Fix error with \ as path
2809        separator (courtesy of Mattia Barbon <mbarbon@dsi.unive.it>)
2810
28112001-09-21 21:09  gregor
2812
2813        * Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
2814        lib/Parrot/PackFile/ConstTable.pm, lib/Parrot/PackFile/Constant.pm:
2815
2816          * Fixed pad calculation (similar to recent bug fix on C library)
2817
28182001-09-21 20:23  simon
2819
2820        * disassemble.pl:
2821        Pack types and sizes have gone askew.
2822
28232001-09-21 20:18  brentdax
2824
2825        * Configure.pl: Fix typo in setting stuff from the C test program
2826
28272001-09-21 10:25  simon
2828
2829        * basic_opcodes.ops, process_opfunc.pl:
2830        Document patches.
2831
2832        Courtesy of: Leon Brocard <acme@astray.com>
2833
28342001-09-21 06:06  ask
2835
2836        * Config_pm.in, assemble.pl: fix 5.005_03.
2837
28382001-09-21 06:03  ask
2839
2840        * Configure.pl: make the ivsize detection work for us normal people
2841        without . in our PATH.  :-)
2842
28432001-09-21 05:56  brentdax
2844
2845        * test_main.c: Change _read to read for portability to Tru64
2846        (Damien Neil <neild@misago.org> and likely many others)
2847
28482001-09-21 05:46  ask
2849
2850        * Makefile.in: "update" target to update from cvs.
2851
28522001-09-21 05:44  brentdax
2853
2854        * Configure.pl, test_c.in: Fix issues with ivsize and nvsize
2855
28562001-09-21 02:43  brentdax
2857
2858        * Configure.pl: Fix a typo that forced the -g flag on
2859
28602001-09-20 22:41  dan
2861
2862        * packfile.c: Had some no-value returns. Naughty
2863
28642001-09-20 22:40  dan
2865
2866        * t/test.pasm: Added labels to output
2867
28682001-09-20 15:39  simon
2869
2870        * Parrot/Opcode.pm, Parrot/Test.pm, lib/Parrot/Opcode.pm,
2871        lib/Parrot/Test.pm:
2872        This patch does two only somewhat related things.
2873
2874        Parrot/Opcode.pm:  Change the hard-wired assumption that sizeof(nv)
2875        = 2*sizeof(iv) to a PConfig-type computed value.
2876
2877        Parrot/Test.pm:  Change it to run with the perl that was used to
2878        generate this version of Parrot.  This is useful if, for example,
2879        you want to use bleadperl to build and test parrot (e.g. to try out
2880        various 64-bit options) but you still have a 5.6.x (or 5.005_xx)
2881        installed as the default 'perl' on your system.  Since perl-5.7.x
2882        is installed 'version-only', a plain 'perl' is quite likely to pick
2883        up the older perl in such cases. Such an older perl might well not
2884        understand pack('q') used in the assembler.
2885
2886        Courtesy of: Andy Dougherty <doughera@lafayette.edu>
2887
28882001-09-20 15:14  gregor
2889
2890        * packfile.c:
2891          * Fixed a typo in pad calculation that throwing off unpack and
2892        pack.
2893
28942001-09-20 15:03  thgibbs
2895
2896        * t/op/integer.t: Removed overflow tests from integer.t.  set_i_ic
2897        tests now cover all registers.
2898
2899        Courtesy of: Damien Neil neild@misago.org
2900
29012001-09-20 14:48  thgibbs
2902
2903        * process_opfunc.pl: Changed process_opfunc.pl to work on 64 bit
2904        machines.
2905
29062001-09-20 14:35  simon
2907
2908        * Configure.pl, assemble.pl:
2909        Pack IVs correctly.
2910
2911        Courtesy of: Andy Dougherty <doughera@lafayette.edu>
2912
29132001-09-20 14:06  gregor
2914
2915        * languages/jako/jakoc:
2916          * Fixed a tyop in the string interpolation regex.
2917
2918        Courtesy of Michael L Maraist <maraist@UDel.Edu>
2919
29202001-09-20 13:56  gregor
2921
2922        * languages/jako/jakoc:
2923          * Updated jakoc to work with the single-destination comp ops.
2924
29252001-09-20 05:08  bdwheele
2926
2927        * assemble.pl: macro expansion.  Here's the test macro I was using:
2928
2929        # this uses I32,I31 as temporaries.  # macro must be preceeded by a
2930        label.  testi       macro   num,got,want    print   "Test #"
2931        print   num     print   "..."   set     I32,want        set
2932        I31,got         eq      I32,I31,$ok     print   "NG\n"  branch
2933        $end $ok:       print   "OK\n" $end:    endm
2934
2935        It is invoked as:
2936
2937        Test1:  testi   1,I3,I2
2938
29392001-09-20 03:52  dan
2940
2941        * stacks.c, include/parrot/stacks.h: Preliminary files for the
2942        generic stack support
2943
29442001-09-20 02:49  bdwheele
2945
2946        * assemble.pl: Added include processing to assemble.pl  the syntax
2947        is: include 'file.to.include'
2948
29492001-09-19 23:57  thgibbs
2950
2951        * t/op/integer.t, t/op/number.t, assemble.pl, opcode_table: Fixed
2952        opcode_table listing of if_i_ic and if_n_ic.  Dan had changed the
2953        function to only use 2 args, but the opcode_table still had three
2954        listed.  Fixed integer.t and number.t to use the new comparison
2955        operators.  Improved assemble.pl ability to grok operators by
2956        constructing a function set and comparing operator types.
2957
29582001-09-19 22:42  dan
2959
2960        * assemble.pl: Binmodes the output filehandles now. (No more
2961        bytecode munching...)
2962
29632001-09-19 22:32  dan
2964
2965        * Configure.pl, basic_opcodes.ops, opcode_table, process_opfunc.pl,
2966        t/euclid.pasm, t/test.pasm, t/test2.pasm: Changed opcodes so
2967        conditional branches take a single argument, and fall through
2968        otherwise.
2969
29702001-09-19 21:19  thgibbs
2971
2972        * memory.c: Added explanation of mem_allocate_aligned give by Dan
2973        Sugalski
2974
2975        Courtesy of: Josh Wilmes <josh@hitchhiker.org>
2976
29772001-09-19 21:04  thgibbs
2978
2979        * include/parrot/interpreter.h, Configure.pl,
2980        build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
2981        process_opfunc.pl: Changed opcode_t from a union to a configurable
2982        type.
2983
29842001-09-19 20:54  thgibbs
2985
2986        * assemble.pl: Missed a couple of changes for 64 bit portability.
2987
29882001-09-19 20:37  gregor
2989
2990        * packfile.c, include/parrot/packfile.h:
2991          * Added "methods" for setting and getting all the various
2992        attributes,
2993            probably sufficient for an assembler to use the library.
2994
29952001-09-19 20:04  thgibbs
2996
2997        * assemble.pl: Modifications to run on 64 bit platforms.  To run on
2998        a 64 bit platform manually change the  setting for 'i' from 'l' to
2999        'q'.  This should be automatically done by a Configure setting in
3000        the near future.
3001
30022001-09-19 19:10  thgibbs
3003
3004        * config_h.in: changed c++ comment to c comment.
3005
3006        Courtesy of: Andy Dougherty <doughera@lafayette.edu>
3007
30082001-09-19 17:48  gregor
3009
3010        * .cvsignore, MANIFEST, Makefile.in, packfile.c, pdump.c,
3011        include/parrot/packfile.h:
3012          * C code for dealing with PackFiles as if they were objects.
3013        Mostly
3014            read-only interface for now, but it would not be hard to make
3015        it
3016            read-write. [packfile.c, include/parrot/packfile.h]
3017
3018          * PackFile Dumping program that falls short of disassembling, but
3019            tests the above code and provides a hex listing of the byte
3020        code
3021            contents of the PackFile. [pdump.c]
3022
3023          * New Makefile target 'pdump' for the above program, and related
3024            Makefile.in changes.
3025
3026          * Updated MANIFEST to reflect the added files
3027
3028          * Update .cvsignore to ignore pdump.
3029
30302001-09-19 14:55  thgibbs
3031
3032        * MANIFEST: Added number.t and trans.t to MANIFEST
3033
30342001-09-19 05:40  thgibbs
3035
3036        * process_opfunc.pl: Now taking & of opcode_t instead of i member
3037        of union opcode_t.  I hope this will be more portable for set_n_nc.
3038
30392001-09-19 05:39  thgibbs
3040
3041        * t/op/integer.t: Added end to test 1.
3042
30432001-09-19 00:09  thgibbs
3044
3045        * t/op/number.t: Added end to each test
3046
30472001-09-19 00:00  simon
3048
3049        * t/op/number.t:
3050        Number tests! Wooo!
3051
3052        Courtesy of: Damien Neil <neild@misago.org>
3053
30542001-09-18 23:52  thgibbs
3055
3056        * interpreter.c: Added casts to appropriate types to make -Wall not
3057        complain on certain printf formats
3058
30592001-09-18 23:31  thgibbs
3060
3061        * t/op/integer.t: Added end to each test.
3062
30632001-09-18 22:54  thgibbs
3064
3065        * t/op/trans.t: Added trans.t for transcendental math function
3066        tests.
3067
30682001-09-18 22:28  simon
3069
3070        * MANIFEST:
3071        MANIFEST updates. (And notice how I carefully snuck in the
3072        t/op/integer.t there...)
3073
3074        Courtesy of: Andy Dougherty <doughera@lafayette.edu>
3075
30762001-09-18 22:26  simon
3077
3078        * t/: integer.t, op/integer.t:
3079        Except it doesn't go there. Duh.
3080
30812001-09-18 22:25  simon
3082
3083        * t/integer.t:
3084        Tests for integer ops.
3085
3086        Courtesy of: Damien Neil <neild@misago.org>
3087
30882001-09-18 22:03  thgibbs
3089
3090        * include/parrot/bytecode.h, include/parrot/interpreter.h,
3091        build_interp_starter.pl, bytecode.c, config_h.in, interpreter.c,
3092        make_op_header.pl, process_opfunc.pl, test_main.c: Changed IV to
3093        opcode_t union for operators.  This required a few perl script
3094        changes to output the correct type.  There were also some changes
3095        to allow -pedantic in gcc
3096
30972001-09-18 21:07  gregor
3098
3099        * disassemble.pl, Parrot/PackFile.pm,
3100        Parrot/PackFile/ConstTable.pm, Parrot/PackFile/Constant.pm,
3101        lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
3102        lib/Parrot/PackFile/Constant.pm:
3103        Converted the disassembler to use the Parrot::PackFile Perl classes
3104        to do its job.
3105
31062001-09-18 19:18  brentdax
3107
3108        * Makefile.in: Fix missing functions for real this time.  (I
3109        swear!)
3110
31112001-09-18 18:49  brentdax
3112
3113        * Configure.pl: Remove unnecessary -I.. (courtesy of Andy Dougherty
3114        <doughera@lafayette.edu>}
3115
31162001-09-18 18:47  brentdax
3117
3118        * Makefile.in: Fix bugs with missing math, etc. functions
3119
31202001-09-18 14:42  thgibbs
3121
3122        * strnative.c: Sorry Simon...forgot bustart was a void* not a
3123        char*.
3124
31252001-09-18 13:59  thgibbs
3126
3127        * strnative.c: Removed unnecessary IV cast in concat.
3128
31292001-09-18 13:58  thgibbs
3130
3131        * t/op/string.t: Removed unnecessary IV cast in concat.  Added end
3132        to concat test in string.t
3133
31342001-09-18 12:07  gregor
3135
3136        * languages/jako/jakoc:
3137          * var num ... no longer requires assignment
3138          * automatic casting between int and num
3139          * Fixed an error message
3140
3141        Courtesy of: Simon Cozens <simon@cvs.perl.org>
3142
31432001-09-18 11:57  simon
3144
3145        * TODO:
3146        Gonna have to start thinking of more things to do, soon.
3147
31482001-09-18 10:42  simon
3149
3150        * opcode_table:
3151        Introduce a little more tidiness into the opcode table.
3152
31532001-09-18 03:06  gregor
3154
3155        * basic_opcodes.ops, opcode_table, t/euclid.pasm:
3156        Resurrected register-const ops per Dan's request.
3157
31582001-09-18 02:20  gregor
3159
3160        * .cvsignore, Configure.pl, MANIFEST, Makefile.in,
3161        build_interp_starter.pl, bytecode.h, events.h, exceptions.h,
3162        global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
3163        process_opfunc.pl, register.h, stacks.h, string.h, strnative.h:
3164        Committed some files that were missed in the last *.h moving
3165        commit.
3166
31672001-09-18 02:17  gregor
3168
3169        * include/parrot/.cvsignore: Fixed a typo in .cvsignore.
3170
31712001-09-18 02:16  gregor
3172
3173        * include/parrot/: .cvsignore, bytecode.h, events.h, exceptions.h,
3174        global_setup.h, interpreter.h, io.h, memory.h, parrot.h,
3175        register.h, stacks.h, string.h, strnative.h: Added .cvsignore file
3176        missed in last commit for the move of *.h to include/parrot.
3177
31782001-09-18 01:32  simon
3179
3180        * t/Makefile:
3181        Trivial "clean" target to t/Makefile.
3182
31832001-09-18 01:32  simon
3184
3185        * assemble.pl, build_interp_starter.pl, disassemble.pl,
3186        Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
3187        Change icky Digest::MD5 for nice simple unpack()
3188
3189        Courtesy of: Jonathan Scott Duff <duff@cbi.tamucc.edu>
3190
31912001-09-18 00:35  simon
3192
3193        * basic_opcodes.ops, opcode_table, docs/parrot_assembly.pod,
3194        t/op/string.t:
3195        New concat op. Hey, if I'm going to talk about it in an article,
3196        better implement it...
3197
31982001-09-17 22:54  gregor
3199
3200        * MANIFEST, Parrot/PackFile.pm, Parrot/PackFile/ConstTable.pm,
3201        Parrot/PackFile/Constant.pm, Parrot/PackFile/FixupTable.pm,
3202        lib/Parrot/PackFile.pm, lib/Parrot/PackFile/ConstTable.pm,
3203        lib/Parrot/PackFile/Constant.pm, lib/Parrot/PackFile/FixupTable.pm:
3204
3205        Functions for reading, writing and manipulating Parrot Pack Files.
3206        NOTE: This is a proposed term based on the fact that the file
3207        contains more than just byte code, and another language (Java)
3208        calls its binary files by a broader notion of what's in them (Class
3209        Files). Since Perl has packages, and since we use pack() to write
3210        them, we'll call them PackFiles (at least for now).
3211
3212        That does, however, beg the question of file extension. Should we
3213        name the files "foo.pack" instead of "foo.pbc"?
3214
32152001-09-17 20:23  thgibbs
3216
3217        * interpreter.c, test_main.c: Uncuddled else statements for coding
3218        standard.
3219
32202001-09-17 19:57  gregor
3221
3222        * Parrot/Opcode.pm, lib/Parrot/Opcode.pm:
3223        Added a $revision variable, parsing of the CVS Id line in
3224        opcode_table and a &revision() subroutine.
3225
32262001-09-17 19:53  gregor
3227
3228        * opcode_table:
3229        Added a CVS Id tag to it.
3230
32312001-09-17 18:58  thgibbs
3232
3233        * interpreter.c: Cleared interpreter flags on creation.
3234
32352001-09-17 18:38  gregor
3236
3237        * build_interp_starter.pl, bytecode.c, bytecode.h, interpreter.c,
3238        interpreter.h, test_main.c:
3239          * Provides macros in interp_guts.h for setting up arrays with
3240            op names and op arg counts (done via build_interp_starter.pl).
3241
3242            These are used in the op tracing
3243
3244          * The functions in bytecode.[hc] pass around a pointer to the
3245        length
3246            of the bytecode so that later when we get to runops, we know
3247            how much bytecode we've got and we can detect out-of-bounds
3248            jumping. The documentation is updated, too.
3249
3250          * runops in interpreter.c now looks at interpreter->flags to
3251            decide if the core of runops should be runops_trace_core or
3252            runops_notrace_core. These new functions contain just the
3253            while-loop portion of runops. A new function runops_generic
3254            does any other setup (such as checking the bytecode
3255            fingerprint) or wrapup (such as complaining if we ended up
3256            out-of-bounds). NOTE: I didn't know what we should do for
3257            functions in here that are not part of the api, so I gave
3258            them docs with 'TODO' marks mentioning they really aren't
3259            part of the api. Guidance appreciated.
3260
3261          * test_main.c now checks for '-t' arg and sets the tracing flag
3262            on its interpreter instance as appropriate.
3263
32642001-09-17 17:47  bdwheele
3265
3266        * assemble.pl: added some default equates, and if they're sub
3267        references, they are computed each time it is referenced.
3268
32692001-09-17 16:15  dan
3270
3271        * interpreter.h:
3272
3273        Added flags to the interpreter structure and defined a few.
3274
32752001-09-17 15:51  simon
3276
3277        * bytecode.h, string.h:
3278        VAR_SCOPE on globals.
3279
32802001-09-17 15:20  simon
3281
3282        * MANIFEST:
3283        Parrot/Opcode.pm, Parrot/Test.pm into MANIFEST.
3284
32852001-09-17 15:05  gregor
3286
3287        * t/jump.pasm, MANIFEST:
3288        Added a test program to demonstrate jump_i.
3289
32902001-09-17 14:44  thgibbs
3291
3292        * register.c: Fixed register pop not using correct offset (off by
3293        one).
3294
3295        Courtesy of: Philip Kendall <pak@ast.cam.ac.uk>
3296
32972001-09-17 13:56  thgibbs
3298
3299        * interpreter.c, register.c: Added code to call Parrot_clear_s
3300        during initialization and Parrot_clear_s and Parrot_clear_p when a
3301        new stack frame is pushed.
3302
33032001-09-17 13:51  gregor
3304
3305        * languages/jako/: Makefile, bench.jako, euclid.jako, fact.jako,
3306        fib.jako, hello.jako: Added bench.pasm to "clean"
3307
33082001-09-17 13:49  gregor
3309
3310        * languages/jako/: jakoc, Makefile:
3311        Added CVS Id tag.
3312
33132001-09-17 13:49  gregor
3314
3315        * languages/jako/jakoc:
3316        Code streamlining.
3317
3318        Courtesy of: Buggs <buggs-perl6@splashground.de>
3319
33202001-09-17 13:29  gregor
3321
3322        * MANIFEST, opcheck.pl:
3323        Added an opcode_table checker to make sure that all opcodes listed
3324        there conform to a simple set of naming rules (rules themselves, of
3325        course, are subject to change).
3326
33272001-09-17 13:23  thgibbs
3328
3329        * string.c: Modified string.c to correctly use the return value of
3330        realloc.
3331
33322001-09-17 05:26  brentdax
3333
3334        * Makefile.in: Making the Makefile smarter
3335
33362001-09-16 23:06  brentdax
3337
3338        * hints/mswin32.pl: Finishing the Configure hints
3339
33402001-09-16 23:05  brentdax
3341
3342        * Configure.pl, Makefile.in, parrot.h, test_main.c,
3343        Parrot/Opcode.pm, lib/Parrot/Opcode.pm: Win32 compatibility,
3344        Configure hints, 5.005 compatibility, MANIFEST checking
3345
33462001-09-16 19:25  bdwheele
3347
3348        * assemble.pl: parrot assembly equates
3349
33502001-09-16 18:03  gregor
3351
3352        * Makefile.in:
3353        Added 'test' target to run new test suite.
3354
33552001-09-16 17:33  simon
3356
3357        * basic_opcodes.ops:
3358        'not' was being !, rather than ~. Too many Perl programmers here, I
3359        suspect.
3360
3361        Courtesy of: Tom Hughes <tom@compton.nu>
3362
33632001-09-16 17:21  simon
3364
3365        * Parrot/Test.pm, lib/Parrot/Test.pm, t/harness, t/op/basic.t,
3366        t/op/string.t:
3367        A *real* test suite!
3368
3369        Courtesy of: "Mattia Barbon" <mbarbon@dsi.unive.it>
3370
33712001-09-16 16:49  gregor
3372
3373        * basic_opcodes.ops, opcode_table:
3374        At Dan's request, my new register-constant comparison ops have been
3375        removed.
3376
33772001-09-16 16:40  gregor
3378
3379        * languages/jako/jakoc:
3380        Fixed a copy-paste error in one of jakoc's error messages.
3381
3382        Courtesy of: Buggs <buggs-perl6-list@splashground.de>
3383
33842001-09-16 16:37  gregor
3385
3386        * languages/jako/jakoc:
3387        Modified comparison implementation to use temporary registers in
3388        the case of register-constant and constant-register comparisons.
3389        This will allow the compiler to emit code that works when the
3390        constant-comparison ops are backed out of Parrot. If the ops ever
3391        make their way back in, then jakoc can emit more efficient code
3392        again.
3393
33942001-09-16 16:19  bdwheele
3395
3396        * assemble.pl, t/local_label.pasm: Added local labels ($whatever)
3397        ... though not subroutine based like the documentation wants, they
3398        are local to the last non-local label defined.
3399
34002001-09-16 14:02  simon
3401
3402        * MANIFEST:
3403        And remember, when you add stuff, keep the manifest up to date.
3404
34052001-09-16 02:55  ask
3406
3407        * Makefile.in: a "shared" target for building libparrot.so
3408
34092001-09-16 02:45  thgibbs
3410
3411        * bytecode.c, bytecode.h, events.h, exceptions.h, global_setup.c,
3412        global_setup.h, interpreter.c, interpreter.h, io.h,
3413        make_op_header.pl, memory.c, memory.h, parrot.c, parrot.h,
3414        process_opfunc.pl, register.c, register.h, stacks.h, string.c,
3415        string.h, strnative.c, strnative.h, test_main.c: Updated files to
3416        use the coding standard PDD.  Also changed Perl_Interp to
3417        Parrot_Interp.
3418
34192001-09-16 02:21  ask
3420
3421        * README: emphasise the bits about the license not being worked out
3422        yet.
3423
34242001-09-15 22:21  simon
3425
3426        * process_opfunc.pl:
3427        basic_opcodes.c should *scream* that it's autogenerated.
3428
34292001-09-15 21:58  gregor
3430
3431        * languages/jako/Makefile:
3432        Fixed Makefile to use 'jakoc' instead of 'jako_compiler.pl' to
3433        compile.
3434
34352001-09-15 21:58  gregor
3436
3437        * languages/jako/: jako_compiler.pl, jakoc:
3438        Renamed the Jako compiler to jakoc from jako_compiler.pl
3439
34402001-09-15 21:51  gregor
3441
3442        * languages/jako/: Makefile, bench.jako, euclid.jako,
3443        jako_compiler.pl:
3444        Added a new bench.jako example based on Leon Brocard's Bench.java.
3445
3446        Jako Compiler:   * fix a bug in assignment handling   * add some
3447        more conditionals to while and if   * revert to using implicit
3448        opcodes in a few cases that were broken     before the assembler
3449        patch went in recently.
3450
34512001-09-15 21:46  gregor
3452
3453        * assemble.pl, basic_opcodes.ops, opcode_table:
3454        New ops for register-constant INTEGER comparisons:
3455
3456          {eq,ne,lt,le,gt,ge}_ic_ic
3457
3458        New ops for register-register and register-constant NUMERIC
3459        comparisons:
3460
3461          eq_nc_ic
3462          {ne,lt,le,gt,ge}_{n,nc}_ic
3463
3464        Assembler:
3465
3466          Allow uppercase and underscores in labels.
3467
3468          Tweaks to the op infer code to make it work with the examples
3469        I've been
3470          creating.
3471
34722001-09-15 19:16  thgibbs
3473
3474        * README: Updated README to include Configure.pl
3475
34762001-09-15 17:05  simon
3477
3478        * build_interp_starter.pl:
3479        Casting happiness
3480
3481        Courtesy of: Jarkko Hietaniemi <jhi@cc.hut.fi>
3482
34832001-09-15 16:45  simon
3484
3485        * assemble.pl:
3486        And the same again: Parrot/Opcode.pm wasn't "..-aware".
3487
34882001-09-15 16:40  simon
3489
3490        * t/Makefile:
3491        The Parrot/Opcode.pm dependency means we need to do -I.. in the
3492        test Makefile
3493
34942001-09-15 12:26  simon
3495
3496        * memory.c:
3497        Fixed to match the coding standards.
3498
3499        Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
3500
35012001-09-15 01:57  ask
3502
3503        * Configure.pl, Makefile.in, Parrot/Opcode.pm,
3504        lib/Parrot/Opcode.pm: make the Makefile use the perl that was used
3505        to run Configure.pl
3506
35072001-09-15 01:48  ask
3508
3509        * Parrot/Opcode.pm, lib/Parrot/Opcode.pm: if we need perl 5.6, just
3510        say so. :-)
3511
35122001-09-15 01:42  gregor
3513
3514        * languages/jako/: euclid.jako, fact.jako, fib.jako,
3515        jako_compiler.pl:
3516        Compiler: Added variable interpolation in double-quoted strings.
3517        Examples: Made use of variable interpolation.
3518
35192001-09-15 01:28  gregor
3520
3521        * Parrot/.cvsignore:
3522        Ignore the Config.pm generated file.
3523
35242001-09-15 01:22  gregor
3525
3526        * languages/jako/: .cvsignore, Makefile, euclid.jako, fact.jako,
3527        fib.jako, hello.jako, jako_compiler.pl:
3528        gnp: Added some more sample Jako files and added many more
3529        operators to the compiler. Preparations for supporting all the Math
3530        and bitwise ops.
3531
35322001-09-14 19:06  simon
3533
3534        * assemble.pl, build_interp_starter.pl, disassemble.pl,
3535        make_op_header.pl, process_opfunc.pl, Parrot/Opcode.pm,
3536        lib/Parrot/Opcode.pm:
3537        Move common table reading stuff to a module.
3538
3539        Courtesy of: Damien Neil <neild@misago.org>
3540
35412001-09-14 17:42  simon
3542
3543        * .cvsignore:
3544        More .cvsignore foo.
3545
35462001-09-14 17:40  simon
3547
3548        * assemble.pl, config_h.in:
3549        De-coredump
3550
3551        Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
3552
35532001-09-14 17:38  simon
3554
3555        * assemble.pl, t/Makefile:
3556        Make assemble.pl look in its parent directory if the data files it
3557        needs aren't in the current one. Plus a Makefile that lets "make
3558        foo.pbc" work in t/
3559
3560        Courtesy of: Rocco Caputo <troc@netrus.net>
3561
35622001-09-14 16:29  simon
3563
3564        * make_op_header.pl:
3565        Wildly experimental patch to make Parrot compile on FreeBSD. (And
3566        probably segfault everywhere else.)
3567
35682001-09-14 15:58  dan
3569
3570        * languages/jako/: euclid.jako, jako_compiler.pl:
3571
3572        Added in the first mini-language that targets Parrot.
3573
3574        Courtesy of: "Gregor N. Purdy" <gregor@focusresearch.com>
3575
35762001-09-14 15:20  dan
3577
3578        * memory.c: Was misaligning returned memory. Fixed.
3579
35802001-09-14 15:08  simon
3581
3582        * Makefile.in, basic_opcodes.ops, bytecode.c, global_setup.c,
3583        interpreter.c, interpreter.h, memory.c, parrot.c, parrot.h,
3584        register.c, register.h, string.c, string.h, strnative.c,
3585        test_main.c:
3586        Fixes to include <parrot/foo.h>
3587
3588        Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
3589
35902001-09-14 12:05  simon
3591
3592        * strnative.c:
3593        Appease Tru64.
3594
35952001-09-14 12:01  simon
3596
3597        * memory.c:
3598        Appease Tru64.
3599
36002001-09-14 11:54  simon
3601
3602        * interpreter.c:
3603        Remove lvalue cast.
3604
36052001-09-14 11:45  simon
3606
3607        * Configure.pl:
3608        Be 5.005 friendly.
3609
36102001-09-14 11:39  simon
3611
3612        * Configure.pl:
3613        Tru64 cc doesn't like -Wall
3614
36152001-09-14 10:57  simon
3616
3617        * Config_pm.in, Configure.pl, MANIFEST, Makefile, Makefile.in,
3618        assemble.pl, build_interp_starter.pl, bytecode.c, bytecode.h,
3619        config.h.in, config_h.in, disassemble.pl, interpreter.c:
3620        Configure now generates Makefile
3621
3622        Courtesy of: Brent Dax <brentdax@cpan.org>
3623
36242001-09-14 10:08  simon
3625
3626        * t/test3.pasm:
3627        Add "end"
3628
3629        Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
3630
36312001-09-14 10:07  simon
3632
3633        * assemble.pl:
3634                * uses Getopt::Long for options.  -c is now --checksyntax.
3635        I wasn't
3636        sure how to keep compatible (patches welcome!)         * options
3637        include:                 --help                 --version
3638              --verbose                 --output=file
3639        --listing=file                 --checksyntax         * produces
3640        verbose listing of what the assembler saw :)  Only one nitpick with
3641        it:  unknown symbols are given as 0xffffffff, unfortunately, this
3642        includes symbols which may be defined later in the file (i.e.
3643        forward jumps).
3644
3645        Courtesy of: Brian Wheeler <bdwheele@indiana.edu>
3646
36472001-09-14 10:06  simon
3648
3649        * strnative.c:
3650        substr growth fixup
3651
3652        Courtesy of: Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
3653
36542001-09-14 10:03  simon
3655
3656        * bytecode.c, global_setup.c, interpreter.c, memory.c, memory.h,
3657        register.c, string.c, strnative.c, test_main.c:
3658        Coding standards conformance
3659
3660        Courtesy of Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
3661
36622001-09-14 09:46  simon
3663
3664        * assemble.pl:
3665        Make the assembler grok transcendental maths again.  Courtesy of:
3666        Gibbs Tanton - tgibbs <Tanton.Gibbs@acxiom.com>
3667
36682001-09-13 17:29  simon
3669
3670        * assemble.pl:
3671        Better opcode guessing, from Brian Wheeler. (Again!)
3672
36732001-09-13 17:20  dan
3674
3675        * docs/parrot_assembly.pod:
3676
3677        Took out duplicate entries for iton, ntoi, and tostring.
3678
36792001-09-13 17:16  simon
3680
3681        * assemble.pl, basic_opcodes.ops, opcode_table:
3682        From Brian Wheeler:
3683
3684        This patch gives the assembler support of '\a','\n','\r','\t', and
3685        '\\' in string constants.
3686
3687        In addition, it changes (for all registers) "I reg %li is ..." to
3688        just the value of the register.  Printing constants is also
3689        supported, but alas, you have to specify the type (print_sc,
3690        print_ic, print_nc).
3691
36922001-09-13 15:38  simon
3693
3694        * assemble.pl:
3695        Why don't I actually *test* this stuff before applying it, eh?
3696
36972001-09-13 15:34  simon
3698
3699        * TODO, t/euclid.pasm:
3700        From: "Gregor N. Purdy" <gregor@focusresearch.com> Subject: [patch
3701        (really)] Removed opcode qualifers t/euclid.pasm to exercise opcode
3702        inference
3703
37042001-09-13 14:42  simon
3705
3706        * assemble.pl:
3707        A new assembler, from Brian Wheeler.
3708
37092001-09-13 09:44  simon
3710
3711        * basic_opcodes.ops, interpreter.h, parrot.h, strnative.c,
3712        test_main.c:
3713        Two more from Tom Hughes:     Patch to fix C++ style comments
3714        Patch to remove use of structure constant/cast
3715
37162001-09-13 09:39  simon
3717
3718        * TODO, docs/strings.pod:
3719        Update string docs.
3720
37212001-09-13 09:36  simon
3722
3723        * Makefile, basic_opcodes.ops:
3724        Tom Hughes      Patch to link with the maths library Tom Hughes
3725         Patch to fix += on rvalue
3726
37272001-09-13 08:57  simon
3728
3729        * MANIFEST:
3730        I guess nobody's been using the nightly builds...
3731
37322001-09-13 08:27  simon
3733
3734        * assemble.pl, basic_opcodes.ops, opcode_table:
3735        Bitwise ops, from Brian Wheeler.
3736
37372001-09-13 08:23  simon
3738
3739        * .cvsignore, t/.cvsignore:
3740        .cvsignore's, from Gregor Purdy.
3741
37422001-09-13 08:22  simon
3743
3744        * Makefile:
3745        Euclidean test and test output rearranging from Gregor Purdy.
3746
37472001-09-13 08:21  simon
3748
3749        * assemble.pl, basic_opcodes.ops, disassemble.pl, opcode_table:
3750        Math ops from Gibbs Tanton.
3751
37522001-09-13 08:14  simon
3753
3754        * basic_opcodes.ops, opcode_table, string.c, string.h, strnative.c,
3755        t/test2.pasm:
3756        String substr op; also rearranged "encoding" to be a vtable
3757        pointer, not an array index. Haven't changed docs to reflect this,
3758        oops.
3759
3760        Simon
3761
37622001-09-12 19:48  dan
3763
3764        * t/euclid.pasm: Implementation of Euclid's Algorithm, courtesy of
3765        Gregor Purdy
3766
37672001-09-12 19:39  dan
3768
3769        * basic_opcodes.ops, opcode_table: From Gregor Purdy. Adds mod_i.
3770
37712001-09-12 19:23  dan
3772
3773        * interpreter.h, parrot.h: Quick placeholder entry for string
3774        function tables
3775
37762001-09-12 18:58  dan
3777
3778        * memory.c: Added in a cast to make gcc happy.
3779
37802001-09-12 16:44  dan
3781
3782        * docs/parrot_assembly.pod:
3783
3784        PDD describing parrot's assembly language and the opcodes in it
3785
37862001-09-12 14:20  dan
3787
3788        * memory.c:
3789        Fixed alignment issues with allocation
3790
37912001-09-12 10:54  simon
3792
3793        * Makefile, assemble.pl, bytecode.c, disassemble.pl,
3794        make_op_header.pl, opcode_table, process_opfunc.pl:
3795        Brian Wheeler's big patch:
3796
3797        * Changes the opcode_table file to provide additional information
3798        about the operands.  Case shouldn't be a problem since that data
3799        never becomes a C symbol [this is pretty much as before]
3800
3801        * Padding errors solved:  assemble.pl and bytecode.c were padding
3802        the constants incorrectly.  It should have been 4-(size % 4), not
3803        just (size % 4).  It is now fixed in both places.
3804
3805        * assembler has less special cases, and should be easier to hang
3806        error checking on
3807
3808        * disassembler dumps constant table and the format is a bit
3809        prettier, including register names, etc.
3810
38112001-09-11 23:21  dan
3812
3813        * build_interp_starter.pl, interpreter.c:
3814
3815        Abstracted the runops function core into a macro for easy
3816        replacement later.
3817
38182001-09-11 10:43  simon
3819
3820        * Configure.pl, MANIFEST, Makefile, config.h, config.h.in:
3821        Configure system from Brent Dax <brentdax@cpan.org>
3822
38232001-09-11 09:38  simon
3824
3825        * assemble.pl, test.pbc:
3826        From: Bryan C. Warnock <bwarnock@raba.com> Subject: Patch:
3827        assembler deferred output
3828
3829        Also got rid of the bytecode, since that's probably way out of
3830        date.
3831
38322001-09-11 09:26  simon
3833
3834        * basic_opcodes.ops, opcode_table, t/test2.pasm:
3835        From: Bryan C. Warnock <bwarnock@raba.com> Subject: length_s_i
3836        patch
3837
38382001-09-10 23:20  simon
3839
3840        * MANIFEST:
3841        And that move needs a MANIFEST change. So many things to remember!
3842
38432001-09-10 23:18  simon
3844
3845        * t/: test.pasm, test2.pasm, test3.pasm:
3846        Move tests to t/. (Oh, CVS doesn't work the way I think it does.)
3847
38482001-09-10 23:18  simon
3849
3850        * test.pasm, test2.pasm, test3.pasm:
3851        Move tests to t/
3852
38532001-09-10 23:04  dan
3854
3855        * test3.pasm:
3856
3857        Register push/pop test
3858
38592001-09-10 22:47  simon
3860
3861        * basic_opcodes.ops, bytecode.c, parrot.h, test_main.c:
3862        Fix up format warnings, from Sam Tregar <sam@tregar.com>.
3863        (Modified to avoid conflict with Dan's changes.)
3864
38652001-09-10 22:45  dan
3866
3867        * disassemble.pl:
3868
3869        Happier about blanks in opcode_table
3870
38712001-09-10 22:40  dan
3872
3873        * interpreter.c, register.c:
3874
3875        Yanked out debugging code, since these work OK. The bug I want is
3876        elsewhere.
3877
38782001-09-10 22:30  simon
3879
3880        * MANIFEST:
3881        Uhm. We want make_op_header.pl. We really, really do.
3882
38832001-09-10 22:26  simon
3884
3885        * Makefile, TODO, assemble.pl, basic_opcodes.ops,
3886        build_interp_starter.pl, disassemble.pl, make_op_header.pl,
3887        opcode_table, process_opfunc.pl:
3888        Automatic opcode numbering, from Leon Brocard <acme@astray.com>.
3889        This means we can add lots more opcodes without fiddling about with
3890        the numbers. Hooray!
3891
3892        Don't forget that "end" needs to be op zero, else the interpreter
3893        falls off the end of the code. This is Bad, and I wonder if there's
3894        a way around it.
3895
38962001-09-10 19:49  simon
3897
3898        * MANIFEST, make_op_table_build.pl:
3899        Hey! This doesn't do anything...
3900
39012001-09-10 19:46  simon
3902
3903        * Makefile:
3904        "clean" target cleanup from Bryan C. Warnock <bwarnock@raba.com>.
3905
39062001-09-10 18:31  simon
3907
3908        * MANIFEST:
3909        You know what this means...
3910
39112001-09-10 18:30  simon
3912
3913        * assemble.pl:
3914        "use strict" patch from Leon Brocard <acme@astray.com>. Hey, why
3915        wait for a release...? :)
3916
39172001-09-10 18:13  simon
3918
3919        * interpreter.c:
3920        Bad Dan! No cookie!
3921
39222001-09-10 17:56  simon
3923
3924        * README:
3925        A *real* README file, which doesn't claim it isn't for public
3926        consumption.
3927
39282001-09-10 17:02  simon
3929
3930        * TODO:
3931        More things to do.
3932
39332001-09-10 16:56  dan
3934
3935        * TODO: Added in assembler gripe. Also added a few blank lines for
3936        clarity
3937
39382001-09-10 16:49  dan
3939
3940        * register.h, register.c: Renamed the core functions so the opcodes
3941        can find 'em OK. (There were some conflicts)
3942
39432001-09-10 16:48  dan
3944
3945        * basic_opcodes.ops, opcode_table: Added register window ops
3946
39472001-09-10 11:07  simon
3948
3949        * TODO:
3950        Trivial TODO list.
3951
39522001-09-10 11:05  simon
3953
3954        * test.pbc, test2.pasm, test_main.c: Other string bits and pieces;
3955        note "-s" flag to test prog.
3956
39572001-09-10 11:01  simon
3958
3959        * docs/strings.pod:
3960        New string documentation.
3961
39622001-09-10 11:01  simon
3963
3964        * basic_opcodes.ops, opcode_table:
3965        String ops.
3966
39672001-09-10 10:53  simon
3968
3969        * global_setup.c:
3970        More string fu.
3971
39722001-09-10 10:51  simon
3973
3974        * memory.h:
3975        Just some more aliases for now. Used by string handling stuff.
3976
39772001-09-10 10:50  simon
3978
3979        * assemble.pl, bytecode.c, bytecode.h:
3980        Temporary hack to store string constants in bytecode and recreate
3981        them at runtime.
3982
39832001-09-10 10:48  simon
3984
3985        * op.h:
3986        op.h is now generated by the Makefile; remove it.
3987
39882001-09-10 10:47  simon
3989
3990        * Makefile:
3991        clean and op.h Makefile targets.
3992
39932001-09-10 10:45  simon
3994
3995        * string.c, string.h, strnative.c:
3996        More string vtable stuff.
3997
39982001-09-07 21:07  dan
3999
4000        * assemble.pl:
4001
4002        Much less picky about whitespace in the opcode_table now. (Doesn't
4003        whine on blank lines)
4004
40052001-09-07 16:23  dan
4006
4007        * Makefile, assemble.pl, global_setup.h, interpreter.c,
4008        interpreter.h, opcode_table, parrot.h, test.pasm: (Here's hoping
4009        this takes) Added global_setup.h to declare init_world function
4010
4011        Moved variable declarations out of the interpreter loop for small
4012        speed boost.
4013
4014        Changed end opcode to now be opcode #0. A function is provided for
4015        it, but isn't ever executed.
4016
4017        When the interpreter sees an opcode 0 in the stream it means the
4018        end of stream. Things were coring on Cygwin otherwise. (I think I
4019        was dereferencing a zero, which is bad)
4020
40212001-09-06 22:07  dan
4022
4023        * basic_opcodes.ops, process_opfunc.pl:
4024
4025        Minor tweaks to basic_opcodes.ops to fix some NV issues. The rest
4026        are minor changes now that things are in a fixed state.
4027
40282001-09-06 16:13  dan
4029
4030        * basic_opcodes.c, test_opcodes.c:
4031        test_opcodes.c is now irrelevant--they're all in basic_opcodes.ops.
4032
4033        basic_opcodes.c is now autogenerated from basic_opcodes.ops, and
4034        should be nuked. So it is. :)
4035
40362001-09-06 03:35  dan
4037
4038        * basic_opcodes.ops, build_interp_starter.pl, process_opfunc.pl:
4039        Scripts to build the header file that holds the function table
4040        creation code, as well as the script to turn an opcode file to C
4041        source. (And the basic opcode functions turned into an opcode
4042        source file)
4043
40442001-09-06 03:31  dan
4045
4046        * Makefile, interpreter.c:
4047        Changes to support the autogeneration of the opcode function
4048        pointer table in interpreter.c, along with the changes to the
4049        Makefile needed.
4050
40512001-09-05 13:27  simon
4052
4053        * bytecode.c, config.h, docs/opcodes.pod, docs/overview.pod,
4054        docs/parrotbyte.pod, docs/vtables.pod:
4055        Added stubs for the documents; working on them this week. (What's
4056        left of it.) config.h change is just to type VTABLE, and the
4057        bytecode thing you might want to revoke. It's apidoc for the
4058        functions in there.
4059
40602001-09-03 18:26  simon
4061
4062        * docs/strings.pod:
4063        A start on the string API documentation.
4064
40652001-09-03 17:43  simon
4066
4067        * opcode_table:
4068        Since we specify the opcode number, we can rearrange to a more
4069        human-friendly ordering.
4070
40712001-09-03 17:42  simon
4072
4073        * basic_opcodes.c:
4074        Coupl'a logic bugs. (I think)
4075
40762001-09-03 17:41  simon
4077
4078        * string.c, string.h, strnative.c:
4079        Tidying up the string vtables.
4080
40812001-09-03 17:38  simon
4082
4083        * make_op_header.pl:
4084        Spit out the whole of op.h, not just the bit in the middle.
4085
40862001-08-29 13:16  ask
4087
4088        * README: it seems like we indeed can commit. What about sending
4089        commit mails?
4090
40912001-08-29 13:07  simon
4092
4093        * Makefile, README, assemble.pl, basic_opcodes.c, bytecode.c,
4094        bytecode.h, config.h, disassemble.pl, events.h, exceptions.h,
4095        global_setup.c, interpreter.c, interpreter.h, io.h,
4096        make_op_header.pl, make_op_table_build.pl, memory.c, memory.h,
4097        op.h, opcode_table, parrot.c, parrot.h, register.c, register.h,
4098        stacks.h, string.c, string.h, strnative.c, strnative.h, test.pasm,
4099        test.pbc, test_main.c, test_opcodes.c:
4100        Initial checkin of Simon's work directory - Dan, feel free to nuke.
4101         I'm still working on the string stuff, though.
4102
41032001-08-29 12:44  ask
4104
4105        * README: update README with list address
4106
41072001-08-29 12:36  ask
4108
4109        * README: first readme.