# New Ticket Created by Joshua Isom # Please include the string: [perl #37940] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=37940 >
For the reverse-compliment benchmark, I've gotten it working(albeit not well), but with one major caveat. Since, to my knowledge, parrot has no equivalent of perl's tr///, I implemented it using in place substitutions with substr. Sometimes I get parrot to panic and quit(and might I add that the error message is pretty fixed from my look at the code), but other times it's able to keep going. Parrot would slowly build up memory taken, and going to over 130 megs real, 1.3 gigs virtual, and my last running, 700 memory regions. Then, parrot will either panic and die because it can't get any more memory, or either parrot or the system readjusts the memory and reduces it to about 8 megs real, 650 megs virtual, and only 50 regions, and continues on without a trouble, no more increase in regions of memory, not exceeding ten megs of real memory and sometimes less than four, and a very slow increase of virtual. I'm using the substr_s_i_i_s variation, and parrot r10448. I noticed in src/memory.c there's a DETAIL_MEMORY_DEBUG that's not defined anywhere, and only mentioned in src/memory.c, but when I tried defining it, I couldn't get parrot to build. Turning on trace "fixes" the memory issue, from the command line or from within the pir. I haven't noticed any problems with any of the other substr variants. I've attached the file, with the work around commented out and with the substr. The input for it is via stdin, and is the output from fasta, with n = 2,500,000, which comes out to a nice 2.4 meg file, which is coincidental because after 24 lines of input to process I get the choke. Oh, and at the moment I'm at ten minutes in, about 200 lines, out of 41671. Perl takes half a second. I'm not going to see if it'll finish in under 30 hours.