/time corresponding to -1.
This should now be self-adjusting for various time zones.
Regards
Peter Gibbs
Peter Gibbs
and the absolute length. The following patch has been
applied in revision 29735.
Appropriate tests to be added later.
Regards
Peter Gibbs
Index: src/spf_render.c
===
--- src/spf_render.c(revision 29734)
+++ src/spf_render.c
- Original Message -
From: Geoffrey Broadwell [EMAIL PROTECTED]
To: Peter Gibbs [EMAIL PROTECTED]
Cc: Christoph Otto [EMAIL PROTECTED]; perl6-internals@perl.org
Sent: Friday, July 25, 2008 6:09 PM
Subject: Re: [perl #57260] [BUG] Segfaults in sprintf opcode
On Fri, 2008-07-25 at 13:40
.
Regards
Peter Gibbs
- Original Message -
From: Will Coleda [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Friday, July 25, 2008 10:31 PM
Subject: Re: [perl #57260] [BUG] Segfaults in sprintf opcode
On Fri, Jul 25, 2008 at 4:23 PM, Peter Gibbs via RT
[EMAIL PROTECTED] wrote:
- Original Message
- Original Message -
From: chromatic [EMAIL PROTECTED]
Sent: Saturday, March 15, 2008 10:45 PM
On Saturday 15 March 2008 13:40:13 Peter Gibbs wrote:
Incidentally, I found the following useful to stop valgrind
complaining
about uninitialized values causes by walking the stack
= tmp_ptr;
}
+# ifdef VALGRIND
+VALGRIND_MAKE_READABLE(hi_var_ptr, lo_var_ptr - hi_var_ptr);
+# endif
+
/* Get the expected prefix */
prefix = mask buffer_min;
--
Peter Gibbs
the aforementioned
guts to dispatch to the appropriate class function - oops!
As a workaround for now, I suggest commenting out the call to
VTABLE_destroy, which will cause memory leaks but not segfaults. I will work
on a proper solution later tonight if nobody beats me to it.
Regards
Peter Gibbs
- Original Message -
From: Will Coleda [EMAIL PROTECTED]
To: [EMAIL PROTECTED]; Perl6 Internals
perl6-internals@perl.org
Sent: Monday, February 25, 2008 4:00 AM
Subject: Re: [perl #51136] [BUG] Segfault in Parrot_Ref_morph
On Sun, Feb 24, 2008 at 8:54 AM, Peter Gibbs via RT
[EMAIL
the setting of the flag breaks assertions in
Parrot_register_HLL*, but these need to be fixed.
Peter Gibbs
accordingly. I strongly suspect that most, if not all, the other
failures stem from the same logic.
There are two apparent solutions: check all notnull arguments before
calling the functions or remove the nonnull attribute where it is not
true.
Regards
Peter Gibbs
just plain broken,
as I do not have facilities to test it)
Regards
Peter Gibbs
EmKel Systems
!= '#') {
Patch applied.
Many thanks
Peter Gibbs
EmKel Systems
.:
- mem_alloc_executable
- mem_realloc_executable
- mem_flush_executable
- mem_free_executable
Note that JIT already fails under Fedora Core 1 because of 'Exec-Shield'
, which is the Linux equivalent of the functionality described by
Jonathan.
Regards
Peter Gibbs
EmKel Systems
attribute constants.
Regards
Peter Gibbs
EmKel Systems
benchmark went from approx. 4.01/5.88 seconds to 3.97/5.31
seconds on my system.
The behaviour of the decode_and_advance functions in the various
encodings still needs proper testing; this will follow during the
weekend.
Regards
Peter Gibbs
EmKel Systems
with the current code I get numbers like:
3.758691
5.535916
With the above iterator code (and the UTF8 decode_and_advance function
implemented) I get:
3.757812
4.844776
Does anybody think this is worth implementing?
Regards
Peter Gibbs
EmKel Systems
to check to see if I've broken anything too badly.
Regards
Peter Gibbs
EmKel Systems
Peter Gibbs
EmKel Systems
with a switch statement,
versus individual wrappers for each class.
I prefer the single function approach, so that is what I will start
implementing if there are no timeous objections.
Regards
Peter Gibbs
EmKel Systems
Michael Scott [EMAIL PROTECTED] wrote:
Since the enum will specify what you yourself call character classes
can't we call the function is_charclass() instead?
The isascii etc macros have been defined in a header called ctype.h for
some time, and glibc actually has a macro 'isctype' which
prototype for this function, now fixed - please try again.
Thanks
Peter Gibbs
'DIGIT ONE' 'DIGIT TWO' 'TAMIL DIGIT THREE' result
in twelve or one hundred and twenty three?
3) What should 'DIGIT ONE' 'VULGAR FRACTION ONE QUARTER' produce?
Any thoughts regarding signs, decimal points, exponent indicators etc. are
also welcome
--
Peter Gibbs
EmKel Systems
welcome
--
Peter Gibbs
EmKel Systems
from code values
to digit values
3) Add a pointer to the above struct to the CHARTYPE structure
Any comments on the above before I go ahead?
--
Peter Gibbs
EmKel Systems
for the less simple ones.
The current methods for both digit handling and transcoding are
context-free,
which I suspect may become a problem later; if so, some form of iterator
with
context information will be required.
--
Peter Gibbs
EmKel Systems
Leopold Toetsch wrote:
Peter Gibbs [EMAIL PROTECTED] wrote:
+if (!chartype_array)
chartype_init();
+if (!encoding_array)
encoding_init();
T think, both should be done at interpreter startup, called from
string.c:string_init().
leo
I was just
into the elements.
Work is ongoing to handle substr, etc.
Comments welcome.
--
Peter Gibbs
EmKel Systems
);
};
--
--
Peter Gibbs
EmKel Systems
ever seems to have cancelled my privileges :-)
--
Peter Gibbs
EmKel Systems
Index: include/parrot/unicode.h
===
RCS file: /cvs/public/parrot/include/parrot/unicode.h,v
retrieving revision 1.5
diff -u -r1.5 unicode.h
--- include/parrot
h e s a m e a s U
060 T F 8 \n
[EMAIL PROTECTED] parrot]$ uname -a
Linux linux01.emkel.co.za 2.2.23 #2 Sun Apr 20 12:00:21 SAST 2003 i586
unknown
--
Peter Gibbs
EmKel Systems
, but with a potential
performance cost.
--
Peter Gibbs
EmKel Systems
it to vanish eventually)?
This is simply a long-standing GC bug. Try the attached patch and see if
it helps.
--
Peter Gibbs
EmKel Systems
dod.patch
Description: Binary data
as low as possible.
--
Peter Gibbs
EmKel Systems
by the patch below.
The last one looks like a fundamental problem in MultiArray.
The line
b-cell_buffer = new_buffer_header(interpreter);
in function new_marray is creating a new buffer header, overwriting
the new_bufferlike_header created earlier.
--
Peter Gibbs
EmKel Systems
Index: string.c
needed to existing code (e.g.
most of the tests) before the 'set' versions can be deleted.
--
Peter Gibbs
EmKel Systems
by P0 to acquire the value
of the PMC referenced by P1 (via the vtable method set_pmc).
How to achieve this has never been resolved. The changes of
the other 'set P0, xxx' opcodes to 'assign' are basically for
consistency.
--
Peter Gibbs
EmKel Systems
well with the current CVS DOD code; the above
tests were done with appropriate fixes.
--
Peter Gibbs
EmKel Systems
.
--
Peter Gibbs
EmKel Systems
the header
is freed, and such embedded headers are not
known to the dod system, memory allocated to
these embedded headers would stick around
forever??
--
Peter Gibbs
EmKel Systems
,
we already know that CVS will always win when access
happens a lot more often than creation.
--
Peter Gibbs
EmKel Systems
Leopold Toetsch wrote:
Peter Gibbs wrote:
Did you look at indexed access, shift, unshift, splice ;-)
I have simply modified classes/array.pmc, which does not yet
implement shift or unshift; grey aims to provide alternative
implementations, rather than add new functionality. However,
since Dan
and byteorder.
If the concept gets accepted, then we can start extending.
--
Peter Gibbs
EmKel Systems
collected, or some sort of statistic that
indicates how often the paged collections kick in?
I'll take a look at this tomorrow.
Thanks for your interest
--
Peter Gibbs
EmKel Systems
structs
The 'total bytes allocated' for grey refers to the aligned page
allocator, and therefore now includes headers.
72k patch not attached.
--
Peter Gibbs
EmKel Systems
, and hence string_grow not be called, but then
unmake_COW could shrink the destination buffer before the memcopy
happens.
--
Peter Gibbs
EmKel Systems
set the external flag where you currently clear selfpoolptr.
--
Peter Gibbs
EmKel Systems
to
the desired alignment.
--
Peter Gibbs
EmKel Systems
the problem. This is not an optimal solution,
as the unmake_COW is probably not required if the string_grow is
going to happen anyway, but it seems to follow the general spirit of
the current code.
--
Peter Gibbs
EmKel Systems
Index: string.c
tests pass with GC_DEBUG=0; three fail with GC_DEBUG=1,
due to bugs in the index op in core.ops (string_to_cstring returns
highly volatile pointers)
I have not done a full audit for cycle counter wrap problems yet,
so long-running programs may experience difficulties.
--
Peter Gibbs
EmKel Systems
detrimental effect but were required for subsequent
changes) survived.
--
Peter Gibbs
EmKel Systems
for grey was paged memory allocation - this
may be usable to some extent without the buffer linked lists; so I will
probably give that a spin anyway.
--
Peter Gibbs
EmKel Systems
main()
{
void * a;
void * b;
char c;
void * d;
struct {
void * a;
void * b;
char c;
void * d
, and strlen as being in encoding-defined characters.
Did something change when I wasn't looking, or is this a bug
just waiting for somebody to actually implement Unicode?
--
Peter Gibbs
EmKel Systems
of strstart also.
--
Peter Gibbs
EmKel Systems
further - there is definitely
something very strange happening here somewhere.
I suspect a combination of slower and fatter may make it
hard to persuade Dan that we need cows?
--
Peter Gibbs
EmKel Systems
excess usage?
If so, grey will fix it in the next release with paged memory
allocation; and I'm sure you'll think of a solution also.
--
Peter Gibbs
EmKel Systems
that
tries to reduce the number of calls to memcpy. I can't find my notes
at the moment as to what benefit it gave - perhaps you might like
to try it sometime. (Note that the string_make call will need to be
changed to the split chartype/encoding version)
--
Peter Gibbs
EmKel Systems
STRING
of about 15% using your
COW patch, and your COW is better on both tests than mine.
--
Peter Gibbs
EmKel Systems
. (patch attached, but not fully tested)
On my machine, that changes 5000 lives from 168 seconds to 133
(tested for one run each only)
I'm sure there is more that can be done, but that may help for now.
--
Peter Gibbs
EmKel Systems
dod.patch
Description: Binary data
PARROT_PTR_ALIGNMENT = 1), but IIRC a push
or pop will always change the SP by 2 or 4, therefore the stack walk code
can do the same. In a quick test, using a hardcoded value of 2 in the
stack walk code, 5000 lives dropped down to 112 seconds.
--
Peter Gibbs
EmKel Systems
to somewhere close to
that again.
--
Peter Gibbs
EmKel Systems
* #encodings.
b) some alterations to the single vtable thus created, in
particular the addition of a find_substring method.
--
Peter Gibbs
EmKel Systems
- Original Message -
To: Peter Gibbs [EMAIL PROTECTED]
Cc: perl6-internals [EMAIL PROTECTED]
Sent: 16 August 2002 07:36
Subject: Re
. The future 'assign Px, Py' will call a vtable function
(set_pmc); however, in the quoted example, the pure register level
behaviour is all that is intended.
--
Peter Gibbs
EmKel Systems
to create a PMC with the correct type initially, and this
morphing will be removed for typed variables.
--
Peter Gibbs
EmKel Systems
BASETYPE_INTVAL;
}
}
perlscalar.pmc
void set_pmc(PMC* value)
{
switch (value-get_preferred_type(INTERP, value, CONTEXT_SCALAR)) {
case BASETYPE_INTVAL:
set_integer(INTERP, SELF, value);
break;
}
}
--
Peter Gibbs
EmKel Systems
and act
accordingly. If context was an enumeration, a simple switch statement
would suffice. In this case, it might be interesting to benchmark the
consequences of replacing some of the other get_X vtable functions.
e.g. get_integer(pmc) - get_value(pmc, CONTEXT_INTEGER)
Comments, anyone?
--
Peter Gibbs
Peter Gibbs wrote:
vtable method get_scalar(pmc)
vtable method get_value(pmc, context)
Having broken the rule of posting before drinking coffee in the morning,
this is obviously nonsense - neither of these will work, because we don't
know the return type of these functions. So, back
also left out originally.
--
Peter Gibbs
EmKel Systems
the amount before the alignment
point, and dish out the rest as 15 (or 16 if you're really lucky) 1K aligned
pages. I seriously considered this when I changed my buffer memory to be
paged instead of a single allocation per memory pool; but I haven't actually
implemented it yet.
--
Peter Gibbs
EmKel Systems
that occur when we
start using exceptions (and longjmp, etc).
If performance has to halve in order to implement such features, I hope
somebody plans to write Parrot::Lite!
--
Peter Gibbs
EmKel Systems
# New Ticket Created by Peter Gibbs
# Please include the string: [netlabs #691]
# in the subject line of all future correspondence about this issue.
# URL: http://bugs6.perl.org/rt2/Ticket/Display.html?id=691
Index: RESPONSIBLE_PARTIES
# New Ticket Created by Peter Gibbs
# Please include the string: [netlabs #628]
# in the subject line of all future correspondence about this issue.
# URL: http://bugs6.perl.org/rt2/Ticket/Display.html?id=628
Following patch adds dependencies entry for hash.c to Makefile.
Stops things
# New Ticket Created by Peter Gibbs
# Please include the string: [netlabs #629]
# in the subject line of all future correspondence about this issue.
# URL: http://bugs6.perl.org/rt2/Ticket/Display.html?id=629
Attached patch does some fairly radical things to the memory manager.
1) Cycle
, just write the
thing - I really don't mind!)
--
Peter Gibbs
EmKel Systems
I managed to send the wrong version of the patch on the previous post!
Herewith the correct (I hope) one.
Apologies to all.
--
Peter Gibbs
EmKel Systems
reclaim.patch
Description: Binary data
Starting quicksort with 5 and 4
Starting quicksort with 6 and 5
dd
aa
bb
ee
cc
Am I missing something somewhere?
--
Peter Gibbs
EmKel Systems
by a factor of
(0.5 - pct_freed_last_time) if it reclaimed less than 50% of memory
reduced this to 21 collections, much fewer of which reclaimed abysmally
small amounts of memory.
And Dan Sugalski replied:
Interesting. Could you work with Peter Gibbs and see what the two of
you can do to come
manipulation; then an
attempt to collect while blocked could set a flag, and the unblocking would
trigger the blocked collection - this should reduce the impact of blocking.
--
Peter Gibbs
EmKel Systems
- what do you think?
--
Peter Gibbs
EmKel Systems
. In this case, attempting to
store the string into an array is invoking string_copy, which assumes the
input to be valid. IIRC Dan stated some time ago that checks for null were
not to be included, but I don't know what the current status is.
--
Peter Gibbs
EmKel Systems
# New Ticket Created by Peter Gibbs
# Please include the string: [netlabs #607]
# in the subject line of all future correspondence about this issue.
# URL: http://bugs6.perl.org/rt2/Ticket/Display.html?id=607
Attached is another patch to implement copy-on-write strings.
Summary of changes
need to, but you can still find the COW marker off
the end of the original buffer.
[End quote]
--
Peter Gibbs
EmKel Systems
cancelled, whereas they should just be postponed.
--
Peter Gibbs
EmKel Systems
# New Ticket Created by Peter Gibbs
# Please include the string: [netlabs #601]
# in the subject line of all future correspondence about this issue.
# URL: http://bugs6.perl.org/rt2/Ticket/Display.html?id=601
Attached is a simplified version of a previous patch to allow buffers to
avoid
# New Ticket Created by Peter Gibbs
# Please include the string: [netlabs #602]
# in the subject line of all future correspondence about this issue.
# URL: http://bugs6.perl.org/rt2/Ticket/Display.html?id=602
Attached patch to core.ops implements neonate protection for the 'pack'
opcode
the original concept of telling a PMC to move its data to a new
location. That would require scanning PMCs during memory pool compaction -
at which point we are pretty close to unification of buffers and PMCs
anyway??
Comments?
--
Peter Gibbs
EmKel Systems
these situations soon. If anybody is
interested, I will resync my previous 'neonate' patch - it needs a bit of
work to fit with the latest changes to resources.c
--
Peter Gibbs
EmKel Systems
to eliminate the separation of
pools based on type, perhaps we need to consider some other means of having
multiple pools, purely for performance reasons. This could, for example, be
based on the buffer header size, so each resource pool would have its own
memory pool.
--
Peter Gibbs
EmKel Systems
patch below); but, as a general
rule, where should we be preserving our constants?
--
Peter Gibbs
EmKel Systems
Index: core.ops
===
RCS file: /home/perlcvs/parrot/core.ops,v
retrieving revision 1.137
diff -u -r1.137 core.ops
--- core.ops
problems remains - see
http://www.mail-archive.com/perl6-internals@perl.org/msg09311.html for a
post on this subject, which never elicited any response.
--
Peter Gibbs
EmKel Systems
that the 'normal' buffer pool should just be
replaced by the size 0 pool in your new system? I would think twice about
incorporating strings, as that might complicate COW, if it ever happens.]
--
Peter Gibbs
EmKel Systems
combined.patch
Description: Binary data
Chris Ball wrote:
t/op/stacks.ok 28/29#Failed test (t/op/stacks.t at line 592)
# got: ''
# expected: '43210-1
This test has a missing 'end' in the code and segfaults. Patch below.
--
Peter Gibbs
EmKel Systems
Index: t/op/stacks.t
# New Ticket Created by Peter Gibbs
# Please include the string: [netlabs #583]
# in the subject line of all future correspondence about this issue.
# URL: http://bugs6.perl.org/rt2/Ticket/Display.html?id=583
Chris Ball wrote:
t/op/stacks.ok 28/29#Failed test (t/op/stacks.t
, and using
true_bufstart = (char *)s-bufstart - (tail-buflen - s-buflen)
in compact_string_pool?
--
Peter Gibbs
EmKel Systems
of a COWed string will still believe that
the buffer is shared until a GC collection run occurs, and therefore could
result in buffers being copied unnecessarily. Your system eliminates this
problem; however, I believe that Dan may be averse to using a linked list -
we'll see.
--
Peter Gibbs
EmKel
for string-intensive programs (eg
life). Because of the split pools, non-string buffers do not suffer any
additional overhead, so performance of non-string-intensive programs should
be unaffected.
Feedback welcome.
--
Peter Gibbs
EmKel Systems
phase3.patch
Description: Binary data
to know what headers to process
b) COW may well be implemented for strings only (at least initially), this
will require changes to the compact function
There is code, e.g. the freeing of the old memory blocks, that is pure
duplication; this can be moved to a separate common function.
--
Peter Gibbs
, rather than any inherent
improvements.
--
Peter Gibbs
EmKel Systems
phase2.patch
Description: Binary data
of the allocation
process. If anybody has any problems with this basic concept, please let me
know asap.
The next stage will be the creation of a header arena and memory pool for
constant strings.
Files changed: resources.h, resources.c, memory.c
--
Peter Gibbs
EmKel Systems
Index: include/parrot
1 - 100 of 137 matches
Mail list logo