e actually come up with a way to solve your problem
of modifying the hash during the iteration so that I can make my
implicit iterator strategy work again... I'm planning to write it
up as an internals RFC over the weekend.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...Do unto o
t op would then pull the iterator off and
use it or whatever.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...Hard work never killed anyone but why take a risk?
of part of the internals, the DESCRIPTION section
had actually discussed the implementation issues.
In fact I would have thought that for many internals RFCs the whole
topic of the RFC is how to implement something.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...I like to enter
problem with this scheme (and indeed I suspect with
yours) is if the match expression has a side effect. This is
even more of a problem when trying to apply the same optimisation
to map because of the widespread use of map in a void context
to apply a side effect to the elements.
Tom
--
Tom
which is what that
part of my RFC was attempting to do.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...Moderation in all things.
)
{
$y{$x+1} = 1;
}
Of course we'd have to make sure the optimised realised that the
assignment caused the list to be flattened so it didn't try and
elide the 'useless' assignment ;-)
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
In message [EMAIL PROTECTED]
Chaim Frenkel [EMAIL PROTECTED] wrote:
"TH" == Tom Hughes [EMAIL PROTECTED] writes:
TH Well if we allow value changes in the middle of iterating either
TH keys or values then that is a user visible behaviour change which
TH potenti
In message [EMAIL PROTECTED]
Nathan Torkington [EMAIL PROTECTED] wrote:
Tom Hughes writes:
I must admit it had never occurred to me that somebody might
deliberately use keys or values to achieve that, but I guess
somebody might be relying on it without realising it.
while
In message [EMAIL PROTECTED]
Dan Sugalski [EMAIL PROTECTED] wrote:
At 04:57 PM 9/18/00 +0100, Tom Hughes wrote:
Doesn't this run a significant danger of leading us straight back
into the perl5 problem of making debugging of the source code more
or less impossible
don't have a big problem with it.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...Somehow, somewhere along the line, this town lost its pride.
of leading us straight back
into the perl5 problem of making debugging of the source code more
or less impossible?
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...You have the capacity to learn from mistakes. You will learn a lot today.
keys and values efficiently" section
of RFC 136 for some powerful magic that could achieve this...
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...Reading is thinking with someone else's head instead of one's own.
[options] -D_REENTRANT file -lthread
#include aio.h
int aio_read(struct aiocb *aiocbp);
I thought that using threads was the standard SVR4 implementation
but maybe Solaris has moved away from that.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
the slowdown that occurred as soon
as I had to compile -D_REENTRANT and pull in the thread
support library with its thread safe versions of various
library routines, and part of it that most of my testing was
on Unixware where the filing system was vxfs and sync IO goes
like a train.
Tom
--
Tom Hughes
in an efficient way
so I think it's quite important to provide for a general system of
iterators with multiple iterators per data structure.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...There is very little future in being right when your boss is wrong.
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...FANATIC: one enthusiastic about something you don't care about.
program is big enough
to exceed 26 bits of address space, which is pretty unlikely. That
or if the program occupies seriously disjoint areas of address space.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...Don't believe in astrology. We Scorpios aren't taken in by such things.
In message [EMAIL PROTECTED]
Dan Sugalski [EMAIL PROTECTED] wrote:
At 11:45 PM 11/21/00 +, Tom Hughes wrote:
Given that it isn't a valid C identifier, yes... Unless you're
using VAXC or DECC of course, which was your point I assume ;-)
Odd. The Dec C docs don't mention
as you
could, if necessary, look right to the end of the program to decide
what the next token meant. Equally with no lookahead you will quite
likely need to backtrack unless your grammar is fairly restrictive, and
we all know that perl's grammar is anything but restrictive ;-)
Tom
--
Tom Hughes
to
remember that you hadd had to guess that foo was a filehandle but
that it might also be a subroutine and it raises a whole serious of
questions about what other similar things you might need to remember.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...Would you buy a Pontiac from
source somebody comes up
with.
The common case of parsing a string could of course be simplified
with a small wrapper function that created a string based stream
and then called the main parser entry point.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...A private sin is not so
and power for those that need it whilst still maintaining
type safety and maximum extensibility for things we havn't thought
of yet.
We might also still want a flags word to each of those routine for
things like your UTF8 flag.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...F u cn r
rsing Perl is hard. Trust me. :)
Oh, you did say it again...
Parsing Fortran is fun as well. Whoever decided to allow spaces in
identifiers needs their head read...
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...Who's on first?
probably
have an iostream, and if you're embedding in Java you'll have a
Java stream object. In each case you'll want an easy way to create
a PerlIO object from that.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
later.
Any data pointer type, yes. It completely outlaws any attempt to
cast between data and function pointers though.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...Things are not as bad as they seem - they're worse
.
References to older ARM chips not being 32 bit refer only to the
address space which was 26 bit on ARM 2 and ARM 3 cores. Later cores
added a 32 bit mode and the latest cores drop the 26 bit support.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
...I was reading the dictionary. I
*s)
*cough* Namespace pollution *cough*
These should proably all be prefixed...
Especially since all function names starting with str are strictly
speaking reserved to ANSI/ISO for future expansion of the string.h
facilities ;-)
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
basic_opcodes.ops
--- basic_opcodes.ops 2001/09/16 15:49:22 1.17
+++ basic_opcodes.ops 2001/09/16 16:27:30
@@ -564,7 +564,7 @@
/* NOT_i */
AUTO_OP not_i {
- INT_REG(P1) = ! INT_REG(P2);
+ INT_REG(P1) = ~ INT_REG(P2);
}
/* OR_i */
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
* which would
then be consistent with the nprintf interface.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
? xxx
Index: parrot.h
===
RCS file: /home/perlcvs/parrot/parrot.h,v
retrieving revision 1.8
diff -u -r1.8
In message [EMAIL PROTECTED]
Simon Cozens [EMAIL PROTECTED] wrote:
On Thu, Sep 13, 2001 at 09:35:33AM +0100, Tom Hughes wrote:
BTW I have had to resend this because my first attempt was bounced
apparently for having the patch as a text/plain attachment rather than
inline. Isn't
*/
string_grow(dest, src-strlen - length);
-Sys_Memcopy(dest-bufstart, src-bufstart + offset, length);
+Sys_Memcopy(dest-bufstart, (char *)src-bufstart + offset, length);
dest-strlen = dest-bufused = length;
return dest;
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http
`i'
packfile.c: In function `PackFile_Constant_dump':
packfile.c:1358: warning: unsigned int format, long unsigned int arg (arg 2)
The attached patch will clean up those warnings.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
Index: packfile.c
+++ basic_opcodes.ops 2001/09/13 08:27:40
@@ -219,7 +219,7 @@
// INC Nx, nnn
AUTO_OP inc_n_nc {
- (NV)NUM_REG(P1) += P2;
+ NUM_REG(P1) += P2;
}
// DEC Nx
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
that was what strings.pod was...
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
on every system that I can
think of at the moment but who knows what wierd things are out there...
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
In message [EMAIL PROTECTED]
Jason Gloudon [EMAIL PROTECTED] wrote:
The stacktest patch will fail on the current CVS source, due to a bug in
push_generic_entry.
This looks good to me so I have committed it. Thanks for spotting it!
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http
or timing issue
somewhere. (It's emacs fault! Yeah, that's the ticket! :)
I'd already patched it up, so I've just committed my fix...
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
encoding based.
Other than that it looked quite good and I'll probably start looking at
bending the existing code into the new model over the weekend.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
In message [EMAIL PROTECTED]
Tom Hughes [EMAIL PROTECTED] wrote:
Other than that it looked quite good and I'll probably start looking at
bending the existing code into the new model over the weekend.
Attached is my first pass at this - it's not fully ready yet but
is something
In message [EMAIL PROTECTED]
Tom Hughes [EMAIL PROTECTED] wrote:
Attached is my first pass at this - it's not fully ready yet but
is something for people to cast an eye over before I spend lots of
time going down the wrong path ;-)
Before anybody else spots, let me just add what I
: 4.515596
M op/s:66.436413
So there is a small speed up for the interpreted version, but nothing
like the three times speedup you had. The compiled version has actually
managed to get slower...
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
In message [EMAIL PROTECTED]
Tom Hughes [EMAIL PROTECTED] wrote:
In message [EMAIL PROTECTED]
Dan Sugalski [EMAIL PROTECTED] wrote:
At 04:23 PM 10/27/2001 +0100, Tom Hughes wrote:
Attached is my first pass at this - it's not fully ready yet but
is something
and change
string_length into a direct fetch.
As far as I know the strlen member should always be correct. I was
certainly trying to make sure it was because strings.pod explictly
says that it will be and that it can be used directly instead of
calling string_length().
Tom
--
Tom Hughes ([EMAIL
string_index use
the encoding routines instead of assuming a single byte encoding.
I have also renamed _string_index to string_index as function names
that start with an underscore are reserved to implementors by the C
standard.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
needed in the file that is
implrmenting the scalar class then it can be put there.
In fact many compilers will inline small static functions anyway
even without an explicit hint in the source.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
so I haven't tried that as yet.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
others.
One other thing that I did notice is that there is quite a bit of
fluctuation between runs on some of the machines, possibly because
we are measuring real time and not CPU time.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
;-) Doubtless a similar effect would be seen
though.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
about basename clashes then we can always
move all the ops files into an ops subdirectory.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
of the resulting string appropriately.
Equally ord() is decoding the first character of the string to get a
number.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
In message [EMAIL PROTECTED]
Dan Sugalski [EMAIL PROTECTED] wrote:
At 04:23 PM 10/27/2001 +0100, Tom Hughes wrote:
Attached is my first pass at this - it's not fully ready yet but
is something for people to cast an eye over before I spend lots of
time going down the wrong path
both translations and we will have effective duplication.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
In message [EMAIL PROTECTED]
Simon Cozens [EMAIL PROTECTED] wrote:
On Sat, Oct 27, 2001 at 04:23:48PM +0100, Tom Hughes wrote:
The encoding_lookup() and chartype_lookup() routines will obviously
need to load the relevant libraries on the fly when we have support
for that.
Could
to have it on we should as it will
impact performance.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
object files from all the current
subdirectories rather then just one, and have committed it.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
of the comparison ops exist...
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
In message [EMAIL PROTECTED]
James Mastros [EMAIL PROTECTED] wrote:
On Mon, Oct 29, 2001 at 11:20:47PM +, Tom Hughes wrote:
I suspect that the encode and decode methods in the encoding vtable
are enough for doing chr/ord aren't they?
Hmm... come to think of it, yes. chr
In message [EMAIL PROTECTED]
James Mastros [EMAIL PROTECTED] wrote:
On Mon, 3 Dec 2001, Tom Hughes wrote:
It's completely wrong I would have thought - the encoding layer
cannot know that a given code point is a digit so it can't possibly
do string to number conversion.
You
and
then the character set layer to determine what digit it represents.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
, of
course, can't be used for not-a-digit, since is_digit('0')==0.
I was assuming there would a separate digit_value() routine to avoid
that problem. Apart from anything else there will doubtless me many
other is_xxx() routines in due course which will be simple boolean
tests.
Tom
--
Tom Hughes ([EMAIL
can be used to fetch
and set the value of elements in the list.
Does anybody have any objections to this, or any better ideas on how
to handle this?
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
of elements in a key it is manipulating?
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
In message [EMAIL PROTECTED]
Tom Hughes [EMAIL PROTECTED] wrote:
That explains why you are not seeing the last component. You are also
missing the first one for some reason. The most likely cause would be
that you have already used key_next to discard the first component
before you
that a const method can change any
mutable members of the object ;-)
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
not to?
I believe you could encode a key constant with zero components in the
byte code if you wanted - the first word of the constant is the
component count after all.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
operands, gives you 64 ops in total.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
In message [EMAIL PROTECTED]
Leopold Toetsch [EMAIL PROTECTED] wrote:
Tom Hughes wrote:
You will still get horrible op explosion for a three argument op as
even if you assume that all PMCs are keyed, there are four key types
which, with three operands, gives you 64 ops in total
, but if many operations will be on lexicals as
opposed to registers/temporaries, such hoariness might be worth it.
Except those indexes are key constants which are type kc but Leopold
only wants to allow dynamically created keys of type k on the other ops.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http
the optimised _int vtable methods for keyed
access using integer keys...
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
issues. I don't really understand what you mean by the
third one so I can't comment much on that...
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
to look at the detailed implementation of Sun's qsort to say for sure.)
Here's the patch that fixes it.
Applied.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
Configure.pl ad infinitum.
I'm not quite sure how to resolve this in the long term as there are
conflicting goals here, but I've committed the patch for now.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
and anyop.c in languages/imcc as they are not built, and seem to have
been removed from the MANIFEST but are still in the repository.
Are these now dead? If they are then I'll remove them, otherwise they
need to go back into the manifest.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
it with a value of 0 to reset the intlist?
I suspect that it might be better to have a separate intlist_reset or
intlist_empty or something to do that rather than a wierd boolean
parameter like that. Not a major issue though.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
In message [EMAIL PROTECTED]
Andy Dougherty [EMAIL PROTECTED] wrote:
On 26 Sep 2002, Tom Hughes wrote:
The problem here is that the rule in the Makefile that causes it to
rerun Configure.pl if any of the Configure.pl generated files is out
of date clashes with the recently
and therefore probably shouldn't be ;-)
Seriously, I'd suggest putting the common code into intlist_new_chunk
or something and then have intlist_new call that before doing the
other setup. That way you don't need the extra argument.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
to solve the problem. Applied.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
---
t/pmc/intlist.t2 512 42 50.00% 3-4
Failed 1/1 test scripts, 0.00% okay. 2/4 subtests failed, 50.00% okay.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
In message lists.perl6.internals/[EMAIL PROTECTED]
Leopold Toetsch [EMAIL PROTECTED] wrote:
Tom Hughes wrote:
Unfortunately it doesn't test clean afterwards:
dunsmere [~/src/parrot] % perl t/harness t/pmc/intlist.t
t/pmc/intlistNOK 3# Failed test (t/pmc/intlist.t at line
);
}
internal_exception(OUT_OF_BOUNDS,
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
type.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
of space that would be
needed to avoid truncation if the result is truncated.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
it
in a while...
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
-level keys, but that
doesn't actually seem to be the case. I can only assume that the
original reason was to support multi-level keys though.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu
?
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
In message 20011210133529.EYKY11472.femail13.sdc1.sfba.home.com@there
Bryan C. Warnock [EMAIL PROTECTED] wrote:
On Monday 10 December 2001 03:06 am, Tom Hughes wrote:
In message 20011210011601$[EMAIL PROTECTED]
Actually VAXes have perfectly ordinary endianness - it was PDPs
In message [EMAIL PROTECTED]
Daniel Grunblatt [EMAIL PROTECTED] wrote:
On Fri, 21 Dec 2001, Tom Hughes wrote:
I suspect it is also rather questionable to call system calls
directly rather than going via their C library veneers - that is
even more true when you come to things
In message 007f01c1930c$9d326220$[EMAIL PROTECTED]
Peter Gibbs [EMAIL PROTECTED] wrote:
Another correction to string_transcode; this function now seems to work okay
(tested using a dummy 'encode' op added to my local copy of core.ops)
Applied, thanks.
Tom
--
Tom Hughes ([EMAIL
bytes)
Certainly.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
if it were C++ and we
were using a smart pointer class I don't mind the practice.
I will agreee that hiding pointers inside typedefs is not a very
good idea, if only because it makes it impossible to const qualify
the pointer without creating a second parallel typedef.
Tom
--
Tom Hughes ([EMAIL
.
I guess string_init could also set up string_native_encoding by looking
up the name of the default encoding for the native character type.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
attempted to look at this and see what is causing it.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
In message [EMAIL PROTECTED]
Tom Hughes [EMAIL PROTECTED] wrote:
Syscall param open(pathname) contains uninitialised or unaddressable byte(s)
at 0x403F1892: __libc_open (__libc_open:31)
by 0x403829C3: _IO_fopen@@GLIBC_2.1 (iofopen.c:67)
by 0x809B287: cg_core
this issue.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
In message [EMAIL PROTECTED]
Tom Hughes [EMAIL PROTECTED] wrote:
I have developed patch for this in the form of a new routine
which returns a nul terminated C style string given a parrot
string as argument. It does this by making sure buflen is at
least one greater than bufused
code is also wrong - bufused is the end of
the string. You are null terminating the buffer not the string, and
the buffer may have extra space. Plus you have created a buffer
overrun.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
or two ago ;-)
I also ran it over the test suite and fixed the only bug that it found
at that time...
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
and it won't clash.
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
0.166938s 0.168390s
Tom
--
Tom Hughes ([EMAIL PROTECTED])
http://www.compton.nu/
Index: rxstacks.c
===
RCS file: /cvs/public/parrot/rxstacks.c,v
retrieving revision 1.5
diff -u -r1.5 rxstacks.c
--- rxstacks.c 17 May 2002 21:38:20
1 - 100 of 131 matches
Mail list logo