additional checks. However, if
the parent's preconditions apply to the child invariably, it would be
rather difficult to make your subclass accept a wider variety of input.
I'm not proposing a solution, but rather just a problem to keep in mind.
Mike Lambert
in the opposite direction, they don't quite gel with that particular
proposal.
Mike Lambert
?
Mike Lambert
or cleaned on it's own.
The PMC would become an interface for the GC system to control the
lifetime of the allocated interpreter memory, since the GC system would
control the PMC.
Mike Lambert
and ./key.c have a
similar problem.
Mike Lambert
a discussion for another thread. My point is that
all things don't need to be traced, and some stuff can be handled
manually, as long as the perl programmer doesn't see it directly.
Hope this helps answer your questions,
Mike Lambert
disallow such a patch for this reason alone. We're
already taking a 2x hit (peak) by using a copying collector. No need to
make it worse. :)
Mike Lambert
)
$a = (1,2,3)
($a) = 1,2,3
Do you still believe those should be identical? They have the same
problems mentioned above, and likely other issues as well.
Mike Lambert
in the system heap (malloc et al), and store only a pointer to it on
the stack?
Mike Lambert
that machine had worked before, but isn't working now. I'll remove
it from the list of machines it connects to.
Mike Lambert
like the p6/imcc/pasm/pbc files,
I can provide them. Just let me know.
Mike Lambert
its functionality. I'll probably
apply this after the code opens up again, but if someone beats me to it,
please be sure to update the affected file above.
Applied, thanks,
Mike Lambert
to supporting different encodings. I don't know if
printf(%s) is any better than fwrite in terms of at least vaguely
paying attention to your locale or whatever. If so, don't apply it.
(all tests pass)
Applied, thanks,
Mike Lambert
# '
The first was a GPF, the second was just incorrect output.
I'm not sure if this is progress or not, but I believe it might adversely
affect other platforms. I don't have time to look into the issue now, but
I'll try to do so tomorrow.
Mike Lambert
*will* arise in practice.
Mike Lambert
functionality. I'll probably
apply this after the code opens up again, but if someone beats me to it,
please be sure to update the affected file above.
Thanks,
Mike Lambert
,
we should go 100% in converting the IO in core.ops to use parrot io, or
convert the tests/programs over to using io.ops. (Not sure which way we
want to go.)
Mike Lambert
to
fix external, but I'm not sure about this one.
Mike Lambert
identically, like this patch does
b) just have people who want external data to unset selfpoolptr.
Thoughts?
Mike Lambert
that
unmake_COW could be extended to take 'pre' and 'post' byte arguments, and
would pad the resulting string by that much on either side when
uncowifying it. This would help string_grow optimally uncowify things. I
just haven't gotten around to that yet.
Thanks,
Mike Lambert
imcparser.c and imcparser.h into CVS and save users the step of building
them on these platforms? It's just an additional parrot depenendancy which
doesn't need to be there, and may come in handy when trying to build on a
lot of the more arcane platforms.
Mike Lambert
Steve's fixes should make this
problem go away.
Mike Lambert
are implemented, and so the t/src/*
test have no direct dependancy upon libparrot.a/lib and libparrot.so/dll,
and so can probably be removed. If it helps make 0.0.8 build on more
platforms, it might be a good thing to do.
At least, that's my understanding of the situation.
Mike Lambert
. As such, the above argument could be
correct or incorrect depending upon exactly how they are defined. :)
Mike Lambert
on
imc-pasm, with msgs like NO Op rx_pushmark_ic (rx_pushmark1)
Mike Lambert
Index: config/gen/makefiles/imcc.in
===
RCS file: /cvs/public/parrot/config/gen/makefiles/imcc.in,v
retrieving revision 1.1
diff -u -r1.1 imcc.in
--- config
} is incorrect? Any ideas on how to resolve this?
Thanks,
Mike Lambert
the main makefile to use ar and ranlib, just
as perl5 has successfully done for years.
Applied, thanks.
Mike Lambert
for determinstic destruction, even in light of the
alternative approaches mentioned above?
Thanks,
Mike Lambert
?
Thanks,
Mike Lambert
Index: config/gen/makefiles.pl
===
RCS file: /cvs/public/parrot/config/gen/makefiles.pl,v
retrieving revision 1.2
diff -u -r1.2 makefiles.pl
--- config/gen/makefiles.pl 29 Jul 2002 04:41:24 -
happening throughout the
lifetime of any program that does something with strings, I think it's an
okay tradeoff. Were there any other reasons for implementing the above
linked list technique that I missed?
Thanks,
Mike Lambert
On Wed, Aug 21, 2002 at 04:17:30AM -0400, Mike Lambert wrote:
Just to complete this thread, I have committed the current version of my
COW code, as I promised earlier this week.
Did you try running tests with GC_DEBUG on? I get numerous failures.
Here's a patch with a couple of fixes
on Not a string!. It could be that basic is using keys in
weird ways, or it could be that the key patch is borked...I haven't looked
into it enough to determine the true cause here.
Thanks,
Mike Lambert
with nothing at all. So until
the need arises, I don't think the generations count would be worth it.
Especially since I plan to try and prove the need for a header pool
pointer at some point. :)
Mike Lambert
. And I'm not sure if a decree has been made about what
Perl6 will do.
Mike Lambert
when we
uncowify a buffer. I believe changing strlen to bufused is the proper fix,
and have committed said change.
Thanks,
Mike Lambert
This adds logical shift right opcodes. They are essential for bit shifting
negative values without sign extension getting in the way.
Applied, thanks.
Mike Lambert
you please turn off strip-trailing-whitespace in your
editor? Your patches are reflecting the stripped spaces, which makes it
hard to discern intentional changes from accidental ones.
Thanks,
Mike Lambert
our memory is going, I would greatly appreciate it. I'm stumped over
here, and am getting frustrated. (That's why I'm writing this email and
going to sleep ;)
Thanks,
Mike Lambert
data before modifying it, etc. So while I've been
pushing for COW for a long time, if it turns out to be horribly broken in
memory usage, I'm going to have to sideline my work on it and continue
with other stuff. :|
Thanks,
Mike Lambert
was able to submit a patch.
Looking at the patch, it seems rather GCC-specific. The checking for
no-X versus X in the warnings flags seems to be rather non-portable to
compilers like MSVC.
Unfortunately, I don't believe this is easily fixable.
Mike Lambert
.
On IRIX, though, I get these, where probably NO_STACK_ENTRY_TYPE is
meant instead.
Applied as well.
Mike Lambert
any reasons against this patch going in?
Thanks,
Mike Lambert
Index: core.ops
===
RCS file: /cvs/public/parrot/core.ops,v
retrieving revision 1.199
diff -u -r1.199 core.ops
--- core.ops18 Aug 2002 23:57:37 -
. Since you only posted life, it's a
bit hard to see if the drop on hanoi is just my fault, or the fault of
COW in general.
(More benchmarks will appear in my soon-to-be-sent COW patch email.)
Thanks,
Mike Lambert
this in the long run.
Anyone feeling adventuresome and want to attempt to speed this up? It
should be an easy introduction to the GC code in general. Just start out
in trace_system_stack, and work your way down.
Mike Lambert
Applied, thanks.
Moved the static prototype to dod.c
Jason
Applied, thanks.
Mike Lambert
This is a config test for the direction of stack growth that makes
the direction a compile time constant.
--
Jason
with constant keys, so you might need to create a key copy.
c) any other ideas? Or should we mark this as a 'known limitation' ?
Overall, tho, the patch looks extemely complete. Tracing support,
disassemble.pl support, debug.c support, etc. You even reduced macro
usage. Rather impressive. :)
Thanks,
Mike
a nice
eyeopener on what can be done without the current restrictions. Hopefully
they'll allow us to reconsider each restriction in the context of
the speed of our GC.
Mike Lambert
on are, imo,
perfectly fine.
In conclusion, I don't have any objections to this patch, although it
would be nice if XXX Unification markers were included in places that
needed to be addressed later.
Mike Lambert
the implementation phase and realize the scope of the project. :)
Thanks,
Mike Lambert
issues
Anyone more well-versed in these departments than I care to take a look at
the potential problems? Just change GC_DEBUG in parrot.h, and you can be
on your way. :)
Thanks,
Mike Lambert
to do GC stuff outside of the parrot execution loop, like allocating
global variables (like argv, but app-specific), etc. Of course, it also
imposees additional coding overhead on the embedding programmer.
Mike Lambert
). Of
course, one could argue that the previous one didn't work at all. :)
Thoughts?
Mike Lambert
Sean O'Rourke wrote:
Date: Fri, 2 Aug 2002 08:20:58 -0700 (PDT)
From: Sean O'Rourke [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: Re: [perl #15942] UNICOS/mk new
Mike Lambert wrote:
One idea, which is most closely in line with the current semantics, is to
add a pool pointer to every header. I've found a few times in the past
where such a pointer would have come in handy. This would allow us to call
the pool's mark() function, to handle stuff like
adjusting next_for_GC, it's
already going to reference memory there. Checking the flag would merely
prevent traversing the memory again in the 'process' portion.
Thanks for the quick reply,
Mike Lambert
Fixed, thanks.
Mike Lambert
Simon Glover wrote:
Date: Fri, 02 Aug 2002 21:19:29 GMT
From: Simon Glover [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: [perl #15951] [BUG] header_allocs_since_last_collect never
updated
Resent-Date: 2 Aug 2002 21:19:29
Applied, thanks.
Mike Lambert
Simon Glover wrote:
Date: Fri, 02 Aug 2002 21:39:13 GMT
From: Simon Glover [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: [perl #15952] [PATCH] Minor doc fix in core.ops
Resent-Date: 2 Aug 2002 21:39:13 -
Resent-From
Applied, thanks.
Mike Lambert
Simon Glover wrote:
Date: Fri, 02 Aug 2002 21:40:51 GMT
From: Simon Glover [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: [perl #15953] [PATCH] More GC tests
Resent-Date: 2 Aug 2002 21:40:52 -
Resent-From: [EMAIL PROTECTED
Applied, thanks.
Mike Lambert
Jarkko Hietaniemi wrote:
Date: Fri, 02 Aug 2002 15:03:21 GMT
From: Jarkko Hietaniemi [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: [perl #15943] [PATCH] UNICOS/mk vs dynaloading continues
Resent-Date: 2 Aug 2002 15:03:21 -
Applied with some modification, thanks.
Mike Lambert
Richard Cameron wrote:
Date: Wed, 31 Jul 2002 22:24:55 +0100
From: Richard Cameron [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: Re: [perl #15845] [BUG] GC segfault
On Tuesday, July 30, 2002, at 07:20 PM
, please feel
free to mention them.
Anyways, I've committed fixes for both of these issues.
Thanks again.
Mike Lambert
Fixes a few typos and tidies up capitalization in dod.dev
Simon
Applied, thanks.
Mike Lambert
Patch below kills a couple of warnings that cropped up because
alloc_more_objects was renamed to alloc_objects in the code but
not the headers. Also updates the comments.
Simon
Applied, thanks.
Mike Lambert
things (should) work.
Of course, the possibility exists that I am completely missing something,
and this truly is a simple question. :)
Thanks,
Mike Lambert
?
- perhaps some method for storing the keyed_ref result into a register?
The mathematical keyed ops might make this unnecessary, however.
Thoughts on this hopefully more concrete explanation of what could be
changed?
Thanks,
Mike Lambert
Mike, I can't mail you directly. I'm sharing a netblock
.
Can we safely remove set , due to the relative inefficiency in
constructing dummy PMCs to call it? Wouldn't it be more efficient to split
the call into two set PP*,and setP*P calls?
Thanks,
Mike Lambert
Applied, thanks.
If someone wants to mark this ticket as resolved, I'd appreciate it.
Mike Lambert
Scott Walters wrote:
Date: Mon, 22 Jul 2002 08:49:33 GMT
From: Scott Walters [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: [perl #15317] [PATCH] Recursive
to the problem of child collection,
but Dan doesn't want to use them due to the problems that occur when we
start using exceptions (and longjmp, etc). Perhaps, if the above
performance hit is due to trace_system_stack, it might give reason to
reconsider the chosen solution?
Thanks,
Mike Lambert
* win32 can flush it's file buffers (FlushFileBuffers())
* SetFilePointer knows about whence, win32 constants (values, not names) are the
same as in linux.
Applied, thanks.
Mike Lambert
when he gets back from TPC. :)
Mike Lambert
?
Thoughts, comments?
Mike Lambert
This patch is rather questionable, and thus I did not commit it
directly. However, it illustrates a point I wanted to make.
Doh! Hopefully my previous post will make a bit more sense now. :)
Mike Lambert
Index: array.pmc
we're just going to travel
around in circles.
Mike Lambert
, to determine how often the
bookkeeping is wasted. But that brings me back around to the point in my
previous email, about the mythical real world program. :)
Mike Lambert
gc_waves_sizeable_headers.pbc 1.000 0.855
Overall:
old 1.000
new 0.925
Details of what were done to accomplish this can be found in my email to
the cvs-parrot list. It was pretty much 4 or 5 distinct things that each
gave a couple percentage points' improvement.
Thanks,
Mike Lambert
Josef Höök wrote:
I've added an if case in genclass so it will print
return whoami; for name function so that no one need to grep parrot
source for an hour or two trying to figure out why it segfaults when
registering pmc class in init_world... ( grumble :-) )
Applied, thanks.
Mike Lambert
the tests passing on all platforms, again. And then try it
with JUST the stackwalking code to avoid neonate problems.
Thanks,
Mike Lambert
something here?
Thanks,
Mike Lambert
value.
This pattern is currently utilized in the string PMC methods, but not with
the number-related methods.
So in conconclusion, while I don't have any reservations about your
patch, I do have a preference that it be done differently. :)
Mike Lambert
/platforms which need it differently? resources.c? platform.c? Maybe
in resources.c with each platform.c calling the generic one in
resources.c (since win32, generic, darwin, etc are all likely to share the
same logic.)
Mike Lambert
Dan Sugalski wrote:
Date: Fri, 12 Jul 2002 13:05:54 -0400
From: Dan
to learn a
particular area of the code and has trouble because of the lack of, or
inadequacy of, the documentation for that task.
Have you attempted to learn every aspect of parrot, such that you
can verifiably say that all of parrot's documentation is lacking?
Thanks for understanding,
Mike Lambert
to MAX_INT or
something, and killing the system. :|
The same caveats apply to pmc headers which happen to have
PMC_buffer_ptr_FLAG set.
How should we get around this particular problem, or is it spelling the
doom of this particular solution?
Thanks,
Mike Lambert
in the forest to the surrounding
mountains, however. Rainbows with a pot of gold at the mountainous end?
Telescopes on the ground which can be moved and rotated?
Mike Lambert
typing, but it might
also help with the differently-organized mathematical libraries: assuming
no binary operators are written, one only needs to write conversions, to
allow them to interoperate, if slowly.
Thoughts? Am I taking it too far?
Mike Lambert
).
Thanks for bearing with me on this,
Mike Lambert
that a slower rampup here would probably be a better
test.
I guess it also raises some suspicion about the other test results. Ah
well, we need a fix for our GC problems anyway...
Mike Lambert
PS: I'm currently operating under the assumption that these kinds of
emails are a good thing
headers not getting
marked as unused, and it needing to allocate more memory blocks.
I think it is *because* they measure how fast parrot is at copying string
that these are good tests. GCs which avoid copying will perform better on
these.
Mike Lambert
that gc_alloc_new isn't really useful as it
currently stands. While what it is testing is good, it currently only has
five iterations due to the huge amount of memory it is allocating. As
such, I plan to give it a slower rampup that should allow for more
iterations, while still testing the same thing.
Mike
to writ
GC-dafe code, since they do not need to be aware of what allocates memory,
and what does not.
What do people think of this approach?
Mike Lambert
expensive to do the tracing, but you shouldn't
need to trace too deep at all, and its time is proportional to the size of
the nested data structure you are creating.
Does that help?
Mike Lambert
PS: Oh, and I forgot to mention in my previous proposal about the need for
nenonating pmc headers, and to look
aspect of our GCs? Real-world
programs are too hard to come by. :) Results of the above test suite on my
machine comparing my local GC work and the current parrot GC are coming
soon...
Enjoy!
Mike Lambert
PS: If you get bouncing emails from me because my email server is down, I
apologize, and I do know
not sure if that is guaranteed by ANSI C, however.
Has this already been considered and explicitly rejected?
Thanks,
Mike Lambert
with what you
please.
Once we figure out how hashes are implemented well, we should probably
write up some guidelines on when to use what kinds of headers, et.c
Thoughts?
Mike Lambert
, below the buffer level?
Thanks,
Mike Lambert
PS: In case you're confused...yes, I was replying to myself. :)
'fix' this up by including the true buffer length in the buffer
footer, so that we ignore the header's buflen during the collection
process.
But I think the strstart is a better idea regardless. It's what perl5 did
anyway, isn't it?
Mike Lambert
about the above approaches?
FWIW, I feel confident enough about my understanding of Dan's idea to
implement that, should we choose it. Melvin's idea would require that
much more work on the multitude of functions, and so I can't imagine it
being as easy to implement. :)
Mike Lambert
or comments? Thanks,
Mike Lambert
Dan's would involve a full trace
(equivalent to a DOD) to be performed every now and again.
But that's just hypothetical posturing because I don't have any real
benchmarks, of course.
Mike Lambert
At 12:06 AM -0400 5/19/02, Mike Lambert wrote:
Is there a plan to make a freed method for when pmc header gets put
back
onto the free list? (This would require we call this method on all
pmc's
before moving anything to the freelist, in case of dependancies between
pmcs and buffers)
Nope. I
? Technically, all of the .ops generation code would
also need to be a dependancy for the core_ops*.c files themselves.
Mike Lambert
Index: classes/Makefile.in
===
RCS file: /cvs/public/parrot/classes/Makefile.in,v
retrieving revision 1.19
1 - 100 of 136 matches
Mail list logo