RE: junctions and autothreading

2006-08-22 Thread Conrad Schneiker
 From: Amir E. Aharoni [mailto:[EMAIL PROTECTED]

 I've seen the matter of autothreading mentioned in various places,
 usually together with junctions. It seems like a neat idea, thread
 safety concerns notwithstanding. Searching the mailing lists archives,
 i found that there were heated debates about it months ago on
 perl6-language ( http://xrl.us/e77x ).
 
 What is its status now? Is it/Will it be implemented? Will it be the
 default? Is it still hotly debated?

I don't know, but here's another interesting place (#perl6 IRC search page)
that sometimes turns up additional interesting info (although not much this
time):

http://colabti.de/irclogger/irclogger_log_search/perl6

FYI, searching on autothreading gives:

Results:

2006-08-10,Thu
1523 [14:02] gaal what, your shell doesn't have autothreading?

2006-07-04,Tue
558 [16:52] stevan putter: it would almost certainly involve junctive
autothreading

2006-03-15,Wed
95 [00:31] TimToady autothreading happens mystical handwaving
99 [00:33] LeTo and autothreading is or course useful, if e.g. you got
some spare CPUs to do it, but how?
107 [00:40] LeTo TimToady: I see the future PC having a lot of CPUs (my
shiny new Athlon X2 got 2 already), having just more M^HGhz tendency is
already stopped, the 'autothreading' or whatever parallel construct should
consider this

[...]

Best regards,
Conrad Schneiker

http://perl.net.au/wiki/Perl_6_Users_FAQ (Moved from AthenaLab to Perl 6
Wiki.)

www.AthenaLab.com (Nano-electron-beam and micro-neutron-beam technology.)



Re: clarify: does Dog is Mammal load Mammal for you?

2006-08-22 Thread Trey Harris

In a message dated Mon, 21 Aug 2006, Jonathan Scott Duff writes:

But, assuming for the moment that Cis Mammal autoloads CMammal.pm,
does that mean that

   class Dog is Mammal-4.5

is valid?


Yes, it must be valid.  See 
http://dev.perl.org/perl6/doc/design/syn/S11.html#Versioning :


 So you can just say

 my Dog $spot .= new(woof);

 and it knows (even if you don't) that you mean

 my Dog-1.3.4-cpan:JRANDOM $spot .= new(woof);

For this not to extend to subclassing seems bizarre.


This seems like something we shouldn't encourage as it
tends toward tight coupling of implementations where it should be
tight coupling of abstractions.


Different sites have different needs.  Sites with strong regulatory or 
auditing requirements to not modify existing code without review (where 
the definition of modifying includes changing upstream dependencies) 
must be able to specify the longname of classes in this context.  Tight 
coupling should not be encouraged, but it must be allowed for these cases.


My question is, if a program is running where two versions of Dog are 
loaded, say 1.3.4 and 2.1, and a file contains:


  use Dog-1.3.4-cpan:JRANDOM;

  class Poodle is Dog {
 ...
  }

will the compiler know that 'Dog' in this file must always refer to 1.3.4, 
and not 2.1, as most other references to the shortname would?  If not, 
sites that need dependency stability will have to write


  use Dog-1.3.4-cpan:JRANDOM;

  class Poodle is Dog-1.3.4-cpan:JRANDOM {
 ...
  }

which I don't necessarily have any problem with, but this behavior needs 
to be defined.


Incidentally, isn't C(Any) in longnames supposed to be * now?  S11 still 
uses C(Any).


Trey


Re: clarify: does Dog is Mammal load Mammal for you?

2006-08-22 Thread Trey Harris

Oops, Luke Palmer alerted me to the fact that I screwed up in the below.

In a message dated Tue, 22 Aug 2006, Trey Harris writes:
My question is, if a program is running where two versions of Dog are loaded, 
say 1.3.4 and 2.1, and a file contains:


 use Dog-1.3.4-cpan:JRANDOM;

 class Poodle is Dog {
...
 }

will the compiler know that 'Dog' in this file must always refer to 1.3.4, 
and not 2.1, as most other references to the shortname would?  If not, sites 
that need dependency stability will have to write


I misstated my worry here.  In this case, by the same rule that my Dog 
$foo gets the right version because the longname is aliased to the 
shortname in the lexical scope of the use, it would work.


What I'm actually concerned about is the case where the Dog CPAN 
distribution includes Poodle.pm.  I think that we need Poodle.pm to be 
written like:


  use Dog-1.3.4-cpan:JRANDOM;
  class Poodle-1.3.4-cpan:JRANDOM is Dog { ... }

If it's written:
  use Dog;
  class Poodle-1.3.4-cpan:JRANDOM is Dog { ... }

then in a running Perl program that has previously loaded Dog-2.1-*, 
Poodle-1.3.4 will become a subclass of Dog-2.1, which causes any code 
using Poodle-1.3.4 to be unable to protect itself from an unforseen 
upstream dependency change.


Such wordiness seems unfortunate and error-prone.  I don't believe the 
specs yet have anything to say about how filesystem layout exists in the 
world of versioned packages, but it would be nice if a distribution's 
packages can use a shortname and automatically refer to other packages in 
the same distribution before the compiler looks elsewhere within %*INC (or 
its moral equivalent).


Trey


Re: End the Hollerith Tyranny? (linelength.t)

2006-08-22 Thread Nicholas Clark
On Mon, Aug 21, 2006 at 06:49:20PM -0400, Mr. Shawn H. Corey wrote:
 Chip Salzenberg wrote:
  On Mon, Aug 21, 2006 at 06:05:08PM -0400, Mr. Shawn H. Corey wrote:
  Don't forget that some programs, like mailers, wrap at 80 characters.
  
  I don't know of any mailer that is hard-coded at any given column width.
  Do you?
 
 Thunderbird, Evolution, just to name two. OK, they're not hard-coded;
 you can change the option (if you can find it).

I don't think that this is actually a problem as IIRC those mailers don't
have the option to mail in plain text. See

http://nick.hates-software.com/2004/06/30/33b6b8a1.html

for a description of the problem (contains profanity, as does quite a bit of
that site). Sadly for some mailers attachments are the only way to go.

Nicholas Clark


Re: clarify: does Dog is Mammal load Mammal for you?

2006-08-22 Thread Andrew Suffield
On Tue, Aug 22, 2006 at 12:37:33AM -0700, Trey Harris wrote:
 I misstated my worry here.  In this case, by the same rule that my Dog 
 $foo gets the right version because the longname is aliased to the 
 shortname in the lexical scope of the use, it would work.
 
 What I'm actually concerned about is the case where the Dog CPAN 
 distribution includes Poodle.pm.  I think that we need Poodle.pm to be 
 written like:
 
   use Dog-1.3.4-cpan:JRANDOM;
   class Poodle-1.3.4-cpan:JRANDOM is Dog { ... }
 
 If it's written:
   use Dog;
   class Poodle-1.3.4-cpan:JRANDOM is Dog { ... }
 
 then in a running Perl program that has previously loaded Dog-2.1-*, 
 Poodle-1.3.4 will become a subclass of Dog-2.1, which causes any code 
 using Poodle-1.3.4 to be unable to protect itself from an unforseen 
 upstream dependency change.

This is precisely the problem which unix shared libraries have to face
(so yes, it's a real problem), and which is handled by a combination
of sonames and versioned symbols. It seems to me that there is some
merit in considering similar features here. The essential features
are:

 - independent version labels for the interface and implementation, so
   you can change the implementation while promising that the external
   interface remains the same

 - individual symbols can be optionally decoupled from the interface
   version of the library that contains them and versioned
   independently, so even though the interface version has changed from
   X to Y, the linker knows that only function foo has changed; clients
   that use only function bar will still find this version acceptable.

Shared libraries make this behaviour optional, with the first being
all that most people use, and the second only being used by people
writing large libraries with complex needs (like glibc).

You can get interface versions with nothing more than a stipulation
that Poodle-1.* will always have the same interface, but everybody has
to understand what this means for it to work. I'm not sure if this is
the right approach here.

It is not clear to me whether it is practical to version individual
symbols in perl6 as it currently stands, but it would appear to be
worthwhile to make sure this is possible.

I suspect that this will largely be a matter of establishing
appropriate conventions about versioning for CPAN modules.


Re: [perl #40210] [TODO] Provide a way for PGE's dump to go to string

2006-08-22 Thread Patrick R. Michaud
On Mon, Aug 21, 2006 at 07:16:46AM -0700, Will Coleda wrote:
 While the primary use of dump is for immediate debug output (and  
 therefore puts is ok), being able to get at the string it generates  
 is *very* useful for testing.

I've refactored the existing 'dump' method into separate
'dump_str' and 'dump' methods in runtime/parrot/library/PGE/Dumper.pir.
Available as of r14306.

Thanks!

Pm


a practical question

2006-08-22 Thread Richard Nabil Hainsworth
I've been following the development of perl6 from its beginnings, read 
the Apocalypses and Exegesis as they came out, and though I am not a 
perl guru and did not understand it all, the language looks interesting 
and one I would like to experiment with.


But I want to start doing real things. Which for me requires gui toolkits.

I have used Tk with perl5 and I am looking at WxWidgets.

WxWidgets (and the more commercial Qt) exist as C++ classes, although 
WxPerl is a set of wrappers around WxWidgets for perl5.


So how to write an application in perl6 that uses (for the sake of 
illustration) WxWidgets?


For simplicity, just a small window with Hello World, a button cool 
that adds text to the window, and a button Be gone! to kill the window.


Can, in fact, pugs do the following?

1) Suppose initially, we use WxPerl, taken from cpan?

Presumably, we write a perl6 program that has some perl5 in it that 
instantiates the objects using WxPerl.
Then we switch to perl6 scripting. From what I understand from pugs 
documentation it is possible to switch from one representation to the other.


How then does perl6 manipulate the scalars which perl5 generates as 
blessed references?


2) The other possibility is for perl6 to use the WxWidgets classes 
directly.
[ This actually would be useful because there are contributed classes in 
WxWidgets that have not yet been wrapped for perl5 consumption. ]


How do I tell the perl6 (pugs) compiler where the classes reside? How do 
I get them to instantiate? How do I then manipulate the objects?


From the documentation on perl6, this sort of manipulation of other 
languages' objects is supposed to be much easier that it was for perl5, 
viz, no knowledge of XS is required.


Some examples would help me understand how to get perl6 working to do 
the things I want to do with it.


Richard


Integrating the Pugs test suite into the Synopses

2006-08-22 Thread Agent Zhang

Hi, there~

When you see the title, you may wonder what that means. Here is the answer:

 http://feather.perl6.nl/~agentzh/syn/S04.html

Search for links named like Show the snippet from ... and click on
them to find out what will happen. :)

Well, in short, we have divided the .t files in the Pugs test suite
into pieces and inserted every resulting snippet after the
corresponding paragraph of the Synopses.

The job was done by the Perl 5 script util/smartlinks.pl living in the
Pugs source tree. And all the *.html under
http://feather.perl6.nl/~agentzh/syn/ are updated every hour with the
latest Synopses and Pugs test suite. Thanks to the cron program on
feather. ;-)

At this point, there is a question. How does smartlinks.pl manage to
determine which snippet of the tests corresponds to which paragraph of
a certain synopsis?

Hmm, I'm sure you may have already found the answer from the web
pages. There's hundreds of smartlinks spreading over the whole test
suite in the form of comments. Here're two examples:

 # LS04/The do-once loop/can't put while or until modifier

 # LS04/Switch statements /is exactly equivalent to

You see, the smartlink has its deep root in our POD, but contains an
extra keyword list after the second slash. This list of keywords
specifies which paragraph in the given section is relevant to the
tests right below the comment.

Multiple adjacent smartlinks can share the same group of tests:

 # LS02/Context/boolean ?
 # LS03/Changes to Perl 5 operators/? imposes boolean context
 { ... }

Please see t/README in Pugs repository for more detailed information
on smartlinks:

 http://svn.openfoundry.org/pugs/t/README

Embedding test snippets into the Synopses has several benefits:

*  Providing more sample code to the Synopses

Synopses are known for their rich samples. Unfortunately, the sample
code our Synopses are not enough at all. Many sections go without
sample code.

On the other hand, the Pugs test suite contains tens of thousands of
tests, which can certainly serve as very good examples as long as they
are correct and up-to-date.

*  Intuitive estimation for the quality of the tests

When we browse the web pages with test snippet embedded, it's quite
easy to figure out the validity and also the completeness of the test
suite.

For instance, if a whole section has no snippet links at all, then
that probably means we need to add more tests as well as smartlinks.
These HTML pages are good visual coverage reports per se.

Also, the correctness of a group of tests is easiest to determine if
it appears right in the context of the synopses.

Currently we also have TODO and SKIP marks in the test suite, hence we
can get a good estimation for how much of the Synopses are implemented
by Pugs at a quick glance.

*  Easier to detect mismatch between tests and docs

Everyone who has subscribed p6l can see the Synopses are changing
pretty fast. In contrast, many tests in the Pugs test suite are
terribly out of date even though Larry has the habit of updating some
tests after updating the documents.

But if we have enough smartlinks distributed in the test suite, the
mismatch between tests and docs can be detected in the form of
broken links. To get a list of broken links, we only need a single
command:

 $ util/smartlinks.pl --check t/*/*.t t/*/*/*.t

Unmatched smartlinks (if any) will be reported in great detail:

 ERROR: t/operators/quoting.t: line 173: pattern ``/Split result on
words (no quote protection)/'' failed to match any paragraph
in LS02/Literals.

 ERROR: t/data_types/arglist.t: line 6: section ``Operator renaming''
not found in S03.

As I told Juerd on #perl6, the initial motivation of developing
smartlinks.pl is simply to make myself more motivated to contribute
tests to Pugs.

Thanks to other Pugs members who worked on the smartlinks long before
I joined the Pugs team. Without their work, smartlinks.pl won't
produce anything meaningful today. :)

This mail is also posted to Audrey's blog in the form of HTML:

 http://pugs.blogs.com/pugs/2006/08/integrating_the.html

POD++

Cheers,
Agent


Re: Dumb doc question...

2006-08-22 Thread Agent Zhang

On 8/21/06, Agent Zhang [EMAIL PROTECTED] wrote:


http://svn.berlios.de/svnroot/repos/unisimu/Perl/Syn/



This position is no longer maintained. Please see

 http://feather.perl6.nl/~agentzh/syn/

instead. The .html pages there are updated every *one* hour by the
cron program on feather. So they're guaranteed to be up-to-date.

Cheers,
Agent


#ParrotSketch Meeting 22AUG06

2006-08-22 Thread Will Coleda

Transcript now available at:

http://www.parrotcode.org/misc/parrotsketch-logs/ 
irclog.parrotsketch-200608/irclog.parrotsketch.20060822


--
Will Coke Coleda
[EMAIL PROTECTED]




Re: Heredoc issue in pugs.

2006-08-22 Thread Luke Palmer

On 8/22/06, Larry Wall [EMAIL PROTECTED] wrote:

print qq:from/FOO/;


On a somewhat related, somewhat unrelated note, I am a little bit
worried about the false duality of :to and :from.

Luke


[svn:perl6-synopsis] r11316 - doc/trunk/design/syn

2006-08-22 Thread pmichaud
Author: pmichaud
Date: Tue Aug 22 11:00:04 2006
New Revision: 11316

Modified:
   doc/trunk/design/syn/S05.pod

Log:
Change If the first character after the angle is whitespace to
If the first character after the identifier is whitespace for
before regex constructs.


Modified: doc/trunk/design/syn/S05.pod
==
--- doc/trunk/design/syn/S05.pod(original)
+++ doc/trunk/design/syn/S05.podTue Aug 22 11:00:04 2006
@@ -641,7 +641,7 @@
 
 foo('bar')
 
-If the first character after the angle is whitespace, the
+If the first character after the identifier is whitespace, the
 subsequent text (following any whitespace) is passed as regex, so:
 
 foo bar


Heredoc issue in pugs.

2006-08-22 Thread Yiyi Hu

#!/usr/bin/env pugs

my $a = q:t /END/
test
END;

$a.perl.say;

Above example works ok in pugs, But the problem is.

From S02


Heredocs are no longer written with , but with an adverb on any
other quote construct:

   print qq:to/END/;
   Give $amount to the man behind curtain number $curtain.
   END

Which is correct?


Re: Heredoc issue in pugs.

2006-08-22 Thread Larry Wall
On Wed, Aug 23, 2006 at 02:16:11AM +0800, Yiyi Hu wrote:
: #!/usr/bin/env pugs
: 
: my $a = q:t /END/
: test
: END;
: 
: $a.perl.say;
: 
: Above example works ok in pugs, But the problem is.
: From S02
: 
: Heredocs are no longer written with , but with an adverb on any
: other quote construct:
: 
:print qq:to/END/;
:Give $amount to the man behind curtain number $curtain.
:END
: 
: Which is correct?

Both of them are.  See the table further down that says:

Short   LongMeaning
=   ===
...
:t  :to Interpret result as heredoc terminator
...

Larry


Re: Heredoc issue in pugs.

2006-08-22 Thread Daniel Hulme
 : my $a = q:t /END/
 : test
 : END;

 :print qq:to/END/;
 :Give $amount to the man behind curtain number $curtain.
 :END

 : Which is correct?

 Both of them are.  See the table further down that says:

What about the semicolon? After the terminator, or after the opening
line?

-- 
Your inertially corrupt space-time disagrees with me. -- Will McCarthy
http://surreal.istic.org/   It sounded right in my head.


pgpkmeZZf5Xa7.pgp
Description: PGP signature


Re: Heredoc issue in pugs.

2006-08-22 Thread Larry Wall
On Tue, Aug 22, 2006 at 08:12:09PM +0100, Daniel Hulme wrote:
:  : my $a = q:t /END/
:  : test
:  : END;
: 
:  :print qq:to/END/;
:  :Give $amount to the man behind curtain number $curtain.
:  :END
: 
:  : Which is correct?
: 
:  Both of them are.  See the table further down that says:
: 
: What about the semicolon? After the terminator, or after the opening
: line?

Ah, missed that, thanks.  On the opening line is correct, just as in
Perl 5.  The heredoc is just a term with some indirection, and the
indirection is completely line oriented.  The terminator must still
be on a line by itself, with nothing but whitespace.  We could just
as easily have a POD indirection that said

print qq:from/FOO/;

and it would go looking for the nearest =begin FOO block to insert.
So syntactically, it's only sort of happenstance that with heredocs
the document happens to be here.  The inline-ness of it is secondary
to the line-orientedness of it, in my mind.  And it is often not,
in fact, truly inline, as demonstrated by

print qq:to/FOO/, qq:to/BAR/;
...
FOO
...
BAR

It's really just a way to abstract a large string containing newlines
into a single token that doesn't.

Larry


Re: Heredoc issue in pugs.

2006-08-22 Thread Larry Wall
On Tue, Aug 22, 2006 at 08:32:52PM +, Luke Palmer wrote:
: On 8/22/06, Larry Wall [EMAIL PROTECTED] wrote:
: print qq:from/FOO/;
: 
: On a somewhat related, somewhat unrelated note, I am a little bit
: worried about the false duality of :to and :from.

Well, that's kinda why theres's no :from actually.  It was probably
not beneficial to bring in a counterfactual example.  Pod docs would
actually come in through %=PODFOO or some such.  Heredocs are a
little more special because they have to interpolate from the local
lexical pad, so in that sense they really are a bit more in-line-ish.

Larry


Re: Heredoc issue in pugs.

2006-08-22 Thread Nathan Gray
On Wed, Aug 23, 2006 at 02:16:11AM +0800, Yiyi Hu wrote:
 #!/usr/bin/env pugs
 
 my $a = q:t /END/
 test
 END;
 
 $a.perl.say;
 
 Above example works ok in pugs, But the problem is.
 From S02
 
 Heredocs are no longer written with , but with an adverb on any
 other quote construct:
 
print qq:to/END/;
Give $amount to the man behind curtain number $curtain.
END
 
 Which is correct?

If I remember correctly, Larry and Audrey discussed this at the
Chicago hackathon and updated the Synopsis at that time.

So my guess is that the Synopsis is correct.

-kolibrie



[svn:parrot-pdd] r14308 - in trunk: . cage docs docs/art docs/dev docs/imcc docs/pdds docs/pdds/clip docs/stm languages languages/tcl/docs lib/Pod/Simple t/distro

2006-08-22 Thread ambs
Author: ambs
Date: Tue Aug 22 10:14:31 2006
New Revision: 14308

Modified:
   trunk/docs/pdds/clip/pdd06_pasm.pod
   trunk/docs/pdds/clip/pdd09_gc.pod
   trunk/docs/pdds/clip/pdd10_embedding.pod
   trunk/docs/pdds/clip/pdd11_extending.pod
   trunk/docs/pdds/pdd21_namespaces.pod

Changes in other areas also in this revision:
Modified:
   trunk/README.win32.pod
   trunk/cage/todo.pod
   trunk/docs/BROKEN.pod
   trunk/docs/art/pp002-pmc.pod
   trunk/docs/compiler_faq.pod
   trunk/docs/configuration.pod
   trunk/docs/debug.pod
   trunk/docs/dev/optimizer.pod
   trunk/docs/embed.pod
   trunk/docs/faq.pod
   trunk/docs/imcc/syntax.pod
   trunk/docs/intro.pod
   trunk/docs/optable.pod
   trunk/docs/stm/atomic.pod
   trunk/docs/stm/stm_frontend.pod
   trunk/docs/stm/thread-issues.pod
   trunk/docs/strings.pod
   trunk/docs/tests.pod
   trunk/docs/vtables.pod
   trunk/languages/LANGUAGES.STATUS.pod
   trunk/languages/tcl/docs/howto.pod
   trunk/lib/Pod/Simple/Subclassing.pod
   trunk/t/distro/linelength.t

Log:
While discussion continues on p2, pod files should be at most
80 columns, special on verbatim sections, so we the man formatter
show it properly.


Modified: trunk/docs/pdds/clip/pdd06_pasm.pod
==
--- trunk/docs/pdds/clip/pdd06_pasm.pod (original)
+++ trunk/docs/pdds/clip/pdd06_pasm.pod Tue Aug 22 10:14:31 2006
@@ -58,12 +58,14 @@
 in a label a dollar sign can appear) are private to the subroutine they appear
 in.
 
-Namespaces are noted with the C.namespace directive. It takes a single 
parameter,
-the name of the namespace, in the form of a multi-dimensional key.
-
-Subroutine names are noted with the C.sub directive. It takes a single 
parameter,
-the name of the subroutine, which is added to the namespace's symbol table. Sub
-names may be any valid Unicode alphanumeric character and the underscore.
+Namespaces are noted with the C.namespace directive. It takes a
+single parameter, the name of the namespace, in the form of a
+multi-dimensional key.
+
+Subroutine names are noted with the C.sub directive. It takes a
+single parameter, the name of the subroutine, which is added to the
+namespace's symbol table. Sub names may be any valid Unicode
+alphanumeric character and the underscore.
 
 Constants don't need to be named and put in a separate section of the assembly
 source. The assembler will take care of putting them in the appropriate part of
@@ -1010,7 +1012,10 @@
 
 So the signature for, for example, this SDL routine:
 
-   int SDL_BlitSurface(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, 
SDL_Rect *dstrect);
+   int SDL_BlitSurface(SDL_Surface *src,
+   SDL_Rect*srcrect,
+   SDL_Surface *dst,
+   SDL_Rect*dstrect);
 
 would be Ci, since it returns an integer and takes four pointers.
 Presumably previous calls would have set those pointers up properly.

Modified: trunk/docs/pdds/clip/pdd09_gc.pod
==
--- trunk/docs/pdds/clip/pdd09_gc.pod   (original)
+++ trunk/docs/pdds/clip/pdd09_gc.pod   Tue Aug 22 10:14:31 2006
@@ -227,7 +227,8 @@
 This macro is invoked when in aggregate Cagg the element Cold is getting
 overritten by Cnew. Both Cold and Cnew may be NULL.
 
-=item CDOD_WRITE_BARRIER_KEY(Interp*, PMC *agg, PMC *old, PObj *old_key, PMC 
*new, PObj *new_key)
+=item CDOD_WRITE_BARRIER_KEY(Interp*, PMC *agg, PMC *old, PObj
+*old_key, PMC *new, PObj *new_key)
 
 Like above. Invoked when a hash key is inserted, possibly replacing an old
 key.

Modified: trunk/docs/pdds/clip/pdd10_embedding.pod
==
--- trunk/docs/pdds/clip/pdd10_embedding.pod(original)
+++ trunk/docs/pdds/clip/pdd10_embedding.podTue Aug 22 10:14:31 2006
@@ -7,7 +7,8 @@
 
 =head1 ABSTRACT
 
-What we believe people will do when embedding and extending Parrot, why they 
do it, and how.
+What we believe people will do when embedding and extending Parrot, why they
+do it, and how.
 
 {{ NOTE: some of this will later move into pdds 11  12, but for now
 just want to get the stub checked in. }}
@@ -19,45 +20,103 @@
 =head1 DESCRIPTION
 
 Why embed:
-   - access to special features/libraries/languages Parrot provides
-   - need an interpreter for a DSL or existing language
-   - want to run Parrot on another platform or environment (dedicated
- hardware, in a web server, et cetera)
+
+=over 4
+
+=item - access to special features/libraries/languages Parrot provides
+
+=item - need an interpreter for a DSL or existing language
+
+=item - want to run Parrot on another platform or environment (dedicated
+hardware, in a web server, et cetera)
+
+=back
 
 Why extend:
-   - need something NCI doesn't provide
-   - writing a custom PMC
+
+=over 4
+
+=item - need something NCI doesn't provide
+
+=item - writing a 

[perl #40217] Parrot_autoload_class() knows about Python and Tcl

2006-08-22 Thread via RT
# New Ticket Created by  Chip Salzenberg 
# Please include the string:  [perl #40217]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=40217 


Hard-coded language names in Parrot are ... well ... bad.
Very bad.
-- 
Chip Salzenberg [EMAIL PROTECTED]


LLVM and HLVM

2006-08-22 Thread John Siracusa
Has anyone looked at LLVM lately?

http://llvm.org/

It seems to be making a lot of progress lately with the support of Apple
(which is using LLVM for its own purposes in Mac OS X).  Is there anything
there Parrot can steal?  Would it make sense for Parrot to target LLVM
bytecode and let LLVM do further optimization and native code generation?

There's also the predictably named HLVM:

http://hlvm.org/

which looks vaguely Parrot-ish.  Check out the comparison chart:

http://hlvm.org/docs/FAQ.html

Anyway, I'm just thinking out loud, here.  Sorry if it's all old news to the
Parrot dev gurus.

-John




[perl #40218] [BUG] - get_*_global opcodes throw exceptions

2006-08-22 Thread via RT
# New Ticket Created by  Matt Diephouse 
# Please include the string:  [perl #40218]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=40218 


So sayeth the docs for the get_*_hll global opcodes:

   If the global doesn't exist, $1 is set to null.

However, the current implementation throws an exception if the global  
doesn't exist instead of returning null. It was decided in  
#parrotsketch on 15 Aug 2006 that returning null is the right thing  
to do.

This is a fairly substantial change, requiring changes to tests and  
compilers.

--
Matt Diephouse



[perl #40219] [TODO] - Steal Perl5's sprintf tests

2006-08-22 Thread via RT
# New Ticket Created by  Matt Diephouse 
# Please include the string:  [perl #40219]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=40219 


Parrot's sprintf implementation is currently quite buggy, as  
evidenced by failing Tcl tests for the [format] command. Parrot  
should take Perl 5's sprintf tests rather than writing up new ones.

--
Matt Diephouse



Re: [svn:parrot-pdd] r14308 - in trunk: . cage docs docs/art docs/dev docs/imcc docs/pdds docs/pdds/clip docs/stm languages languages/tcl/docs lib/Pod/Simple t/distro

2006-08-22 Thread Joshua Hoblitt
I hope you didn't do that by hand.  I wrote a utility last Dec.
specifically for formatting Parrot's Pod.

http://search.cpan.org/~jhoblitt/Pod-Tidy-0.09/

-J

--


pgp5clC56Bbat.pgp
Description: PGP signature


GUI toolkits (RE: a practical question)

2006-08-22 Thread Conrad Schneiker
 From: Richard Nabil Hainsworth [mailto:[EMAIL PROTECTED]

 But I want to start doing real things. Which for me requires gui toolkits.


[...]

 So how to write an application in perl6 that uses (for the sake of
 illustration) WxWidgets?
 
 For simplicity, just a small window with Hello World, a button cool
 that adds text to the window, and a button Be gone! to kill the window.
 
 Can, in fact, pugs do the following?

[...]

 Presumably, we write a perl6 program that has some perl5 in it that 
 instantiates the objects using WxPerl.
 Then we switch to perl6 scripting.

[...]

 Some examples would help me understand how to get perl6 working to do
 the things I want to do with it.

I'm interested in the same thing. In addition, I'm also even more interested
in getting the same sorts of questions answered for using Mozilla (Firefox)
GUI technology stuff such as XPCOM, XUL, and so on.

Best regards,
Conrad Schneiker

http://perl.net.au/wiki/Perl_6_Users_FAQ (Moved from AthenaLab to Perl 6
Wiki.)

www.AthenaLab.com (Nano-electron-beam and micro-neutron-beam technology.)




Latest $1,000 Wiki for Perl 6 proposal/offer.

2006-08-22 Thread Conrad Schneiker
Hopefully someone at The Perl Foundation (perl.org) will read and respond to
this. 

(Other comments and suggestions are certainly welcome, however.)

 

Could I just pay someone at TPF $1,000 to set up a wiki *for* Perl 6 on
perl.org?

 

Whatever wiki TPF chooses is fine with me. 

 

I would also like this wiki to serve the interests of Perl 5.8/5.9/5.10,
Parrot-related projects, and so on. These things should all help Perl 6 in
the long run.

 

If you want more $ for overhead costs, I'd be happy to do some evangelical
fundraising.

 

Best regards,
Conrad Schneiker

 http://perl.net.au/wiki/Perl_6_Users_FAQ
http://perl.net.au/wiki/Perl_6_Users_FAQ (Moved from AthenaLab to Perl 6
Wiki.)

 
file:///C:\Documents%20and%20Settings\Admin2\Application%20Data\Microsoft\S
ignatures\www.AthenaLab.com www.AthenaLab.com (Nano-electron-beam and
micro-neutron-beam technology.)

 



Re: Latest $1,000 Wiki for Perl 6 proposal/offer.

2006-08-22 Thread Andy Lester


On Aug 23, 2006, at 12:21 AM, Conrad Schneiker wrote:

Could I just pay someone at TPF $1,000 to set up a wiki *for* Perl  
6 on

perl.org?



Whatever wiki TPF chooses is fine with me.


I'm working on a wiki right now.  I work for Socialtext, an  
enterprise wiki company, and I'm working on getting a wiki up for  
Perl docs.


xoa

--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance






Re: Integrating the Pugs test suite into the Synopses

2006-08-22 Thread Agent Zhang

On 8/22/06, Christopher D. Malon [EMAIL PROTECTED] wrote:

On Aug 22, 2006, at 9:55 AM, Agent Zhang wrote:

 Well, in short, we have divided the .t files in the Pugs test suite
 into pieces and inserted every resulting snippet after the
 corresponding paragraph of the Synopses.

This is really, really cool.  Thanks!



Glad you like it. :)


Often people read the synopses and wonder, Is feature X from the spec
working in Pugs today?  I think it would be cool to integrate the smoke
reports with your inlined tests in the synopses.  When a test section is
displayed, lines from the test that pass could be colored green,
and those that fail or are todo could  be red.  The show snippet
link might itself be colored, too.



Yes, the good old util/catalog_tests.pl does color the tests with
green and red, and Gaal has also asked me if I'm planning to implement
that feature in util/smartlinks.pl. I'd say of course, b0ut I intend
to make this feature optional, since just as you have said, smoke
results are implementation specific while tests and docs are not.


Of course, this idea doesn't quite make sense, because test status
depends on which runtime is used (and sometimes which O/S is used).
Maybe we could produce one version of the synopsis for
each runtime/OS combination listed in smoke.pugscode.org, and update it
as new smoke reports come in.  (Even this approach needs more thought:
do we mix results from different smoke reports if a new report comes in
that skips a lot of tests?)



Yeah, that will be even cooler. Thank you for this wonderful
suggestion. However, I'm afraid it is not of very high priority for me
given the current status of the smartlinks. Among other things, I'll
focus on polishing the Pugs test suite as well as the smartlinks used
in it so as to get every group fo tests and every Synopsis paragraph
linked. Of course, if you have the tuits to try that, I'll be
delighted.


Do you think this is worth trying, or would you rather keep the
smokes separate?



This is definitely worth trying. :=)

Regards,
Agent