Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-02-07

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:08 Josephine joined #perl6
00:15 [1]Josephine joined #perl6
00:35 ayrnieu_ joined #perl6
00:54 fbb joined #perl6
01:20 shinobi-cl_ joined #perl6
01:23 alester joined #perl6
01:45 M_o_C joined #perl6
01:48 avar joined #perl6
01:56 ffbb left #perl6
02:38 hercynium joined #perl6
03:08 alester joined #perl6
03:15 stephenlb joined #perl6
03:21 eternaleye joined #perl6
03:38 jhuni joined #perl6
04:24 alester joined #perl6
04:26 alester joined #perl6
04:37 alester_ joined #perl6
05:05 alester joined #perl6
05:30 Minthe joined #perl6
05:37 mberends joined #perl6
06:19 pugs_svn r25224 | lwall++ | [STD] implement real nesting of lexical scopes and packages
06:21 justatheory joined #perl6
06:25 pugs_svn r25225 | lwall++ | [CORE] add Order enum symbols
07:04 hercynium joined #perl6
07:06 ab5tract joined #perl6
07:11 cai joined #perl6
07:21 PantheraPardus joined #perl6
07:34 dduncan joined #perl6
07:36 dduncan question ... I recall there being a language discussion about a generic grep-alike operator that partitioned its input list into 2 complementary lists, those passing or failing respectively ... what was that operator named ... I'm looking for a clue to find it in the docs
07:36 dduncan unless this was a meta-op (unlikely)
07:37 dduncan I see there was chat about 'partition', but I'm looking for it in the spec
07:38 dduncan note I'm just looking for a simple 2-way, not into arbitrary ways
07:39 mberends S29 says 'classify'
07:39 dduncan thank you ... looking ...
07:42 mberends It looks right, but I've not seen it used or discussed. I wonder whether it's been implemented?
07:44 dduncan I see 'classify' works N-way, which is fine as a more generalized operator ...
07:45 dduncan I think I'll go with that name for my own use as well, until something better comes along
07:45 mberends ok
07:45 dduncan or maybe not
07:45 dduncan thanks for the pointer though, that's what I was looking for
07:48 mberends do you have any experience with method BUILD(...) {...} ?
07:49 TimToady you mean submethod BUILD?
07:50 pugs_svn r25226 | lwall++ | missing commas
07:51 dduncan I have some experience with BUILD, what do you want to know?
07:53 dduncan TimToady, since you're here, opinion question ... what might be a good name for a more specific form of 'classify' that always divides 2 ways based on a boolean filter? ... I would tend to name its 2 result lists 'passed' and 'failed' for context
07:53 dduncan or anyone else can answer
07:53 dduncan I also prefer a name that is a noun, named after what it results in
07:54 dduncan if such is possible
07:54 dduncan I suppose 'classification' might work in a pinch, but that might be too generic ... or maybe not
07:54 dduncan well same generic as the original
07:55 dduncan mberends, I do have BUILD experience, what do you want to know?
07:56 mberends my suggestion is to just use 'classify', otherwise the function namespace gets more cluttered.
07:56 dduncan I'm asking for the purpose of use in my own separate programming language ... I ask here because Perl 6 is one of my language's influences and there are lots of good ideas here
07:56 dduncan so cluttering Perl 6 is a non-issue
07:57 mberends dduncan: thanks, I'm preparing my question in code form, will take a few minutes.
07:58 TimToady perhaps if we were designing classify now we'd make it return a Capture of positionals for numeric values and named args for string values of the closure
07:59 dduncan one style choice I made was to name routines that one would use in a value expression with a noun, similarly to how one would name a variable, and routines one would use as a statement are named with verbs ... the former 'is' something and the latter 'does' something
07:59 dduncan makes sense
07:59 TimToady yes, well, classification is a bit unweildy :)
08:00 dduncan if you mean because its a bit long, then yes
08:00 TimToady and class is taken...
08:00 mberends 'part' as in hair
08:01 dduncan that might work
08:01 dduncan I actually thought of 'divide', which specifically says 2 ways, but I'd wonder if that confuses people
08:01 mberends split has the same problem
08:02 mberends splitting hairs
08:03 TimToady I like verbs
08:03 TimToady and Nasa has a long tradition of nouning verbs.  "Go for deploy."
08:03 mberends yes, but you non verbs and verb nouns
08:04 mberends *noun
08:04 dduncan note, barring a solution, I have fallen back to a longer name of form 'foo_and_not_foo' ... note that I also already have distinct 'foo' and 'not_foo' functions; the one I was thinking of adding was meant to invoke doing the work once
08:05 dduncan two cases so far ... 'restriction_and_cmpl' returned 2 results, that which 'restriction' (think SQL's WHERE) and 'cmpl_restriction' would return with the same arguments
08:05 mberends I dislike nouning adjectives, especially 'keynote' and 'cautionary'
08:05 dduncan the other case is 'semijoin_and_semidifference', which are both of 'semijoin' and 'semidifference'
08:07 TimToady dduncan: that's not very user-friendly, at last for the typist
08:07 TimToady *least
08:07 dduncan mind you, I don't expect people would use the both form very often ... normally they just want one
08:08 mberends grep does the one
08:08 mberends so.. grep2 ?
08:09 dduncan as for nouning adjectives, this pattern basically follows from that I name my basic math functions [sum,difference,product,quotient] rather than [add,subtract,multiply,divide]
08:09 * mberends likes grep2
08:09 dduncan that might work
08:10 dduncan note that my naming scheme probably makes more sense in the context that the parameters are all named, so eg the parameters of quotient are dividend and divisor
08:10 dduncan such code should be very readable
08:11 mberends yes, like cobol ;)
08:11 dduncan I don't go that far
08:11 mberends nobody should go that far
08:12 dduncan that is, while my language is a successor to SQL, I don't use COBOL like syntax as SQL does
08:12 mberends now you've got me interested - I do lots of SQL work
08:12 dduncan lookup Muldis::D on CPAN ... that is what I am enhancing
08:13 dduncan and Set::Relation, the first working implementation of one portion of it
08:13 mberends ok, thanks!
08:14 dduncan the specific situation is that I'm currently implementing a functional form of SQL's UPDATE, and implementing that involves partitioning the source rowset in 2, then updating attributes in one portion, then unioning the 2 parts together ... said 2 parts are those that pass/fail a filter ...
08:16 dduncan now when making this I thought it might be useful to users to be able to invoke one function to get pass+fail together rather than having to invoke 2 functions ... conceivably it might be more efficient and terser ... so this naming exercise came about
08:16 dduncan the functional-update is named 'substitution'
08:17 mberends is that a high level way to avoid in-place updates?
08:17 dduncan yes
08:18 dduncan most of the language is pure functional, but it still provides simple ways to actually mutate variables when you actually want to
08:19 dduncan basically it is as functional as can be reasonably done without making people go through contortions to change state like pure functional languages do
08:19 dduncan the procedural equivalent of SQL's update is 'assign_substitution'
08:20 dduncan which is shorthand for $foo = substitution( $foo )
08:20 dduncan in concept, but the implementation modifies $foo in place, whatever's efficient
08:21 mberends ok, I was afraid you were sacrificing efficiency in the name of idealism
08:21 dduncan no, I'm quite pragmatic
08:22 dduncan think of it this way ... the functions of Muldis D are analagous to anything you can use in a SQL SELECT statement
08:22 iblechbot joined #perl6
08:22 dduncan and other SQL statements have a lot of syntax in common with SELECT
08:23 dduncan for example the WHERE clause
08:23 ejs joined #perl6
08:24 mberends it's similar to DataSet etc classes from a company whose name I forget
08:24 dduncan 'substitution' is one way you can say "select foo, bar * 2 as bar from baz"
08:25 * mberends will read Muldis::D thoroughly
08:25 ab5tract joined #perl6
08:26 dduncan you can say that in Set::Relation with "$baz->projection( ['foo', 'bar'] )->substitution( sub { { 'bar' => $_->{'bar'} * 2 } } );" or some such
08:26 dduncan or skip the 'projection' if $baz doesn't have any other attributes
08:26 dduncan or if you want all the attributes
08:27 dduncan Set::Relation is meant to integrate more closely into Perl ... use it like Set::Object or something ... so it uses positional args and stuff
08:28 dduncan anyway, thanks for the chat
08:28 mberends ditto
08:32 dduncan I also provide 'map' which does as you would expect ... the full generalization of SELECT ... FROM $baz ...
08:33 dduncan the projection, extension, substitution, etc are more specialized ... and expected
08:33 ab5tract joined #perl6
08:35 jfredett_ joined #perl6
08:35 DemoFreak joined #perl6
08:40 jfredett left #perl6
08:41 pugs_svn r25227 | lwall++ | [STD] more symbol table cleanups
08:44 dduncan now that I think about it, for my current problem the 'foo_and_bar' version seems to work, though I shortened one of them to semijoin_and_diff
08:44 dduncan I'll also go through the language and look for other things to shorten
08:44 mberends dduncan: Muldis::D is a major effort. Are you writing a Rosetta on parrot?
08:45 dduncan Rosetta is the name of the Muldis D implementation over Perl 5 and Perl 6 ... I also plan to implement Muldis D as a Parrot hosted language but it won't be called Rosetta there, probably
08:46 dduncan over Perl the naming is meant to be more like the naming scheme of DBI or other db apis ... in Parrot I'd use a naming scheme more like general Parrot hosted languages use
08:47 mberends how would I call your code from Perl 6 (eventually) ?
08:47 dduncan either call it "Muldis D" or more likely make up some new brand like "Rakudo" did with Perl 6
08:47 dduncan with the Parrot hosted language version, you call the code like you would call Python or Ruby or etc code
08:48 dduncan with the Perl 6 hosted version you would call it like how you invoke SQL by way of DBI
08:48 mberends guessing here, will you persist the data via a DBI like driver to in SQL?
08:48 dduncan yes
08:49 dduncan or more specifically, think of Rosetta the same as DBI, with its own set of pluggable drivers
08:49 dduncan one can choose to use a driver that fronts a SQL database, or you could pick a driver that doesn't ... same as DBI
08:49 dduncan eg, DBD::CSV isn't a SQL database
08:49 mberends yes, it makes sense to abstract the storage that way.
08:51 mberends Well done on conceiving such an impressive architecture. Are there concrete implementations running yet?
08:51 dduncan as for treating Muldis D as a generic language like Perl/Python/etc, its paradigm is that "the database" is how you persist things, and that is your interface to files ... similarly your database doesn't have to persist, or parts could and parts wouldn't
08:51 dduncan think of "the database" as your namespace for global variables
08:51 dduncan like package-level variables in Perl
08:52 cosimo joined #perl6
08:52 dduncan and so the direct analogy to Muldis D user-defined routines are your SQL stored procedures etc
08:53 dduncan so like with SQL, Muldis D essentially merges your concepts of code library and data ... they live in one multi-level namespace and can either persist or not
08:54 dduncan and its all transactional
08:58 mberends "the database" as your namespace... beware... http://blogs.tedneward.com/2006/06/26​/The+Vietnam+Of+Computer+Science.aspx
08:59 * mberends came at this before via Hibernate and remains scarred
09:00 dduncan keep in mind I have lexical variables too
09:02 dduncan a brief explainer, the global namespace is divided first into built-in stuff and user-defined stuff ... the latter is divided in to 0..N depots, each depot corresponding to what a SQL DBMS would call a database ... each depot is individually either persisted or not, and each one can persist in different places ... doing a query involving multiple depots is the means of so-called cross-database queries
09:03 dduncan you don't have to keep everything together, just as a typical application can choose to use multiple files
09:04 mberends wow
09:04 dduncan the meaning of depot varies by implementation or Rosetta driver ... over SQLite, each SQLite file would be a depot
09:05 dduncan the definition of depot is the maximum scope in which its parts are interdependent
09:05 dduncan eg, if you define a data type and a routine or variable uses that type, they must be in the same depot
09:06 dduncan you can make a depot a narrower scope, eg just one behind-the-scenes database schema, but it can't be wider than I said
09:07 dduncan in code terms, a depot is like a library, and contains everything necessary to understand itself
09:08 dduncan code in one library can invoke code in another, but each needs its own copy of the data type definitions that said call involves
09:09 finanalyst joined #perl6
09:10 dduncan looking at url ...
09:10 dduncan actually, I've read that one before
09:11 finanalyst does the rakudo git repository still have to reside inside parrot/languages/?
09:11 mberends yes, temporarily
09:12 finanalyst when is this expected to change?
09:12 mberends pmichaud++ will say. perhaps less than a week
09:12 finanalyst thanx
09:12 dduncan if it helps, you could call Muldis D an "object relational" language ... it is not an ORM or generic object persistence layer ... you use Muldis D as if it were a more advanced version of SQL
09:14 mberends hopefully http://www.thethirdmanifesto.com/ does not influence you too much - it's not pragmatic, SQL is here to stay.
09:15 dduncan I disagree ... it is very pragmatic
09:15 dduncan but it is often misunderstood
09:16 dduncan I'm also not dogmatic
09:16 mberends heh
09:16 dduncan that's one of my main influences, but I still make my own decisions, and use lots of other input
09:17 dduncan if someone says TTM is not pragmatic, they probably don't understand it
09:17 dduncan people say Perl is irrelevant and Perl 6 is going nowhere too, but we don't believe that, do we?
09:18 mberends you're giving me quite a long reading list ;)
09:18 dduncan (yes, I do see that as a fair analogy, not a strawman)
09:22 dduncan I see my effort with Muldis D, relative to SQL, to be a lot like the efforts with Perl 6 relative to Perl 5, and other languages
09:22 dduncan yes, SQL will stay around for a long time, same as COBOL, but over time better things will come along and get adopted
09:23 mberends That's a very noble quest. I like Perl 6 for the same reason.
09:25 dduncan one similarity is that a key feature of Muldis D is to be something that is easy to translate other database-domain languages to
09:25 dduncan I don't know if you were at OSCON, but part of Larry's state of the onion was that he foresaw that one day every language would be a dialect of Perl 6
09:26 dduncan I was there, and its a very interesting thing to say
09:26 dduncan when it gives you power to customize/define your own grammars like that
09:26 dduncan and the various grammars still work together
09:26 mberends no, if it works out Nordic Perl will be my first conference
09:28 dduncan I have yet to be to a Perl-specific conference but hope to start attending them soon ... realistically 2010 will be the first time ... can't afford it this year
09:28 dduncan mberends, is this you: http://search.cpan.org/~MBERENDS/
09:29 dduncan ?
09:29 mberends I interpreted Larry's vision as a flexible enough grammar system that you could emulate C or anything else in it. CPAN, yes, but my recent work is in http://github.com/eric256/​perl6-examples/tree/master
09:30 dduncan I assume 'eric' isn't also your name
09:30 barney joined #perl6
09:30 mberends Eric Hodges set it up and welcomes contributors. See the README.
09:32 dduncan do you have a web page?
09:33 mberends I'm ashamed to say it's unmaintained so I don't refer anyone to it.
09:33 dduncan fair enough
09:34 dduncan do you have a business, or who do you work for?
09:34 mberends self employed in UK and NL, teaching programming
09:35 dduncan I see ... as for me, self employed and doing some work for the owner of a local hotel chain
09:35 dduncan in CA
09:36 dduncan mind you, my recent stuff on CPAN links to that
09:37 mberends I just found your Muldis pages and guessed something similar.
09:38 dduncan interesting your mentioning your location and profession though ... one of the 2 TTM authors, the main one I talk to, is also in the UK and teaching, at Warwick University I think
09:38 dduncan after having worked at IBM for a long time
09:39 mberends I think Edward Codd and Chris Date are both from around there.
09:39 dduncan I was talking about Hugh Darwen being in the UK ... wherever Chris Date is from I'm not sure but he lives in California now
09:40 dduncan and Codd is dead, unfortunately
09:42 mberends Date moved from London to CA in 1974 according to a book I have.
09:44 dduncan I see
09:46 dduncan in case there's confusion, I'm in Canada (BC), not California ... I'm not sure my websites say that too obviously
09:46 mberends oops, sorry. like talking to a Welshman about England...
09:47 dduncan I'm not saying you were confused, but we both used CA to mean something different
09:47 dduncan country code vs state code
09:47 mberends yes, but now it's clear
09:48 mberends I'm in the Netherlands but not in in Holland (although I was born there).
09:57 mberends afk &
10:08 cdwillis joined #perl6
10:09 cdwillis left #perl6
10:11 maerzhase joined #perl6
10:18 moritz_ [particle]1: ping
10:32 meppl joined #perl6
10:45 iblechbot joined #perl6
11:05 rob joined #perl6
11:19 masak joined #perl6
11:20 rob joined #perl6
11:22 maerzhase joined #perl6
11:24 masak moritz_: found the cause of the make error in proto. quite obvious in retrospect, really.
11:24 masak I was using the latest Rakudo with Parrot 0.9.0.
11:25 kanru joined #perl6
11:26 pugs_svn r25228 | masak++ | added 'protoobject' and 'metaclass' to TODO
11:38 bacek joined #perl6
11:47 mberends masak: are you preparing proto for the time when rakudo is outside the parrot tree? http://irclog.perlgeek.de/​perl6/2009-01-29#i_872583
11:49 mberends afk &
11:49 masak mberends: Rakudo _is_ outside the parrot tree.
11:49 masak and yes, I am.
11:50 masak I have two options right now: either build Parrot 0.9.0 along with the Rakudo release that comes with it, or build svn HEAD Parrot with git HEAD Rakudo.
11:51 masak I'll do the first first, and the second later :)
11:55 masak mberends: oh, sorry, misunderstood you.
11:55 masak thought you said "outside of the Parrot repo"...
11:56 masak no, I'm not preparing proto in any special way, but the change will not be drastic, I think. we'll probably need one more environment variable.
12:18 ludan joined #perl6
12:20 moritz_ http://perlgeek.de/blog-en/pe​rl-6/where-rakudo-lives.html
12:22 masak as usual, moritz_++
12:24 moritz_ thanks
12:24 masak it is a sign of community strength that information like this gets out despite the two main devs being temporarily away.
12:24 moritz_ I was just tired of answering the same questions all over again ;-)
12:25 masak that's a very good reason to blog about something, actually.
12:32 avar (rakudo stuff switching to git++ away from svn--)++
12:35 dduncan left #perl6
12:40 masak mberends++ # excellent suggestions in proto script
12:40 masak I also visited #bash and got a good all-round bashing. I'm on a fairly steep learning curve here. :P
12:41 moritz_ is #bash a channel about the the shell, or about being bashed? ;-)
12:44 masak moritz_: don't ask me. :) they did help me with the shell script, but they did the other thing as well.
12:45 masak no, actually they were fairly nice to me.
12:45 masak they just made sure I understood that my solution was the worst possible one before giving me the right answer. :P
13:07 Limbic_Region joined #perl6
13:12 bacek joined #perl6
13:15 pmurias joined #perl6
13:15 pmurias hi
13:16 Psyche^ joined #perl6
13:16 masak hi pmurias
13:33 pmurias hi masak
13:53 masak hm, is there any way to change the working directory from within Rakudo?
13:54 masak &
13:54 moritz_ don't think so
13:58 Whiteknight joined #perl6
14:21 finanalyst joined #perl6
14:21 masak ah, but this workaround apparently works: run( "cd $dir; $command" );
14:35 zamolxes joined #perl6
14:37 pmurias joined #perl6
14:47 jan__ joined #perl6
14:49 pugs_svn r25229 | putter++ | [elf] README's: Mention STD_red dependency in QUICKSTART instructions.
14:49 pugs_svn r25229 | putter++ | [STD_red] README: Mention ruby 1.9.1, and that readline is no longer required.  Light dusting.
14:49 pugs_svn r25229 | putter++ | STD_red_run: #! ruby1.9 instead of ruby, as that's the more common name for 1.9.
14:53 SamB joined #perl6
14:56 pugs_svn r25230 | masak++ | [u4x] added a few more Perl 6 terms to TODO
14:57 kbaud1 joined #perl6
15:26 masak two days after toying with the idea, this now works on my box:
15:26 masak http://gist.github.com/59903
15:26 masak much work remains to be done, but it's looking good so far.
15:33 hudnix That page is not loading for me
15:34 masak hm. not here either, it seems. :/
15:34 PerlJam Is there something wrong with the rakudo repo?  I just tried to clone it and it aborts.
15:35 masak re-pasting somewhere else.
15:35 hudnix all of github is down
15:35 masak that explains both of the above things. :)
15:35 PerlJam ah
15:36 masak http://sial.org/pbot/34926 # trying again :)
15:37 hudnix wow
15:38 masak hudnix: I'm making a note here: 'positive feedback' :)
15:38 hudnix :)
15:39 masak of course, it won't work for anyone else as long as github is down...
15:41 maerzhase joined #perl6
15:59 szabgab joined #perl6
16:00 szabgab hi, who runs perl6.org ?
16:01 szabgab on the front page there are links under Tutorial that lead to 403 Forbidden pages
16:04 moritz_ Registrant Name:Daniel Wright
16:10 maerzhase1 joined #perl6
16:16 ab5tract joined #perl6
16:18 Tene joined #perl6
16:23 masak proto now also downloads and builds druid.
16:25 mberends masak++ !
16:26 masak we'll see where this leads. I've never built a packaging system before. :)
16:26 masak but I'm somewhat struck myself by the simplicity of './proto install druid'. it has a certain je ne sais quoi.
16:27 * moritz_ tries proto...
16:30 moritz_ is it inentional that it downloads parrot each time I install something?
16:30 masak moritz_: no, but I have little wiggle room there.
16:30 masak it can't set PARROT_DIR unless you source it.
16:31 masak as in 'source proto'.
16:31 moritz_ rakudo: say '/' ~~ :d
16:31 p6eval rakudo f99045: OUTPUT«1␤»
16:31 moritz_ rakudo: say '/foo' ~~ :d
16:31 p6eval rakudo f99045: OUTPUT«stat failed: No such file or directory␤current instr.: 'parrot;Any;:d' pc 12868 (src/builtins/any-str.pir:224)␤»
16:31 * masak submits rakudobug
16:31 masak um, I wrote that sub :/
16:31 moritz_ hey, I CAN FINDS BUGY 2!
16:31 masak by rights, I should fix that.
16:32 masak moritz_++
16:32 moritz_ it should be as simple as push_eh your_label\n...\nyour_label: 'fail'()
16:32 * moritz_ tries that
16:33 masak hokay.
16:33 masak I was thinking something like 'check if the file is there first', but maybe catching an exception is the better way to do it.
16:33 moritz_ yes, check first can lead to race conditions
16:34 masak oh, right.
16:34 masak moritz_: :f needs the same treatment, btw.
16:36 moritz_ uhm, 'make spectest' doesn't run any tests here :(
16:37 avar (defun fido (x) (case x ((0 1 2) x) (otherwise (+ (fido (- x 1)) (fido (- x 2)) (fido (- x 3))))))
16:37 avar hrm
16:37 * masak tries
16:37 moritz_ masak: I'm in the 'parrot under rakudo' setup right now
16:37 masak good to know. I'm not.
16:37 masak 'make spectest' seems to work fine here.
16:38 avar sub fido ($x) { if $x == 0|1|2 { $x } else { [+] fido($x-1), fido($x-2), fido($x,3); } }
16:38 avar rakudo: sub fido ($x) { if $x == 0|1|2 { $x } else { [+] fido($x-1), fido($x-2), fido($x,3); } } say fido(8)
16:38 p6eval rakudo f99045: OUTPUT«Statement not terminated properly at line 1, near "say fido(8"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
16:38 avar rakudo: sub fido ($x) { if $x == 0|1|2 { $x } else { [+] fido($x-1), fido($x-2), fido($x,3); } }; say fido(8);
16:38 p6eval rakudo f99045: OUTPUT«too many arguments passed (2) - 1 params expected␤current instr.: 'fido' pc 88 (EVAL_16:49)␤»
16:38 avar rakudo: sub fido ($x) { if $x == 0|1|2 { $x } else { [+] fido($x-1), fido($x-2), fido($x-3); } }; say fido(8);
16:38 p6eval rakudo f99045: OUTPUT«68␤»
16:38 avar nice:)
16:39 dalek rakudo: a26b223 | (Moritz Lenz)++ | t/harness:
16:39 dalek rakudo: [t/harness] parrot libs can also be in parrot/lib
16:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​26b223157cb58437a117464c3cc560a8b247889
16:39 SamB joined #perl6
16:41 masak moritz_: I amended the proto script so it won't download Parrot anew if it's already downloaded.
16:42 masak I'm sure there are much better ways to do what that script does. I'm just taking the shortest path possible to the goal -- painless installation.
16:47 finanalyst joined #perl6
16:48 moritz_ masak: I'd appreciate a 'test' target on top of 'install' ;-)
16:49 masak moritz_: as in './proto test november' or as in 'install should run the tests also'?
16:49 moritz_ masak: the former
16:49 masak no prob.
16:50 masak but I want the tests to be optional in the install process, at least for now.
16:50 cosimo joined #perl6
16:50 masak more precisely, failing tests shouldn't constitute a failed build of a project.
16:51 nihiliad joined #perl6
16:57 xinming joined #perl6
16:59 moritz_ rakudo: say $*PROGRAM_NAME
16:59 p6eval rakudo a26b22: OUTPUT«Use of uninitialized value␤␤»
17:02 finanalyst left #perl6
17:02 masak moritz_: I've implemented a test subcommand. :)
17:02 moritz_ masak: nice ;-)
17:02 rhr_ joined #perl6
17:02 masak lots of code duplication right now, but that's ok during the initial inflation of a project like this.
17:07 pugs_svn r25231 | moritz++ | [t/spec] fudge filetest.t for rakudo
17:08 moritz_ that commit did a lot more than what the commit message said :-)
17:09 masak I grow increasingly attached to git's commit --amend, and miss it increasingly in svn...
17:10 dalek rakudo: 6211ae2 | (Moritz Lenz)++ |  (2 files):
17:10 dalek rakudo: filetests shouldn't die on non-existant files.
17:10 dalek rakudo: Also added tests to t/spectest.data.
17:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​211ae22cf233e068fe9f7d93229fac45cb4f994
17:10 moritz_ but I guess I can only use it before pushing the changes, right?
17:10 masak aye.
17:11 masak there are no actual barriers to doing it to 'upstream' as well, but there are lots of red flags and warnings in the documentation.
17:20 alester joined #perl6
17:22 DemoPhreak joined #perl6
17:23 FurnaceBoy joined #perl6
17:39 justatheory joined #perl6
17:48 dalek rakudo: 13f6779 | (Moritz Lenz)++ | config/makefiles/root.in:
17:48 dalek rakudo: [Makefile] don't try to checkout http:////-URLs.
17:48 dalek rakudo: I hope that doesn't break stuff on Windows...
17:48 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​3f6779d5e51cd810bb75cbe3c75362b2ef4b5f6
17:48 moritz_ @tell pmichaud 'make spectest' doesn't seem to work if parrot in parrot/ below rakudo
17:48 lambdabot Consider it noted.
17:53 pugs_svn r25232 | particle++ | [S19] remove some P5-think, comb is the new hotness
17:56 M_o_C joined #perl6
17:56 icwiener joined #perl6
17:56 masak comb++
18:01 alester joined #perl6
18:14 * moritz_ leaves and will be back on sunday evening
18:14 moritz_ ciao
18:31 s1n are range slices possible?
18:36 alester joined #perl6
18:36 TimToady perl6: say ('a'..'z')[24,4,18]
18:36 p6eval rakudo 13f677: OUTPUT«elements() not implemented in class 'Range'␤current instr.: 'postcircumfix:[ ]' pc 3452 (src/classes/Positional.pir:108)␤»
18:36 p6eval ..pugs: OUTPUT«yes␤»
18:36 p6eval ..elf 25232: OUTPUT«Can't call method "postcircumfix__91_32_93" without a package or object reference at (eval 125) line 3.␤ at ./elf_h line 4333␤»
18:39 pugs_svn r25233 | putter++ | [elf_h] Call .Bool on objects in tests.  [] now tests false.
18:39 pugs_svn r25233 | putter++ | Performance hit is something like 5% (~1 sec) for self compilation.
18:39 pugs_svn r25233 | putter++ | elfcl is unaffected - it was already doing this.
18:40 s1n std: (1..10)[2,3,4]
18:40 p6eval std 25233: OUTPUT«00:02 33m␤»
18:40 s1n okay, that answers that
18:40 TimToady std will only tell you if the syntax parses; it says little about semantics
18:40 s1n TimToady: can you use whatever in a slice?
18:41 TimToady what would it mean?
18:41 TimToady repeat the last element?
18:41 s1n i have no idea, i was just asking
18:43 TimToady when used as the only element, it means all the subscripts
18:43 TimToady though I doubt anyone implements that yet
18:43 TimToady perl6: say [1..10][*]
18:43 p6eval pugs: OUTPUT«1␤»
18:43 p6eval ..rakudo 13f677: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
18:43 p6eval ..elf 25233: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 122) line 3.␤ at ./elf_h line 4346␤»
18:44 s1n weee rakudo works
18:44 s1n so (1..10)[*] means (1,2,3,4,5,6,7,8,9.20)?
18:44 s1n s/20/10/
18:45 TimToady * means all the subscripts in this dimension, so for one dimensional, it comes down to that
18:45 Psyche^ joined #perl6
18:45 TimToady note that [] is 0-dimensional, while [*] is 1-dimensional
18:45 TimToady perl6: [1..10][*;*]
18:45 s1n what do you mean by dimensional?
18:46 p6eval rakudo 13f677: OUTPUT«Statement not terminated properly at line 1, near "[*;*]"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
18:46 p6eval ..elf 25233: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 122) line 3.␤ at ./elf_h line 4346␤»
18:46 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "*]"␤    expecting term postfix, operator or "]"␤    at /tmp/ZfpD9VHwzg line 1, column 11␤»
18:46 TimToady see S09
18:46 s1n akk, don't take this the wrong way, but searching the spec is really difficult for me
18:47 s1n i'll try though
18:47 s1n std: (1..10)[*;*]
18:47 p6eval std 25233: OUTPUT«00:02 32m␤»
18:47 s1n std: (1..10)[1,*]
18:47 p6eval std 25233: OUTPUT«00:02 33m␤»
18:52 TimToady std: (1..10)[Stuff::and::nonsense]
18:52 p6eval std 25233: OUTPUT«Undeclared name:␤      Stuff::and::nonsense used at 1 ␤00:02 32m␤»
18:52 M_o_C joined #perl6
18:54 s1n TimToady: S02 doesn't say anything about Range's object structure. is it supposed to be isa List? does Positional?
18:57 TimToady we need to describe all the basic types in real P6 code
18:58 TimToady but anything that is iterable should be coercable to Positional somehow
18:58 s1n well, positional does not imply list
18:59 s1n are we expecting _all_ list functionality from ranges, or just positional functionality
18:59 rindolf joined #perl6
18:59 jhuni joined #perl6
18:59 TimToady if you use a range as a list it should behave
19:00 TimToady it should be no different from using a range as a part of a list
19:00 s1n std: say "list" if Range isa List
19:01 p6eval std 25233: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/YxrrSAgmhv line 1:␤------> [32msay "list" if Range [31misa List[0m␤    expecting any of:␤     infix or meta-infix␤      infix stopper␤    standard stopper␤ statement_mod_loop␤
19:01 p6eval ..terminator␤00:03 33m␤»
19:01 s1n well that was stupid
19:01 s1n if i did Range isa List, is that true?
19:01 TimToady std is a parser, it doesn't know semantics
19:01 s1n TimToady: yeah i realized that after-the-fact
19:01 TimToady though it knows that "isa" isn't real
19:02 TimToady perl6: say Range ~~ List
19:02 p6eval rakudo 13f677: OUTPUT«0␤»
19:02 p6eval ..pugs: OUTPUT«*** No such subroutine: "&Range"␤    at /tmp/GFP5TD9rn0 line 1, column 5 - line 2, column 1␤»
19:02 p6eval ..elf 25233: OUTPUT«␤»
19:02 s1n okay, i'm asking you, does Range isa List evaluate to true?
19:02 s1n despite what the current impls say
19:02 TimToady no, it would be a does
19:03 s1n does list? i didn't know List was a role
19:03 TimToady pretty much everything is a role as well as a class
19:03 TimToady most of the basic types are punned
19:03 s1n so Range does List is valid, not just Range does Positional?
19:04 TimToady certainly, you can iterate over a range without using indexes
19:05 s1n hmm, you can iterate over positionals without indices, correct?
19:06 TimToady not really
19:06 TimToady iteration over an Array is non-destructive
19:06 TimToady so something has to keep track of the current index
19:07 TimToady even if that's hidden in an anonymous spawned iterator
19:07 s1n TimToady: can you give me an example of what you expect Range iterator to look like?
19:08 s1n (pseudocode or not example usage)
19:09 TimToady perl6: for 1..10 { .say }
19:09 p6eval elf 25233: OUTPUT«Use of uninitialized value in concatenation (.) or string at ./elf_h line 3849.␤syntax error at (eval 120) line 4, near "{->say"␤ at ./elf_h line 4346␤»
19:09 p6eval ..pugs, rakudo 13f677: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
19:10 TimToady biab &
19:39 mberends_ joined #perl6
19:44 DemoFreak joined #perl6
20:12 pugs_svn r25234 | hinrik++ | [util/perl6.vim] adjust which Pod blocks allow implicit code, this makes table blocks highlight correctly
20:12 alester joined #perl6
20:13 aindilis joined #perl6
20:17 pugs_svn r25235 | hinrik++ | [S26] table the table of config options so it lines up correctly
20:20 literal where is the CSS that's used for the synopses in perlcabal.org/syn ?
20:21 literal it makes tables (currently only used by S26 I think) look less readable than unstyled Pod HTML
20:22 literal i.e. big font size, too much space between lines, link-colored text
20:22 alester Hey, talking about what we're putting on rakudo.org
20:22 alester pmichaud and I are brainstorming content.
20:23 alester please look at http://xoa.petdance.com/What_we_need_on_rakudo.org and comment
20:23 literal a live REPL like I saw on some Ruby page a while back
20:24 literal but I guess you'd need to make a REPL first...
20:24 alester nice, thanks.
20:24 alester that's sweet
20:24 alester I'd love to see that.
20:24 literal thats the one: http://tryruby.hobix.com/
20:24 literal really neat
20:24 alester yes, thanks.
20:24 pmichaud pugs had one of those also
20:24 alester what else?
20:24 lambdabot pmichaud: You have 1 new message. '/msg lambdabot @messages' to read it.
20:25 alester Can we get pictures of hot women in teeny tank tops saying "Rakudo"?
20:25 alester I mean, if we want uptake...
20:26 literal short videos of hot Japanese women saying "Rakudo"
20:26 alester stealing from ruby.org
20:26 alester *  Try Ruby! (in your browser)
20:26 alester * Ruby in Twenty Minutes
20:26 alester * Ruby from Other Languages
20:27 alester I think that would be "purring" Rakudo.
20:27 literal haha
20:29 FurnaceBoy_ joined #perl6
20:33 perl7 joined #perl6
20:34 Tene alester: serious request?
20:34 alester yes
20:34 alester well, wait
20:34 alester is WHAT a serious request?
20:34 Tene Video of hot women in little clothing saying "rakudo"
20:34 alester I'm not actually looking for the sexist pig approach
20:34 alester No, that's not serious.
20:35 Tene Okay.  nm, then.
20:35 alester haha
20:35 alester Don't worry.
20:36 literal Tene: why, do you have some?
20:37 alester I think Tene is ALWYAS in teeny tank tops that say "Rakudo"
20:37 alester Cafepress here we come!
20:40 Tene Oh, the shirt has "rakudo" printed on it.
20:41 Tene I thought you meant "video of a woman speaking the word 'rakudo'"
20:41 alester there was that too
20:57 IllvilJa joined #perl6
21:03 alester joined #perl6
21:06 lisppaste3 joined #perl6
21:06 DemoFreak joined #perl6
21:14 idemal joined #perl6
21:24 bacek_ joined #perl6
21:30 M_o_C left #perl6
21:33 justatheory joined #perl6
22:17 szabgab joined #perl6
22:34 szabgab seems to be lots of silence here,
22:35 szabgab I've just uploaded a package to CPAN containing a Perl6 class
22:36 szabgab all would be nice but PAUSE did not index it,  does anyone know what does PAUSE need for indexing ? Does it try to load the module in memory or is it looking for the package declaration ?
22:41 pugs_svn r25236 | hinrik++ | [util/perl6.vim] highlight semicolon separators in E<> Pod formatting codes
22:44 nihiliad joined #perl6
23:02 dalek joined #perl6
23:07 Limbic_Region joined #perl6
23:11 _shinobicl_ joined #perl6
23:12 braceta joined #perl6
23:13 braceta joined #perl6
23:19 pugs_svn r25237 | hinrik++ | [util/perl6.vim] only allow implicit code in =pod/=item/=nested and semantic blocks
23:36 M_o_C joined #perl6
23:37 nihiliad left #perl6
23:41 justatheory joined #perl6
23:47 shinobi_cl joined #perl6
23:52 pugs_svn r25238 | hinrik++ | [util/perl6.vim] match Pod block identifiers more accurately, don't allow formatting codes to span past the enclosing block

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo