Re: [perl #32112] [PATCH] Fixes for Befunge interpreter
Jerome Quelin <[EMAIL PROTECTED]> wrote: > On 04/10/23 08:25 -0700, Stepan Roh wrote: >> While playing with Parrot I found a few bugs and problems in Befunge >> interpreter. Although it is not important part of Parrot > What? Not important? [ ... ] > ==> applied. [ ... ] Thanks Jerome, for all the fun I had reading your comments, and well, yes - just applying the patches, and of course to Stepan for awakening Jerome ;) leo
Re: [PATCH] Re: JIT and platforms warning
Jeff Clites <[EMAIL PROTECTED]> wrote: > On Oct 23, 2004, at 4:20 AM, Leopold Toetsch wrote: >> Jeff Clites <[EMAIL PROTECTED]> wrote: >> >>> See attached the patch, plus the new asm.s file. >> >> Doesn't run, segfaults on even mops.pasm - please check. > I can't reproduce that here; parrot -j works for me Sorry, false alarm. I must have had indirect register access tured on. Runs fine and gets applied. leo
Re: A small Perl task
Jeff Clites <[EMAIL PROTECTED]> wrote: > On Oct 23, 2004, at 5:14 AM, Leopold Toetsch wrote: >> First, if you don't have it yet done, install ccache. > Thanks for the tip--seems awesome. Welcome. > In the dump case, you basically (it seems) need to parse the pmc file > in order to determine the parent (chain), in order to determine the > dependencies, in order to figure out what you need to put into your > digest. (In the ccache case, it's the preprocessor doing this for you.) > But by then, you've done most of the work I'd think (by parsing the pmc > file). Probably yes. But you could check all the time stamps of the parents. If all parent pmcs are older then the cached .c and .dump files, you could just serve from the pmc-cache. This is probably doable by Makefile-only rules too, but then a "make clean" still does the full recreation. And "make clean" is commonly needed due to insufficient dependencies, which is another issue. > JEff leo
Re: [PATCH] Re: JIT and platforms warning
Jeff Clites <[EMAIL PROTECTED]> wrote: > On Oct 23, 2004, at 3:42 AM, Leopold Toetsch wrote: > We were allocating the volatile float registers first (or, only)--so > C was blowing away an N-register, even with only one in use. > That's why I was surprised there weren't more failures. Yes. As said i386 had the same problem and not one test file did break. I've now added a quick hack to the JIT compiler, which seems to do the right thing, or better, it's a step towards that: $extern = 1 if $asm =~ /call_func/; This marks the function being extern to JIT, so the register preserving code is activated. It's not quite the best solution, because only used volatiles have to be preserved/restored. More below ... >> Anyway, I think we need a more general solution. >... >> Solution: The JIT compiler/optimizer already calculates the register >> mapping. We have to use this information for JIT pro- and epilogs. > That makes sense--I hadn't initially realized we were tracking this, > but since we are, we should use it. Things may be a bit tricky > fixup-wise, since the size of the prolog will depend on how many float > registers we need to preserve. Not really. When creating the prolog/epilog you know exactly the register mapping of each section. So we just have to find the maximum for each register kind, then decide, if we should use non-volatiles or volatiles or both and emit the appropriate code. We probably need some platform settings and tweakables, which allocation policy should be used, e.g. PARROT_JIT_PREFER_VOLATILES and maybe a threshold, when to change allocation policy. But anyway, in jit_info->optimizer, you'll get the count of used registers. With that information the platform code can calculate the used stack storage and emit the appropriate pro- and epilogs. E.g. from Mach-O- Runtime Conventions for PowerPC - PowerPC Stack Structure spaceToSave = linkageArea + params + localVars + 4 * nGPRS + 8 * nFPRS rounded up to x*16. It's the same, what currently is a hardcode define. >> 2) JITed functions with calls into Parrot >> >> The jit2h JIT compiler needs a hint, that we call external code, e.g. >> >>CALL_FUNCTION("string_copy") So, back to external functions. With this syntax (and a needed jit_info argument), we can do: $extern = -1 if $asm =~ /CALL_FUNCTION/; This activates the saving and restoring of used volatiles. I don't think that we have to write back non-volatiles to Parrot registers, at least not, if we define that JITted code like that will not see a correct Parrot register set. If a function would need the Parrot registers, just don't provide a JITted version for it. OTOH this could be problematic if the function throws an exception, and if the exception handler is able to provide a Parrot core dump. > One other question: Your "P_ARITH" optimization in jit/ppc/core.jit. I > can't come up with a case where this kicks in, It's alomost only for examples/benchmarks/mops.pasm: + 50% speed. Now PPC JIT code is two instructions for the loop instead of three ;) > Thanks, > JEff leo
[perl #32118] [PATCH] Update of documentation
# New Ticket Created by Stepan Roh # Please include the string: [perl #32118] # in the subject line of all future correspondence about this issue. # http://rt.perl.org:80/rt3/Ticket/Display.html?id=32118 > Attached is a patch generated with cvs diff -u against CVS HEAD 2004/10/24. Changes to docs/gettingstarted.pod: - removed non-functional http://cvs.perl.org/viewcvs/parrot/ (viewcvs is there, but parrot repository is not configured) - updated HTML generation command - removed Tinderbox (gives 404 Not Found) - removed Test Coverage Results (last update was Tue Jan 20 03:05:56 2004 and there are no useful summaries) - removed Bonsai (gives 404 Not Found) Changes to docs/glossary.pod: - converted reference from viewcvs to cvsweb Maybe there are some good links to Tinderbox or Bonsai or ViewCVS or they are only temporarily down, I don't know, but having non-functional references in documentation is not very good. Note that some of these apply to http://www.parrotcode.org/resources.html too. Have a nice day. Stepan RohIndex: docs/gettingstarted.pod === RCS file: /cvs/public/parrot/docs/gettingstarted.pod,v retrieving revision 1.5 diff -u -r1.5 gettingstarted.pod --- docs/gettingstarted.pod 28 Feb 2004 09:18:02 - 1.5 +++ docs/gettingstarted.pod 23 Oct 2004 23:24:10 - @@ -20,12 +20,10 @@ =item * If you're just interested in browsing the CVS repository without downloading -anything, a few interfaces exist. +anything, an interface exists. http://cvs.perl.org/cvsweb/parrot/ -http://cvs.perl.org/viewcvs/parrot/ - =item * The easiest solution is to grab the most recent snapshot of the Parrot CVS @@ -94,7 +92,7 @@ available by running the following command in the Parrot distribution's root directory: -% perl tools/docs/write_docs.pl -s +% make html To view the HTML documentation start with the page F. @@ -293,53 +291,6 @@ a comprehensive guide to getting started with Parrot development (called, unsurprisingly, 'Getting Started with Parrot Development'). -=item * Tinderbox - -The tinderbox consists of a number of different computers running various OS -and platform configurations, downloading the latest Parrot distribution every -few hours and running the test suite to verify that it works on that given -combination of software and hardware. - -To view the results of the tinderbox system, check out: - -http://tinderbox.perl.org/tinderbox/bdshowbuild.cgi?tree=parrot - -=item * Tinderbox Failure Summary - -A brief summary of the current status of the various tinderbox machines. -Useful for finding out which tests are failing (if any). - -=item * Test Coverage Results - -The Parrot test suite is intended to test all aspects of Parrot's code. You -can see how successful we are at this goal by checkout the test coverage. It -gives line, branch, and call coverage percentages on a per-file or -per-function breakdown. Find it here: - -http://www.hitchhiker.org/parrot_coverage/ - -=item * Bonsai - -Bonsai is a cvs tree control tool to monitor the status of cvs trees. -Whenever a checkin occurs, bonsai adds that person to the "hook," a list of -those responsible for the current state of the tree (this should be cleared -whenever we know that things are working for sure). Users can then run -queries to find out who has changed what files and access their checkin -comments in addition to generating diffs. - -=over 4 - -=item * Query - -http://tinderbox.perl.org/bonsai/cvsqueryform.cgi?cvsroot=/home/tinder/perlcvs&module=parrot - -=item * Browse - -http://tinderbox.perl.org/bonsai/rview.cgi?cvsroot=/home/tinder/perlcvs&dir=parrot&module=parrot - - -=back - =back =head1 VERSION Index: docs/glossary.pod === RCS file: /cvs/public/parrot/docs/glossary.pod,v retrieving revision 1.12 diff -u -r1.12 glossary.pod --- docs/glossary.pod 28 Feb 2004 00:30:39 - 1.12 +++ docs/glossary.pod 23 Oct 2004 23:24:12 - @@ -180,7 +180,7 @@ in one of the early implementations. You can see the initial commit of the PackFile.pm implementation, with the rationale for the name here: -http://cvs.perl.org/cgi/viewcvs.cgi/parrot/lib/Parrot/PackFile.pm?sortby=log +http://cvs.perl.org/cvsweb/parrot/lib/Parrot/PackFile.pm?sortby=log =head2 PBC
Re: [perl #32118] AutoReply: [PATCH] Update of documentation
Updated patch attached. Changes from previous patch: - do not remove viewcvs from gettingstarted.pod, because it's working again (see #32101) - do not change viewcvs in glossary.doc to cvsweb, just correct the link Have a nice day. Stepan RohIndex: docs/gettingstarted.pod === RCS file: /cvs/public/parrot/docs/gettingstarted.pod,v retrieving revision 1.5 diff -u -r1.5 gettingstarted.pod --- docs/gettingstarted.pod 28 Feb 2004 09:18:02 - 1.5 +++ docs/gettingstarted.pod 24 Oct 2004 09:18:23 - @@ -94,7 +94,7 @@ available by running the following command in the Parrot distribution's root directory: -% perl tools/docs/write_docs.pl -s +% make html To view the HTML documentation start with the page F. @@ -293,53 +293,6 @@ a comprehensive guide to getting started with Parrot development (called, unsurprisingly, 'Getting Started with Parrot Development'). -=item * Tinderbox - -The tinderbox consists of a number of different computers running various OS -and platform configurations, downloading the latest Parrot distribution every -few hours and running the test suite to verify that it works on that given -combination of software and hardware. - -To view the results of the tinderbox system, check out: - -http://tinderbox.perl.org/tinderbox/bdshowbuild.cgi?tree=parrot - -=item * Tinderbox Failure Summary - -A brief summary of the current status of the various tinderbox machines. -Useful for finding out which tests are failing (if any). - -=item * Test Coverage Results - -The Parrot test suite is intended to test all aspects of Parrot's code. You -can see how successful we are at this goal by checkout the test coverage. It -gives line, branch, and call coverage percentages on a per-file or -per-function breakdown. Find it here: - -http://www.hitchhiker.org/parrot_coverage/ - -=item * Bonsai - -Bonsai is a cvs tree control tool to monitor the status of cvs trees. -Whenever a checkin occurs, bonsai adds that person to the "hook," a list of -those responsible for the current state of the tree (this should be cleared -whenever we know that things are working for sure). Users can then run -queries to find out who has changed what files and access their checkin -comments in addition to generating diffs. - -=over 4 - -=item * Query - -http://tinderbox.perl.org/bonsai/cvsqueryform.cgi?cvsroot=/home/tinder/perlcvs&module=parrot - -=item * Browse - -http://tinderbox.perl.org/bonsai/rview.cgi?cvsroot=/home/tinder/perlcvs&dir=parrot&module=parrot - - -=back - =back =head1 VERSION Index: docs/glossary.pod === RCS file: /cvs/public/parrot/docs/glossary.pod,v retrieving revision 1.12 diff -u -r1.12 glossary.pod --- docs/glossary.pod 28 Feb 2004 00:30:39 - 1.12 +++ docs/glossary.pod 24 Oct 2004 09:18:24 - @@ -180,7 +180,7 @@ in one of the early implementations. You can see the initial commit of the PackFile.pm implementation, with the rationale for the name here: -http://cvs.perl.org/cgi/viewcvs.cgi/parrot/lib/Parrot/PackFile.pm?sortby=log +http://cvs.perl.org/viewcvs/cvs-public/parrot/lib/Parrot/PackFile.pm?sortby=log =head2 PBC
[perl #32117] [PATCH] new multifacetted pmc: siva
# New Ticket Created by Stephane Payrard # Please include the string: [perl #32117] # in the subject line of all future correspondence about this issue. # http://rt.perl.org:80/rt3/Ticket/Display.html?id=32117 > Siva is a type that acts as a hash, array , string scalar, int scalar. It is intended as the type for nodes of attributed trees These attributed trees may probably be of various kinds such as parse trees and XML trees. The intensive use of context should minimize explicit structure walking. Hashes and arrays are allocated only when needed. I have a problem with siva.t. The pasm code is the same as siva.pasm though. The name is a reference to the hindouist god siva often represented with many arms. Files modified: config/gen/makefiles/dynclasses.in Files created: dynclasses/siva.pmc dynclasses/siva.pasm dynclasses/siva.t --- config/gen/makefiles/dynclasses.in.old 2004-10-12 11:00:16.0 +0200 +++ config/gen/makefiles/dynclasses.in 2004-10-23 23:11:45.468654168 +0200 @@ -9,7 +9,8 @@ PMCS = foo subproxy \ tclobject tclstring tclint tclfloat \ tcllist tclarray \ -match matchrange +match matchrange \ +siva BUILD = ${perl} build.pl --- /dev/null 1970-01-01 01:00:00.0 +0100 +++ dynclasses/siva.pmc 2004-10-23 23:51:36.839110600 +0200 @@ -0,0 +1,496 @@ +#include "parrot/parrot.h" + +/* + +Siva is a type that acts as a hash, array , string scalar, int +scalar. It is intended as the type for nodes of attributed trees +These attributed trees may probably be of various kinds such as +parse trees and XML trees. The intensive use of context should +minimize explicit structure walking. + +Hashes and arrays are allocated only when needed. + +*/ + +typedef struct siva { + INTVAL uid; /* will be accessible as an element of index ??? */ + Hash*hash; + STRING* s; +} siva; + +static PMC* intret; +STRING * hash_get_idx(Interp *interpreter, Hash *hash, PMC * key); +static PMC* undef_pmc; + +/* + The next four functions are copied verbatim from perlhash.pmc and array.pmc. + When it will be clear that I can use them without changing them + I need to suppress the local copy and make them global in array.pmc +*/ + +/* + +=item C + +Returns a Parrot string for C<*key>. + +=cut + +*/ + +static STRING* make_hash_key(Interp* interpreter, PMC * key) +{ +if (key == NULL) { +internal_exception(OUT_OF_BOUNDS, +"Cannot use NULL key for PerlHash!\n"); +return NULL; +} +return key_string(interpreter, key); +} + +/* + same routine in array.pmc should be global + +=item C + +Returns a C PMC. + +=cut + +*/ + +static PMC* undef(Interp* interpreter) +{ +return pmc_new(interpreter, enum_class_PerlUndef); +} + +/* + same routine in array.pmc should be global + +=item C + +Processes C<*ret>, returning the appropriate PMC, or raising an +exception if necessary. + +=cut + +*/ + +static PMC* retval(Interp *interp, void *ret) +{ +PMC *value; +if (ret == 0) +internal_exception(OUT_OF_BOUNDS, "Array index out of bounds!\n"); +/* XXX getting non existent value, exception or undef? + * current is for perlarray */ +if (ret == (void*) -1) +value = undef(interp); +else { +value = *(PMC**) ret; +if (value == NULL) /* XXX same here */ +value = undef(interp); +} +return value; +} + + +static PMC* +Parrot_Array_pop_pmc_ptr(Interp *interp, List *list) +{ +return retval(interp, list_pop(interp, list, enum_type_PMC)); +} + + + +/* + +=item C + +Returns a pointer to the element at index C of C<*list>. If +this element was previously empty, then this function also creates +and assigns an "undef" PMC (currently a C, but this may +change) to that element. + +=cut + +*/ + +static PMC* +Parrot_Array_get_pmc_ptr(Interp *interp, List *list, INTVAL key) +{ +return retval(interp, list_get(interp, list, key, enum_type_PMC)); +} + + + +static PMC* +Parrot_Array_set_pmc_ptr(Interp *interp, List *list, INTVAL key) +{ +void * ret = list_get(interp, list, key, enum_type_PMC); +PMC *value; + +/* if (ret == 0) +internal_exception(OUT_OF_BOUNDS, "Array index out of bounds!\n"); +*/ +/* assign into a sparse or not yet set value */ +if (ret == 0 || ret == (void*) -1 || *(PMC**)ret == 0) { +value = undef(interp); +list_assign(interp, list, key, value, enum_type_PMC); +} +else +value = *(PMC**) ret; +return value; +} + +static size_t +key_hash_int(Interp *interp, Hash *hash, void *value) +{ +UNUSED(interp); +UNUSED(hash); +return (size_t) value; +} + + +static int +int_compare(Parrot_Interp interp, void *a, void *b) +{ +UNUSED(interp); +return a != b; +} + + + +/* rhs and lhs versions needed to avoid the msg "warning: use of cast expressions as lvalues is deprecated" + Is there a better way? + */ +#define siva_int(a) ((INTVAL) PMC_struct_val(a)) +#define siva_set_int(a,v) (PMC_struct_val(a) = (DPOINTE
Re: embedding/extending issues
Jeff Horwitz <[EMAIL PROTECTED]> wrote: > dan asked to keep everyone up to date on any issues i've had while > developing mod_parrot. Great thanks. > ... following are the problems i've encountered. > --- > i currently get parrot's configuration from config_lib.pasm. however, it > is not readily apparent from the configuration the libraries and flags > required to link with libparrot.a. in particular: If something is missing, we'll add it. Patches welcome. config_lib.pasm is created by config/gen/config_pm.pl. All keys that have "TEMP_" in front are skipped. > many of the functions i need to perform in an embedding environment (PMC > value manipulation, calling parrot subroutines, etc.) are only available > if i include extend.h in addition to embed.h. extend.h is for sure incomplete. But it should only wrap existing functionality AFAIK. I really don't know how embedding/extending should look like. > there is no NCI signature for (char **), All the non-trivial signatures should be accessible via the {Un,}ManagedStruct PMCs, albeit I'm not sure, if "char *" is handled. But pointer to structs are handled as well as the issue, who's the owner of the struct aka memory freeing. So "char **" is a pointer to a structure with one element "char *". There are BTW ugly looking and under-documented special signatures like "L" or "T", which should be dropped in favor of {Un,}ManagedStructs. > that's it -- really no *major* problems to report, and that says a lot > about the state of parrot right now. Sounds good, thanks for your report. > -jeff leo
Re: [perl #32117] [PATCH] new multifacetted pmc: siva
Stephane Payrard <[EMAIL PROTECTED]> wrote: > Siva is a type that acts as a hash, array , string scalar, int > scalar. It is intended as the type for nodes of attributed trees > These attributed trees may probably be of various kinds such as > parse trees and XML trees. The intensive use of context should > minimize explicit structure walking. > Hashes and arrays are allocated only when needed. > I have a problem with siva.t. The pasm code is the same as > siva.pasm though. What problem? > +/* rhs and lhs versions needed to avoid the msg "warning: use of cast expressions > as lvalues is deprecated" Have a look at LVALUE_CAST() > +#define siva_hash(a) ((siva*) PMC_pmc_val(a))->hash > +#define siva_str(a) ((siva*) PMC_pmc_val(a))->s What happens, if I create a hash and extract a string? leo
[CVS ci] JIT support for JITed functions that call external functions
Thanks to Jeff, who pointed at that, Parrot's JIT system now explicitely supports JITed functions that call into Parrot, like e.g. most string functions do. Here are the steps to use this functionality: 1) Arrange mappable registers like this: char val_map[] = { non-volatiles, volatiles }: 2) define PRESERVED__REGS as the count of non-volatiles 3) denote a function call in core.jit as CALL_FUNCTION(jit_info, the_function); NB: the only effect of this statement is that the extcall flag of that opcode is set to -1. It does not call the function or even try to setup function arguments. Function call is done by ... 4) define that macro on top of core.jit jit/i386/core.jit is using this functionality now. Have fun, leo
[perl #32122] [TODO] exec core testing
# New Ticket Created by Leopold Toetsch # Please include the string: [perl #32122] # in the subject line of all future correspondence about this issue. # http://rt.perl.org:80/rt3/Ticket/Display.html?id=32122 > We have since quite a time the support for creating native executables on some platforms. This functionality is not tested at all. The Makefile has just one very simple rule to create a "Hello world"-like program with "make testexec". Testing the EXEC core should probably use EXEC_SHARED, but I don't know if that works. Hopelfully Daniel is listening and can provide some hints. Takers welcome, leo
Re: [perl #32117] [PATCH] new multifacetted pmc: siva
I am currently stuck because I get the error parrot: src/string.c:269: string_init: Assertion `p' failed. on the second string_init of a parrot run using the last vanilla cvs It may be a problem with mandrake cooker. Jérôme Quelin uses a older mandrake cooker and it works there. Comparing our config, it seems that the main difference is he got: set P0["buildicu"], "1" and I have: set P0["buildicu"], "0" in config_lib.pasm I have yet to check further. So I may imprecise in my answers because I can't currently run tests. Also, I should have put a disclaimer, many pmc methods are still missing. This is an early submission to get feedback. On Sun, Oct 24, 2004 at 12:58:48PM +0200, Leopold Toetsch wrote: > Stephane Payrard <[EMAIL PROTECTED]> wrote: > > Siva is a type that acts as a hash, array , string scalar, int > > scalar. It is intended as the type for nodes of attributed trees > > These attributed trees may probably be of various kinds such as > > parse trees and XML trees. The intensive use of context should > > minimize explicit structure walking. > > > Hashes and arrays are allocated only when needed. I meant for a given pmc, the hash, array, or string that it may contain is allocated only when necessary. > > > I have a problem with siva.t. The pasm code is the same as > > siva.pasm though. > > What problem? Apparently, there is a problem in the reading of siva.so. I did not yet check how Parrot::Test run that makes the parrot run differently than running directly parrot dynclasses/siva.pasm siva.t must be updated anyway to reflect that I made siva a dynamically loaded pmc. > > > +/* rhs and lhs versions needed to avoid the msg "warning: use of cast expressions > > as lvalues is deprecated" > > Have a look at LVALUE_CAST() > > > +#define siva_hash(a) ((siva*) PMC_pmc_val(a))->hash > > > +#define siva_str(a) ((siva*) PMC_pmc_val(a))->s > > What happens, if I create a hash and extract a string? Should work. They live in different fields of the siva struct. At this point my tests in siva.pasm were just that: toverify that the different structures are correctly allocated and that they don't overlap. -- stef > > > leo >
Re: [perl #32092] Strange segfault when concatenating strings
Leopold Toetsch wrote: Matthias . Hoelzl @ ifi . lmu . de <[EMAIL PROTECTED]> wrote: Parrot segfaults when executing the appended function. It's hard to tell, what's the problem. A debugger backtrace with information about the relevant variables could help. And: if the code runs with "parrot -G" then it's likely a GC bug. If the segfault is happening earlier, when you run with --gc-debug and/or -t, the it's very likely a GC bug. The code runs fine with the "-G" flag and also with the "--gc-debug" flag. It segfaults before finishing the first test when run with the -t flag. I have appended a backtrace with information about the relevant variables. The backtrace seems to support your conclusion that the segfault happens during garbage collection. Best is of course to extract a small piece of code that exposes the error :) Sorry. I tried for some time to generate a small test case. But as soon as I remove significant parts of the program, the segfault disappears... :-| Matthias Current directory is /usr/local/parrot-0.1.1/bin/ GNU gdb Red Hat Linux (6.0post-0.20040223.19rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db library "/lib/tls/libthread_db.so.1". (gdb) cd /home/tc/prog/parrot/girls/tests Working directory /home/tc/prog/parrot/girls/tests. (gdb) run test-bootstrap.pbc Starting program: /usr/local/parrot-0.1.1/bin/parrot test-bootstrap.pbc [Thread debugging using libthread_db enabled] [New Thread -151099072 (LWP 5119)] [New Thread -159786064 (LWP 5122)] [New Thread -170275920 (LWP 5123)] Starting main Testing binding...done Generating global get...done Generating global get...done Generating global set...done Generating global set...done Generating scope_entry...done Generating scope_exit...done Generating lexical get...done Generating lexical get...done Generating lexical set...done Generating lexical set...done Generating invocation...done Generating label...done Generating label...done Generating label...done Generating label...done Generating function header...done Generating function header...done Generating function header...done Generating temporary name...done Generating temporary name...done Generating temporary name...done Generating temporary name...done Generating temporary name...done Compiling literal list...done Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -151099072 (LWP 5119)] 0x080e4169 in pobject_lives (interpreter=0x940a008, obj=0x11) at src/dod.c:198 (gdb) print *interpreter $1 = {int_reg = {registers = {1, 0, 0, 1, 0 }}, num_reg = {registers = { 0 }}, string_reg = {registers = {0x95df60c, 0x0, 0x0, 0x0, 0x0, 0x9546744, 0x954678c, 0x95472a8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9546744, 0x0 }}, pmc_reg = {registers = {0x943d800, 0x943d848, 0x943e580, 0x9448338, 0x9448338, 0x943d9b0, 0x95a52f0, 0x9448338, 0x9448338, 0x9448338, 0x9448338, 0x9448338, 0x9448338, 0x9448338, 0x9448338, 0x9448338, 0x943d9b0, 0x943d848, 0x943d800, 0x943d998, 0x9448338 }}, ctx = {int_reg_stack = 0x95ad0b0, num_reg_stack = 0x95b9d70, string_reg_stack = 0x95ad290, pmc_reg_stack = 0x95ad230, pad_stack = 0x95c0170, user_stack = 0x95c0140, control_stack = 0x95c0110, intstack = 0x95c01a8, warns = 0, errors = 1, current_class_offset = 0, recursion_depth = 3, runloop_level = 1, current_sub = 0x943d860, current_cont = 0x943d848, current_object = 0x943e580}, globals = 0x942ced8, arena_base = 0x940a798, class_hash = 0x95a9d60, piodata = 0x940a380, op_lib = 0x82c7e40, op_count = 1570, op_info_table = 0x82b3f20, op_func_table = 0x82b2680, evc_func_table = 0x95e9d28, save_func_table = 0x82b2680, n_libs = 0, all_op_libs = 0x0, flags = NO_FLAGS, run_core = PARROT_SLOW_CORE, profile = 0x0, cur_pc = 0xf538be10, resume_flag = 0, resume_offset = 0, code = 0x95c3dc8, prederef = {code = 0x0, branches = 0x0, n_branches = 0, n_allocated = 0}, jit_info = 0x0, imc_info = 0x95c3d88, current_line = 0, current_file = 0x95966e8, current_package = 0x9597fcc, pdb = 0x0, lo_var_ptr = 0xfeed4dc0, parent_interpreter = 0x0, world_inited = 1, iglobals = 0x95a96a0, DOD_registry = 0x0, binop_mmd_funcs = 0x942d9b8, n_binop_mmd_funcs = 50, caches = 0x95acfe0, const_cstring_table = 0x942d5f0, task_queue = 0x95c3d30, sleeping = 0, exceptions = 0x95e9c68, exc_free_list = 0x95f2e40, exception_list = 0x95c05b8, thread_data = 0x0, recursion_limit = 1000} (gdb) print *obj Cannot access memory at address 0x11 (gdb) up #1 0x080a09da in mark_1_seg (interpreter=0x940a008, cs=0x95c3f68) at src/packfile.c:360 (gdb) print *cs $2 = {base = {pf
Re: [perl #32118] AutoReply: [PATCH] Update of documentation
> - do not change viewcvs in glossary.doc to cvsweb, just correct the > link Please _do_ change all references to cvsweb to viewcvs. Unless there is a compelling reason, we will continue to phase out use of cvsweb. viewcvs is faster, cleaner, and has more features. -R
Re: [perl #32118] [PATCH] Update of documentation
> Maybe there are some good links to Tinderbox or Bonsai or ViewCVS or they > are only temporarily down, I don't know, but having non-functional > references in documentation is not very good. Tinderbox is temporarily down. Either Zach needs to fix it, or I need to finish my replacement for it. Bonsai is something I don't think anyone ever used. I have a Bonsai replacement on deck, although the front-end doesn't seem to work so well. (Bonsai is basically a searchable database of all checkins.) If a Bonsai-type tool is important to anyone, something can be made to happen. ViewCVS is a fully supported system. If it's ever down, something is wrong. > Note that some of these apply to http://www.parrotcode.org/resources.html > too. Patches for this can be generated against: https://svn.perl.org/perl.org/docs/live/parrotcode/ (guest/guest) Please send them to webmaster at perl.org. -R