e information out)
I assume that in the position of maintaining Parrot I'd like the same
information about whether the release is vanilla and unmolested when I
got a bug report.
Nicholas Clark
#x27;t -1. Or at least what
you thought was -1 isn't -1 any more, because it was converted to unsigned,
and then converted to a larger unsigned type, and so is now an unremarkable
positive integer, rather than all bits set.
Nicholas Clark
ion cycle?
Well, it seems to be unused anywhere that Google's tentacles reach to:
http://www.google.com/codesearch?q=become_parent
Nicholas Clark
tten (to the point of buggy) regexp in the pod checker.
Not that that really helps track it down.
Nicholas Clark
ter.
It's not allowed under (strict) ANSI C (and therefore those picky compilers)
So that NULLfunc is correct. But personally I prefer assigning plain 0.
Nicholas Clark
On Fri, Apr 06, 2007 at 11:55:49AM -0700, jerry gay wrote:
> On 4/6/07, Nicholas Clark <[EMAIL PROTECTED]> wrote:
> >If it's a crash in S_regmatch that's usually due to a regular expression
> >going exponential and exhausting the C stack. In turn, that's us
rly given that on some platforms (such as Win32) API functions need
to be exported explicitly, resulting in modules written on *nix platforms
not working on Win32.
(and actually, I'm tempted to add it even now to Perl 5 to enforce what
remains of our sanity)
Nicholas Clark
about
> > working more towards ANSI and POSIX compliance.
>
> I think that the same effect can be achieved using a linker script (although
> I don't know much about them), in wich case you are not depending on a
> compiler feature.
I thought the same, but I've never seen clear documentation as to how to do it.
Nicholas Clark
On Thu, Apr 12, 2007 at 01:50:09PM -0500, Joshua Isom wrote:
>
> On Apr 12, 2007, at 9:29 AM, Nicholas Clark wrote:
> My view of this is something along these lines. You can use any
> function you want at all, but if it's not documented as part of the
> supported API, ther
gt; are not there?
nan == nan isn't true, so that ought to be a portable test for a NaN
(although Intel's compiler's default optimisation setting is buggy in this
respect)
I don't know of a good way to test for inf.
Nicholas Clark
On Tue, Apr 24, 2007 at 11:43:48PM -0700, Joshua Juran wrote:
> Parrot is also widely portable, much like perl is. This one's
> especially important to me, as I still work with Mac OS 9.
Parrot builds on Mac OS 9? Cool
It's not listed in PLATFORMS, so I wasn't sure.
Nicholas Clark
ere, for relying on an external language for
its extended build process. I'm not sure if this is significant.
Nicholas Clark
On Wed, Apr 25, 2007 at 03:32:54PM +, Herbert Snorrason wrote:
> On 25.4.2007, at 15:06, Nicholas Clark wrote:
> >So Parrot is the odd one out here, for relying on an external
> >language for
> >its extended build process. I'm not sure if this is significa
thing very basic that can run a PBC).
> Whoa. I meant, have some kinda miniparrot that can run a PBC but is pure
> ANSI C or something. Long day...
I like this approach. It feels viable.
Nicholas Clark
would check whether the target exists
first, and skip until a target does not.
However, having a make like utility is easier. Lua seems to go for that
approach.
Nicholas Clark
y it should be exempt from coding standards.
Also, did it have any local modifications?
And why does Parrot needs its own malloc?
Nicholas Clark
d? If so, its it
a better idea to abolish them and replace with one macro
STRING_IS_NULL_OR_EMPTY() ?
Although, visually it's distracting, and it's still about as much typing as
the macros' contents.
Nicholas Clark
On Wed, May 09, 2007 at 01:06:49PM -0700, chromatic wrote:
> On Wednesday 09 May 2007 12:53:57 Nicholas Clark wrote:
>
> > On Tue, May 01, 2007 at 04:41:22PM -0700, [EMAIL PROTECTED] wrote:
> > > +
> > > +#define STRING_IS_NULL(s) ((s) == NULL)
> > > +#defi
On Thu, May 10, 2007 at 03:33:41AM -0500, Joshua Isom wrote:
>
> On May 9, 2007, at 4:01 PM, Nicholas Clark wrote:
> >So, !s->strlen does scan as quickly and easily.
> >
>
> To some, but it isn't as easy to just literally read. "Not s's strlen&qu
ut;
const void *in;
} launder;
You assign to in, then read from out. Et voila, you launder the const away.
Nicholas Clark
more complex is passed in. So, in general, I'd be happier with:
#define na(c) { \
while (*(c) && !isspace((int) *(c))) \
(c)++; \
while (isspace((int) *(c))) \
(c)++; }
Nicholas Clark
One deserves to die.
Nicholas Clark
s no
issues that prevent it from being complied with a seriously fastidious
compiler on a platform where the system headers are also suitably compliant.
Surprisingly Solaris is not such a platform. [Solaris is very carefully
engineered in so many other ways, that I had expected that it would be]
Nicholas Clark
at performs locking?
And how often does the type of a PMC change, such that its internal data layout
changes? In Perl 5 this morphing happens everywhere, but in Parrot?
Nicholas Clark
> of a function, not within any block.
They wouldn't be C89 conformant if they forbid *that*.
It may be something to do with the const *char const, what type "" string
constants have (according to the particular compiler) and how fussy it is.
And we found bugs in (at least) Borland's compiler to do with this sort of
thing.
Nicholas Clark
ibparrot$(SHARE_EXT).$(SOVERSION)',
> +sym_export => '__attribute__ ((visibility("default")))',
> );
>
> if ( ( split( '-', $Config{archname} ) )[0] eq 'ia64' ) {
This is something I really approve of, but it can't be done unconditionally.
Is the gcc version kept somewhere convenient in the configure data structures?
Nicholas Clark
Works for me! :-)
Thanks.
Nicholas Clark
nasal daemons, or something
similarly painful, on Irix64, until we removed assumptions about signed
integer overflow. (It's undefined behaviour. It will bite))
Nicholas Clark
lost in the noise.
Or better yet, lose it by using ccache.
> On the other hand, will #pragma once allow us to get rid of all of
> those ugly header guard macros? If so, I would argue to keep it for
> maintenance reasons, regardless of any performance benefits.
No, because you cannot rely on it working.
Nicholas Clark
gs are accepted as
argument */
#define STR_WITH_LEN(s) (s ""), (sizeof(s)-1)
/* STR_WITH_LEN() shortcuts */
#define newSVpvs(str) Perl_newSVpvn(aTHX_ STR_WITH_LEN(str))
...
(Credit to chip for the concatenating with "" trick)
Nicholas Clark
On Fri, Nov 07, 2008 at 03:28:40PM -0700, chromatic wrote:
> On Friday 22 June 2007 02:07:32 Nicholas Clark wrote:
>
> > > We have a lot of string_from_cstring() calls with constant second
> > > parameters and third parameters of 0 that could use updating. There
> >>>Modified since when?
Since the last time the user ran Configure.
(For the default test run)
I think that this will produce minimal false positives and false negatives,
for identifying which files have been locally edited.
Nicholas Clark
On Sun, Jul 08, 2007 at 10:07:34PM +, [EMAIL PROTECTED] wrote:
> It seems to run correctly on gentoo running on a sparc.
Is gentoo sparc an architecture with 64 bit pointers (and longs)?
Nicholas Clark
of the get() call earlier on. In either case, the
> evaluation of the last statement and, hence, the return value of the
> subroutine was overwhelmingly likely to be a true value.
Or alternatively the value of something in the for() statement. IIRC it's
undefined (or at least not yet defined) whether a control statements such
as for() and if() count as 'last statement evaluated' for this purpose.
I'd definitely support adding an explicit return in this function. Just
ensure that it gets the right value as its argument.
Nicholas Clark
intf(interp, "%c", *(c++));
> > }
>
> That's an improvement, but *can* c actually be NULL here?
Well, it could be all bits zero if pdb->file->source is NULL and
line->source_offset, but that would be binary-identical-to-NULL-by-coincidence
rather than really NULL.
Without seeing any more than the code above, I'd guess that that's what the
Coverity tool actually triggered on, and so the question is should the guard
be on pdb->file->source ?
Nicholas Clark
> runops_args");
> }
>
> The string is only copied after this check is made.
So shouldn't that 8 be sizeof(new_sig) - 1 ?
Right now there are two magic numbers, one of which is actually off by one,
and no clear linking of the two.
Nicholas Clark
l both have problems)
For most machines both assumptions are valid. But it's possible to build Perl
5 in configurations where it's not valid. For example, long doubles on Sparc
Solaris (and IIRC OS X on x86, surprisingly) are 16 bytes. long doubles on
most IEEE platforms would be even more fun (12 bytes, where actually only 10
are significant, and 2 are noise)
I can't think of a clean, portable, efficient way to test that a floating
point variable is zero other than == 0.0;
Nicholas Clark
lt;= 0.0
which I believe is identical, even in the face of NaNs.
Nicholas Clark
On Wed, Aug 22, 2007 at 05:40:45PM +0200, Paul Cochrane wrote:
> > We can leave it out, but then we'll never be able to compile Parrot with
> > Solaris CC.
>
> I just tried to compile Parrot with suncc and everything works (the
CC isn't cc
(C++ compiler versus C compiler)
Nicholas Clark
;
>
> This patch implements the sign function for I, N, BigInt and Complex
> numbers.
What should the sign of a NaN be? undef?
Nicholas Clark
Even if the success object (the common case) is a singleton?
Implementation wise, is returning another reference to a singleton just one
C pointer copy?
(In which case, there is too much of a hit on interrogating the object?)
Nicholas Clark
t;
> P0 = P2->find_method(interpreter, P2);
But you seem to be using P2 like it's the object
I'm confused.
Surely there are 3 things to play with - object, method name and
continuation to "return" to? If so, are they P0, P1 and P2 before these
ops?
Nicholas Clark
-W -Wno-unused
-Wsign-compare -I./include -DHAS_JIT -DI386 -DHAVE_COMPUTED_GOTO -o platform.o -c
platform.c
platform.c:167: #error "generic platform without memalign"
*** Error code 1
What's the solution?
Nicholas Clark
#x27;s.
> So will perl6 help me in the task.
perl6-internals (as a list) can't help you, because perl6 isn't written
yet, and you're problem is specifically with perl5, rather than integration
in general.
I see that you've also mailed perl5-porters, which is about perl5, and got
a potentially useful reply there.
Nicholas Clark
> > .sub _main
> > .sub dummy
> > call inner1
> > call inner2
>
> You have to used global labels for subroutines, then all is fine.
But being able to craft input that causes IMCC to segfault (actually
any form of segfault) is bad on principle, isn't it?
Nicholas Clark
of
> fighting it. (My login apparently succeeds, but the commit fails
> claiming I don't have 'write' privs.)
Thanks applied
Nicholas Clark
If so, that would solve the problem,
wouldn't it?
Nicholas Clark
e\".\n"
(ie let the pre-processor's string concatenation do our long strings,
rather than the \ line joining)
Nicholas Clark
On Tue, Jul 15, 2003 at 04:48:56PM +0200, Leopold Toetsch wrote:
> Attached is a test program, showing an implementations for multiple
It didn't arrive. Did you attach it, or did its name end .t ?
Nicholas Clark
it would not be a great
idea naming a subdirectory hq9+ ?
What should we call it
prn.Im_told_CPM_still_has_its_claws_in_windows ? :-)
Nicholas Clark
oup and IMHO will never be implemented due
> to the huge opcode count necessary to implement them.
> - _bignum will be needed
> - from above list: set_integer, set_number, set_string always use their
> _native variants so they are probably unneeded.
> Others might be missing or unneeded - who knows.
> Comments still welome
No-one commented, did they? Did anything come of this?
Nicholas Clark
uccessful.
Woohoo!
Does this mean that you've delivered your grant deliverables?
Nicholas Clark
On Wed, Aug 06, 2003 at 06:12:33PM +0200, Leopold Toetsch wrote:
> Nicholas Clark <[EMAIL PROTECTED]> wrote:
> That should have been packfile & disassembler routines using Inline::C
> ...
>
> > Whereas all we need here is a perl interface to call into the C disasse
; $ ../parrot test42.pasm
> 42
>
> Sorry, could not resist. :-)
Shouldn't it be the what_do_you_get_if_you_multiply_six_by_nine op?
Nicholas Clark
R (or whatever imcc's input language is
called) would require embedding parrot into a perl extension, and then
calling into parrot subroutines from perl.
Whereas all we need here is a perl interface to call into the C disassembly
API, isn't it? Much simpler (for anyone who knows XS)
Nicholas Clark
7;t have an implementation of Beatnik yet, do we?
Nicholas Clark
re the entire core system is
not using anything named "Perl"?
[and hence in the future the Perl 6 implementation can mess with the Perl
PMCs to its hearts content without affect the semantics of existing language
implementations]
Nicholas Clark
n this message or later, and
you were suggesting this split?
I'm not sure if a simple read/write split also helps PMCs shared across
threads. Maybe sharing between threads is a whole new can of worms that we
should leave untouched for now.
Nicholas Clark
t 2%. Benchmarking Perl 5 usefully is hard - I don't
yet have any good benchmark for Perl 5.
(It's number 3 on my post Paris TODO. Only our washing machine has now
broken, so number 2 is reasserting itself - "laundry". At this rate I'll
never get to number 4 - CV)
Nicholas Clark
en faster if it used
UCS32 internally. Maybe ponie will.
Nicholas Clark
n will be the one doing the throwing. And even if the Python people
cry foul on the JIT I suspect that the computed-goto-predereference core
will scream faster than anything they currently have.
(Mmmm. I wonder if they're implementing their own CGP core)
Nicholas Clark
On Thu, Aug 21, 2003 at 03:31:42PM +0200, Leopold Toetsch wrote:
> Nicholas Clark <[EMAIL PROTECTED]> wrote:
> > I'm not sure if a simple read/write split also helps PMCs shared across
> > threads. Maybe sharing between threads is a whole new can of worms that we
>
+ inline code in gdb. I think that we can learn from those pain sources.
Nicholas Clark
On Thu, Aug 21, 2003 at 06:37:52PM -0400, Benjamin Goldberg wrote:
>
>
> Nicholas Clark wrote:
> > Particularly when the regexp engine is written assuming O(1) random
> > access.
>
> It doesn't *need* to assume O(1) random access; after all, it's neve
yes, it must, for consistency.
Is there an op to copy the value out of an aggregate, without changing
the aggregate? The (shallow copy) value assignment, needed to implement
$a = $h{"a"};
print $a;
$$a = "xxx\n";
$a = $h{"a"};
print $a;
(ie not \$h{"a"})
Nicholas Clark
m.exit exception. By default it gets caught by the
caller of your main routine, and your program exits. But you can trap the
exception, and do whatever you want. That feels powerful, more flexible
than an exit() library function à la C.
Nicholas Clark
ave real sized programs running I don't think we can tell,
so it's probably too early to get too far into thinking about this.
Time would be better spent helping Jürgen Bömmels with the IO rewrite.
Nicholas Clark
now which event really is the object's "death", and I can't see
any event corresponding to "taxes". :-)
Nicholas Clark
o with ponie?
You can get a snapshot from:
http://opensource.fotango.com/ponie/[EMAIL PROTECTED]
Yes, it's huge. It currently includes all of parrot and all of perl, which
means two separate Unicode implementations.
Nicholas Clark
ant PMCs to end up grouped close together in
memory, so that if a process forks that page should stay shared.
(hmm. and the page should stay clean, so the VM system won't need to write
it out once its stable)
Nicholas Clark
I'm not convinced this is very good. But I believe that it is an accurate
mission statement, for at least one of our goals:
Perl internals slow,
nigh on unmaintainable.
So we write parrot.
Nicholas Clark
On Wed, Aug 27, 2003 at 04:14:15PM -0700, Michael G Schwern wrote:
> On Thu, Aug 28, 2003 at 12:11:12AM +0100, Nicholas Clark wrote:
> > I'm not convinced this is very good. But I believe that it is an accurate
> > mission statement, for at least one of our goals:
> >
ckly for perl5
> - create another macro acround that?
I think that the appended patch will work around the problem, by doing
the case on the pointer (which is an RVALUE) and then deferencing.
But currently I only have access to systems with gcc, so I can't test
on something pickier.
to cause its class's deserialiser to fail.
I presume that parrot is going to be able to de-serialise objects. In
which case we are exposed to this sort of attack.
Nicholas Clark
n that cloning would just be another "output format"
for the freezer part. [Not sure if we can be sufficiently crafty to also
make traversing just another "input format" for the thawer part. Parrot
doesn't give us co-routines in C, does it :-)]
Nicholas Clark
On Sat, Aug 30, 2003 at 10:13:02PM -0400, Benjamin Goldberg wrote:
> Nicholas Clark wrote:
> > The attacker can craft a bogus CGITempFile object that refers to any
> > file on the system, and when this object is destroyed it will attempt to
> > delete that file at whatever pr
searching/working
out how to efficiently map stack operations to use more than a couple
of registers would be very useful for all sorts of stack based languages.
Getting started on that would probably be very helpful - you don't need
to actually write the implementation PASM if you're able to describe
what needs to a co-volunteer.
Nicholas Clark
meters in definitions. The drawback is: We would
> lose a lot of helpful information that we could have obtained while
> exploring
> the headers.
One solution is to put the parameters in /* comments */ in the declarations.
Nicholas Clark
hat thread 0 has already locked
object A and is waiting on B, while thread 1 has B locked and is waiting on A)
If so, does that help?
Is this a stupid question which demonstrates my lack of knowledge about
threads?
Nicholas Clark
they have a Ministry of Truth approved mailer which does remove
all traced of the previous thread. I think genuine Hotmail qualifies)
Nicholas Clark
uld read some of the comments
too?) Are there specific permalinks of blog entries that discuss
individual items in your list above, to save us all trying to wade
through masses of text?
Nicholas Clark
I'm still not sure about the 2 spare syllables in the last line in this
explanation:
"Patches welcome" means
"shut up and show me some code,
let me 'thanks applied'"
Nicholas Clark
set S4, "Banana"
> +set S4, "Banana32"
> +set S5, ".Monkey6"
> +set S6, " 42.65"
> +set S7, "12Chimp"
I don't see this test added, so should this patch be applied?
Nicholas Clark
On Sun, Sep 07, 2003 at 04:22:26PM +0200, Leopold Toetsch wrote:
> Nicholas Clark <[EMAIL PROTECTED]> wrote:
> > On Thu, May 15, 2003 at 08:35:39PM -0600, Luke Palmer wrote:
> >> Silly me. Here's that patch without the C++ comments %-)
>
> > This
an CVS is still
able to create valid historical snapshots.
(valid in as much as they will compile - they won't be perfect because
extra files will appear in the new locations, as if they had been
committed there since the beginning of time, rather than appearing that
at the time of the move)
CVS sucks for this sort of stuff.
Nicholas Clark
REFCNT = 1
FLAGS = (IOK,pIOK)
IV = 6148914691236517205
The same perl for a small value uses NVs:
$ /usr/local/perl5.8.1-snap21133/bin/perl5.8.1 -MDevel::Peek -le '$a=0xFF/3; Dump $a'
SV = NV(0x814b4cc) at 0x8144c90
REFCNT = 1
FLAGS = (NOK,pNOK)
NV = 85
Nicholas Clark
ne in perl first. It's a prototype. You can use it to learn how to
do the real thing in PASM. And you'll have something working earlier,
so hopefully you won't get demoralised part way through.
Just don't make it too good, in case everyone stops working on parrot
and starts playing Zork/Hitch-Hikers' Guide to the Galaxy/whatever
Nicholas Clark
lts - I had taken the "common sense" view that this hash
would be small
I'm wondering if a documented version of this patch should go into
Storable. It could be useful for experimenting.
Nicholas Clark
--- Storable.pm.orig2003-07-29 08:06:35.0 +0100
+++ Storab
e U-turn on page 93 to?)
Nicholas Clark
be, but that requires using a full continuation-passing function
> call system, something we chose not to do."
That would be the one:
http://www.ccl4.org/~nick/P/p6ee++.jpeg
(thanks to my housemate hoggy for taking the picture)
I think that a fully hand corrected first edition would make quite an
interesting prize.
Nicholas Clark
pdd7_codingstd, no body had replied),
> but maybe Parrot isn't going to have support for C++ embedding applications.
It will. perl 5 does. Therefore the current situation is a bug.
Nicholas Clark
st my experiments seem to suggest this.
I've no idea quite how it's working.
I think it's still fractionally broken, in that -Wno-format will
erase -Wformat-nonliteral
Nicholas Clark
On Fri, Sep 12, 2003 at 10:54:27PM +0100, Nicholas Clark wrote:
> I think it's still fractionally broken, in that -Wno-format will
> erase -Wformat-nonliteral
A suitable anchor seemed to fix that.
Nicholas Clark
for speed.
Do we need to do this last bit explicitly? Or can we do it lazily -
each time we get called to e_handler when there are no longer events,
we change back that instruction.
Or is this already done this way?
Nicholas Clark
On Fri, Sep 19, 2003 at 08:12:00AM -0400, Dan Sugalski wrote:
> I predict a rather large quantity of Parrot time coming up, so... :)
Oooh. Do we get Exceptions Objects and Embedding then?
Nicholas Clark
ber, so it would be good to verify that we've not screwed
up anywhere.
Nicholas Clark
?
Better still, can anyone see a viable way to do it on perl5?
Nicholas Clark
ent already create Unix
domain sockets in subdirectories of /tmp to provide this sort of service,
so I guess this is the right thing for parrot to do (on Unix)
Problem solved?
Nicholas Clark
PS #london.pm's infobot dipsy has been taught a step 4:
step 4 is shred all financial documents and give directors bonuses
I'd say yes.
It looks like something (nmake) is treating all the \ in
D:\Programs\Perl\bin\perl.exe as escapes. Is it possible to configure with
perl as D:/Programs/Perl/bin/perl.exe
Nicholas Clark
;
RT says that the patch status is applied, but the ticket is still marked
as new. Should it be closed?
Nicholas Clark
401 - 500 of 903 matches
Mail list logo