Not Quite Perl

2012-04-03 Thread Daniel Carrera
Hello, I've been reading a little about NQP (Not Quite Perl). I was wondering if NQP is part of the Parrot project, or if it is an independent spec. I'm wondering if a program written in NQP will be faster in general, or faster under Rakudo/Parrot, or not fast at all. Cheers, Daniel. -- I'm not

The = operator and context

2012-04-03 Thread Daniel Carrera
Hello. We are all familiar with this: (1..10).WHAT # = Range() @foo = 1..10; @foo.WHAT # = Array() When you assign a range to @foo, the result is an array. Something similar happens, for example, if you assign a scalar to @foo... The context of the assignment causes Perl 6 to convert

Re: The = operator and context

2012-04-03 Thread Daniel Carrera
On 3 April 2012 17:24, Moritz Lenz mor...@faui2k3.org wrote: You can, very nearly. You just need to write my @vec is Vector; because you really want to change the type of the container, not just of the contents (my Vector @vec would be an array containing Vector objects). Another option

Re: The = operator and context

2012-04-03 Thread Daniel Carrera
On 3 April 2012 20:38, Moritz Lenz mor...@faui2k3.org wrote: which version of Rakudo are you using? (I've tried on the last development version from git) Rakudo Star 2012.02 % perl6 --version This is perl6 version 2012.02 built on parrot 4.1.0 revision 0 Hmm...  So you'd have to mess with

Re: N-dimensional arrays and compiler support

2012-03-23 Thread Daniel Carrera
On 23 March 2012 12:55, Carl Mäsak cma...@gmail.com wrote: The shaped arrays/hashes parts of S09 have been in the planning stages a long time in Rakudo. They've had to wait for better MOP and better native-types handling (which is another part of S09), but now the time for shaped arrays/hashes

Re: How to make a new operator.

2012-03-22 Thread Daniel Carrera
On 22 March 2012 04:59, Jonathan Lang datawea...@gmail.com wrote: My understanding is if you want to count by threes, starting at 2 and ending at 14, you should be able to write:   2, 5 ... 14 That certainly looks very intuitive, and it is similar to what I would write in an email. The only

Re: How to make a new operator.

2012-03-22 Thread Daniel Carrera
On 22 March 2012 11:02, Carl Mäsak cma...@gmail.com wrote:    1, 2, 4 ... 100 # same as 1,2,4,8,16,32,64 That last one doesn't work on Rakudo :-( And it never will. Note that 100 is not a power of 2, and that the goal needs to match exactly. This is because smartmatching is used, ... If

Re: How to make a new operator.

2012-03-22 Thread Daniel Carrera
On 22 March 2012 12:06, Moritz Lenz mor...@faui2k3.org wrote: But that's a bit of a problem if I *don't* want a value higher than 100. Then exclude it: 2, 4, 8 ...^ * 100 Ok... I looked up what you did. I see how it works. Thanks. Related questions: What types of sequences can Perl 6

N-dimensional arrays and compiler support

2012-03-22 Thread Daniel Carrera
Hey, I have a few slightly related questions: 1. The semicolon operator would allow Perl 6 to support N-dimensional arrays... How would one iterate over that type of array? my num @matrix[ 10 ; 10 ; 10 ]; I ask because a natural extension is to add arithmetic operators and you have the

How to make a new operator.

2012-03-21 Thread Daniel Carrera
Hello, Is it possible to create a new range operator ':' such that: a:b is the same as a..b (this is the easy part) a:b:c is a range from 'a' to 'b' by steps of 'c'. For example, 2:15:3 == 2,5,8,11,14 :b is the same as 0..b a: is the same as a..Inf ::c is the same as 0:Inf:c : is the same

Re: How to make a new operator.

2012-03-21 Thread Daniel Carrera
Hi Moritz a:b is the same as a..b  (this is the easy part) a:b:c is a range from 'a' to 'b' by steps of 'c'. For example, 2:15:3 == 2,5,8,11,14 That can be done by giving the new infix:: operator list associativity (niecza already supports this) Can you explain or give me a link that

Re: How to make a new operator.

2012-03-21 Thread Daniel Carrera
On 21 March 2012 22:50, Carl Mäsak cma...@gmail.com wrote: It would also produce an infinite list, because by the rules you need the RHS of infix:... to match exactly, and 10 is not in the infinite list 2, 5, 8, 11, 14... Which is why you'd need to write something like * = 10. Ok, so

Re: How to make a new operator.

2012-03-21 Thread Daniel Carrera
On 22 March 2012 00:08, Brandon Allbery allber...@gmail.com wrote: * + $c --- the next value is the current value plus $c.  (* means Whatever, and generally refers to the current value of something.  In this case, we're specifying how to make a new value given a current value.  You can think

Re: How to make a new operator.

2012-03-21 Thread Daniel Carrera
On 22 March 2012 01:13, Solomon Foster colo...@gmail.com wrote: It actually smartmatches whatever is on the right hand side against the sequence, and stops when the smartmatch returns True.  It just happens that you smartmatch an anonymous function, it executes the function and returns its

Re: Announce: Rakudo Star 2010.12 released

2010-12-31 Thread Daniel Carrera
Out of curiosity, is it possible to get Rakukdo to talk to C, C++ or Fortran? On Thu, Dec 30, 2010 at 8:04 PM, Patrick R. Michaud pmich...@pobox.com wrote: On behalf of the Rakudo and Perl 6 development teams, I'm happy to announce the December 2010 release of Rakudo Star, a useful and usable

Re: Filename literals

2009-08-18 Thread Daniel Carrera
+1 Carl Mäsak wrote: Very nicely put. We can't predict the future, but in creating something that'll at least persist through the next decade, let's not do elaborate things with lots of moving parts. Let's make a solid ground to stand on; something so stable that it works uphill and

Re: Multi-d array transforms (was Re: Array rotate)

2009-06-13 Thread Daniel Carrera
Larry Wall wrote: Nevertheless, for any major methods borrowed from Perl 6, I'm not inclined to change them that drastically. Much more likely to define them as sugar for the more general list operators: .push means .=append .unshiftmeans .=prepend .splice means

Re: Multi-d array transforms (was Re: Array rotate)

2009-06-12 Thread Daniel Carrera
Damian Conway wrote: In fact, I would even be happy with requiring @a.=push and @a.=shift, if it meant that there were *no* special cases. One extra character is a small price to pay for perfect SWIM (and not just Say What I Mean, the real benefit is the other SWIM: See What I Meant). I don't

Re: Module naming conventions

2009-06-03 Thread Daniel Carrera
John M. Dlugosz wrote: Yes. did you read mine? Yes, I read your email. Sounds like you are thinking of Parrot vs pure perl, and missed my point about being utterly different implementations, not choices within one. Chances are, the most popular implementations of Perl 6 will allow C

Re: Module naming conventions

2009-06-03 Thread Daniel Carrera
Hi Patrick, To reduce list traffic, I'm replying to both of your emails together. Just because these are the only adverbs mentioned doesn't necessarily mean they're the only ones that will be allowed. Ok. My interpretation was that adding adverbs would require updating the spec. More

Re: Module naming conventions

2009-06-02 Thread Daniel Carrera
Mark Overmeer wrote: Currently in CPAN you have modules like: Digest::MD5 Digest::SHA Digest::MD5::Perl Digest::SHA::PurePerl The difference is that the first two are implemented in C and the later two in Perl. This is comparible to adding a target to each of the modules, a suggestion when

Re: Module naming conventions

2009-06-02 Thread Daniel Carrera
John M. Dlugosz wrote: So CPAN6 is basically only going to be for Parrot? What are you talking about? Did you even read my email? I said that a module might be implemented in multiple languages (see Digest::SHA VS Digest::SHA::PurePerl) and someone might have both versions installed.

Re: Module naming conventions

2009-06-02 Thread Daniel Carrera
Chris Fields wrote: Speaking as an almost complete outsider (I'm a bioperl core dev writing up a perl6 port), I find the tone of several of these more recent posts (re: CPAN6 and module conventions) counterproductive. TimToady recently posted about snippiness and 'tensegrity', so I'm not the

Re: CPAN -- moving forward

2009-06-01 Thread Daniel Carrera
Parrot Raiser wrote: One of the common factors that has contributed to the longevity of Unix (in the generic sense), and the Internet, is their layered architectures. +1 for layered architectures. If this discussion can be split into clear layers, (what gets stored, where, how, c.) it might

Module naming conventions

2009-06-01 Thread Daniel Carrera
Hi all, Currently in CPAN you have modules like: Digest::MD5 Digest::SHA Digest::MD5::Perl Digest::SHA::PurePerl The difference is that the first two are implemented in C and the later two in Perl. Naming issues are likely to become worse in Perl 6 when we also have modules that use

Re: Module naming conventions

2009-06-01 Thread Daniel Carrera
Jon Lang wrote: On Mon, Jun 1, 2009 at 5:44 PM, Daniel Carrera daniel.carr...@theingots.org wrote: I think we might need to come up with some sort of standard naming convention to distinguish dependencies. Something that the *user* can recognize quickly when he browses CPAN. Why do we need

Re: Commentary on S22 (CPAN [DRAFT])

2009-05-30 Thread Daniel Carrera
jesse wrote: 1) Instead of calling the format JIB, how about PAR? It can stand for Perl ARchive or the recursive PAR ARchive. This is more memorable. It might make sense to adopt the same naming as .jar and .epub, two very different zipfile-as-container formats. Both use a top-level directory

CPAN -- moving forward

2009-05-30 Thread Daniel Carrera
Hello, In the hopes of helping the CPAN discussion move forward, in the direction of tangible work, I have made a wiki page with a proposal: http://wiki.github.com/perl6/misc/cpan-and-package-format Please read the Basics section, which is quite short. The main point of this section is to

Re: CPAN -- moving forward

2009-05-30 Thread Daniel Carrera
Mark Overmeer wrote: A pity you didn't want to read the paper. I have better things to do with my life than read your 30-page paper. I'd rather participate in a consensus process where I feel I can make a difference. Please clarify ... how would you specify that? And how would you

Re: CPAN -- moving forward

2009-05-30 Thread Daniel Carrera
Daniel Ruoso wrote: The leap you make from the source package to the different binary formats is overlooking a lot of details. It would be interesting if you could take a look in the previous discussions on the matter. I'll be happy to. I was just trying to make a small iterative step on

Re: [RFC] CPAN6 requirements analysis

2009-05-29 Thread Daniel Carrera
Alex Elsayed wrote: On Thursday 28 May 2009 4:54:50 pm Daniel Carrera wrote: On the other hand, distributing Parrot bytecode (or PIR, or PASM) seems fine. But I don't know what to suggest for modules that require a C compiler. The problem with that is that Rakudo isn't the Official

Re: [RFC] CPAN6 requirements analysis

2009-05-29 Thread Daniel Carrera
Timothy S. Nelson wrote: I can confirm that Redhat supports multiple versions: $ rpm -q kernel kernel-2.6.27.5-117.fc10.i686 kernel-2.6.27.12-170.2.5.fc10.i686 kernel-2.6.27.5-117.local.fc10.i686 AFAIK the way RPM implements multiple versions is by making an entirely different package.

Re: New CPAN

2009-05-29 Thread Daniel Carrera
Mark Overmeer wrote: I know about CPAN6, thanks. It's come up a couple of times on IRC. Perhaps you could hang out on the IRC channel so we don't have different people going off in different directions with CPAN. It's not a discussion like let's make a change to the current set-up, so IRC

Re: New CPAN

2009-05-29 Thread Daniel Carrera
Mark Overmeer wrote: * Daniel Carrera (daniel.carr...@theingots.org) [090529 08:17]: Workshops, Hackathons and YAPCs are more suitable. But those venues are not available on a day-to-day basis. At least, you get the time to discuss it in depth. Some even basic meta- data issues are just too

Re: New CPAN

2009-05-29 Thread Daniel Carrera
Timothy S. Nelson wrote: While I've no objection to building the end-user software to support multiple repositories, I know that there are certain segments of the community who are very very keen to keep everything in the one repository. After reading the Zen of Comprehensive Archive

Re: New CPAN

2009-05-29 Thread Daniel Carrera
Nicholas Clark wrote: On Fri, May 29, 2009 at 02:43:13PM +0200, Mark Overmeer wrote: * Daniel Carrera (daniel.carr...@theingots.org) [090529 11:42]: CPAN shall not piggyback another language -- from ZCAN. Judging from the ZCAN page, I don't expect that uploading Ruby modules to CPAN

Re: New CPAN

2009-05-29 Thread Daniel Carrera
Mark Overmeer wrote: CPAN is the Comprehensive Perl Archive Network. Not the Comprehensive Perl 5 Archive Network. What's in a name. Much, actually. As the ZCAN document explains, the set of mirrors are donated to Perl by various donors who agreed to hold *Perl* modules. These computers do

Re: New CPAN

2009-05-29 Thread Daniel Carrera
Larry Wall wrote: I think this is an important point, philosophically. The internet, and later the web, both succeeded primarily because they unified identity *without* resorting to centralization (except to bootstrap the top-level nameservers, of course). But identity must not be confused

Re: New CPAN

2009-05-29 Thread Daniel Carrera
Daniel Carrera wrote: Btw, if the majority wants to start uploading Ruby, Python and Lua modules to CPAN, we can rename CPAN so that the P stands for something else that doesn't mean anything. Comprehensive Peacock Archive Network? Comprehensive Platypus Archive Network? my (@C,@P,@A,@N

Re: New CPAN

2009-05-29 Thread Daniel Carrera
John Macdonald wrote: On Fri, May 29, 2009 at 07:26:11PM +0200, Daniel Carrera wrote: Btw, if the majority wants to start uploading Ruby, Python and Lua modules to CPAN, we can rename CPAN so that the P stands for something else that doesn't mean anything. Comprehensive Peacock Archive

Re: New CPAN

2009-05-29 Thread Daniel Carrera
John Macdonald wrote: Comprehensive Programming Archive Network. Another problem with Programming is that it assumes that other languages will actually use the system. We don't know that currently and it is a bit presumptions to assume that they will. It would look awkward if only Perl used

Commentary on S22 (CPAN [DRAFT])

2009-05-29 Thread Daniel Carrera
Hello, I finished reading S22 (CPAN [DRAFT]). This synopsis is about the package format, not about the network. I have some comments: 1) Instead of calling the format JIB, how about PAR? It can stand for Perl ARchive or the recursive PAR ARchive. This is more memorable. 2) S22 proposes the

Re: Commentary on S22 (CPAN [DRAFT])

2009-05-29 Thread Daniel Carrera
Daniel Carrera wrote: 4) Lastly, while we are at it, why don't we add a signature file to the _par directory? _par/ META.info CHECKSUMS.asc The CHECKSUMS.asc file would contain the SHA1 sums of every file in the archive except for itself. The file could be GPG-signed

Re: New CPAN

2009-05-29 Thread Daniel Carrera
Mark Overmeer wrote: And the next consideration: when we have a piece of software which administers Perl5 or Perl6 or Nokia.bin or Elf. Why stop there? What is the overlap? It is basically all just some blob of data with some associated meta-data to search and retreive the blobs. It is only

Re: New CPAN

2009-05-29 Thread Daniel Carrera
Wayland wrote: Allow me to point something out. He wants to write a freely available software package that can share data, and is useful for the Perl6 environment. He's not suggesting that we have holiday photos on CPAN-the-network, I'm not sure about that. We were talking about what

Re: Amazing Perl 6

2009-05-28 Thread Daniel Carrera
Hi Damian, This is a really good list. Mind if I copy it / modify it and post it somewhere like my blog? One question: * Compactness of expression + semi-infinite data structures: @fib = 1,1...[+]# The entire Fibonacci sequence Very impressive. That's even shorter than

New CPAN

2009-05-28 Thread Daniel Carrera
Hello all, There was some talk on IRC about a new version of CPAN to match the new version of Perl. Recap: wayland76 wants to integrate CPAN with the local package manager (RPM, DEB). He proposed using Software::Package for that (which is incomplete). Now some ideas of my own: A) Can we

Re: New CPAN

2009-05-28 Thread Daniel Carrera
Mark Overmeer wrote: In March 2006, Sam Vilain and I started to think about a new CPAN what we named CPAN6. There is a lot of information about the project on http://cpan6.org I know about CPAN6, thanks. It's come up a couple of times on IRC. Perhaps you could hang out on the IRC channel so

Re: New CPAN

2009-05-28 Thread Daniel Carrera
Jonathan Scott Duff wrote: See http://perlcabal.org/syn/S11.html#Versioning Yeah, I reached that part earlier today (but after I sent my email). Thanks. Daniel.

Re: New CPAN

2009-05-28 Thread Daniel Carrera
Darren Duncan wrote: Because we need things to work effectively in the general case where what was originally a single module Foo with one name becomes forked with each creator (authority) going off in their own direction, or alternately the creator makes incompatible changes, and then later

Re: [RFC] CPAN6 requirements analysis

2009-05-28 Thread Daniel Carrera
Hi Alex, I hve comments. Alex Elsayed wrote: While lurking in IRC, I've seen several discussions of what CPAN 6 should look like. Honestly, wayland76++'s idea for packaging seems the best to me. Most of the suggestions so far, especially those based on alien, apt, yum, or other existing

Re: [RFC] CPAN6 requirements analysis

2009-05-28 Thread Daniel Carrera
Larry Wall wrote: I support the notion of distributing binaries because nobody's gonna want to chew up their phone's battery doing unnecessary compiles. The ecology of computing devices is different from ten years ago. By binaries, I assume you mean native binaries, as opposed to Parrot

Re: Unexpected behaviour with @foo.elems

2009-05-27 Thread Daniel Carrera
yary wrote: I'm a relative beginner at perl6, but pretty good with perl5 (and C and a few others), so I read for 0...@foo.elems as saying Give me a list with one item longer then @foo, not give me the indexes of @foo. But a Perl non-beginner did make that mistake. The problem is that it looks

Re: Unexpected behaviour with @foo.elems

2009-05-27 Thread Daniel Carrera
Patrick R. Michaud wrote: An even cleaner shortcut might be to use ^...@foo instead of ^...@foo.elems: for ^...@foo - $k { do_something($k, @foo[$k]) } Somewhat clearer could be: for @foo.keys - $k { do_something($k, @foo[$k]) } And some may prefer: for @foo.kv - $k, $v {

Re: Amazing Perl 6

2009-05-27 Thread Daniel Carrera
Hi Daniel, Sounds very interesting. Can you post slides? It'd be cool if the talk was taped, like the Google tech talks. Will it be in English? I don't speak Portuguese (I do speak Spanish and some German). I'm planning to do a presentation to highlight the most impressive aspects to Perl

Re: Amazing Perl 6

2009-05-27 Thread Daniel Carrera
Daniel Ruoso wrote: I know this is not the approach you had in mind, but what do you think? Well, you really made me realize that I'm looking for things that make me impressed, and probably I don't get impressed that easy nowadays ;) I understand. Your experience with Perl 6 makes you harder

Re: Amazing Perl 6

2009-05-27 Thread Daniel Carrera
Mark J. Reed wrote: I really like the factorial example on the wiki page. That really gets across the expressiveness of P6, without being too hard to understand despite its brevity. sub postfix:! { [*] 1..$^n } say 5!; WOW!! That *IS* cool. Can you explain to me how it works? I figured out

Re: Amazing Perl 6

2009-05-27 Thread Daniel Carrera
Daniel Carrera wrote: sub postfix:! { [*] 1..$^n } say 5!; WOW!! That *IS* cool. Can you explain to me how it works? I figured out postfix: myself, but the rest is obscure to me. Here is another idea: Is it possible to declare a circumfix function that calculates the magnitude of a vector

Re: Amazing Perl 6

2009-05-27 Thread Daniel Carrera
Mark J. Reed wrote: 3. the reduction meta-operator [...] : [OP](@list) collects the result of applying OP to the elements of the list in order. That is, assuming foo() is a binary sub, [foo](1,2,3,4) = foo(foo(foo(1,2),3),4). So [+](@list) generates a sum of the listed values, [*]

Re: Amazing Perl 6

2009-05-27 Thread Daniel Carrera
Mark J. Reed wrote: In Haskell it may be called fold (well, foldl and foldr), but the concept has has a variety of names. Two of the more common ones are reduce and inject; The terms I've seen are fold and reduce. The fold term is not just from Haskell. I've seen it elsewhere. If you had

Re: Amazing Perl 6

2009-05-27 Thread Daniel Carrera
Mark J. Reed wrote: Note that of the examples given, only Perl 6 and Common Lisp do two things that help immensely simplify the result: 1. reference the built-in * operator directly, without having to wrap it in a lambda expression; 2. actually name the function ! Yes, very neat. Haskell does

Re: Amazing Perl 6

2009-05-27 Thread Daniel Carrera
Larry Wall wrote: $dot_product = @vector1,@vector2; Is that possible? That would be uber-cool. More likely just use sub infix:· (@a,@b) { ... } $dot_product = @vector1 · @vector2; Thanks. And for Daniel R. and other observers, how about this: # Courtesy of Larry sub infix:·

Unexpected behaviour with @foo.elems

2009-05-26 Thread Daniel Carrera
Hello, The following construction doesn't do what a user might expect: for 0...@foo.elems - $k { do_something($k,@foo[$k]) } Obviously, the intention is to step through every key/value in @foo. Buf @f...@foo.elems] does not exist. If @foo = (1,2,3); then @foo.elems is 3, and @foo[3] is

Idea: Literate programing

2009-05-25 Thread Daniel Carrera
Hello, I really like POD and I like the changes in the upcoming Perl 6 Pod. Have you ever heard of literate programing? (see Wikipedia). I think it would be neat if Pod could do literate programing. It is already very close. For reference, please see this article: For reference, please see

Re: Idea: Literate programing

2009-05-25 Thread Daniel Carrera
Carl Mäsak wrote: In this way, a relatively simple change makes Perl 6 Pod able to do literate programing for anyone who is interested. What do you think? That it sounds like a good idea for a sublanguage-extending module. I'm not familiar with those. Are they hard to make? I guess that it