sults of those
assertions. Printing to STDERR/STDOUT, hijacking those and pretty
printing the
results is simply not enough in all cases. It is awesome in some cases. Just
not all.
sorry for the rant. I have seen an RT request for at least a data structure
returned for results. any movement on that?
-jason gessner
[EMAIL PROTECTED]
st::Harness!!!
-jason gessner
[EMAIL PROTECTED]
Connected by MOTOBLURâ„¢ on T-Mobile
-Original message-
From: Juan Madrigal
To: perl6-langu...@perl.org
Sent: Tue, 29 Dec 2009 03:41:50 GMT+00:00
Subject: Interactive Perl 6 shell
Does Perl6/Rakudo have an interactive perl shell like ruby does with irb?
http://en.wikipedia.org/wiki/Inte
Will the buffers associated with a string be managed by Parrot's memory
management, and be visible to the garbage collector ? Or will these buffers be
allocated from their own pool of memory not subject to garbage collection.
--
Jason
# Dumping Core...
# '
# expected: 'ok 1
# ok 2
# ok 3
# '
# Looks like you failed 5 tests of 6.
The script in question is attached.
dynlexpad.t
Description: Binary data
I hope this helps! The make test passed everything, but this error
occurred while running make fulltest.
-jason gessner
[EMAIL PROTECTED]
anyone done this before i figure out how to do it?
Many Thanks!
-jason gessner
[EMAIL PROTECTED]
coupled from the chunk headers, and
> we need to implement COW for the stacks.
>
> 4) The stack frames need to be GCable.
Which of these are still relevant ?
--
Jason
This clarifies some semantics of the get_string and substr vtables.
Index: docs/pdds/pdd02_vtables.pod
===
RCS file: /home/perlcvs/parrot/docs/pdds/pdd02_vtables.pod,v
retrieving revision 1.10
diff -r1.10 pdd02_vtables.pod
175c175,1
ll, please send us mail at cvs at perl.org.
Has the CVSROOT changed ?
>cvs checkout parrot
/home/perlcvs: no such repository
cvs checkout: authorization failed: server cvs.perl.org rejected access to
/home/perlcvs for user anonymous
--
Jason
On Fri, Jun 07, 2002 at 11:23:56PM -0400, Dan Sugalski wrote:
> 2) A revamped stack system so we can support exceptions
What is the intent for stacks ?
--
Jason
This seems like a good time to send in this patch:
It allocates the stack content memory using a buffer. This makes the stack
chunks and the memory used to hold stack contents visible to the garbage
collector. One can incrementally add to this to support copy-on-write
semantics for the chunk co
This fixes the problem with reading .pbc files on win32. Someone may want to
write the code to do something useful with the results of stat() when mmap() is
not being used.
Index: assemble.pl
===
RCS file: /cvs/public/parrot/assemb
Could someone apply this ?
- Forwarded message from Jason Gloudon <[EMAIL PROTECTED]> -
Mailing-List: contact [EMAIL PROTECTED]; run by ezmlm
Precedence: bulk
Delivered-To: mailing list [EMAIL PROTECTED]
Date: Mon, 10 Jun 2002 19:33:56 -0400
From: Jason Gloudon <[EMAIL PROTE
et/Display.html?id=702 >
>
>
> To reproduce, sync with CVS, build, run "basic.pl" -- that's all. This
> version of BASIC is unchanged since it last worked
The problem was with my last stack patch. During DOD the control stack chunks
have to be walked now, since th
Duh. Here's a unified diff.
--
Jason
Index: docs/jit.pod
===
RCS file: /cvs/public/parrot/docs/jit.pod,v
retrieving revision 1.4
diff -u -r1.4 jit.pod
--- docs/jit.pod29 Jul 2002 21:13:38 - 1.4
+++ docs/ji
struct Parrot_Interp * interpreter);
Parrot_jit_optimizer_t *
optimize_jit(struct Parrot_Interp *,
--
Jason
27;t have a find first set bit instruction ?
This code includes 3 different ways of finding log2.
http://www.ddj.com/ftp/2001/2001_07/aa0701.txt
I believe the LOOKUP method was the fastest for me on SPARC, if I recall
correctly.
--
Jason
On Mon, Aug 12, 2002 at 03:56:27AM -0400, Mike Lambert wrote:
Here is a workaround for one hash related GC bug.
--
Jason
Index: hash.c
===
RCS file: /cvs/public/parrot/hash.c,v
retrieving revision 1.19
diff -u -r1.19 hash.c
er rich CPU is is not impossible that something has the
> only pointer to an in use value still only in a CPU register.
Yes. This is definitely necessary. We also need to flush register windows on
platforms like SPARC, IA-64.
--
Jason
Here is another way of resolving this, as I mentioned in the last message.
Having new_hash() initialize the PMC's data pointer so that the hash is
immediately visible to the collector.
--
Jason
Index: parrot/hash.c
===
RCS
The last patch had an issue I didn't see on the test I was working against.
mark_hash() assumes the buffer_pool is always initialized, but with the patch
this is no longer the case.
--
Jason
Index: parrot/hash.c
===
RCS
Here is one additional check...
-Jason (The other one)
On Mon, 2002-08-12 at 19:23, Jason Gloudon wrote:
> The last patch had an issue I didn't see on the test I was working against.
> mark_hash() assumes the buffer_pool is always initialized, but with the patch
> this is no l
Sorry, this version now includes the missing modifications to hash.h.
-Jason
On Mon, 2002-08-12 at 21:02, Jason Greene wrote:
> Here is one additional check...
>
> -Jason (The other one)
>
> On Mon, 2002-08-12 at 19:23, Jason Gloudon wrote:
> > The last patch had an
One more safety check (fixes another crash bug). Hopefully this is the
last patch patch.
-Jason
On Mon, 2002-08-12 at 22:38, Jason Greene wrote:
> Sorry, this version now includes the missing modifications to hash.h.
>
> -Jason
>
>
>
> On Mon, 2002-08-12 at 21:0
s, I have been spent too many hours at the
debugger trying to figure out some of these GC problems (one of them
involving large buffers I still haven't solved)
-Jason
that can be done, but that may help for now.
The configure-time-stack-growth-direction patch makes these #define'd constants,
so you get the same speedup.
--
Jason
On Sun, Aug 18, 2002 at 02:51:34AM +, Jason Gloudon wrote:
> # New Ticket Created by Jason Gloudon
> # Please include the string: [perl #16278]
> # in the subject line of all future correspondence about this issue.
> # http://rt.perl.org/rt2/Ticket/Display.html?id=16278
ll have to create a temporary PMC to hold the result
which it then passes to set_pmc ? What does set_pmc then do, in the case of a
normal assignment with no magic or fixed type in order to perform the
assignment ?
--
Jason
as had the time and knowledge to do it.
--
Jason
rrent state of the art is generational garbage collection, which
scans/copies longer lived data less frequently as it is more likely to remain
live.
--
Jason
there is more than one DOD run ?
The problem sounds like that the collector is not looking in all the
appropriate places for these PMCs and Buffers. I have not looked in a while but
has anyone added the necessary code to examine CPU registers for PMC and Buffer
pointers ?
--
Jason
PDD ?
> perlhash/array have exists_keyed (but no type_keyed), though the opcodes
> are missing.
On a tangent:
Shouldn't a Perl Hash be a homogenous data structure, ie. it should contain
just PMCs ?
--
Jason
is can be done by testing for preprocessor symbols
alone.
--
Jason
for (cur_var_ptr = lo_var_ptr;
(ptrdiff_t)(cur_var_ptr * PARROT_STACK_DIR) <
(ptrdiff_t)(hi_var_ptr * PARROT_STACK_DIR);
cur_var_ptr = (size_t)( (ptrdiff_t)cur_var_ptr +
PARROT_STACK_DIR * PARROT_PTR_ALIGNMENT )
--
Jason
lking function. This is left as an exercise for the reader.
--
Jason
Index: dod.c
===
RCS file: /cvs/public/parrot/dod.c,v
retrieving revision 1.24
diff -u -r1.24 dod.c
--- dod.c 23 Oct 2002 05:27:01 - 1.24
+++ dod.c
(I really don't see why).
Are you compiling with optimization enabled ? Is the difference consistent ?
If the answer to both questions is yes, it is probably a cache effect related
to the new variable on the function stack. I doubt the slowdown is universal.
I will try to check on SPARC sometime today.
--
Jason
gned address on the stack (I can't imagine why). We could always say
"don't do that!" for performance reasons.
--
Jason
f gcc)
A lot of research has been done on this type of thing under the terms 'partial
evaluation' and 'specialization'. There is a working specializing python
compiler that might be of interest : http://psyco.sourceforge.net/doc.htm
--
Jason
on of the bytecode stored on disk. Having to
pseudo-execute the bytecode in order to disassemble seems unnecessary. I think
keeping this information separete from the executable section will make the
code generators simpler as well.
--
Jason
y, this will be necessary as the native code will need to transfer
control to an interpreter loop in order to execute code that has not been
compiled.
--
Jason
on is triggered in a C function
called from JIT code.
> * saves processor registers to parrots
> * then longjmps to parrot handler
>
> As we already seem to need to restore processor registers on resume, we
> could do the reverse thing on exception too.
>
>
> >Nicholas Clark
>
> leo
--
Jason
de generates an
exception ?
> * gets jumped to, so registers are still ok
> * saves processor registers to parrots
> * then longjmps to parrot handler
--
Jason
unction raises an exception because you do not
know where or how the compiler has saved the registers.
--
Jason
ecode segments, as I do not expect one will JIT
compile every piece of code because of the inefficiency of doing that (unless
we make the JIT code less specialized than it is on at least IA-32/x86, where
addresses of registers and the interpreter pointer are embedded in the
generated code).
--
Jason
On Thu, Nov 21, 2002 at 08:34:04AM +0100, Leopold Toetsch wrote:
My patch in 16237 has the code to flush register windows on v8 and older and v9
(64-bit) SPARC systems, which is what one is really trying to achieve via
setjmp.
--
Jason
Indeed, if I try to use the debugger and "print list"
> while in list_new, I simply get
After a bit of research on google I found that setjmp on SPARC only saves the
stack pointer, the frame pointer and the program counter, which is why the
setjmp technique does not work. longjmp() on the other hand does do a window
flush in order to unroll stack frames.
--
Jason
is out of
> range: 0x81c3e008
That in itself shouldn't have mattered (signed/unsigned) but this version does
fix the lexicals.t test failures.
--
Jason
/* cpu_dep.c
* Copyright: (When this is determined...it will go here)
* CVS Info
* $Id$
* Overview:
* CPU dependent
On Fri, Nov 22, 2002 at 02:04:20PM +0100, Leopold Toetsch wrote:
> Parrot_sub_i_i {
> Parrot_binop_x_x s//sub/ s/<_N>//
> }
The only question I have is .. How am I supposed to read/translate the above ?
--
Jason
making it a core platform for parrot at this time.
--
Jason
top)
-interpreter->lo_var_ptr = stacktop;
}
void
--
Jason
alk the hardware stack that's too costly to be
practical.
The best partial solution to early finalization is compile-time tracing of
possible references by the compiler which can explicitly generate the
appropriate DESTROY calls.
--
Jason
or and stick with the current stop
the world collector. Parrot's basic execution speed will be unchanged. By
trading heap size against frequency of collector runs, one could amortize the
cost of running the collector. Extension and core code programmers would never
have to think about the garbage collector in order to write correct code.
--
Jason
rence may be deleted because you don't
know the side-effects of code that you're calling, so you would always have to
make sure it is anchored, and incur the overheads etc.
--
Jason
s, that have specific entry points.
Maybe Dan could give us a hint about the closure/block/byte code segment
relationship.
--
Jason
-contained inter-segment jump instruction.
Since the compiler knows when a branch is non-local it can always break a
non-local conditional branch into a conditional local branch to a non-local
branch instruction.
For example
if i, nonlocal
... not taken
can be expressed as
if i, TAKEN
... not taken
...
TAKEN: inter_jump nonlocal
--
Jason
does not have to support making every instruction a safe
branch destination.
--
Jason
; process, of all the modules.
Are you sure the swap space allocation isn't mostly attributable to the poor
locality in the Perl process's data structures ?
--
Jason
nged and code_start would no
longer be correct.
--
Jason
preter->ctx.int_reg.registers[interpreter->code->base.data[offs+i]]
following the names you've used in previous mail.
Intersegment jumps may not work readily for all runloops, but I don't believe
that requires as big a change as you're suggesting.
--
Jason
y good for a single interpreter.
--
Jason
can't do that for prederef in a multi-threaded process because prederef
stores the address of the registers in the interpreter structure in the
prederef data.
case PARROT_ARG_I:
pc_prederef[i] = (void *)&interpreter->ctx.int_reg.registers[pc[i]];
--
Jason
tor. Basically the entry points to basic
blocks are replaced with enternative calls so that the transition to compiled
basic blocks of ops code happens transparently to the interpreter.
--
Jason
data.
It's not going to be very good if I compile code to pbc on an x86 where there
are about 3 usable registers and try to run it on any other CPU with a lot more
registers.
--
Jason
On Wed, Feb 26, 2003 at 09:31:39AM -0800, Sean O'Rourke wrote:
> Dan -- you might be interested in
> http://www.usenix.org/events/javavm02/chen_m.html (if you have a USENIX
Research wants to be free:
http://www-hydra.stanford.edu/publications/JVM02.pdf
--
Jason
But with proper tail call optimization you'd only need *one*
> saveall. That's why it's an optimization.
Tail call optimization is a space (stack size) optimization. The scheme
definition only requires space efficiency. The time optimization is important
but a secondary consideration for the functional language folks.
--
Jason
On Fri, Mar 07, 2003 at 11:38:41PM +, Jason Gloudon wrote:
> # New Ticket Created by Jason Gloudon
> # Please include the string: [perl #21508]
> # in the subject line of all future correspondence about this issue.
> # http://rt.perl.org/rt2/Ticket/Display.html?id=21508 >
On Sun, Mar 23, 2003 at 03:54:21PM +0100, Leopold Toetsch wrote:
> Not really, but I don't see, how this set of macros would influence
> debugging negatively.
You can't step through the expanded code for a macro in the debugger.
--
Jason
On Tue, Jul 15, 2003 at 10:15:57AM +0200, Leopold Toetsch wrote:
How is the described scheme supposed to work with JIT generated code ?
--
Jason
the script. I would be interested
in knowing if a cleaner way is possible, as this is kind of lame.
Thanks
Jason.
Hi,
On Wed, 8 Dec 2004 13:37:14 -0500, "Michael G Schwern"
<[EMAIL PROTECTED]> said:
> On Tue, Dec 07, 2004 at 07:21:09PM -0800, Jason Remillard wrote:
> > I ran the codestriker (http://codestriker.sourceforge.net/) test set
> > using Devel::Cover. The test
tests.
This is not designed as a replacement for a cron'd prove. The way i see
it being used is in a terminal window adjacent to an editing session
while trying to nail down a problem.
Thoughts?
-jason gessner
[EMAIL PROTECTED]
23a24
> my $session = 0;
42a44
> 'session
Andy Lester wrote:
On Sun, Dec 12, 2004 at 12:24:26AM -0600, Jason Gessner ([EMAIL PROTECTED])
wrote:
This is not designed as a replacement for a cron'd prove. The way i see
it being used is in a terminal window adjacent to an editing session
while trying to nail down a problem.
So it
David Cantrell wrote:
Jason Gessner wrote:
Andy Lester wrote:
So it's sort of adding make functionality with prove. The way the check
is running in the patch, the only criteria for updating it is changes
in the .t file, but what if what you're updating is the source file?
Detecting a
is skip supposed to be case sensitive? is it Skip, skip or SKIP ?
TODO seems to be all caps.
-jason gessner
[EMAIL PROTECTED]
On Feb 19, 2005, at 8:48 PM, Andy Lester wrote:
The synopsis uses passive voice; <.> is called TAP.
Id turn that around.
TAP, the Test Anything Protoc
P set_n_nc {
NUM_REG(P1) = PCONST(P2)->number;
}
is now
/* SET Nx, CONSTANT */
AUTO_OP set_n_nc {
NUM_REG(P1) = NUM_PCONST(P2);
}
--
Jason
Index: basic_opcodes.ops
===
RCS file: /home/perlcvs/parrot/basic_opcodes.ops,v
r
Here is the patch (again) to use the appropriate bitmask determined by
Configure for the different register chunks.
--
Jason
Index: Configure.pl
===
RCS file: /home/perlcvs/parrot/Configure.pl,v
retrieving revision 1.29
diff -u
The "stacktest" patch will fail on the current CVS source, due to a bug in
push_generic_entry.
--
Jason
Index: t/op/stacks.t
===
RCS file: /home/perlcvs/parrot/t/op/stacks.t,v
retrieving revision 1.3
diff -u -r1.3 stac
On Sat, Oct 20, 2001 at 11:44:40AM -0400, Jason Gloudon wrote:
>
> The "stacktest" patch will fail on the current CVS source, due to a bug in
> push_generic_entry.
The 1-line patch to fix this was also included.
--
Jason
ably want to use an array of
function pointers for each method, like add[7] and initialize each entry
with the appropriate function pointer.
--
Jason
it's not clear how much real work
that entails) on each call, but the storage required will be fixed.
--
Jason
Here's a minimal patch for the dynamic loading functions on Win32. I punted
on properly implementing Parrot_dlerror for now but the other three should
work.
How soon can you check in your ops so we can test these?
Jason.
diff
Description: Binary data
e them in the header file for each platform? I do
think, however, that we might still want a header file for each platform for
typedefs and #define's.
Jason.
State and CPAN and neither of them had a Time directory in the ext
directory. Searching for HiRes.xs found nothing.
Thanks,
Jason.
ed a day or two ago, it is not clear how what the short term
target for implementation vs the proposed design, when it comes to what the
vtable entries should be.
For example, the different between the vtable entries for set_integer and
get_integer. I was hoping to create a few of the entries, but I don't know what
is expected of them.
--
Jason
s from the root to an object, but I'm
> asking if, for example, we could use an algorithm that relied upon the fact
> that it only has one direct parent.
That assumption would mean one could not directly share non-constant buffers
between strings. There has been talk of having copy-on-write strings.
--
Jason
;vtable_funcs[VTABLE_ADD + P2->vtable->num_type](i, P0, P1, P2);
Didn't someone mention using thread local storage to make the interpreter
structure available for memory allocation purposes. It would surely be useful
here.
--
Jason
On Fri, Nov 16, 2001 at 03:40:57PM +, Simon Cozens wrote:
Hurrah!
--
Jason
calculating its offset in a contiguous block of memory.
--
Jason
table functions generated for the scalar
class will only return INTVALs but my impression is that they could return
INTVALs or BigInt values, so that the current scalar class function prototypes
will eventually change.
--
Jason
on't have to fold constants :
set I1, 0
set I2, 1
add I3, I1, I2
--
Jason
s without error (but still a bunch of warnings) for me. I
tried really hard to make sure that it does the same on Linux as well.
I hope you find it useful,
Jason.
diff
Description: Binary data
ot_open?
> Let me know if you get it working. Patches encouraged.
I got around it by commenting out the lines in core.ops for now. But then
there were other issues to get past. I've either fixed or hacked around
them. Once I get the tools to create patches I'll post them if Brent hasn't
already taken care of them.
Thanks,
Jason.
e, the NUM
vtable functions are being generated with 5 variants, but the above indicates
at least 6, and with what you've said about possibly complex numbers, this
could be 7.
--
Jason
l, since most of the time a
string is copied in order to munge it.
So going to your original question, here we have potentially common case where
a given buffer has multiple parents.
--
Jason
INTVAL.
Is this really going to remain true ? That absolute jumps on Ix registers will
remain relative to the start of the current bytecode section ? (Since INTVAL
is not going to contain a pointer, jump Ix cannot be equivalent to pc = (opcode
*)Ix).
--
Jason
the same value enough times in places where you need an integral
value, (an array index, an argument to substr etc), it is faster to cache the
int value than converting from double (or BIGFLOAT) every time.
--
Jason
of extraneous temporaries.
Using the aggregate's vtable is another way of getting the job done that avoids
all the extra reference PMCs. However, references will have to be supported.
--
Jason
ebuginfo.t tests are missing 'end' opcodes. My win32 setup doens't like
this.
Index: debuginfo.t
===
RCS file: /home/perlcvs/parrot/t/op/debuginfo.t,v
retrieving revision 1.1
diff -w -r1.1 debuginfo.t
14a15
> end
29a31
> end
44a47
> end
75a79
> end
--
Jason
re of $1 with $2's
contents.
'alias' seems like a good name for the pointer copy opcode.
--
Jason
es can provide more complex
assignment functions.
This allows tie'ing and type checking to take place within P0. For example,
PMCs that will only accept integer values can do get_integer/set_integer
instead of using clone.
--
Jason
1 - 100 of 275 matches
Mail list logo