»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by wolfe.freenode.net on 30 October 2009. |
|||
zaslon | lolperl6adventhazblogged! perl6advent++ 'Day 7: Looping for fun and profit': perl6advent.wordpress.com/2009/12/0...nd-profit/ | 00:00 | |
00:02
Khisanth left
00:06
Khisanth joined
|
|||
jnthn | mathw++ # nice post | 00:08 | |
zamolxes | yep | 00:09 | |
00:18
nihiliad left
00:20
Grrrr left
00:25
Wolfman2000 left
00:27
arthur-- joined
00:28
arthur-_ left
|
|||
Tene | The big issue I'm running into whenever I think about dealing with $! and fail and friends is that it seems to require the ability to have at-scope-exit hooks. | 00:29 | |
Maybe I could just fake it... | |||
00:29
lestrrat is now known as lest_away
00:32
Grrrr joined
|
|||
Tene | error in the last p6advent post... the loop says "$i, $j".say, but the output has no commas in it. | 00:34 | |
I would also change the map and the hyper to something like [email@hidden.address] *.id" or "@contacts>>.phone-number" | 00:36 | ||
dbrock | wow, *.id | 00:39 | |
that's beautiful | |||
does for 1, 2, 3 *.say work? | 00:42 | ||
00:42
masak joined
|
|||
masak | greetings, perl6lings. | 00:43 | |
dbrock | and what about the hyphen in the method? was that a typo, Tene? | ||
Tene | dbrock: no, why would it be? Perl 6 allows - in identifiers. | ||
rakudo: sub foo-bar { say "Foo Bar" }; foo-bar; | |||
p6eval | rakudo 7ef386: Foo Bar | 00:44 | |
masak likes that a lot | |||
Tene | rakudo: for 1, 2, 3 *.say; # I don't expect this to work. | ||
p6eval | rakudo 7ef386: Use of uninitialized valueCould not find non-existent sub forin Main (file src/gen_setting.pm, line 324) | ||
Tene | I don't know if that's supposed to work, but I'd be a little surprised. | ||
dbrock | Tene: whoa!!! | 00:45 | |
that's awesome! | |||
Tene | dbrock: what is? | ||
dbrock | that hyphens are allowed | 00:46 | |
00:46
hcchien left
|
|||
dbrock | haha, www.google.se/search?q=perl6+hyphens | 00:46 | |
00:47
orafu left
|
|||
masak | drbean: Larry Wall hesitated long before allowing hyphens and apostrophes in identifiers. | 00:47 | |
00:47
orafu joined
|
|||
dbrock | (look at the first hit) | 00:47 | |
masak: ah, apostrophes too?? | |||
I am so happy right now | 00:48 | ||
masak | ah, that's you! :) | ||
Tene | Ah, yes. | ||
dbrock | masak: yeah :D | ||
masak | drbean: but he finally allowed it after realizing that only two places in the test suite were affected by the change. | ||
dbrock | haha | ||
masak | drbean: well, in that case -- welcome back! :) | ||
dbrock | awesome | ||
thanks :) | |||
masak | we've missed you. :) | ||
oh, and tell your brother that Perl 6 is, like, the ultimate language nowadays :P | |||
dbrock | haha, I will :D | 00:51 | |
are hyphens and underscores equivalent, or are foo-bar and foo_bar separate identifiers? | |||
masak | they're separate. | ||
00:51
hcchien joined
|
|||
masak | rakudo: my $a_b = 23; my $a-b = 42; say $a_b, $a-b | 00:52 | |
p6eval | rakudo 7ef386: 2342 | ||
allbery_b sees golfing and goes back to sleep :) | |||
00:53
dbrock left
00:54
dbrock joined
|
|||
masak | *whoa*! 7000 views on the advent calendar yesterday! how did that happen? :) | 00:54 | |
Tene | slashdot | ||
masak | really? | ||
wow, we did it! | |||
Tene | I haven't felt up to reading the /. comments thread yet. | ||
Yes. | |||
masak | we hit slashdot before April, just like I hoped. | 00:55 | |
the /. comments are wont to be totally irreverent. | |||
hohoo, all the rest of the week looks like noise next to the slashdot peak. | |||
hope some of the readers stay on. | |||
colomon: oops, were you editing mathw++'s post just now? | 00:57 | ||
dbrock | that advent calendar is such a good idea :D | 00:59 | |
Tene | masak: I've been doing a lot of thinking about fail, Failure, exceptions lately... hopefully going to try an impl early this week in ng. | 01:00 | |
masak | Tene: cool! | ||
Tene: I'm currently working on finishing up week 20 of Web.pm. | |||
I got in an important Squerl change yesternight. tonight I'll have a look at Astaire and see if I can beat that into shape. | 01:01 | ||
then I'll finish up the pastebin and, if I haven't collapsed by then, I'll make a small blog engine. | |||
01:01
mj41_ joined
|
|||
dbrock | rakudo: my $a'b = 123; say $a'b | 01:03 | |
p6eval | rakudo 7ef386: 123 | ||
01:03
ashizawa left
|
|||
dbrock | rakudo: my $a, $a' = 1, 2; say $a', $a | 01:04 | |
p6eval | rakudo 7ef386: Confused at line 2, near "' = 1, 2; "in Main (file <unknown>, line <unknown>) | ||
dbrock | rakudo: my $a' = 123; say $a' | ||
p6eval | rakudo 7ef386: Confused at line 2, near "' = 123; s"in Main (file <unknown>, line <unknown>) | ||
dbrock | hmm, final apostrophes are not allowed? | ||
01:05
leedo joined,
leedo left,
lest_away is now known as lestrrat
|
|||
carlin | dbrock: can only contain hyphens or apostrophes if the following character is a letter | 01:06 | |
masak | for safety reasons, mainly. | 01:07 | |
dbrock | hmm... that defeats the purpose I had in mind for apostrophes | 01:08 | |
but I guess it's nice that you can contract words in identifiers... | |||
masak | rakudo: my $don't-try-this-at-home; say 'alive' | ||
wayland76 | masak: developers.slashdot.org/story/09/12...?art_pos=2 | ||
p6eval | rakudo 7ef386: alive | ||
masak | wayland76: yep, reading it already. | 01:09 | |
wayland76 | Great. Needs more comments, though :) | ||
masak | in the Slashdot comments, you see the Perl 5 people struggling, saying "Perl 6 is NOT Perl 5" over and over again to a misunderstanding public. | ||
avar | wrt perl6advent it would be nice if there were twitter.com/perl6advent to announce :) | ||
wayland76 | How do we fix dev.perl.org/perl6/ ? | 01:10 | |
masak | avar: yes, maybe. right now we use twitter.com/rakudoperl for that, because people have tuned into that already. | 01:11 | |
wayland76: "fix"? | |||
01:11
nihiliad joined
01:12
ashizawa joined
01:15
ashizawa left
|
|||
masak | I can't help but admire chromatic's persistence: slashdot.org/comments.pl?sid=146870...d=30347374 | 01:15 | |
every other tweet or comment | 01:16 | ||
or at least many of then, are this message. | |||
it kinda shows how difficult it is to fight a common misconception. | |||
01:17
Wolfman2000 joined,
mj41 left,
ashizawa joined
|
|||
Wolfman2000 | ...good piece of advice. The next time you use your laptop, remember to plug it in once you are done using it away from the outlets. | 01:17 | |
01:17
hcchien left,
colomon left,
colomon joined
|
|||
dbrock | I told my brother about the hyphens | 01:17 | |
wayland76 | masak: It's not as bad as I thought it was, but I guess I figured that www.perl6.org should go in that list at the bottom of the page. | ||
dbrock | his response: 01:54 <mikael> oh snap 01:54 <mikael> perl6 4life | 01:18 | |
masak | wayland76: that's a good point, yes. | ||
dbrock: \o/ | |||
dbrock | later on, after some random discussion: | 01:19 | |
02:13 <mikael> I wonder how many percent of /dev/urandom is valid perl | |||
02:13 <dbrock> hahahahahha | |||
02:13 <mikael> you could prolly calculate that if perl's syntax weren't non-computable :D:D | |||
02:13 <mikael> or AI-complete or whatever it is | |||
wayland76 | Actually, you could have a go at it. perl -c | ||
01:22
hcchien joined
|
|||
masak | drbean: just to be clear, the non-parseability of Perl is a misconception. it's no less parseable than Python or Ruby, say. | 01:24 | |
sorry that was for dbrock :/ | 01:25 | ||
dbrock: modernperlbooks.com/mt/2009/08/on-p...erl-5.html | |||
01:27
jferrero left
|
|||
masak | I'm backlogging over foudfou's comment about semicolons. I've had a similar idea for a grammar-enhancing module: create one which gives Perl 6 a Python syntax. | 01:31 | |
I'm not saying I'd use it myself, but it'd be a nice experiment. :) | |||
01:31
agentzh joined
|
|||
carlin | masak: heh, I was going to joke about "use Python;" but decided against it given the discussion going on at the time | 01:32 | |
masak | :) | ||
this is why I'm excited about slangs, macros and Perl 6 parsing itself. :) | 01:33 | ||
the whole playing field will change. forever. | |||
01:33
colomon left
|
|||
arnsholt | Indeed. I have an inkling of a plan to abuse that myself =) | 01:34 | |
carlin | We could have a whole library. use Python; use Ruby; use Lisp; ... imagine them all in use at different points of the same program ... | 01:35 | |
01:35
colomon joined
|
|||
masak | carlin: at some point, it's probably better to actually switch to the language and not just its syntax. :) | 01:37 | |
Tene | masak: i have plans to make that pretty trivial for any PCT-using language on Parrot. | 01:38 | |
Q:LOLCODE <parsed using the lolcode grammar>; | |||
masak | Tene: make what pretty trivial? | ||
ah. | |||
Tene | Q:scheme ( ... ) | ||
masak | Tene++ | ||
01:44
ihrd joined
|
|||
dbrock | that would be so cool | 01:44 | |
masak: haha, “A very clever, very careful static parser could still replicate the complex heuristic in the Perl 5 parser and parse code appropriately.” | 01:45 | ||
masak | it'd take a whole lotta work. | 01:47 | |
but it's possible. | |||
Tene | rakudo: my $i = 1; my @a = 1,2,3,4,5; say @a[$i-1]; | 01:49 | |
p6eval | rakudo 7ef386: 1 | ||
Tene | "The fail function responds to the caller's use fata state." | 01:50 | |
This doesn't actually specify whether "use fatal" is inherited by called functions. | 01:51 | ||
sub foo { use fatal; bar() }; sub bar { baz() }; sub baz { fail() }; # does the fail() call throw the exception, or return an unthrown exception? | 01:52 | ||
I'd assume and hope the former. | |||
masak | then pretend that's the case until someone says it isn't. | 01:53 | |
Tene | okay, lemme start by adding a fake &fail that makes the sub return Mu | 02:01 | |
diakopter | rakudo: say 7; BEGIN { say 6; BEGIN { say 3 }; BEGIN { say 5; BEGIN { say 4 } } }; say 8 | 02:11 | |
p6eval | rakudo 7ef386: 345678 | ||
Tene | Bleh. i really need to clean up src/builtins/control.pir. We should be building the Perl6Exceptions on catch, not on throw. | ||
Wolfman2000 | diakopter: ...doesn't look like that went in order | ||
masak | Tene: what of the case where I want to throw an Exception object? | 02:12 | |
Tene | masak: that shouldn't be a special case. | 02:15 | |
02:15
ihrd left
|
|||
masak | maybe I misunderstood. is the Perl6Exception class a Parrot class? it probably is, now that I think about it. | 02:16 | |
Tene | masak: the issue is that next and die and friends are making a Perl6Exception class and stuffing it into the payload of the parrot exception... that doesn't scale, though, and leads to failures and weird behavior when you get exceptions from other operations. | 02:17 | |
for example, 1/0; will throw a parrot exception, but if you're expecting its payload to be a Perl6Exception object, you'll be disappointed. | |||
So in ng right now, we build a new Perl 6 Exception object whenever we catch a parrot exception. | |||
masak | ah, ok. | 02:18 | |
Tene | no more parrot types occasionally leaking through. | ||
next/last/redo/break/die aren't updated to the new world order, though. | |||
lemme see if this fail works... | |||
Wolfman2000 | Tene: I assume new world order is ng? | 02:22 | |
Tene | Wolfman2000: I was talking about the implementation of CATCH and friends in ng. | 02:23 | |
Wolfman2000 | Tene: oh | ||
dalek | kudo/ng: e71334b | tene++ | src/builtins/control.pir: Initial incomplete fake implementation of &fail |
||
Tene | moritz_: I pushed a version of &fail that makes the sub return Mu | ||
Wolfman2000 is not fully paying attention: transfering websites to a new server...that apparently wants to keep Apache 1.3 instead of go to Apache 2.0 | 02:24 | ||
*shrugs* the things one has to do to save money | |||
Tene | Ack, i did it wrong! | ||
That 'Mu' evaluates as true? | 02:25 | ||
Wolfman2000 | Can Mu ever be true? | 02:27 | |
rakudo: Mu.defined | |||
p6eval | rakudo 7ef386: ( no output ) | ||
Wolfman2000 | err | ||
rakudo: say Mu.defined | |||
p6eval | rakudo 7ef386: 0 | ||
masak | rakudo: say ?Mu | 02:28 | |
p6eval | rakudo 7ef386: 0 | 02:29 | |
Tene | rakudo: my $a = Mu.new(); say 'foo' if $a; | ||
p6eval | rakudo 7ef386: foo | ||
Tene | That's what I did. | ||
I returned a new Mu instead of Mu itself. | |||
dalek | kudo/ng: 77bb074 | tene++ | src/builtins/control.pir: &fail should definitely not be returning something that evaluates as true |
||
masak | Tene: it might be that 'if' still doesn't boolify. | ||
diakopter | whoa | ||
tweeted by someone with 1.3M followers: twitter.com/timoreilly/status/6418183386 | 02:30 | ||
Tene | masak: it works properly when I return the Mu protoobject instead, so I'll leave that for now, and come back to it later. | ||
masak | diakopter: whoa! | 02:31 | |
that's as good as slashdot. maybe better. | |||
Tene | nice | ||
masak | we're famous! | ||
diakopter | Retweeted by you and 3 others | ||
Tene | 4! | 02:32 | |
masak | 5! | ||
diakopter | perlchina.org/advent/2009/WebScraper.html | 02:34 | |
Tene | Wow, it's being retweeted at a factorial rate! | 02:35 | |
carlin | Does wordpress show the referrer, so we could compare traffic from slashdot vs traffic from twitter? | 02:37 | |
02:45
envi^home joined
|
|||
masak | carlin: perl6advent.wordpress.com/wp-admin/...page=stats | 02:45 | |
63 views from twitter, hundreds from slashdot so far. | 02:46 | ||
Tene | carlin: yes | 02:48 | |
71 from twitter now | |||
hundreds from /. so far today. 2.7k from /. yesterday | 02:49 | ||
well, from the /. main page, at least | |||
looks like >3.5k total from /. yesterday | |||
masak | just to be clear what has happened: we've launched a blog which has gone from 0 to 7000 views per day in one week. :) | ||
I think that's a metric showing that people care about Perl 6. | 02:50 | ||
carlin | masak: I can't access that | 02:51 | |
That people care but possibly didn't know where to look | |||
02:52
quantumEd left
|
|||
masak | carlin: ah, too bad. :/ | 02:52 | |
carlin: ah, you're not a blog author. I guess I just assumed you were. | 02:53 | ||
02:53
JimmyZ joined
|
|||
masak | Tene: yours is the first undecided blog post topic (on Saturday). do you have a guess what you'll write about? | 02:57 | |
02:59
drbean_ joined
|
|||
Tene | masak: no idea. | 03:00 | |
03:01
drbean left
|
|||
masak | Tene: perhaps you want my given/when topic? since it has exception, which you've been helping with. | 03:01 | |
Tene | Nah. Thanks, though. | 03:03 | |
I guess I could do exceptions. | |||
rakudo doesn't have NEXT blocks, though. | |||
03:03
astrojp_ left
|
|||
masak | nor next LABEL. | 03:04 | |
Tene | I guess I could talk about "use fatal" and &fail, if I get it working in ng. | ||
masak | hm. | 03:05 | |
Tene | I'd rather stick with what works in master, though. | ||
masak | all blog posts so far have been about things working in master. | ||
Tene | okay, so here's the plan... | 03:06 | |
masak | :) | 03:07 | |
Tene | I write about "use fatal" on saturday and then about macros on the next day, and then revoke my edit access on that blog, so I'm forced to implement them in ng before they're posted. | ||
what could possibly go wrong? | |||
masak | I see no flaws in that plan. | ||
Tene | Great. | ||
Okay, so where do I go in the wp admin to set my display name to "Carl Masak"? | 03:08 | ||
masak | Tene: maybe you could write about regexes? :) | ||
oh wait, that's PerlJam in a few days. | 03:09 | ||
PerlJam: regex AND grammar? are you quite sure? | |||
03:09
vamped joined
|
|||
Tene | I wonder if jnthn is covering roles in "Writing Perl 6 with class" | 03:10 | |
masak | PerlJam: S05 is the second hugest synopsis, after S02 which covers 'everything'. | ||
Tene: he has one about parametric roles too, so he might just mention roles in the first post. | |||
oh wait, S03 is larger than S05 as well. but still. | |||
rakudo: say 4 »+« 5 | 03:13 | ||
p6eval | rakudo 7ef386: 9 | ||
03:14
stuuf joined
|
|||
masak | stuuf: welcome :) | 03:14 | |
rakudo: say 4 »+« 5 # this works | |||
p6eval | rakudo 7ef386: 9 | ||
masak | stuuf is a guest from the #perl channel. | 03:15 | |
stuuf | eval: (0..10) »*» 2 | ||
err | |||
p6eval: say (0..10) »*» 2 | |||
Wolfman2000 | stuuf: you most likely want Rakudo | ||
rakudo: say (0..10) »*» 2 | 03:16 | ||
p6eval | rakudo 7ef386: Non-dwimmy hyperoperator cannot be used on arrays of different sizes or dimensions.in Main (file <unknown>, line <unknown>) | ||
arnsholt | rakudo: for 1,2,3,4,5 -> $i, $j { say "$i, $j" } | ||
p6eval | rakudo 7ef386: 1, 23, 4StopIterationin Main (file <unknown>, line <unknown>) | ||
stuuf | rakudo: say((0..10) »*» 2) | ||
p6eval | rakudo 7ef386: Non-dwimmy hyperoperator cannot be used on arrays of different sizes or dimensions.in Main (file <unknown>, line <unknown>) | ||
masak | rakudo: say (0..10) >>*>> 2 | ||
p6eval | rakudo 7ef386: 02468101214161820 | ||
stuuf | rakudo: say((0..10) >>*>> 2) | ||
p6eval | rakudo 7ef386: 02468101214161820 | 03:17 | |
masak | stuuf: there's a unicode bug affecting some of the >> operators. | ||
stuuf | ah | ||
stupid ascii | |||
masak | I bet it works in ng. | ||
rakudo: class A {}; class B {}; my @c = (A, B, A, B, A, A); for @c -> A $a, B $b? { say $a } | |||
p6eval | rakudo 7ef386: ( no output ) | 03:18 | |
masak | locally, that gives "Nominal type check failed for parameter '$b'" | ||
it's a known bug. | |||
ng: class A {}; class B {}; my @c = (A, B, A, B, A, A); for @c -> A $a, B $b? { say $a } | |||
p6eval | ng 7fc485: sh: ./perl6: No such file or directory | ||
masak | :( | ||
stuuf | rakudo: say [+] (1..5) »*« (6..10) | ||
p6eval | rakudo 7ef386: 130 | ||
stuuf | i'm sure someone will discover some *useful* applications for these operators eventually :P | 03:19 | |
vamped | masak: does that bug just affect «», or also some of << >> ? | ||
masak | stuuf: I'm not sure if you're kidding or not. there are already loads of useful applications. | ||
stuuf | i know | ||
masak | vamped: I don't remember exactly. but it seems << >> works more often. | 03:20 | |
03:20
mrsaturns joined
|
|||
masak | vamped: ask colomon, he's the expert. :) | 03:20 | |
stuuf | i was just reading the advent calendar | ||
and i've definitely been in situations where i needed to do something like »+» and thought map {} was too verbose | 03:21 | ||
masak | [+] and [\+] are very useful, too. | ||
stuuf | what does \+ do? | 03:22 | |
masak | [\+] gives a list of incremental sums. | ||
[\+] (1,2,3,4) == (1,3,6,10) | |||
stuuf | ah | ||
arnsholt | masak: At this point, my Lisp hacker friend would probably say something like "Oh, it's mapcan()!" ^^ | 03:23 | |
masak | Lisp hacker friends are welcome, too. | ||
arnsholt | (Except it's not mapcan(), it's something else) | ||
masak | we'll even have hygienic macros eventually. :) | 03:24 | |
arnsholt | Really? That'll be awesome | ||
But I should've been in bed several hours ago | |||
G'nite | |||
masak | o/ | ||
jonathanturner | masak: do you know where all these operators are defined? Like, are they in a standard library or something? | 03:25 | |
Tene | s/eventually/maybe sooner than you think/ | 03:26 | |
masak | jonathanturner: if I knew why you're asking that question, I might help answer it better. | ||
jonathanturner | masak: just thinking about it from an engineering point of view. maintaining a lot of opcodes sounds like a lot of work if they don't build on each other | ||
masak: so I was wondering if they did, and if they did if they were stored in a "prelude" or something like that | 03:27 | ||
masak | jonathanturner: as for [+] and >>+<< and the like, they're not explicitly defined, but the metaoperators [] and >><< are. | ||
Tene | jonathanturner: the metaoperators are defined separate from the operators | ||
jonathanturner | masak: the metaoperators take an operator as an argument? | 03:28 | |
03:28
zmjb1 joined
|
|||
masak | jonathanturner: yes. | 03:28 | |
jonathanturner | masak: I was also thinking of [\ +] | ||
masak | jonathanturner: if you 'close on' all the operators that the metaoperators define, you end up with a set of infinite cardinality. | ||
stuuf | how long until they add metametaoperators? | 03:29 | |
masak | jonathanturner: [\ ] is another metaoperator. | ||
Tene | metaoperators can apply to operators | ||
erm | |||
to metaoperators | |||
masak | stuuf: well, since metaoperators generate operators, there's not much need. | ||
jonathanturner | that's a strange one | ||
Tene | @a >>*=<< @b; # I think is an example in the synopses. | 03:30 | |
lambdabot | Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v | ||
jonathanturner | if you had a list of lists, could you do <<<<+>>>> | ||
masak | jonathanturner: yes. | ||
Tene | jonathanturner: github.com/rakudo/rakudo/blob/ng/sr...Grammar.pm | ||
search for infix: | |||
that'll get you the operator definitions. | |||
masak | but that's only the syntax half. | 03:31 | |
jonathanturner | Tene: I take it the <O('%multiplicative')> part is denoting something for a precedence parser? | 03:32 | |
Tene | Yes. | ||
masak | ooh, a parsertongue! | 03:33 | |
jonathanturner: do you have a CS background? | 03:34 | ||
03:34
mrsaturns left
|
|||
jonathanturner | masak: yes, and I'm a pl geek | 03:34 | |
Tene | okay, I really really need to put down rakudo and set up for class tomorrow. | 03:35 | |
Tene AFK for a bit. | |||
jonathanturner | masak: is that bad? | ||
masak | jonathanturner: I'm about to start writing a 7-post blog series about the Parrot Grammar Engine. | ||
jonathanturner: I've been learning about things like operator precedence parsers in the past few months. | |||
jonathanturner: no, not bad. it's unusual. | 03:36 | ||
jonathanturner++ | |||
jonathanturner | masak: it's a cool trick, though I've never seen anything like the scale of the perl6 effort | ||
Tene | masak: have you read nqp-rx's grammar engine? | ||
masak | Tene: not nearly enough. | ||
Tene | ack. /me hides IRC. | 03:37 | |
stuuf | rakudo: $i=1; @a = qw/llama llama duck/; say join(', ', $i++ <<.<< @a); | ||
p6eval | rakudo 7ef386: Confused at line 2, near "(', ', $i+"in Main (file <unknown>, line <unknown>) | ||
stuuf | yeah that made no sense | ||
masak | jonathanturner: I like how the Perl 6 grammar engines use both recursive descent and operator precedence. | ||
stuuf: qw// is <> nowadays. | |||
stuuf | rakudo: $i=1; @a = <llama llama duck>; say join(', ', $i++ <<.<< @a); | ||
p6eval | rakudo 7ef386: Confused at line 2, near "(', ', $i+"in Main (file <unknown>, line <unknown>) | ||
masak | stuuf: and . is ~ nowadays. | 03:38 | |
stuuf | still confused | ||
oh right i knew that | |||
rakudo: $i=1; @a = <llama llama duck>; say join(', ', $i++ <<~<< @a); | |||
p6eval | rakudo 7ef386: Symbol '$i' not predeclared in <anonymous> (/tmp/fQqeuNNmsb:2)in Main (file <unknown>, line <unknown>) | ||
jonathanturner | masak: it's a good compromise for speed reasons. You can do operator prec. in recursive descent, but it's very verbose | ||
carlin | and strict is the default nowadays | ||
stuuf | rakudo: my $i=1; my @a = <llama llama duck>; say join(', ', $i++ <<~<< @a); | ||
masak | stuuf: and strict is on by default. | ||
p6eval | rakudo 7ef386: 1llama, 1llama, 1duck | ||
jonathanturner | masak: and would almost be impossibly ugly with the number of operators p6 wants to support | ||
masak | jonathanturner: yes. it's a by-need solution. | ||
jonathanturner: am I right in assuming that OPP is faster for parsing expressions than RD? | 03:39 | ||
stuuf | i wonder if you can make it reevaluate the scalar expression each time | ||
masak | stuuf: that sounds more like a &map to me. | 03:40 | |
jonathanturner | masak: to my understanding yes, since you handle a bit of explicit state instead of hiding it in the depths of your function calls | ||
stuuf | yeah | ||
masak | jonathanturner: exactly. | ||
jonathanturner | masak: but I haven't done any speed comparisons between the two methods | ||
masak | me neither. | ||
but it feels like OPP is tweaked towards hadnling expressions really well. | 03:41 | ||
potentially, a lot of backtracking is eliminated. | |||
diakopter | yes | ||
jonathanturner | actually I was just going to ask about that | ||
03:41
diakopter sets mode: +v p6eval
|
|||
jonathanturner | token infix:sym<-> { <sym> <![>]> <O('%additive')> } <-- that looks backtracky | 03:42 | |
masak | I saw that one as well. | ||
I'm surprised that that's needed. | |||
jonathanturner | is that just giving hints for the grammar compiler or is it really backtracking over minus? | ||
masak | wonder if STD.pm does the same? | ||
diakopter | no | ||
masak | oh, good. | ||
diakopter | no | ||
masak | that means it's a temporary fix in Rakudo. | ||
diakopter | it's saying a '>' can't follow the - for this token to succeed | ||
no backtracking | 03:43 | ||
masak confirms: STD.pm doesn't do that | |||
diakopter | maybe you meant lookbehind? | ||
03:44
envi^office joined
|
|||
jonathanturner | diakopter: well, that's lookahead | 03:44 | |
diakopter | jonathanturner: what do you mean 'backtracking over minus'? | ||
jonathanturner | diakopter: not exactly backtracking, but could be backtracking if naive | ||
diakopter: you find "-" but then need to look ahead to make sure it's not >, it's not really backtracking | |||
the problem would come up if you had multiple operators that start with '-' but had different operators | 03:45 | ||
diakopter | yes | ||
jonathanturner | err precedence | ||
colomon | jonathanturner: <<+>> already should work for lists of lists, no need for <<<<+>>>> | ||
(but I don't know if that's implemented in rakudo yet) | |||
diakopter | jonathanturner: yes, that is the case | ||
so yes, it's there to 'backtrack over minus' | 03:46 | ||
jonathanturner | diakopter: it doesn't have to be backtracking unless that's how your parser has to "fix" that it picked the wrong operator | ||
say you go a few characters and realize "whoops" that's not the right operator | |||
that's when you "backtrack" to where you started and try again | 03:47 | ||
colomon | vamped: the rakudo bugs that affect << and >> are kind of random, as I recall -- one combination that only works for the ascii version, one combination that only works for the unicode version. | 03:48 | |
jonathanturner | not sure if that makes sense, I'm not really good at explaining over chat :p | ||
colomon | vamped: I don't remember the details at the moment, but you can probably check S06-operator-overloading/workout.t for more details (look for #?rakudo flags to find cases that don't work currently). | 03:49 | |
diakopter | I'm sorry; I shouldn't have asked for an explanation of what backtracking is. | ||
I didn't intend to | |||
masak | hm, the C<Each> role is mentioned twice in S03, and then nowhere else. | ||
colomon | masak: I don't know that any of the meta operators are implemented in ng yet. :) | 03:50 | |
masak | ah. | 03:52 | |
jonathanturner | masak: since you're working on these blog posts, mind a newbie question? I'm looking at STD.pm, but how does this get translated to the parser? | 03:55 | |
spinclad | jonathanturner: once rakudo-ng has longest token matching, it should find '->' mentioned in the fixed head of a rule and never try infix:sym<->, so no backtracking. it needs to catch up with STD here. | ||
jonathanturner | masak: I mean, this is the grammar, but how does it get converted at compile time/runtime for actual parsing? | 03:56 | |
masak | jonathanturner: there's a tool for rendering it as Perl 5 code. | 03:57 | |
jonathanturner | spinclad: thanks, I was wondering that reading through STD.pm. lots of stuff seem to rely in longest match | ||
spinclad | jonathanturner: the STD.p5 parser, or rakudo-ng's? STD: with gimme5; rakudo-ng: it's getting hand ported. | ||
masak | jonathanturner: STD.pm is beautiful, but the output from that tool is anything but. it runs, though. :) | ||
jonathanturner | spinclad: by hand ported do you mean that someone is writing the parser to match the spec in C? | 03:59 | |
spinclad | jonathanturner: no, look at rakudo/.../Grammar.pm: it's a not-quite-perl6 grammar. | 04:00 | |
pmichaud | actually, src/Perl6/Grammar.pm is a Perl 6 grammar :) | 04:01 | |
04:01
meppel joined
|
|||
masak | jonathanturner: but I'll not be writing about STD.pm, I'll be writing about PGE, the grammar engine that drives Parrot languages. | 04:01 | |
pmichaud | (that used to drive... :-) | ||
jonathanturner | masak: does nqp run on pge? | ||
pmichaud | nqp has its own regex engine. | 04:02 | |
(the new version fo nqp does, that is) | |||
*of | |||
masak | jonathanturner: what pmichaud said. the old nqp ran on PGE. new one doesn't. | ||
pmichaud | jonathanturner: since the grammar is Perl 6 code, we plan to compile it to executable directly | 04:04 | |
(where "executable" depends on whatever VM happens to be underlying the runtime) | |||
jonathanturner | pmichaud: does the grammar go through any optimizations? we talked about backtracking briefly earlier in chat, I was wondering if compiling the grammar tries to find ways to avoid it | 04:05 | |
pmichaud | sure, the grammar can be optimized, same as any regex | 04:08 | |
but in general there's not any backtracking in the grammar anyway | 04:09 | ||
it's extremely predictive | |||
jonathanturner | pmichaud: I figured not. if any community would have parsers down to a science, it'd be perl | ||
pmichaud | (there is some backtracking, yes, but very little. the structures themselves tend to avoid backtracking) | 04:10 | |
jonathanturner | pmichaud: someone told me I should ask you about the zip operator | ||
spinclad | ( jonathanturner: i answered the wrong question about converting grammars; rakudo-ng's grammar is a hand-port of STD, but compiled by nqp to parrot code, currently) | ||
jonathanturner | not to change topics | ||
pmichaud | ask away! :) | ||
( spinclad is correct ) | 04:11 | ||
jonathanturner | pmichaud: ([1, 2, 3] Z [4, 5, 6]).perl.say yields [1, 4, 2, 5, 3, 6] | ||
pmichaud | jonathanturner: in rakudo? this is a known bug | 04:12 | |
it will likely end up being ((1,4), (2,5), (3,6)) | |||
jonathanturner | pmichaud: would it be something a coder new to perl could fix? or is it too deep in the stack? | ||
pmichaud | in rakudo's master branch it's a problem that we don't handle Parcels properly (because they weren't really defined well until very recently) | 04:13 | |
I don't know if zip is implemented in the ng branch yet | |||
ng: ((1,2,3) Z (4,5,6)).perl.say | 04:14 | ||
p6eval | ng 7fc485: sh: ./perl6: No such file or directory | ||
spinclad | (rebuilding ng) | 04:15 | |
colomon | No Z on my local up-to-date ng. | 04:16 | |
04:16
meppl left
|
|||
colomon | also .perl on lists goes into an infinite loop. | 04:17 | |
or something. | |||
'(' ~ self.map({ $_.perl }).join(', ') ~ ')'; is the code in question. | |||
pmichaud | yeah, I haven't figured out why .perl infinite loops on lists. But I think that's my responsibility to fix :-( | 04:19 | |
(since I still have to do a significant list refactor, but keep getting called away to other stuff) | |||
colomon | I'm trying an alternate implementation at the moment. :) | ||
still happy to help brainstorm the lazy iterator refactor, btw. as I said before, I don't know that I can help, but I can at least be a sounding board. | 04:20 | ||
04:20
tann left,
tann1 joined
|
|||
pmichaud | at this point it's mostly me needing to find a couple of quiet hours to either write up the spec or write the implementation | 04:21 | |
jonathanturner | pmichaud: have you played much with clojure's lazy seqs? | 04:22 | |
pmichaud | nope | ||
jonathanturner | just made me think of it | ||
colomon | pmichaud: I have a workaround for List.perl, not elegant but functional. Is it worth checking in? | 04:23 | |
jonathanturner | iterators over any kind of container that can appears as a sequence, not just lists | ||
pmichaud | colomon: yes, thanks | 04:27 | |
carlin | masak: do you have any blog posts about Emmentaler? | 04:28 | |
masak | carlin: yes, one. | ||
masak gets the URL | |||
use.perl.org/~masak/journal/39583 | 04:29 | ||
actually, use.perl.org/~masak/journal/39933 as well. | |||
04:34
justatheory left
|
|||
carlin | masak: thanks | 04:34 | |
masak: is the idea that it's a distributed effort where multiple people can run an 'emmentaler' program to run the tests and submit the results (like make spectest_smolder)? | 04:35 | ||
04:35
yahooooo left
|
|||
dalek | kudo/ng: 698534c | (Solomon Foster)++ | src/core/List.pm: Replace the elegant List.perl implementation that trips up ng somehow with an ugly one that works. |
04:35 | |
masak | carlin: no, it'll be a nightly download/build/install/test on all the known projects, with static HTML being generated showing the results. | 04:36 | |
carlin | masak: oh, not what I was thinking then | 04:39 | |
masak: definitely a worthy project nonetheless | 04:40 | ||
I may have a poke around at proto's installed-modules branch to help out... | |||
masak | yes, please :) | 04:41 | |
04:43
gfx joined
|
|||
spinclad | seems to me it (emmentaler) could with a little wrapping be used for smolder-submissions, for all the odd test boxes people might have lying around (just a thought for the future for now) | 04:43 | |
masak | spinclad: yes, good idea. emmentaler won't scale well. | 04:44 | |
carlin | Method 'protected-files' not found | 04:50 | |
ah, easy fix | |||
04:52
zmjb1 left
|
|||
carlin | (Error Driven Development)++ | 04:56 | |
04:56
araujo joined
04:58
yahooooo joined
05:00
mepplock joined
05:06
jaldhar left
05:09
jaldhar joined
|
|||
masak | this is cool: kirindave.tumblr.com/post/272596413...t-server-1 | 05:09 | |
can someone do a chat server in 75 lines of Perl 6 code? | |||
carlin | masak: Possibly. I'll give it a shot later on :-) | 05:11 | |
masak | \o/ | ||
05:12
broquaint left
|
|||
masak | Clojure seems pretty nice from a concurrency perspective. | 05:15 | |
I think Perl 6 might take some inspiration from that. | |||
05:16
meppel left,
Baggio_ joined
05:18
tann2 joined,
tann1 left
05:21
nbrown_ left,
nbrown_ joined
05:22
IllvilJa left,
hcchien left,
mepplock left,
hcchien joined,
IllvilJa joined
|
|||
carlin | masak: I now have proto able to successfully install modules in .perl6/lib | 05:23 | |
masak | carlin: that's excellent news. carlin++ | ||
we still need to do extensive testing with all the projects before we merge. | 05:24 | ||
05:24
jonathanturner left
|
|||
carlin | masak: I'll push what I've got so far, if you wouldn't mind checking I haven't done anything completely wrong | 05:25 | |
masak | I'll be glad to review it. | ||
but I must admit that my understanding of the installed-modules branch is still spotty. | |||
05:26
Baggio_ left,
payload left
|
|||
masak | mberends is the chief architect of that one. | 05:26 | |
05:26
arthur-- left
|
|||
masak | afk & | 05:26 | |
carlin | pushed | ||
05:27
arthur-- joined
05:28
payload joined
|
|||
carlin | ./proto test json \ Project 'json' is not downloaded. But it is, and projects.state says it is. I'll have to look at that after dinner. | 05:30 | |
masak looks at the changes | 05:32 | ||
05:33
nihiliad left
|
|||
masak | carlin: in the message to your commit ff78c0, are you describing a problem that you just fixed, or one that still remains in Installer.pm? | 05:40 | |
hm, ng doesn't have for loops. I guess they're blocking on lazy lists. | 05:43 | ||
masak casts a tuit spell for pmichaud++ | 05:44 | ||
carlin | masak: problem that is (hopefully) fixed. | 05:48 | |
masak | ok, good. | 05:49 | |
in that case, all the changes look fine to me. carlin++ | |||
carlin | The problem being that you can't, for example, cp Grammar.pm to lib/JSON/Tiny if Tiny doesn't exist. With that now returning directories and files the mkdir in Installer.pm can run. | ||
masak | nod. | 05:51 | |
carlin | I think that's how it was supposed to work anyway | ||
masak | it does make sense. | ||
Tene | argh... I'm already up an hour past when I should be sleeping... got to wake up WAY too early all this week. | ||
masak | does `find` guarantee preorder traversal? | ||
carlin | I'll walk the dog and then look at test. | ||
masak | carlin: I'm very grateful you're looking at installed-modules. it's important work, but for some reason when I look at it, my brain turns to mush. | 05:52 | |
Tene | what kind of person runs a class in eastern time? | 05:53 | |
masak | carlin: if installed-modules lands before ng, I'll be very motivated to put in quite some effort on getting Emmentaler up before the ng merge. | ||
with Emmentaler up before the ng merge, the Perl 6 applications cheese will have an extra safety net besides the spectests. | 05:54 | ||
Tene | finally done setting up, though... so do I go to sleep now, or work on rakudo? | 05:57 | |
masak | sleep is for old people :) | 06:00 | |
06:01
gfx left
|
|||
Wolfman2000 | masak: consider me old then | 06:01 | |
masak | actually, now that I think about it, it's the other way around. sleep is for babies. | ||
wayland76 | Tene: the kind of person who teaches Indian music? :) | 06:02 | |
Wolfman2000 | ...your sarcasm isn't really helping masak | ||
wayland76 | I don't think it was sarcasm, just that he got carried away by an idea | ||
masak | Wolfman2000: I didn't mean to be insulting. I apologise if you read it that way, it wasn't my intent. | 06:03 | |
06:03
nbrown_ left,
nbrown_ joined
|
|||
Wolfman2000 | masak: blame my tiredness. I don't get jokes easily late at night | 06:03 | |
masak | it wasn't a joke. :) | ||
babies sleep a lot. | |||
Wolfman2000 | Plus, I'm now frustrated with my new host already...doesn't help that I already invested in some money in it. | ||
diakopter | :/ | ||
Wolfman2000 | At this point, I'm thankful that my finals are basically done. | 06:04 | |
now, *BED* | |||
06:04
ChanServ sets mode: +o Tene
|
|||
masak wonders if parasites get frustrated with their hosts sometimes | 06:05 | ||
06:05
hcchien left
|
|||
Tene | why did chanserv op me, I wonder... | 06:07 | |
06:08
yahooooo left
|
|||
masak | 'cus he's such a nice bot. | 06:08 | |
spinclad | it was a vote to stay up? | ||
masak | stay op! | ||
Tene | >< | 06:09 | |
spinclad | exactly! | ||
masak | Tene: did I do it again? sorry. :P | ||
masak whispers 'Schindler's Lift' | |||
06:09
ChanServ sets mode: +o masak
|
|||
Tene | masak: I'm really glad to have you around. You're a lot of fun to have in this channel. | 06:10 | |
masak | apparently, puns make you op. | ||
06:10
ChanServ sets mode: -o masak,
hcchien joined
|
|||
masak | or not. :) | 06:10 | |
06:10
ChanServ sets mode: +o masak
|
|||
masak | in Soviet Russia, YOU make op puns! | 06:10 | |
Tene | ah, looks like I got a NOTICE telling me who did it. | 06:12 | |
masak | looks like someone known as diakopter geve me my op bit, revoked it, and gave it back. | 06:13 | |
06:13
ChanServ sets mode: -o diakopter
06:14
hcchien left
|
|||
diakopter | hm | 06:14 | |
06:15
hcchien joined
|
|||
wayland76 | No, I don't think puns get you op. Unless I'm being PUNished in someway for the terrible quality of mine. | 06:18 | |
Or maybe they don't have enough PUNch :). | |||
masak | :P | ||
06:18
ChanServ sets mode: +o wayland76
|
|||
masak | -Opun | 06:18 | |
wayland76 | Ooh! Op from diakopter++ , *and* a pun from masak++ at the same time! I think I'm having a good day :) | 06:19 | |
06:20
justatheory joined
06:21
yahooooo joined
|
|||
masak | rakudo: for <a b c>.kv { .say } | 06:22 | |
p6eval | rakudo 7ef386: 0a1b2c | ||
masak | rakudo: class List is also { method d { for self.kv { .say } } }; <a b c>.d | 06:23 | |
p6eval | rakudo 7ef386: 0a1b2c | ||
masak submits rakudobug | |||
Tene | pmichaud: around? | 06:27 | |
crap... it's probably going to be me that has to implement the scope exit handler functionality in Parrot... >< | 06:28 | ||
well, we'll see how far I can get without it. | |||
06:29
justatheory left
|
|||
diakopter sleeplock | 06:44 | ||
Tene | pmichaud,jnthn: Rakudo's :get_bool is calling a ".true" method instead of ".Bool". The former isn't mentioned in S02, but the latter is defined as what's used for truthiness... | 06:45 | |
diakopter | Tene: that's the pirop for truthiness... | 06:46 | |
I think | |||
diakopter sleeplock | |||
masak | Tene: I brought this up the other day. and I do think .true is mentioned here and there, should be in S04 too in conjunction with given/when. | 06:47 | |
masak checks | |||
Tene | masak: yes, .true is mentioned a couple of times, but .Bool is mentioned many more, and in more-authoritative places. | 06:48 | |
masak | by the way, when grammar-mod modules land, I'm going to make myself a keyword 'considering' :) | ||
Tene | lemme see what breaks if I change it. | ||
masak: did I show you that I got some basic proof-of-concept macros working in my scheme? | |||
masak | Tene: I'm sorta hoping .true will go away, and we'll only have .Bool. I think .true has a kernel of irreducible confusion in it. | ||
Tene: no. | |||
or maybe yes. | 06:49 | ||
either way, groovy! | |||
06:52
kaare joined,
xinming left,
kaare is now known as Guest75461
06:55
Guest75461 left
|
|||
carlin | time to look at proto test | 06:55 | |
06:57
kaare joined,
kaare is now known as Guest64524
|
|||
masak | Tene: see r29205 for the current state of .true and .Bool | 06:57 | |
06:58
meteorjay joined
|
|||
masak | personally, I think the line saying .Bool.Int.true is the stronges indication so far that the spec isn't... ideal in this spot yet. | 06:59 | |
Tene | if I move ng to check .Bool instead of .true, it goes into infinite loops. | ||
masak | then don't do it. :) | ||
07:01
vamped left
07:10
xinming joined
07:16
ihrd1 joined
|
|||
Tene | jnthn: Mu.pir sets a bunch of vtable overrides that don't actually seem to apply to user-defined classes. Any idea why? | 07:16 | |
dalek | kudo/ng: 417a990 | tene++ | src/ (4 files): Call .Bool instead of .true for truthiness. Doesn't actually call .Bool for user-defined classes, though? |
||
mathw | Hurrah | ||
my advent calendar post appeared as scheduled | 07:17 | ||
Something actually worked yay | |||
and speaking of the dreaded four-letter word | |||
mathw -> the office | |||
masak | mathw++ # great post | ||
mathw | Maybe on the way I can get a good subject for my second one... | 07:18 | |
07:18
hcchien left
|
|||
Tene | okay, RLY need sleep now, goodnight all. | 07:20 | |
moritz_ | good night | 07:21 | |
07:22
xomas_ left
07:24
hcchien joined
07:28
hcchien left
07:34
hcchien joined
|
|||
masak | moritz_: good morning. | 07:36 | |
07:37
ihrd1 left
|
|||
carlin | masak: testing works. pushed. | 07:38 | |
masak | carlin: cool! kudos. | 07:39 | |
the change looks good. | 07:40 | ||
carlin | Now I need to wrestle with the various states commands can put things in and make install all/test all work | ||
masak | but, hm, this $can-continue business looks suspicious. | ||
it looks like a fossil. checking. | |||
07:40
JimmyZ left
|
|||
masak | ah, it's a way to funnel the flow of control into an 'Aborting...' message and an exit(1). fair enough. | 07:42 | |
maybe we should factor that out into a method instead, though. | |||
but we have to keep the $can-continue flag anyway, if we want errors for all the projects. | 07:43 | ||
heh, now Scoble re-tweeted timoreilly. :) Robert Scoble only has 100k followers to timoreilly's 1.3M, but still. | 07:49 | ||
the stats say 4.6k hits so far today; I think we'll get more than tomorrows 7k by day's end. | 07:54 | ||
another good piece of statistics: yesterday, 70 people clicked the 'rakudo.org' link on the blog. | 07:56 | ||
08:00
JimmyZ joined
08:03
iblechbot joined
|
|||
mathw is back | 08:04 | ||
tann2 | ong ba gia sao? | 08:06 | |
masak | tann2: exc us e me? | 08:07 | |
08:07
tann2 left
08:08
Baggio_ joined
|
|||
masak | rakudo: "".subst(/x/, "").trans() | 08:31 | |
p6eval | rakudo 7ef386: too few positional arguments: 1 passed, 2 (or more) expectedin Main (file <unknown>, line <unknown>) | ||
masak | is this one known? | ||
it looks familiar. | |||
mathw | Hmm | 08:32 | |
It does | |||
But that might be because we've had similar bugs in the past | |||
masak | it's the getting-Parrot-strings bug, I know. | ||
but is this particular instance reported? | |||
mathw | I don't know | 08:33 | |
masak submits rakudobug just to be safe | |||
mathw | :) | ||
masak is on form today I see | |||
JimmyZ here | |||
masak | today I'm actually doing some coding. it feels good. :) | ||
JimmyZ: \o | |||
JimmyZ | ng is slowly grown now | 08:34 | |
masak | yes, but still some ways to go. | ||
JimmyZ | growing | 08:35 | |
masak | phenny: tell jnthn twitter.com/luqui/status/6425615591 :) | 08:36 | |
phenny | masak: I'll pass that on when jnthn is around. | ||
moritz_ | those quotes are really fun :-) | 08:39 | |
masak | yes; we should have something like that. | 08:40 | |
we're having fun, too. but no-one is taking notes. | |||
what about a quotebot? | |||
carlin | masak: install all and test all now work. pushed. | 08:44 | |
masak looks | |||
if @projects.grep('all') { # nice! | 08:45 | ||
carlin++ | |||
moritz_ | are you hacking on proto? | 08:46 | |
carlin | moritz_: yes | ||
08:47
rfordinal joined
|
|||
moritz_ | carli++ | 08:47 | |
carlin++ | |||
carli-- # just a typo :-) | |||
08:47
rfordinal left
|
|||
masak | moritz_: have you gone off the Tab key altogether? :) | 08:48 | |
.oO( going 'cold tabkey'... ) |
08:49 | ||
moritz_ | masak: no, but my tab key added a colon, which I deleted, and hit the backspace key once too often | ||
masak | oh, excessive use of another key... :) | ||
carlin | once my 'install all' finishes I'll see if I can get 'test all' to do what I want, at the moment if a test has a fatal errors are testing stops, obviously we don't want that | 08:52 | |
*has a fatal error all testing stops | 08:53 | ||
carlin can't type | |||
moritz_ can't hype | 08:54 | ||
masak can't grammar | 08:55 | ||
JimmyZ can't understand | 08:56 | ||
08:56
hcchien left,
hcchien joined
|
|||
masak | :D | 08:56 | |
hm, there's no way to express 'no parameters' inside the second or third argument of a trinary operator, right? | 08:57 | ||
sorry, 'no arguments', of course. | |||
moritz_ doesn't understand the question | |||
rakudo: say(True ?? () !! 3 ) | |||
p6eval | rakudo 7ef386:  | ||
masak | moritz_: right, but you just sent one parameter to &say. | 08:58 | |
er, argument. | |||
how do I do the same, but no arguments? | |||
can I do |() ? | |||
moritz_ | rakudo: say(|(True ?? () !! 3) ) | ||
p6eval | rakudo 7ef386: flattened parameters must be a hash or arrayin Main (file <unknown>, line <unknown>) | ||
mathw | Oooh | ||
moritz_ | rakudo: say(|(True ?? [] !! 3) ) | 08:59 | |
mathw | My advent calendar entry has been liked in Google Reader :D | ||
p6eval | rakudo 7ef386:  | ||
moritz_ | mathw: which means that somebody subscribed to the RSS feed :-) | ||
08:59
krunen left,
mdxi_ joined
09:00
krunen joined
|
|||
mathw | moritz_: Somebody who isn't me! | 09:01 | |
Google Reader lists 104 subscribers to the feed | |||
So that's a lower bound, as there will be others using non-Google readers | |||
masak | pmichaud++'s post is the hands-down favourite. it got as many views yesterday as all the rest combined. | 09:02 | |
moritz_ | it's got a direct link from the /. front page :-) | ||
mathw | Yeah | 09:03 | |
So it's got an unfair advantage :P | |||
masak | ah. yes, that has to be taken into account, of course. | ||
of all the topics to show to slashdot, though... :) | |||
I think that was a pretty sexy one. | |||
mathw | "I will be learning Perl 6, not because I will use it much, but because I will discover new ways to think about problems. Oh, and it'll be fun." <- slashdot commenter | 09:05 | |
fun++ | |||
There's a lot of PHP-hating in the comments | 09:06 | ||
09:06
hcchien left
|
|||
mathw | And a surprising amount of support for Perl 6 | 09:06 | |
masak | and a fair amount of Perl 5 people, struggling with people's misconceptions. | 09:07 | |
mathw | But I think the message is, gradually, starting to get out there | 09:08 | |
masak | oh yes. | ||
mathw | I had a rough moment in an interview on Thursday though, when I got halfway through a task to write something in Perl 5, and couldn't remember how - my brain was just giving me Perl 6isms | ||
masak | 哈哈 | 09:09 | |
mathw | Although I did figure it out eventually | ||
But then there was all the awkwardness of nested data structure | 09:10 | ||
At least I didn't have to write any classes | |||
09:11
hcchien joined
|
|||
masak | general question: if I want a module that causes its includee to run code at END {} time, what do I write in the module? | 09:11 | |
s/includee/including script/ | 09:12 | ||
moritz_ | END { $_.() for @callbacks } | ||
or maybe END { @callbacks>>.() } if that works :-) | |||
std: END { @callbacks>>.() } | |||
p6eval | std 29276: Potential difficulties: Variable @callbacks is not predeclared at /tmp/WyQjenMfpk line 1:------> END { @callbacks⏏>>.() }ok 00:01 107m | 09:13 | |
masak | moritz_: yes, but... I want to run it from the perspective of the code that did 'use' on the module. | ||
moritz_ | masak: that's what closures are for | ||
masak: my $x; run_at_end { say $x*$x }; | 09:14 | ||
where run_at_end is the function that your module exported | |||
masak | hm. I don't think I'm able to explain my use case well enough yet. | ||
what I want is to have to declare nothing in the script itself, but the 'use' causes something to be run at the end. | |||
rakudo: END { say "HAI" }; say "OH" | 09:15 | ||
mathw | masak, do you have to ask hard questions all the time? | ||
p6eval | rakudo 7ef386: OHHAI | ||
masak | mathw: I'll take that as a compliment. | ||
mathw | I do admire the twistiness of your mind | ||
And someone else was bound to think of it, there are a few Perl 5 modules I've encountered which do things like that | 09:16 | ||
masak | I'd like it for Astaire. | ||
Sinatra does something like that. | |||
I'll go with END {} and see how far it gets me. | |||
mathw | END will still run in context of the module | 09:17 | |
JimmyZ | rakudo: END { say "HAI" }; say "OH"; throw; | ||
p6eval | rakudo 7ef386: OHCould not find non-existent sub throwin Main (file src/gen_setting.pm, line 324) | ||
mathw | But maybe it'll be enough... | ||
masak | yes, I'm starting to think it might. | ||
mathw | Some part of me would perhaps prefer if people didn't do twisty things very often | ||
09:17
IllvilJa left
|
|||
mathw | But obviously things like injecting into your includer's symbol table are going to be common | 09:18 | |
And there will be times when 'is export' doesn't do the right thing | |||
09:18
xomas_ joined
|
|||
masak | yeah. | 09:18 | |
rakudo: my $a; BEGIN { $a = 42 }; END { say $a } | |||
p6eval | rakudo 7ef386: Symbol '$a' not predeclared in <anonymous> (/tmp/J7OYG2vJ6e:2)in Main (file <unknown>, line <unknown>) | ||
masak | should that work? | 09:19 | |
mathw | I don't think so | ||
moritz_ | std: my $a; BEGIN { $a = 42 }; END { say $a } | ||
p6eval | std 29276: ok 00:01 106m | ||
masak | rakudo: my $a; BEGIN { $a = 42 } | ||
p6eval | rakudo 7ef386: Symbol '$a' not predeclared in <anonymous> (/tmp/4QIChPCrJ6:2)in Main (file <unknown>, line <unknown>) | ||
moritz_ | ng: my $a; BEGIN { $a = 42 } | ||
p6eval | ng 7fc485: sh: ./perl6: No such file or directory | ||
masak | moritz_: oh yeah, ng doesn't work. | 09:20 | |
in p6eval, that is. | |||
it works fine locally. :) | |||
and it accepts that oneliner. | |||
masak submits rakudobug | |||
mathw | I suppose my declares the symbol before the BEGIN phase | 09:21 | |
so it should work really | |||
masak | yes. the declaration is a static thing. | ||
mathw wonders how many tickets will go away when ng becomes master | |||
masak | mathw: many. | ||
it'll be a ticket fest. | |||
mathw | :) | ||
good | |||
mathw adds more stuff to his Amazon Wishlist | 09:22 | ||
One of the madder early music ensembles recorded a version of The Four Seasons on recorders, violin, harpsichord, organ, musette and hurdy-gurdy. How can I not own that? | 09:23 | ||
moritz_ | ng on p6eval hit the same problems that prevented me from building it after the cs_csr branch merge | 09:27 | |
some .pbc files from nqp-rx where not cleaned, and not rebuilt | 09:28 | ||
and since the bytecode compatibilty version was bumped it all went to hell | |||
masak | mathw: found it. :) www.youtube.com/watch?v=C0giQC7fMrk | 09:29 | |
mathw | yes, that's it | 09:36 | |
masak | it's... funky. | 09:37 | |
09:37
am0c joined
|
|||
mathw | As I said, one of the madder early music ensembles | 09:38 | |
I think this actually beats Red Priest's version for sheer insanity | |||
Since their version has no bagpipes in it | |||
masak | wow, 18th century. I wouldn't have guessed. | 09:39 | |
carlin | ohh... both perl6-examples and http-daemon have a lib/HTTP/Daemon.pm | ||
masak | carlin: yes, but the former can easily be 'taken care of', I think. | 09:40 | |
carlin++ # this is exactly the kind of discoveries that need to be made before merging | |||
mathw: by the way, 'hurdy-gurdy' is a pretty silly name for an instrument. :) | 09:41 | ||
mathw | masak: yes, I know, but I didn't choose it :) | 09:43 | |
It is, however, a pretty silly instrument | 09:44 | ||
The bagpipe of the string world | |||
masak | :D | ||
09:44
Baggio_ left
09:49
Baggio_ joined
09:50
jlaire joined
|
|||
moritz_ | ng: my $a; BEGIN { $a = 42 } | 09:51 | |
p6eval | ng 417a99: ( no output ) | ||
masak | rakudo: say (-> :a($c) {}).signature.params[0].named_names.perl | ||
p6eval | rakudo 7ef386: ["a"] | ||
moritz_ | ng: my $a; BEGIN { $a = 42 }; say $a | ||
p6eval | ng 417a99: Mu() | ||
masak | phenny: tell jnthn will the $.named_names attribute in signature.params ever contain more than one element? | 09:52 | |
phenny | masak: I'll pass that on when jnthn is around. | ||
masak | moritz_: I keep seeing PerlMonk threads where people write in and ask "it output 'Mu()', what did I do wrong?" | 09:53 | |
moritz_ | masak: note that by current spec it shouldn't say Mu() anymore | 09:56 | |
because say() Stringy-fies, and that should give a warning and return the empty string | |||
and only explicit conversion to Str directly returns Mu() | 09:57 | ||
masak | is there an RT ticket about that? | ||
rakudo: say Mu | |||
p6eval | rakudo 7ef386: Object() | ||
masak | lol | ||
09:57
envi^office left
|
|||
moritz_ | Mubject | 09:57 | |
I don't think it will be ever fixed in master | 09:58 | ||
masak | no, me neither. | 09:59 | |
10:00
lestrrat is now known as lest_away
|
|||
masak | but I don't submit bugs for master or ng. I submit bugs for Rakudo. | 10:01 | |
10:04
jaldhar left,
jaldhar joined
|
|||
moritz_ wants a fixed-in-ng tag in RT | 10:10 | ||
10:11
cognominal left
|
|||
JimmyZ | rakudo: Mu.WHAT.say; | 10:14 | |
p6eval | rakudo 7ef386: Object() | ||
JimmyZ | ng: Mu.WHAT.say; | ||
p6eval | ng 417a99: Mu() | ||
10:16
broquaint joined
|
|||
JimmyZ | ng: say Mu; | 10:17 | |
p6eval | ng 417a99: sh: ./perl6: No such file or directory | ||
JimmyZ | ng: Mu.WHAT.say; | ||
p6eval | ng 417a99: Mu() | ||
JimmyZ | ng: say Mu; | ||
p6eval | ng 417a99: Mu() | ||
mathw | Mu is... Mu | 10:25 | |
10:26
Baggio_ left,
agentzh left
10:28
lest_away is now known as lestrrat
10:33
JimmyZ left
10:36
betterworld joined
|
|||
mathw chews all his fingernails off | 10:37 | ||
10:46
Baggio_ joined
10:48
zaslon left,
pointme left,
pointme joined,
zaslon joined
|
|||
masak | phenny: tell jnthn never mind, I found the answer in the IRC logs. :) irclog.perlgeek.de/perl6/2009-10-09#i_1587460 | 10:51 | |
phenny | masak: I'll pass that on when jnthn is around. | ||
masak | hm. time to go home and make dinner. :) | 10:54 | |
see y'all tonight. | |||
10:54
masak left
10:59
IMeMyself joined,
sundar left
|
|||
jnthn | morning | 11:03 | |
phenny | jnthn: 08:36Z <masak> tell jnthn twitter.com/luqui/status/6425615591 :) | ||
jnthn: 09:52Z <masak> tell jnthn will the $.named_names attribute in signature.params ever contain more than one element? | |||
jnthn: 10:51Z <masak> tell jnthn never mind, I found the answer in the IRC logs. :) irclog.perlgeek.de/perl6/2009-10-09#i_1587460 | |||
11:03
Baggio_ left
|
|||
jnthn | phenny: tell masak first virtual servers...then virtual timezones. :-) And yes, :foo(:bar(:$baz)) will get you a few entries. :-) | 11:04 | |
phenny | jnthn: I'll pass that on when masak is around. | ||
jnthn | omg lolhaskell! | 11:05 | |
11:05
Baggio_ joined
|
|||
carlin | Ohh, Haskell has a weekly newsletter ... there's an idea | 11:08 | |
jnthn manages to stab himself with a fork while feeding the dog | 11:16 | ||
mathw | carlin: the problem with weekly newsletters is that somebody has to put the work in | ||
As someone just started doing for Perl 6 again, but we'll see if he manages to keep it up. | 11:17 | ||
colomon | p/ | 11:18 | |
s{p/}{o/} | 11:19 | ||
mathw | o/ | 11:23 | |
11:27
tarski left
|
|||
pugs_svn | r29277 | colomon++ | [t/spec] Tweak test so that it works in ng. | 11:33 | |
11:35
jonhegg joined
11:36
jonhegg left
|
|||
colomon | that's another 100 passing tests for ng | 11:38 | |
jnthn | \o/ | 11:44 | |
colomon: On Saturday I got quite a bit further towards having some of the role ones running again too. | 11:45 | ||
11:45
SmokeMachine joined
|
|||
colomon | \o/ | 11:45 | |
11:46
Baggio_ left
11:49
zloyrusskiy joined
|
|||
pugs_svn | r29278 | colomon++ | [t/spec[ Fix the number of tests so the file passes. | 11:50 | |
mathw | 100 more tests? woo! \o/ | 11:51 | |
colomon | another 42 coming up... | ||
these are super LHF | |||
practically touching the ground | 11:52 | ||
11:58
Baggio_ joined
|
|||
mathw | :) | 11:58 | |
11:58
moritz_ sets mode: +o colomon
11:59
Baggio_ left
12:00
Baggio_ joined,
snearch_ joined
|
|||
carlin | phenny: tell masak gist.github.com/250786 # Not what you were after but Rakudo's IO couldn't do that yet | 12:00 | |
phenny | carlin: I'll pass that on when masak is around. | ||
dalek | kudo/ng: 0b3ffae | (Solomon Foster)++ | t/spectest.data: Turn on sign.t. |
12:02 | |
carlin | G'Night all | ||
12:26
wayland76 left
12:27
iblechbot left
|
|||
moritz_ | if I understood that correctly, CATCH and CONTROL are a bit like given | 12:40 | |
in that they set the topic to the current exception | |||
and if no when-block matched, they rethrow the exception | 12:41 | ||
but a when-block calls break() at its end | |||
and... that throws a control exception | |||
isn't that a bit ugly? | |||
Tene | moritz_: CATCH & CONtROL should catch break exceptions. That's an error on my part. I'll get it working this week. | 12:43 | |
moritz_ | Tene: I'm not complaining about the implementation (not yet at least), but I'm questioning the spec | 12:44 | |
I think CONTROL blocks will either need very careful implementation, or will require much care from the programmer | 12:45 | ||
or both | |||
12:49
ruoso joined
12:55
payload left
12:56
hcchien left
13:01
hcchien joined
13:07
jonathanturner joined
13:10
meteorjay left
13:12
Baggio_ left
13:15
JimmyZ joined
13:17
takadonet joined
|
|||
takadonet | morning all | 13:18 | |
13:19
IllvilJa joined,
rodi joined
|
|||
colomon | \o | 13:20 | |
JimmyZ | evening, all | 13:21 | |
13:24
payload joined
13:31
quantumEd joined
13:34
iblechbot joined
13:36
pmurias joined
|
|||
mathw | C++ needs named parameters | 13:37 | |
I used to think, what's the point in Perl 6 letting you pass positionals by name | 13:39 | ||
But now I know how cool it is | |||
pugs_svn | r29279 | colomon++ | [t/spec] Fudge int.t so that it passes in ng. | ||
colomon | mathw: I guess I'm not completely convinced yet. | 13:41 | |
Juerd_ | It is extremely useful for modules that you don't use very often | 13:42 | |
colomon | Except being able to say something like split("hello", :match) is awesome. | ||
mathw | It's also very useful when you have a function which simply has to have seven parameters | ||
Juerd_ | For all those builtins that everybody knows by heart, the use of giving names to otherwise positional arguments is very limited | ||
mathw | if you use them by names, the code's far easier to comprehend | ||
as at the call site you can see what they all are! | |||
Juerd_ | But when you use that module that you use twice per year, it makes your code so much more easier to understand 6 months from $now :) | ||
mathw: Really, I think any function that takes 7 positionals is designed wrong :) | 13:43 | ||
colomon | Oh, one case I do really like is named args with atan2. No more confusion because y comes before x.... | ||
Juerd_ | colomon: Right | ||
colomon: And I have that problem with Encode::from_to in Perl 5 | |||
moritz_ | aye | 13:44 | |
encode and decode take the character encoding first | |||
colomon | yeah, anything with from and to args would be nice named. | ||
moritz_ | but from_to takes the buffer first | ||
Juerd_ | I keep thinking it's from_to($from, $to, $buf), but it's actually from_to($buf, $from, $to) | ||
mathw | Juerd_: Sometimes you just can't avoid it... | ||
Juerd_ | Isn't it great to just say from_to(from => $from, to => $to, buf => $buf)? | ||
colomon | so, that's another 63 passing tests added to ng's spectest. | 13:45 | |
Juerd_ | Or, if you chose your identifiers this carefully, from_to(:$from, :$to, :$buf); | ||
moritz_ | or even from_to(:$from, :$to, :$buf) | ||
right :-) | |||
colomon | I'd like to break the Tests=2000 barrier sometime today... | ||
dalek | kudo/ng: 8ba7332 | (Solomon Foster)++ | t/spectest.data: Turn on int.t. |
||
mathw | colomon: Go for it! | 13:46 | |
colomon | rakudo: say atan2(-1, 0); | 13:47 | |
p6eval | rakudo 7ef386: -1.5707963267949 | 13:48 | |
colomon | rakudo: say atan2(-1, 0) * -2; | ||
p6eval | rakudo 7ef386: 3.14159265358979 | ||
13:49
Baggio_ joined
|
|||
mathw | oooh pie | 13:51 | |
colomon | nom nom nom | ||
mathw | the edible number | ||
colomon | rakudo: say 5.exp.Rat | ||
p6eval | rakudo 7ef386: 148.413159167876 | ||
colomon | rakudo: say 5.exp.Rat(1e-10).perl | 13:52 | |
p6eval | rakudo 7ef386: 5497075/37039 | ||
mathw | I think I'm going to like Rat a lot | ||
colomon | I'm a big fan, for sure. | 13:53 | |
except for the bit where at the moment in ng it's easier to give the fraction version than the decimal version if you want precision. :) | |||
13:55
JimmyZ left
|
|||
pugs_svn | r29280 | colomon++ | [t/spec] Factor out e ** 5 and pi as variables set with fractions, replace 1..20 with 1...20. | 13:57 | |
14:01
Exodist left
14:05
ruoso left
14:06
rodi left
14:08
Baggio_ left
|
|||
dalek | kudo/ng: a113b8f | (Solomon Foster)++ | t/spectest.data: Turn on exp.t. |
14:09 | |
colomon | That's another 49 passing tests, 53 tests altogether. | 14:14 | |
14:14
zloyrusskiy left
|
|||
colomon | Now have Tests=1973, just need one more good file... ;) | 14:14 | |
btw, we have about 15,000 hits on the Advent blog in the last 24 hours. | 14:15 | ||
Tene | moritz_: Yes, I expect both will be needed. I'm pretty confident that I can implement a reasonable API, but it's not going to be trivial. | 14:22 | |
takadonet | colomon: Good old slashdot | 14:23 | |
Tene | moritz_: It shouldn't be *that* bad, though. It's separate scopes. If you want to, say, change the exception from 'next' to 'last', you modify $_ and then call .rethrow() on it. | ||
moritz_ | I just find the fact "interesting" that we rely on control exceptions inside CONTROL | 14:26 | |
Tene | everything to do with the original exception is done through $_ aka $!, and doesn't involve the scope of the handler at all. | ||
moritz_ | ok | ||
Tene | moritz_: meaning that there might be reason to have a CONTROL in a CONTROL. | ||
moritz_ | colomon: interestingly enough about 250 of those seem to be secondary visitors from twitter :-) | ||
Tene: :-) | 14:27 | ||
Tene | sup dawg, I heard you like CONTROL blocks. | ||
mdxi_ | one day the full POKEDEX will be added to Unicode, and we can have the Mudkip operator | 14:28 | |
until then, i'll make do with the snowman | |||
Tene | So I put a control in your control so you can catch while you catch. | 14:29 | |
14:30
mdxi_ is now known as mdxi
14:35
pmurias left
14:36
Baggio_ joined,
pmurias joined
|
|||
IllvilJa | Hello! Is it just me, or is github becoming the 'de facto CPAN' for perl6? | 14:42 | |
colomon | github is nice because it encourages other people to contribute to projects, too. | 14:43 | |
and it's got full history, etc. | |||
IllvilJa | That's quite cool. | ||
14:43
gbacon left
|
|||
jeremiah | There is a danger though - | 14:43 | |
People don't know that Github is the new CPAN | 14:44 | ||
And that makes it hard to find stuff | |||
I often see perl modules on Github that aren't on teh CPAN | |||
which kinda sucks | |||
IllvilJa | True. | ||
jeremiah | Since Github is more for devs that for users | ||
mathw | Well there are questions about Perl 6 modules and CPAN, are there not? | ||
jeremiah | mathw: What sort of questions? | 14:45 | |
IllvilJa | So the ideal would be that CPAN is the place where Perl 6 modules are "showcased" as ready products and github is the Santa Claus workshop where all the happy brownies gathers and works on all the nice modules. | 14:46 | |
jeremiah | As long as tools that users are used to using, i.e. cpan, are usable for perl6 I think things are cool | 14:47 | |
IllvilJa | So, when someone visiting the "module shop" (CPAN) get's curious about how a module is created (perhaps for participating), they can look behind the scenes and get a clue what's happening at github. | ||
jeremiah | But disabling CPAN would hurt perl6 I think | 14:48 | |
IllvilJa: That makes sense, then they can get involved in development easily too | |||
IllvilJa | Creating an (optional) link from CPAN pages for a Perl6 module to the corresponding github page (if any such exist) would probably be a good thing. | ||
14:48
Guest64524 left
|
|||
jeremiah | So we have a 'users' space and a 'developers' space | 14:48 | |
IllvilJa | Actually, the latter can be used for Perl 5 modules too! Maybe it already is? | ||
(Ok, the automated link to Github is not in place I think) | 14:49 | ||
14:50
xinming left
|
|||
pmurias | being able to use a particular v | 14:51 | |
~ | |||
colomon | So: why is it exp ( Numeric $exponent: Numeric :$base = Num::e ) | ||
pmurias | ~ | ||
sorry | |||
colomon | but log ( Numeric $x: Numeric $base = Num::e ) ??? | ||
pmichaud | Tene: (get_bool) -- the spec recently changed on this point. | 15:01 | |
(as in, it changed within the last 10 days) | |||
pmichaud goes off to read backscroll. | 15:02 | ||
15:03
xinming joined,
meppl joined
|
|||
Tene | pmichaud: Oh, heh. Sorry, then. :) | 15:04 | |
15:04
alester left,
alester joined
15:06
Baggio_ left
|
|||
dalek | kudo/ng: a1468ab | (Solomon Foster)++ | src/core/ (2 files): Make a proto for exp so named arguments works, and at the same time remove the now redundant exp(Complex). |
15:07 | |
pugs_svn | r29281 | colomon++ | [t/spec] Unfudge named argument tests that now work. | ||
Tene | pmichaud: any ideas about the vtable stuff? | ||
colomon | I'm in yr rakudo, slowing down yr spectests... | ||
afk for library storytime. | |||
15:13
gbacon joined
|
|||
pmichaud | (still reading backscroll) | 15:19 | |
15:28
levi_ joined
|
|||
IllvilJa | Is github having some issue right now? I did a quick try to do a 'git pull' in the rakudo directory and get a timeout... | 15:28 | |
15:29
levi_ left
|
|||
moritz_ | it does that from time to time | 15:29 | |
IllvilJa | :-( | ||
Patterner | IllvilJa: works for me | 15:30 | |
IllvilJa | Then it is my account/local settings that are fubarilized... I did change my email in the ~/.gitconfig file (corrected a faulty value) and suspect that have upset things. | 15:31 | |
mathw | yay comments on my advent entry | ||
15:31
xinming left
15:32
KyleHa joined
|
|||
IllvilJa | trying 'ssh [email@hidden.address] returns "authorization successful" so that part works. | 15:32 | |
moritz_ | that shouldn't give you a timeout though | ||
15:35
xinming joined
15:36
wagnerf_ joined,
Baggio_ joined
|
|||
IllvilJa | When I try to do a 'git clone' on masak/proto, it works fine. When I try to do a 'git pull' in my rakudo directory a timeout occurs. That's a bit odd. | 15:38 | |
Also trying to create a brand new 'git clone' of rakudo fails with a timeout (and I follow the instructions on rakudo.org/how-to-get-rakudo) | 15:39 | ||
Is it possible for github to have timeout issues with individual repositories but not with others? | 15:40 | ||
15:41
payload left,
Baggio_ left,
payload joined
|
|||
moritz_ | fwiw a 'git pull' worked fine here | 15:41 | |
IllvilJa: did you clone proto with git://? or some other protocol? | |||
IllvilJa | moritz_: the command I use is from the page I referred to: 'git clone git://github.com/rakudo/rakudo.git' | 15:43 | |
15:43
jferrero joined
|
|||
IllvilJa | Trying right now, it still hangs. | 15:44 | |
15:45
yahooooo left
|
|||
moritz_ | I used [email@hidden.address] which uses ssh under the hood | 15:46 | |
but git:// works too here | |||
wagnerf_ | it works for me also | 15:47 | |
15:47
Baggio_ joined
|
|||
moritz_ | IllvilJa: maybe try a portscan on github.com? | 15:47 | |
IllvilJa: I somehow suspect that there's a firewall somewhere inbetween | 15:48 | ||
15:48
Psyche^ joined
|
|||
IllvilJa | When I tried last week I know that the 'git:' variant worked. | 15:48 | |
However, when trying to use [email@hidden.address] I get an intresting error message, quite immediately: | 15:49 | ||
ERROR: Permission to rakudo/rakudo denied to illvilja. | |||
fatal: The remote end hung up unexpectedly | |||
moritz_ | that's probably because you're not a rakudo committer | ||
15:49
Patterner left,
Psyche^ is now known as Patterner
|
|||
moritz_ | and the ssh based clone URLs might be for committers only | 15:49 | |
IllvilJa | Does not the 'git:' scheme use ssh under the hood too? | 15:51 | |
moritz_ | no idea | 15:52 | |
15:54
Baggio_ left
|
|||
wagnerf_ | I just installed rakudo on my machine to give it a try and I had to remove one library to get the install working | 15:57 | |
seems like a bug in the build process | |||
what would be the best place to report that ? | |||
15:57
infrared left
|
|||
wagnerf_ | actually I think it's inside parrot | 15:58 | |
moritz_ | if it's a parrot bug, trac.parrot.org/parrot/ # you need to create an account to submit a ticket :( | ||
wagnerf_ | moritz_, thanks | 16:00 | |
16:00
nihiliad joined
|
|||
moritz_ | for rakudo bugs, mailto:rakudobug@perl.org | 16:00 | |
16:05
[particle] joined
16:17
wagnerf_ left
16:20
tarski joined
|
|||
tarski | i have a general question: will perl6 be able to use the existing cpan modules without forcing the authors to rewrite them to be compatible? | 16:25 | |
PerlJam | tarski: at some point. That's part of the plan. | ||
TimToady | it will likely depend on the implementation, at least until we reimplement a Perl 5 in Perl 6... | 16:26 | |
tarski | i see. and how close is perl6 to version 1.0? | 16:27 | |
TimToady | we'll probably lock it down sometime next year to converge with rakudo's implemenation | 16:28 | |
PerlJam | tarski: That's a tricky question to answer because everyone thinks of "version 1.0" differently. | ||
TimToady | at which point, rakudo may or may not yet implement 1.0 :) | ||
but it *is* converging | 16:29 | ||
tarski | PerlJam, so who's the benevolent dictator who has the final say as to what "version 1.0" means? | ||
PerlJam | tarski: if you really are asking "when will a Perl 6 implementation run Perl 5 code?", that might be something that someone could answer :) | ||
TimToady | that Larry Wall guy | ||
16:29
alexn_org joined
|
|||
tarski | TimToady, ok. so he will say when 1.0 is ready? | 16:29 | |
TimToady | I strongly suspect so. :) | ||
16:30
alexn_org left,
alexn_org joined
|
|||
takadonet | tarski: TimToady eq 'Larry Wall' | 16:30 | |
16:30
alexn_org left,
alexn_org joined
16:31
pmurias left
|
|||
TimToady | takadonet: now how am I supposed to get people's true opinions if you go telling them that? :) | 16:31 | |
tarski | takadonet, and I was about to talk smack about Larry. thanks for the heads-up! | 16:32 | |
TimToady | I like it when people talk smack about me... | ||
takadonet | TimToady: Sorry, normally I don't say anything but this time I felt I should... | ||
quantumEd | larry wall: hes big fat and small, he plays with a doll, lol lol lol | 16:33 | |
TimToady | takadonet: don't like to see me exercising my cruel streak, do ya? :) | ||
tarski | TimToady, I wouldn't talk smack about you. Actually a lot of the (your) philosophy used to design Perl helped me in writing my masters thesis in philosophy about the argument over the true distinction between semantics and pragmatics | 16:34 | |
takadonet | TimToady: I just want to be part of it :) | ||
PerlJam momentarily has an image of TimToady's face super-imposed on the BSD devil | |||
moritz_ | that could be a fun Perl 6 anti-logo :-) | ||
TimToady | anyway, in generel, I'd rather see people thinking that #perl6 is a friendly place than that any one particular person is friendly, though of course that's good too | ||
tarski: sounds like an interesting thesis | 16:36 | ||
tarski | TimToady, It was fun to write, I'm actually finishing it up now. Subjects like how and when context determines meaning, and to what extent (meaning as use) made me think of how a value in Perl is determined by the way in which it's used in the program -- making it very postmodern | 16:37 | |
TimToady, at least a value's type, I mean | 16:38 | ||
perl6 is going to force strong typing, isn't it? | 16:39 | ||
TimToady | if you wanted to turn it into a PhD dissertation, you could add in how much of Western theology has settled for semantics rather than pragmatics. :) | ||
16:39
rfordinal joined
|
|||
TimToady | tarski: no | 16:40 | |
you can add optional typing | |||
but it's not primarily for compile-time safety | |||
pmichaud | would it be fair to say that Perl 6 is strongly typed, but that its default types are relatively weak? | ||
jonathanturner | it could be strong and dynamic, no? | ||
TimToady | it's to give more information to multiple dispatch | ||
moritz_ | pmichaud: depends on how you define "strongly typed" | 16:41 | |
Tene | pmichaud: any chance you'll get to the list refactor today? | ||
TimToady | more like, it's strongly typed, but will let you get away with a number of interactions that look weakly typed | ||
moritz_ | if by "strongly typed" you mean "can't accidentally access a piece of memory with the wrong type", then yes | 16:42 | |
TimToady | in that sense, Perl 5 is strongly typed too | ||
well, up to a point | |||
there's vast confusion as to the exact type of strings in Perl 5 | 16:43 | ||
pmichaud | Tene: yes, there's a chance of that. But I really have to get my grant work finished soon (like, in the next couple of days), and list refactor isn't technically part of the grant. | ||
Tene | ah, okay, that's fine. I'll stop harassing you so much. :) | ||
jonathanturner | speaking of lists, is there a list concat function/operator? I looked for one on the periodic table but didn't see it | ||
pmichaud | I recognize it's a huge blocker. | ||
Tene | pmichaud: When looking at Failure stuff, specifically dealing with unthrown exceptions, it looks like I might be trying to add a "check for unthrown exceptions, rethrow if unhandled" tail to every block, at least until we get scope exit handlers. How much do you expect to push back on that? | 16:44 | |
moritz_ | can you get your grant work done without ng landing? | ||
TimToady | jan_: list concat is just , in a list context | ||
pmichaud | moritz_: I think technically yes. | ||
TimToady | ETABFAIL | ||
jonathanturner: list concat is just , in a list context | 16:45 | ||
pmichaud | actually, my plan is to go ahead and write the grant final report, then finish all the pieces needed to make the report correct. :-) | ||
jonathanturner | TimToady: ([1, 2, 3] , [4, 5, 6]).perl.say yields [[1, 2, 3], [4, 5, 6]] | ||
moritz_ | it's a bit like TDD | ||
jonathanturner | TimToady: I was thinking more along the lines of [1, 2, 3, 4, 5, 6] | ||
TimToady | yes, but you concatenated two arrays, not two lists | ||
tarski | in perl 5, '1' == 1 is true, but '1' isn't identical to 1. in perl6 is there a way to test for identity? | ||
pmichaud | tarski: identity is =:= | 16:46 | |
TimToady | rakudo: say 1 === '1' | ||
pmichaud | tarski: equivalence is eqv | ||
p6eval | rakudo 7ef386: 0 | ||
pmichaud | or === | ||
moritz_ | pmichaud: that's container identity | ||
TimToady | rakudo: say 1 eqv '1' | ||
pmichaud | or something like that. | ||
p6eval | rakudo 7ef386: 0 | ||
moritz_ | rakudo: say 1 cmp '1' | ||
p6eval | rakudo 7ef386: 0 | ||
moritz_ | ng: say 1 cmp '1' | ||
p6eval | ng a1468a: sh: ./perl6: No such file or directory | ||
Tene | So, what operators do ≟ and ≡ map to? | ||
jonathanturner | TimToady: now that's interesting. ((1, 2, 3), (4, 5, 6)).perl.say yields [1, 2, 3, 4, 5, 6] in Rakudo. Does that mean concatenating lists yields an array? | 16:47 | |
TimToady | not exactly | ||
pmichaud | jonathanturner: rakudo's List.perl is based on a much older specification. | ||
jonathanturner | ahh, got it | ||
pmichaud | that said that .perl on a list would return the brackets | ||
ng: ((1,2,3), (4,5,6).perl.say | |||
p6eval | ng a1468a: Confused at line 1, near "((1,2,3), "current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
TimToady | it used to be that a list in item context would produce an Array | ||
pmichaud | oops | ||
ng: ((1,2,3), (4,5,6)).perl.say | 16:48 | ||
p6eval | ng a1468a: (1, 2, 3, 4, 5, 6) | ||
TimToady | now it's just a Parcel, until it knows its context | ||
pmichaud | (that's wrong, though.) | ||
TimToady | er, something like that | ||
16:48
alexn_org left
|
|||
moritz_ | are @a and @@a the same variable now? | 16:48 | |
TimToady | I realize I just contradicted myself :) | ||
16:48
IllvilJa left,
rfordinal left
|
|||
moritz_ | I think ruoso argued they aren't, but never put it into the spec | 16:48 | |
jonathanturner | ng: ((1, 2, 3) <<,>> (4, 5, 6).perl.say | ||
p6eval | ng a1468a: Confused at line 1, near "((1, 2, 3)"current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
TimToady | moritz_: I'm still trying to figure out some way to make @@ go away :) | ||
pmichaud | ((1,2,3), (4,5,6)).perl.say should result in "((1, 2, 3), (4, 5, 6))" | ||
jonathanturner | ng: ((1, 2, 3) <<,>> (4, 5, 6)).perl.say | 16:49 | |
p6eval | ng a1468a: 0 | ||
moritz_ | TimToady: that would be greatly appreciated | ||
pmichaud | jonathanturner: what you really want is list (1,2,3), (4,5,6) | ||
which will flatten the two parcels via list context | |||
ng: (list (1,2,3), (4,5,6)).perl.say | |||
p6eval | ng a1468a: maximum recursion depth exceededcurrent instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98) | ||
TimToady | the point is to supply a slice context in converting a list to an Array, not to make a new array type, I think | ||
pmichaud | bah. | ||
jnthn | TimToady: It's kind of an auto-\ I guess. :-) | 16:50 | |
moritz_ | \<<(list) :/ | ||
TimToady | yes, take all the embedded Parcels and reify them | ||
jonathanturner | shouldn't <<,>> pair up values like zip? | 16:51 | |
TimToady | but recursively, probably | ||
pmichaud | <<,>> isn't implemented in ng | ||
16:51
xomas_ is now known as Yvonne
|
|||
pmichaud | (hypers aren't implemented in ng yet) | 16:51 | |
16:51
Yvonne is now known as xomas
|
|||
jonathanturner | pmichaud: in rakudo it yields Bool::False | 16:51 | |
TimToady | probably parsing it as < <,> > | 16:52 | |
which would be an ltm failure | 16:53 | ||
pmichaud | well, more precisely that we didn't implement the cheat for hyper-comma | ||
(the other hypers are entered as their own tokens directly) | |||
16:53
slavik left
|
|||
pmichaud | (in master, not in ng) | 16:53 | |
TimToady | yes, another historical vestige, counting whole metaops as tokens... | 16:54 | |
16:54
iblechbot left
|
|||
TimToady | but it's a really good way to blow up your longest token tables, I've discovered :) | 16:54 | |
the combinatorics get ferocious | 16:55 | ||
16:55
jar_s joined
16:56
tylerni7 left
16:57
jar_s left
|
|||
jonathanturner | TimToady: sounds like debugging would be a pain, too | 16:57 | |
16:57
tylerni7 joined,
slavik joined
16:58
envi^home left
|
|||
TimToady | jonathanturner: indeed, although metaops can be thought of (and optimized) as primitives, you might want to step through metaop's logical wrapper while debugging | 17:01 | |
and in a sense, it allows people to override a particular metaop with a longer longest-token of the same name | 17:02 | ||
though people can do that under the old rules anyway | 17:03 | ||
17:04
IllvilJa joined
|
|||
TimToady | well, in theory, it was possible, though I'm not sure any grammars quite do that right yet | 17:04 | |
I think even STD still tends to privilege its operator defs as keywords over user-defined ones in spots | |||
jonathanturner | TimToady: I take it that <<,>> and << , >> are two different things? I did try < <,> > and got the same result | ||
TimToady | there's no << , >> | 17:05 | |
std: 1 << , >> 2 | |||
p6eval | std 29281: ===SORRY!===Obsolete use of << to do left shift; instead, in Perl 6 please use +< or ~< at /tmp/pjFqsbuOGG line 1:------> 1 << ⏏, >> 2FAILED 00:01 106m | ||
TimToady | and whitespace isn't allowed in metaops | ||
std: [*] 1,2,3 | 17:06 | ||
p6eval | std 29281: ok 00:01 106m | ||
TimToady | std: [ * ] 1,2,3 | ||
p6eval | std 29281: ===SORRY!===Two terms in a row at /tmp/mBvSpdV34X line 1:------> [ * ] ⏏1,2,3 expecting any of: infix or meta-infix infix stopper standard stopper statement modifier loop terminatorFAILED 00:01 104m | ||
jonathanturner | TimToady: I see, must be where rakudo differs from the std | ||
TimToady | std: [ * ], [ * ] | ||
p6eval | std 29281: ok 00:01 105m | ||
pmichaud | rakudo doesn't recognize << as being an erroneous infix op, either. So it parses as < | 17:07 | |
TimToady | rakudo simply doesn't define any tokens that start with << | ||
pmichaud | we can easily fix that in the ng branch, though :) | ||
TimToady | er, <<, | ||
moritz_ | rakudo: say <<a b c>> | ||
p6eval | rakudo 7ef386: abc | ||
pmichaud | rakudo does recognize << in term position | ||
jonathanturner | I did << , (with a space) and got the same Bool::False | ||
make that << , >> | 17:08 | ||
pmichaud | jonathanturner: right. It still parses as < (< , >) > | ||
IllvilJa | Solved my issues with doing 'git pull' in my rakudo directory :-). | ||
pmichaud | where < , > is the same as (",") | ||
moritz_ | it probably parses it as 1 less-than < , > greater-then 2 | ||
moritz_ too slow | |||
IllvilJa | I edited the rakudo/.git/config file and altered the URL from 'git://github...' to 'github...' and then double checked that my http_proxy environment variable were correct. | 17:09 | |
After that it worked as a charm! | |||
17:13
snearch_ left
17:24
payload left
17:29
rfordinal3643 joined
|
|||
pugs_svn | r29282 | colomon++ | [t/spec] Add a few tests for the .exp method. | 17:33 | |
colomon | Tests=1979 | 17:36 | |
17:36
Wolfman2000 left
|
|||
colomon | rakudo: say 5.log.Rat(1e-10).perl | 17:39 | |
p6eval | rakudo 7ef386: 940945/584642 | ||
colomon | rakudo: say 0.5.log.Rat(1e-10).perl | 17:40 | |
p6eval | rakudo 7ef386: -25469/36744 | ||
colomon | rakudo: say 0.1.log.Rat(1e-10).perl | 17:41 | |
p6eval | rakudo 7ef386: -254834/110673 | ||
17:42
justatheory joined
|
|||
colomon | rakudo: say 5.log10.Rat(1e-10).perl | 17:42 | |
p6eval | rakudo 7ef386: Method 'log10' not found for invocant of class 'Int'in Main (file src/gen_setting.pm, line 324) | ||
colomon | rakudo: say 5.0.log10.Rat(1e-10).perl | 17:43 | |
p6eval | rakudo 7ef386: 49471/70777 | ||
17:44
stephenlb joined
17:47
cdarroch joined
17:50
jonathanturner left
17:57
simcop2387_ joined
17:58
jferrero left,
buubot joined,
payload joined
18:00
simcop2387_ left
18:01
payload left,
payload joined
18:04
SmokeMachine left
18:05
fyskij joined
18:07
SmokeMachine joined
|
|||
IllvilJa | Given that Perl 6 has a butterfly as it's mascot, it is soo tempting to alter the text of this: www.blastwave-comic.com/index.php?p...amp;nro=24 to create some weird futuristic marketing comic for Perl 6... | 18:09 | |
"So Perl 6 does not devour your brain or something?" "Nope. Completely harmless." | |||
But in reality the last line might actually be a utter lie ;-). | 18:10 | ||
18:11
payload left,
payload joined
|
|||
mdxi | perl5 didn't devour my brain. less like a zombie movie and more like a house renovation show. it came in, knocked through a few walls, redid the wiring, put skylights in a some rooms... | 18:14 | |
i'm hoping for something similar with perl6 | |||
18:18
fridim_ joined
|
|||
pugs_svn | r29283 | colomon++ | [t/spec] Tweak to deal with lack of pi and numeric constants, refudge for ng. | 18:21 | |
dalek | kudo/ng: bbfd577 | (Solomon Foster)++ | src/core/ (2 files): Make protos for log and log10, implement Any.log10 and Num.log10. |
||
kudo/ng: d176dc9 | (Solomon Foster)++ | t/spectest.data: Add log.t to spectest.data. |
|||
colomon | Tests=2011, that's enough for me today. | 18:27 | |
moritz_ feels good because he solved a riddle faster in perl 6 than it would have taken in Perl 5 | 18:30 | ||
it was something "binary" encoded, and I didn't know how to numify those in Perl 5 | |||
whereas :2($str) was nice and easy | 18:31 | ||
18:31
payload left
18:32
ShaneC joined
18:40
cognominal joined
18:59
Wolfman2000 joined,
ascent_ left
|
|||
moritz_ | anybody willing to give up an advent calendar slot? | 19:02 | |
I'd like to write something about the Whatever star | |||
and I have some tuits right now | |||
but no slot free | |||
Wolfman2000 | moritz_: I can free up a slot I think. Let me see what topics I have. | 19:03 | |
also: I just put in the Caesar code into my scheduled post if you want to see it. | |||
moritz_: You're in luck. I have no clue what I was going to do on Dec 22. Consider that day open for the taking. | 19:05 | ||
moritz_ | Wolfman2000: ok, thanks | 19:06 | |
pugs_svn | r29284 | jafelds++ | Give moritz_++ a day to talk of the whatever *. | ||
Wolfman2000 | I can be on standby should things change. | ||
pmichaud | should whatever * be a bit earlier in the month? | 19:11 | |
moritz_ | I can just write up what I want and put it into the Drafts folder | ||
pmichaud | that works | ||
19:12
iblechbot joined
|
|||
Wolfman2000 | pmichaud: If it makes sense for moritz_ and I to switch dates again, we can easily do so. | 19:12 | |
pmichaud | also might be worth mentioning in that article that "whatever" is the inspiration behind "Rakudo *" | ||
moritz_ | and when somebody doesn't finish his posting on time, or doesn't feel like writing or Whatever... then he can just publish my post | ||
pmichaud: that's part of my plan | |||
pmichaud | wfm | ||
moritz_++ | |||
Wolfman2000 | I'll most likely require my own tuits to deal with my website moving. Since I can't use Perl or Python effectively on my new server, I have to brave...PHP. again. | 19:13 | |
And when I have to deal with PHP, it sometimes makes me not want to use the computer period. | |||
pmichaud | btw, if anyone has any strong ideas about what I should do for the Dec 24 posting, I'm open to suggestions | 19:16 | |
at the moment I'm thinking of "Path to Rakudo *" | |||
Wolfman2000 | phenny: tell masak November is on Web.pm, right? I'm starting to wonder if I can use Squerl, Astaire, and whatever else effectively. May need some backup with installing the modules right, though. | ||
phenny | Wolfman2000: I'll pass that on when masak is around. | ||
frettled | Is there a list of topics-to-be somewhere? | ||
Wolfman2000 | frettled: pugs svn | ||
frettled | ahaha | ||
pmichaud | frettled: svn.pugscode.org/pugs/misc/perl6ad...9/schedule | 19:17 | |
moritz_ | in misc/perl6advent-2009/ | ||
19:18
kaare_ joined
|
|||
frettled | It's been a while since I updated my pugs repository, so it's about time that I did it again. | 19:18 | |
My god, it's full of tests! | |||
Wolfman2000 | as it should be | ||
pugs_svn | r29285 | pmichaud++ | [advent]: Note that my Dec 24 posting is open for suggestions | ||
pmichaud | heh | ||
"2010 - A Perl 6 Odyssey: The Year We Make Contact" | 19:19 | ||
colomon | pmichaud: I figured your Dec 24 posting would be a pitch for Rakudo *. | 19:20 | |
jnthn | pmichaud: Anything you'd like me to focus my Rakudo hacking on this evening? | ||
pmichaud | (with credit to rdice for the original inspiration :-) | ||
jnthn | pmichaud: Otherwise, will continue on with getting things from S14-role/* back running again (a couple I got quite a long way with already) | ||
PerlJam | pmichaud: nice title | ||
pmichaud | jnthn: nothing specific. anything class/role related will undoubtedly be helpfu. | ||
jnthn | pmichaud: k | ||
pmichaud | *helpful | ||
afk for a bit | |||
colomon | list assignment? he said hopefully... | 19:21 | |
frettled | pmichaud: «What we want for Christmas»? ;) | 19:22 | |
PerlJam | It would be nice to get a TimToady post in there some where. | 19:24 | |
(or even outside the box of advent) | |||
Tene | I've currently got a secret christmas plan for Perl 6. :) | 19:25 | |
colomon | oooooo.... | 19:27 | |
PerlJam | I wonder how long the "Perl 6 doesn't exist" mythos will persist once we have an implementation in widespread adoption. | ||
frettled | PerlJam: for as long as it takes ;) | 19:28 | |
rgrau | I'd call it the 'nightmare before christmas' | 19:29 | |
PerlJam | A boxing day post could be interesting | ||
Wolfman2000 | I'll be back later | 19:31 | |
19:31
Wolfman2000 left
|
|||
colomon | My wife suggested that we had enough posters to keep the "cool Perl 6 thing a day" going well into 2010... | 19:32 | |
PerlJam | colomon: I tend to agree. | 19:33 | |
How about we take a break after Dec 24 and then start it up again on Jan 1 and see how it goes? | |||
(It wouldn't be called perl6advent anymore of course) | |||
colomon | I'd certainly be willing to pitch in. | 19:34 | |
PerlJam has errands to run; bbl | 19:35 | ||
colomon | BTW, we've broken 10,000 hits for today. | ||
moritz_ | \o/ | 19:36 | |
jnthn | We could do a series leading up to Rakudo *, and call it Wise Men. ;-) | 19:40 | |
jnthn bbiab - dinner | 19:43 | ||
moritz_ | I've written a first version of my Whatever post: perl6advent.wordpress.com/?p=158&am...eview=true | 19:46 | |
pmichaud: feel free to munge the last paragraph about Rakudo * to your liking, I think you can write about it much better than I can | 19:47 | ||
pmichaud | moritz_: will do (later tonight) | 19:48 | |
I was thinking of just a "Perl 6 Calendar" | |||
i.e., 365 postings about Perl 6 | |||
similar to other "cartoon a day" or "joke a day" calendars :-) | 19:49 | ||
mathw | I'm sure we could manage that... somehow | ||
rgrau | [eq] ("whatever", "*" , "star") ?? | ||
pmichaud | it wouldn't bother me if the calendar started on dec 1 :-) | ||
mathw | heh | 19:50 | |
I'm having enough trouble coming up with my third topic! | |||
pmichaud | mathw: there's a list of suggested topics in the perl6advent-2009 directory | ||
afaik we still don't have anyone covering the variations on the cross operator | 19:51 | ||
there's also reverse | |||
colomon | Rats! | 19:52 | |
Cats! | |||
TimToady | rgrau: all "*" eq "star", but not all "*" are "whatever" | ||
colomon | (does anyone understand Cat yet, actually? I've only noticed vague references to it....) | ||
TimToady | * is whatever only in term position | ||
19:52
fyskij left
|
|||
pmichaud | mathw: you're also free to steal from my use.perl.org/~pmichaud/journal/38080 post about sorting | 19:53 | |
(could use some extension, also) | |||
moritz_ | www.perlmonks.org/?node_id=809530 also has some things about sorting | 19:54 | |
mathw | hmm, reverse would be good | ||
since you didn' treally look at it in your metaoperators post | |||
it'd be fairly short though | |||
there's not much to say about reverse | |||
pmichaud | I think cross is an excellent one, though. | ||
arnsholt | true | ||
mathw | but maybe I shouldn't be writing an essay every time | ||
pmichaud | X, X~, X+, X*, etc. | ||
TimToady | maybe "X" X "R" | ||
RX, good for what ails ya... | 19:55 | ||
pmichaud | I also didn't cover the "triangle" form of reduce | ||
I don't see "series operator" in the list yet either | |||
mathw | triangle reduce? | ||
colomon | sequence operator! | 19:56 | |
TimToady | though series isn't lazy in master, afaik | ||
colomon | is someone recording these in topic-brainstorming? | ||
pmichaud | colomon: I'm updating topic-brainstorming now | ||
colomon | pmichaud++ | ||
19:56
TimToady sets mode: +vvvv buubot dalek hugme iblechbot,
TimToady sets mode: +vvvv ilbot2 ilogger2 IRSeekBot lambdabot,
TimToady sets mode: +vvv lisppaste3 p6eval phenny,
TimToady sets mode: +vvv pointme pugs_svn zaslon
|
|||
pmichaud | oh, I don't see anyone covering junctions yet either :-) | 19:57 | |
TimToady | nor allone | ||
mathw | junctions! | ||
TimToady | or would that be allnone? | ||
mathw | I'll do junctions! | ||
pmichaud | mathw: for Dec 13? | ||
mathw | yes | ||
I thought they should come before mucking around with traits | 19:58 | ||
virtually everything should come before that | |||
mathw cackles insanely | |||
pmichaud | triangle reduce is S03:4172, fwiw | ||
moritz_ | and NYI, iirc | 19:59 | |
pmichaud | oh, yeah. | ||
nyi | |||
moritz_ | rakudo: say ([\+] 1..5).perl | ||
TimToady just cackles, an lets everyone draw their own conclusions | |||
p6eval | rakudo 7ef386: say requires an argument at line 2, near " ([\\+] 1.."in Main (file src/gen_setting.pm, line 2593) | ||
TimToady | *and | ||
pmichaud | so, implement triangle reduce, then write an advent post about it :-) | ||
moritz_ | ng: say [*] 1, 2, 3 | ||
p6eval | ng d176dc: Confused at line 1, near "say [*] 1,"current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
mathw | pmichaud: just like that | ||
maybe if I didn't have a concert tomorrow I'd take you up on it | |||
pmichaud | I expect to have [*] and friends in ng implemented by the end of the week. | 20:00 | |
(and yes, *after* fixing iterators and lists) | |||
mathw applauds | 20:01 | ||
dbrock | what's function composition in perl6? | 20:02 | |
pmichaud | oh, we don't have hash.invert on the list either | ||
moritz_ | and hash.push | 20:03 | |
pmichaud | right | ||
moritz_ | those two go together | ||
pmichaud | I'm guessing masak++ will cover placeholders as part of parameter passing syntax? | ||
if not, that's another possible topic | 20:04 | ||
TimToady | dbrock: there's no explicit function composition operator such as Haskell has | ||
pmichaud | jnthn: oh, if you're looking for something to implement in ng -- enums would be a good bet :-) | 20:05 | |
20:06
athomason joined
|
|||
pugs_svn | r29286 | pmichaud++ | [advent] Some updated idea for advent entries. | 20:06 | |
pmichaud | idea*s* | ||
grrr | |||
Sometimes I really wish for an svn equivalent to "git commit --amend" | |||
20:06
KyleHa left
|
|||
pmichaud | and as it was it took me a minute to remember the svn equivalent of "git pull". | 20:07 | |
(apparently git koolaid has rotted my svn brane) | |||
TimToady | dbrock: it would not be terribly difficult to write one | ||
jnthn | pmichaud: Probably we want roles and classes more solidly in place first, but yes. | 20:08 | |
TimToady | probably best written as a macro when we have 'em | ||
pmichaud | jnthn: keep in mind that enums are no longer role-ish, iiuc | ||
jnthn | pmichaud: No, that's true, but a role can be derived from them when on the RHS of does and but. | 20:09 | |
pmichaud: That's just gonna be another multi candidate of does though. | |||
zaslon | lolfrettledhazblogged! frettled++ 'Failure()<0xb5323980>': Failure()<0xb5320924> | ||
jnthn | OH NO Failure again! | ||
TimToady | zaslon is a problem child.. | ||
pmichaud | jnthn: fair enough. I just know that we'll be blocking on enum stuff soonish (Order::* and others) | ||
dbrock | TimToady: ah, okay, thanks | ||
jnthn | pmichaud: Heh. Everything blocks on everything. ;-) | 20:10 | |
pmichaud: Wonder if we can move Bool to the setting. ;-) | |||
pmichaud | we need a few more circularity saws :-) | ||
TimToady | pmichaud: to the first approximation, you can write Order as a package of constants | ||
jnthn | Then that can be a proper enum too. | ||
colomon | TrigBase -- though we're not blocking on that because I've pulled the master hack into ng. | ||
frettled | OhnoIhavenotbloggedyet! | 20:11 | |
pmichaud | I'd be happy if we did 'constant' before 'enum' :) | ||
frettled: that's why zaslon said "Failure"? | |||
jnthn | my $dog is want('walk'); # back soon | ||
frettled | pmichaud: probably! | ||
pmichaud | ENOWANT | ||
jnthn | pmichaud: Yes, looking at the weather outside, that's just how I feel about this. :-) | ||
frettled | zaslon is now not merely reporting new blog posts, but also the lack of new posts. Clever. | 20:12 | |
jnthn puts the leash on and heads out into the cold | |||
pmichaud | weather here is +3C | ||
zaslon | lolfrettledhazblogged! frettled++ 'Oslo.pm Past and Future': howcaniexplainthis.blogspot.com/200...uture.html | ||
moritz_ | somhow I've seen that lines a few times before :-/ | ||
frettled | :( | ||
colomon | Finally up to 0C here. | ||
TimToady | supposed to go down to 0C here tonight; thinking about my baby avocado tree... | 20:13 | |
colomon | moritz_: In the past and the future too, perhaps? | 20:14 | |
moritz_ | avogadro tree: made of 6.022e23 molecules! | ||
quantumEd | lol | ||
mathw | so very small then? | ||
TimToady | still at risk from moles | ||
colomon is trying to resist blowing an hour studying petfinder.com again... | |||
frettled | Yahoo! Weather thinks it's 3 °C here now. | 20:15 | |
mathw | maybe it has 6.022e23 leaves | ||
moritz_ | mathw: a polymere molecule can have macrosocopic dimensions | ||
TimToady | y'know, there's a perfectly good Unicode chraacter for ℃ | ||
mathw | TimToady: but how do I type it? | ||
moritz_ | .u ℃ | ||
phenny | U+2103 DEGREE CELSIUS (℃) | ||
mathw | compose o C produces © | 20:16 | |
moritz_ thought Compose ° C | |||
mathw | I don't have a button for that | ||
20:16
ascent_ joined
|
|||
mathw has a british keyboard | 20:16 | ||
moritz_ | ah right, it's not on the US or GB keyboard | ||
mathw | irritatingly, no | ||
TimToady | .u degree celcius | 20:17 | |
phenny | TimToady: Sorry, no results for 'degree celcius'. | ||
TimToady | .u degree celsius | ||
phenny | U+2103 DEGREE CELSIUS (℃) | ||
TimToady | someone needs to add that as an input method | 20:18 | |
where it pops up all the unicode candidates that match some string | |||
or regex... | |||
pmichaud | I also find the tables at e.g., www.fileformat.info/info/unicode/ch.../index.htm to be useful at times | 20:19 | |
frettled | TimToady: that unicode character looks weird :D | ||
TimToady | once we get everyone used to input methods, we can teach everyone 日本語. :) | ||
mathw | that would be coolo | 20:20 | |
metcheck says it's 5C here, feels like 1C | |||
So not at all bad | |||
The cat just came back in, he's much less damp than he has been the last few evenings | 20:21 | ||
pmichaud creates a keyboard shortcut to the unicode tables | |||
mathw | weather assessment by cat: throw the cat outside and time how long until it returns | ||
moritz_ | cat sonar | ||
20:22
xinming_ joined
|
|||
jnthn | It's not so much at that it's cold...it's just that the damp makes it an unenjoyable one. | 20:26 | |
jnthn gets latest Rakudo ng built. | 20:27 | ||
mathw | yeah the damp is irritating | 20:28 | |
it was chucking it down earlier | |||
I got rather wet below my coat's extent | |||
pmichaud | we had our first soccer playoff game yesterday -- 5C and drizzling | 20:29 | |
mathw | and I take back what I said about the cat being dry, his paws are all wet | ||
pmichaud | I was surprised they didn't cancel the game... but I guess they figure that with all of the cancellations we've had this year we had better play it now | ||
mathw | he's drying them on my trousers | ||
mmm | |||
pmichaud | (we won 2-0, so we're in the final championship game for our division :-) | ||
mathw | I always hated football at school | ||
I never understood why they made us play it when it was cold | |||
and outside | |||
jnthn | Rugby was worse becuase it was all that + agression. | 20:30 | |
mathw | urgh yes | ||
I quite liked hockey, until people started trying to break my ankles | |||
jnthn | Most lethal, however, was hockey. | ||
20:30
KyleHa joined
|
|||
jnthn | ...lol... | 20:30 | |
:-) | |||
mathw | I wasn't popular | 20:31 | |
jnthn | Actually the other guys weren't so bad...it was the girls who were most dangerous! | ||
pmichaud | ..."were"? | ||
mathw | ah we never did those thing sin mixed groups | ||
jnthn | Freudian space? ;-) | ||
moritz_ likes table tennis. The only one how tried to break any limb there was ... moritz_ | |||
mathw | yeah I like table tennis | ||
jnthn | pmichaud: Well, I haven't played since I left school. ;-) | 20:32 | |
mathw | friend of mine used to play hockey really seriously | ||
jnthn | pmichaud: They may well be equally dangerous now though. :-) | ||
mathw | great fun | ||
jnthn | mathw: Oh, in terms of playing it I enjoyed it more than football or rugby. | ||
Was just a source of injuries. | 20:33 | ||
mathw | but he joined the police, and the shift patterns don't really fit very well with that sort of activity | ||
jnthn | I...want...faster...builds. | ||
:-/ | |||
moritz_ | jnthn: if you convince pmichaud to compile the core files separately, we can parallelize build much better | ||
20:34
mberends joined
|
|||
mathw | we have t odo that! | 20:34 | |
jnthn | moritz_: That doesn't help on a 1-core, hamster powered laptop... :-| | 20:35 | |
jnthn peaks at his order status again for the new one | |||
20:35
xinming left
|
|||
moritz_ | jnthn: maybe the cat could speed up the hamster? :-) | 20:35 | |
pmichaud | I have a couple of nqp-rx and past optimizations that should speed things up a bit. | ||
I'm fine with separate core builds, if someone else agrees to handle putting everything into a correct CORE lexical scope later. | |||
(actually, I'm fine with it even if that task falls to me :-) | 20:36 | ||
jnthn | pmichaud: Oh, if you're willing to do that task, I'm willing to agree to it. ;-) | ||
moritz_ is fine by that, and nominates pmichaud for that :-) | 20:37 | ||
pmichaud | (it just might take a while, and I want to make sure people understand the ramifications of a split) | ||
if it falls to me I also reserve the right to undo the split when I get around to dealing with CORE scope :) | |||
moritz_ was under the impression that pmichaud had the right to do virtually everything in rakudo | 20:38 | ||
pmichaud | troo | ||
I guess I just want to be able to do it and not hear lots of complaints about it :-) | |||
okay, I'll rephrase. | |||
I'm happy to allow a split to take place. | 20:39 | ||
Someone will eventually have to deal with getting everything into a core lexical scope. | |||
That someone may end up being me, which is fine. | |||
If it's me, then I may end up putting everything back into a single compilation unit, so this serves as fair warning to whoever does the split that your work may be undone at some unspecified point in the future. | |||
:-) | |||
good enough? | 20:40 | ||
moritz_ | right :-) | ||
mberends | a legally watertight disclaimer ;) | ||
moritz_ | ng: sub öä { say 'foo' }; öä | ||
p6eval | ng d176dc: foo | ||
moritz_ | ng: sub öä($x) { say $x }; öä 'foo' | ||
p6eval | ng d176dc: foo | ||
moritz_ wonders why that fails in t/spec/S02-lexical-conventions/unicode.t | 20:41 | ||
jnthn | huh? My build fails... :-S | 20:42 | |
moritz_ | ng: use Test; my sub äöü ($x) { 1000 + $x }; is (äöü 17), 1017, "Unicode subs with one parameter (parsed as listop)"; | ||
p6eval | ng d176dc: ok 1 - Unicode subs with one parameter (parsed as listop) | ||
jnthn | PackFile_unpack: This Parrot cannot read bytecode files with version 5.3. | ||
moritz_ | jnthn: is it complaining about Regex.pbc? | 20:43 | |
jnthn | moritz_: Yeah. | ||
moritz_: I used --gen-parrot and was sue it had realclean'd. | |||
moritz_ | jnthn: delete all .pbc files under runtime/, recompile | ||
in parrot | |||
pmichaud | parrot's realclean was missing a few dependencies, iirc | ||
moritz_ | right | ||
20:43
brody left,
rhr left,
frettled left,
pjcj left,
arnsholt left,
frew left,
revdiablo left,
meteorswarm left,
charsbar left,
sjohnson left,
PerlJam left,
jrockway left,
lambdabot left,
ilbot2 left,
gabiruh left,
zostay left,
Maddingue left,
IRSeekBot left
|
|||
moritz_ | and it's fixed, but only if you realclean *after* reconfigure :-) | 20:43 | |
20:44
frettled joined,
meteorswarm joined,
jrockway joined,
frew joined,
zostay joined,
charsbar joined,
brody joined,
rhr joined,
IRSeekBot joined,
Maddingue joined,
arnsholt joined,
gabiruh joined,
pjcj joined,
ilbot2 joined,
irc.freenode.net sets mode: +ovov frettled IRSeekBot arnsholt ilbot2,
revdiablo joined,
sjohnson joined,
lambdabot joined,
PerlJam joined,
irc.freenode.net sets mode: +vo lambdabot PerlJam
|
|||
mberends | how can anyone get any programming done with such a great backlog to read? | 20:44 | |
moritz_ | mberends: by igoring or skimming :-) | 20:45 | |
colomon | mberends: only read backlog while you are waiting on make spectest | ||
pmichaud | lol | ||
jnthn | mberends: Drink LOTS of red bull and stay up all night so you can do both. | ||
moritz_ | ah, I think I know what's wrong... | ||
pmichaud | type "make spectest", then finish War-And-Peace. | ||
moritz_ | there's a my sub äöü () { 42 } | ||
earlier in the file | |||
so maybe it's picking the earlier variant | 20:46 | ||
are lexical subs supposed to work in ng? | |||
jnthn | moritz_: subs are leixcal by default in ng | ||
moritz_ | rakudo: { sub f () { say 1 } }; { sub f ($x) { say $x }; f(3) } | ||
jnthn | In theory. | ||
p6eval | rakudo 7ef386: Too many positional parameters passed; got 1 but expected 0in Main (file src/gen_setting.pm, line 324) | ||
jnthn | wtf. | ||
moritz_ | rakudo: { my sub f () { say 1 } }; { my sub f ($x) { say $x }; f(3) } | ||
jnthn | Oh | ||
p6eval | rakudo 7ef386: 3 | ||
moritz_ | forgot the my's | ||
ng: { my sub f () { say 1 } }; { my sub f ($x) { say $x }; f(3) } | 20:47 | ||
p6eval | ng d176dc: sh: ./perl6: No such file or directory | ||
moritz_ | grrrrr | ||
ng: { my sub f () { say 1 } }; { my sub f ($x) { say $x }; f(3) } | |||
p6eval | ng d176dc: sh: ./perl6: No such file or directory | ||
jnthn | moritz_: 1 less r and that'd have been a highlight for someone ;-) | ||
moritz_ | ng: { my sub f () { say 1 } }; { my sub f ($x) { say $x }; f(3) } | ||
p6eval | ng d176dc: 3 | ||
moritz_ | ng: use Test; plan 2; { my sub äöü () { 42 } | 20:48 | |
p6eval | ng d176dc: Unable to parse blockoid, couldn't find final '}' at line 1current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (src/stage0/Regex-s0.pir:907) | ||
moritz_ | ng: use Test; plan 2; { my sub äöü () { 42 }; is (äöü), 42, "Unicode subs with no parameters"; | ||
p6eval | ng d176dc: Unable to parse blockoid, couldn't find final '}' at line 1current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (src/stage0/Regex-s0.pir:907) | ||
moritz_ | gah | ||
jnthn | ng: my $a := 1; my $b := 2; my $c := $a; say($a =:= $b); say($a =:= $c); | ||
p6eval | ng d176dc: Confused at line 1, near "my $a := 1"current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336) | ||
jnthn | nqp: my $a := 1; my $b := 2; my $c := $a; say($a =:= $b); say($a =:= $c); | ||
p6eval | nqp: 01 | ||
jnthn | \o/ | ||
jnthn wanted it in nqp anyway. | |||
lisppaste3 | moritz_ pasted "lexical subs with non-ASCII fail in ng" at paste.lisp.org/display/91730 | 20:49 | |
moritz_ | ng: sub f(:$ä) { say $ä }; f(:ä<argl>) | 20:51 | |
p6eval | ng d176dc: Malformed UTF-8 stringcurrent instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 972 (src/PCT/HLLCompiler.pir:538) | 20:52 | |
lisppaste3 | pmichaud pasted "fails in nqp also" at paste.lisp.org/display/91731 | ||
moritz_ | same error here locally | ||
pmichaud | I'm guessing it's the imcc bug issue | 20:54 | |
20:54
yahooooo joined
|
|||
pmichaud | they're in the same namespace, so imcc ends up short-circuiting the function call. | 20:54 | |
(to the wrong function) | 20:55 | ||
I thought that particular bug was fixed.... but apparently not. I'll clean up the PIR and reopen the trac ticket for it. | 20:56 | ||
20:57
Lorn left
20:59
rfordinal joined
|
|||
colomon | pmichaud: is that the one that messes up operators frequently in ng? | 20:59 | |
pmichaud | frequently messes up a lot of stuff, yes. | ||
in ng and master | |||
20:59
SmokeMachine left
|
|||
jnthn | pmichaud: Huh? Wasn't the conclusion that it wasn't a bug as such? :-| | 21:00 | |
pmichaud | the fact that imcc offers a short-circuit capability is not a bug. the fact that it short-circuits things that it clearly shouldn't *is* a bug. | ||
jnthn | pmichaud: Yes, but how does it know that it shouldn't in this case? | ||
erm, in the multi case that is... | 21:01 | ||
pmichaud | because there's a lexical symbol of the same name in scope | ||
jnthn | ah, ok | ||
moritz_ | does imcc even know about lexicalsß | ||
jnthn | :-) | ||
pmichaud | moritz_: yes, it has to | 21:02 | |
jnthn | moritz_: Yes | ||
pmichaud | moritz_: as it's the thing that processes the :outer flags and the .lex declarations | ||
pmichaud is seriously tempted to simply replace subroutine calls with explicit "find_sub_not_null" opcodes in PCT | 21:03 | ||
jnthn | pmichaud: Let the temptation take you in! | 21:04 | |
pmichaud | I'll reopen the ticket first. if it's not fixed quickly, we'll switch to the explicit opcode | ||
jnthn | pmichaud: I might dare to start looking at S06-multi/* if you do. :-) | ||
huh | 21:06 | ||
now ng gives me a build error | |||
perl6_ops.obj : error LNK2001: unresolved external symbol _GETATTR_CallSignature_results | |||
jnthn isn't sure how he can get that but nobody else. :-/ | |||
pmichaud | I haven't tried building ng very recently. Also, are you using Parrot HEAD? | 21:07 | |
there was a recent branch merge dealing with CallSignature stuff, iirc | |||
jnthn | I used --gen-parrot | ||
oh joy | |||
colomon | jnthn: which is almost parrot head -- I bumped it to HEAD a day or two ago. | ||
pmichaud | I think the branch merge was within the last 48 hours. | 21:08 | |
jnthn | hmm, but given svn reports I'm "At revision 42920." and that's what's in PARROT_REVISION... | 21:09 | |
pmichaud | let me see if ng builds on my box | ||
(make take a bit of time -- have to rebuild parrot also) | 21:10 | ||
jnthn | pmichaud: Thanks. If so, I'll just nuke my Parrot tree. | ||
colomon | I bumped PARROT_REVISION 22 hours ago according to github. | ||
I did do rm -rf parrot parrot_install in the process on my local machine, mind you. | 21:11 | ||
PerlJam | I think there are files that are generated by parrot that aren't cleaned with "make realclean" yet should be | 21:14 | |
21:15
rfordinal3643 left
|
|||
pmichaud | that seems likely. | 21:15 | |
jnthn: builds for me here locally. | 21:17 | ||
I'm guessing nuke the parrot trees and try that. | |||
Tene | pmichaud: Is there anything specific you'd like me to work on in ng? I've been planning to work on Failure and Exception and friends if not. | 21:18 | |
pmichaud | Tene: that sounds good to me. | 21:19 | |
jnthn | pmichaud: Heh. The time builds take here, I might not actually get to running any of the code I write tonight. ;-) | ||
21:20
synth left
|
|||
pmichaud | tene: if you can get a reasonable approximation of failure/exception in place, that will help a fair bit with my other tasks. | 21:20 | |
21:20
synth joined
|
|||
Tene | pmichaud: for 'use fatal', how evil would it be to have that explicitly in the grammar? Does 'fatal' need to really be 'fatal.pm', or can I cheat? | 21:21 | |
pmichaud | cheat for now is fine with me. | ||
21:22
Max joined
|
|||
pmichaud | don't go overboard with it, though -- 'use' is one of those things that will get an upgrade very soon | 21:22 | |
Tene | pmichaud: if you can enumerate specific exceptions-related things you'd like to do reasonably, that might be nice, but isn't necessary. | ||
Tene nods. | |||
21:22
Max is now known as Guest99265
|
|||
Tene | All i need to do is translate it into a dynamic var definition. | 21:22 | |
my $*FATAL = Bool::True; | |||
21:23
Guest99265 left
|
|||
Tene | So, simple. | 21:23 | |
PerlJam | Weird ... I just got asked about Perl 6 *twice* in one day from localish people. | ||
pmichaud | mainly just need for fail() to work properly, and attempting to use a failure value to throw an exception | ||
Tene | Okay, that's doable. | 21:24 | |
TimToady | PerlJam: now you know who reads slashdot | ||
pmichaud | PerlJam: I think the perl6advent calendar is significantly upping the awareness level. Having Tim O'Reilly tweet about the calendar was likely a big boost. | ||
PerlJam | TimToady: heh! | ||
TimToady | or follows Tim O | ||
Tene | The only big problem I'm having is that the get_bool vtable override set in Mu doesn't actually apply to user-defined classes. | ||
pmichaud | Tene: to user-defined classes, or to the builtin-defined classes? | 21:25 | |
Tene | rakudo: class Foo { method Bool { say "lol"; 0 } }; my Foo $a .= new; say 'wtf' if $a; | ||
p6eval | rakudo 7ef386: ( no output ) | ||
moritz_ | ng: class Foo { method Bool { say "lol"; 0 } }; my Foo $a .= new; say 'wtf' if $a; | 21:26 | |
p6eval | ng d176dc: wtf | ||
pmichaud | I think it's 'true' in master. | ||
Tene | right, should have been ng. | ||
pmichaud | looks like it works in ng :-) | ||
oh, wait. | |||
moritz_ | it does not. | ||
Tene | "Does not!" -- "Does too!" | 21:27 | |
21:27
Lorn joined
|
|||
pmichaud | rakudo: class Foo { method true { say 'lol'; 0 } }; my Foo $a .= new; say 'wtf' if $a; | 21:27 | |
p6eval | rakudo 7ef386: ( no output ) | ||
PerlJam | uh oh ... *I* shouldn't have looked at slashdot | 21:28 | |
moritz_ | pmichaud: p6eval + rakudo + class defintion = timeout | ||
PerlJam | TimToady-- for mentioning it :( | ||
jnthn | PerlJam: /. is really that bad? ;-) | 21:29 | |
21:32
cdarroch_ joined
|
|||
moritz_ | perl6advent.wordpress.com/2009/12/0...comment-56 seems like people like MMD :-) | 21:33 | |
21:33
cdarroch left
|
|||
mathw | MMD is something easy to get the hang of | 21:34 | |
because people are used t omethod overloading | |||
TimToady | moritz_: say Mu; should say Mu() still; it's ~ that warns, not .Str, by current spec | 21:39 | |
dbrock | rakudo: class A {}; class B {}; my A $x = B.new | 21:40 | |
moritz_ | but say Mu ~ '' says \n only? | ||
p6eval | rakudo 7ef386: ( no output ) | ||
TimToady | no, say doesn't use ~ | 21:41 | |
sorry | |||
misread | |||
moritz_ | dbrock: somehow p6eval has problems with class defintions - that's not a rakudo problem though | ||
TimToady | the ~ will warn and just produce \n, yes | ||
and "$foo stuff" is considered a form of ~ | 21:42 | ||
moritz_ | I thought say() used .Stringy, in order to allow direct conversion to Buf? | ||
TimToady | likewise ~$foo | ||
well, it ought to just use .Buf :) | |||
in any case, say has to use something very primitive | |||
so that junctions also print rather than autothreading | 21:43 | ||
dbrock | moritz_: hmm, so it doesn't just feed the code into rakudo? | ||
TimToady | I've been thinking of .Str as primitive compared to ~ | ||
and .Num as primitive compared to + | |||
moritz_ | dbrock: it does, but it has some resource limits that get in the way (I think) | 21:44 | |
TimToady | .Stringy and .Numeric are more dwimmy | ||
rather than primitive | |||
moritz_ | I've been thinking differently about it, from the object's point of view | ||
TimToady | in fact, ~ is .Stringy, I think, and + is .Numeric | ||
moritz_ | .Stringy and .Numeric give the object more freedom | 21:45 | |
.Str just allows somethiing that returns Str, while .Numeric also allows Bufs | |||
TimToady | say isn't into giving freedom, anyway | ||
so probably say really uses .Buf, or .Str.Buf, or some such | |||
moritz_ | maybe it should use .Buf, which in Object defaults to .Str.Buf | 21:46 | |
erm, .Str.encode() or so | |||
TimToady | (modulo encoding... right | ||
Tene | 14:45 < treed> say <huey dewey loiue>.fmt # 'huey dewey louie' | ||
14:45 < treed> wow, .fmt even fixes typos! | |||
moritz_ | that's really magical! | ||
sjohnson | rakudo: say <huey dewey loiue>.fmt | 21:49 | |
p6eval | rakudo 7ef386: huey dewey loiue | ||
sjohnson | <-- works for myth busters | ||
dbrock | haha | 21:52 | |
21:53
alester left
|
|||
jnthn | Gah! I get the same compilation failure, even after building with a completely clan Parrot tree. | 21:56 | |
*clean | |||
I assume nobody else is having problems building ng? :-/ | 21:57 | ||
Tene | jnthn: do you have an installed parrot? | ||
jnthn | Tene: Jus tusing --gen-parrot | 21:58 | |
Tene: I don't believe I have an installed one elsewhere | |||
Tene | jnthn: you might need to "git clean -xdf" your rakudo tree. That'll remove *all* untracked files. | ||
jnthn | Tene: Certainly, there ain't one in my path. | ||
pugs_svn | r29287 | lwall++ | [S03,S12] remove redundant .Int and .true in describing conditional semantics | 21:59 | |
jnthn | Tene: Oddly, I'm missing Parrot_ext_call too. Hm | 22:00 | |
Ah, that was a missing #include for extend.h...wonder why it didn't show up for @other. | 22:05 | ||
22:06
Exodist joined,
huf joined
|
|||
jnthn | ng: sub foo($x) { $x + 1 }; my $j = foo(any(1,2,3)); say $j.perl | 22:06 | |
p6eval | ng d176dc: Method 'Num' not found for invocant of class 'Junction'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1) | ||
jnthn | ng: sub foo(Any $x) { $x + 1 }; my $j = foo(any(1,2,3)); say $j.perl | ||
p6eval | ng d176dc: Method 'Num' not found for invocant of class 'Junction'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1) | ||
jnthn | wtf | ||
ng: say Junction ~~ Any | 22:07 | ||
p6eval | ng d176dc: 1 | ||
jnthn | ffs | ||
22:08
payload joined
|
|||
jnthn | OK, I don't understand how Rakudo builds for anyone. | 22:08 | |
ng that is | |||
Given that GETATTR_CallSignature_results doesn't appear to be defined any more in Parrot. | 22:09 | ||
Tene | WFM | 22:10 | |
jnthn | Tene: That's...odd. | 22:12 | |
Tene: So what does is get resolved to? | |||
During the compile? | |||
arnsholt | Make sure you guys have the same Parrot rev? | ||
jnthn | 42920 | 22:13 | |
Tene | jnthn: what? | ||
jnthn | Tene: What Parrot revision have you got? | ||
Tene | 42896 | ||
jnthn | Tene: Right. And in latest ng PARROT_REVISION is 42920. | 22:14 | |
What I don't get is why nobody else who has pulled latest doesn't see this though. | 22:15 | ||
Tene | Oh, I'm behind. | ||
STD: my @list = 5 <<+>> 6; | 22:19 | ||
moritz_ | lc | ||
Tene | Ah. | 22:20 | |
std: my @list = 5 <<+>> 6; | |||
p6eval | std 29286: ok 00:01 108m | ||
Tene | but that's quote, not hyper. | ||
moritz_ | std: my @list = 5 << foo bar >> 6 | ||
p6eval | std 29286: ===SORRY!===Obsolete use of << to do left shift; instead, in Perl 6 please use +< or ~< at /tmp/hib8IKIxLv line 1:------> my @list = 5 << ⏏foo bar >> 6FAILED 00:01 106m | ||
jnthn | Ugh...looks like Parrot changed how returns are stored. :-/ | 22:21 | |
Tene | Oh, what? | ||
jnthn | Yeah | ||
moritz_ | Tene: if it were a quote, it would be two terms in a row | ||
jnthn | CallSignature now seems to no longer have a results attr | ||
Tene | Ah. | ||
So, what does pointy on both sides do? | 22:22 | ||
jnthn | <-> is like -> but makes args rw by default. | ||
Tene | rakudo: say (5 <<+>> 6).perl; | ||
jnthn | oh | ||
p6eval | rakudo 7ef386: [11] | ||
jnthn | still hypers | ||
auto-upgrades. | |||
both sides. | |||
Tene | jnthn: so, makes an infinite list of both sides? | ||
jnthn | Well, not infinite. | ||
Tene | I thought that pointy side also auto-extended, yes? | ||
jnthn | Yeah but only to the maximum that is required. | 22:23 | |
Tene | ah | ||
jnthn | And given both sides are considered a list of one thing... | ||
...you get a list of one thingy back. | |||
22:42
KyleHa left
22:44
jferrero joined
22:46
kaare_ left
22:47
iblechbot left
22:51
nihiliad left,
nihiliad joined
|
|||
dalek | kudo/ng: 8d15415 | jnthn++ | src/ops/perl6.ops: Chase a Parrot change that broke our junction auto-threading code. |
23:00 | |
moritz_ | lemme guess... we had no tests for that activated? | 23:01 | |
ng: say True | 23:08 | ||
p6eval | ng d176dc: 1 | ||
moritz_ | ng: say Bool::True | 23:09 | |
p6eval | ng d176dc: 1 | ||
moritz_ | ng: say True.WHAT | ||
p6eval | ng d176dc: Bool() | ||
moritz_ | ng: say True.name | 23:10 | |
p6eval | ng d176dc: Method 'name' not found for invocant of class 'Bool'current instr.: '_block14' pc 29 (EVAL_1:0) | ||
moritz_ | ng: say True.perl | ||
p6eval | ng d176dc: 1 | ||
TimToady | ng: say True.key | ||
p6eval | ng d176dc: Method 'key' not found for invocant of class 'Bool'current instr.: '_block14' pc 29 (EVAL_1:0) | ||
TimToady | (.name no longer specced) | 23:11 | |
moritz_ | replaced by? | ||
TimToady | .key | ||
jnthn | ng: say Mapping | 23:12 | |
p6eval | ng d176dc: Could not find non-existent sub &Mappingcurrent instr.: '_block14' pc 29 (EVAL_1:0) | ||
moritz_ | kinda makes sense | ||
jnthn | oh. | ||
TimToady | hasn't been a Mapping type for some time now | ||
jnthn | wtf? | ||
TimToady: What's it called now? | |||
And when did it die? | |||
moritz_ | there is still a Mapping type | ||
but it's not used for enums | |||
jnthn | OK, now one of you is telling me there is a Mapping type and the other one of you is saying there isn't. :-) | 23:13 | |
TimToady | well, yes and no | ||
constant Pairs are now called Enums | |||
so its an EnumMap | |||
jnthn | OK, what should EnumMap inherit from? | ||
23:13
romanhunt joined
|
|||
romanhunt | good day all | 23:13 | |
jnthn | ah...damm. | ||
moritz_ should better shut up, he's not up-to-date anymore | |||
jnthn | TimToady: Heh. I'd just gone and defined Enum as...something a tad fancier. | ||
moritz_ | hello romanhunt | 23:14 | |
jnthn | TimToady: On the up side, I defined it as a parametric role, so that's fine, the parameterless version can be more normal. ;-) | ||
TimToady: Decided we'd have a crack at writing the enum implementation in the setting, just for fun. :-) | |||
romanhunt | anyone got a seconf to explain the concept of "Whatever" | ||
as in Whatever.pm | |||
TimToady | does your Enum role define a whole enumeration, or only one Enum pair? | 23:15 | |
if the former, it should be called Enumeration instead | |||
moritz_ | romanhunt: when Whatever is used as term (like in *+2), it returns a closure | ||
romanhunt | I was looking into possibly trying to fix the range to infinity todo | ||
moritz_ | rakudo: say (*+2)(20) | ||
p6eval | rakudo 7ef386: 22 | ||
jnthn | TimToady: No, it only defines one value. | 23:16 | |
moritz_ | romanhunt: whatever you do, please do it in the 'ng' branch of rakudo, not in master | ||
TimToady | good | ||
jnthn | TimToady: I was doing $value but Enum[$key, $value, $enumeration] to get the thingy we install in the namespace :-) | ||
pugs_svn | r29288 | moritz++ | [t/spec] unfudge some ord/chr tests for rakudo; ord("") should be undef | ||
moritz_ | romanhunt: there you have a slight chance of lazy lists beingaccessible | ||
TimToady | but why does it need to be a role? | ||
pugs_svn | r29289 | moritz++ | [t/spec] .name on enums is now called .key | 23:17 | |
jnthn | TimToady: Surely giving the enum values that we're going to stick in the namespace some extra functionality is best done by mixing an enum into them? | ||
damm | |||
*mixing a *role* into them | 23:18 | ||
TimToady: It should all work out pretty naturally then. | |||
romanhunt | does that require git'ing a branch other than the one described in the "workflow" example on rakudo.org? | ||
I apologize for my ignorance | |||
moritz_ | romanhunt: git checkout -b ng --track origin/ng | ||
then perl Configure.pl; make spectest | |||
TimToady | well, we're now trying to keep straight at least our terminology; I'm calling the whole set of enums an enumeration so we don't confuse that with individual enums | 23:19 | |
something that installs a whole enumeration shouldn't be called an Enum | |||
romanhunt | thx. thias is my forst attempt at being part of a large project other than sending patches to openbsd upstream to various maintainers | ||
TimToady | the only vestive of the former use is that the keyword is still "enum" instead of "enumeration" | ||
moritz_ | romanhunt: welcome, and have fun! | ||
jnthn | TimToady: no, no...I'm using Enum as the role we mix into an *individual* value. | 23:20 | |
TimToady: Which menas it's the value + the extra few methods. | |||
TimToady | okay | ||
jnthn | TimToady: Heh, I should probably stop talking about the code and just throw it into git. :-) | 23:21 | |
moritz_ | romanhunt: also pmichaud was planning to do some work on (lazy) lists and iterators this week, it might be worth coordinating with him when he shows up | ||
TimToady | as long as it ends up constant on both key and value | ||
jnthn | TimToady: It won't run yet, but it's a sketch... | ||
TimToady: I figure if we can work out how to define enum in Perl 6 itself though, it gets a lot easier to discuss how things all fit together. | |||
TimToady | nodnod | 23:22 | |
romanhunt | moritz: thx will do | 23:27 | |
23:32
tarski left
|
|||
pugs_svn | r29290 | lwall++ | [STD] slight tweaks to obsolscence messages | 23:36 | |
TimToady | *obsolescence | ||
(they now say "Unsupported use" to be less judgemental :) | |||
23:37
wayland76 joined
|
|||
jnthn | Perl 5ish use of...? :-) | 23:38 | |
colomon | romanhunt: the only reason we don't have Inf endpoints in ranges at the moment is the lazy iterator interface hasn't been put in place. We'll probably have full Ranges within about 24 hours of that landing. | 23:39 | |
jnthn | (Even clearer that it's something from Perl 5 that you should not expect to work in Perl 6...unsupported could be taken as "this implementation doesn't do it yet", that's all...) | ||
mberends | jnthn: good ol' use of... | ||
jnthn | ;-) | 23:40 | |
dalek | kudo/ng: e07f8d5 | jnthn++ | src/metamodel/ (5 files): Start to fill out the role composition algorithm some more; preliminary but not yet working handling for passing along parents, composing attributes and passing along requirements. Also a couple more steps to RoleHOW being independent of Parrot's Role PMC and just being a standalone metaclass. |
||
kudo/ng: 2069f24 | jnthn++ | src/core/enum.pm: Throw in some initial thoughts on what enumerations implemented in Perl 6 could look like. Rakudo actually can compile this, but we don't include it in core yet, and it certainly won't quite work yet either. |
|||
TimToady | jnthn: well, someone might hack in 'use P5ish;' and then it would be supported. :) | 23:41 | |
but I think the undercurrent of "Unsupported (and will never be supported)" is probably strong enough, and little harm done if not. | 23:42 | ||
jnthn | TimToady: *nod* | 23:43 | |
TimToady | though we might have a "Deprecated" variant, I suppose... | ||
jnthn | TimToady: I'm was thinking of folks coming from a 5 background, playing with 6 for the first time, and writing 5isms...and if the message is clear enough that they should be using a different construct. | ||
romanhunt | colomon: thx | ||
jnthn | std: say $$ | 23:44 | |
p6eval | std 29289: ===SORRY!===Anonymous variable requires declarator at /tmp/awhUSNbHGA line 1:------> say $$⏏<EOL> expecting twigilFAILED 00:02 107m | ||
jnthn | oh, that wasn't quite what I expected :) | ||
std: say $^O | |||
p6eval | std 29289: ===SORRY!===Obsolete use of $^O variable; instead, in Perl 6 please use $?OS or $::OS at /tmp/67tHqeT5TF line 1 (EOF):------> say $^O⏏<EOL>FAILED 00:01 105m | ||
jnthn | oh, that's not bad. | ||
Because of the "in Perl 6" bit. | 23:45 | ||
TimToady | I think the "in Perl 6 please use" is strong enough | ||
jnthn | TimToady: Yes. | ||
TimToady | I also dropped the "instead" | ||
since it's already implied | |||
jnthn | TimToady: I'd forgot it said "in Perl 6" later on in the message. | ||
In that case, I'm happy. :-) | 23:46 | ||
colomon | Woah, if we could get twenty more hits on the perl 6 Advent calendar in the next 15 minutes, we'd have 11,000 for the day.... | ||
mberends | it's a really grand way to say it | ||
dalek | kudo/ng: 2edef04 | jnthn++ | src/Perl6/Compiler/Role.pm: Get role code generation using the attribute meta-protocol properly. |
||
kudo/ng: fcdef68 | jnthn++ | src/metamodel/RoleToClassApplier.nqp: Add missing helper sub that I forgot to implement in the role composer. |
|||
jnthn | mberends: Your English is very English today. :-) | ||
mberends | jnthn: most be some heimweh ;) | ||
TimToady | here it says: Unsupported use of $^O variable; in Perl 6 please use $?OS or $::OS at... | ||
mberends | *must, gah | 23:47 | |
jnthn | TimToady: in something like "has $.x = 42" does STD already have something in it that knows that the RHS there actually wants to be promoted to something more special? | 23:48 | |
TimToady: that is, that this isn't really just an assignment? | |||
I need to get ng handling that construct again...it's blocking me on passing a roles spectest... | |||
And probably other tests. | 23:49 | ||
But not sure quite how to put it back in. | |||
Well, I know *a* way, but pmichaud will probably glare at me for it. ;-) | |||
TimToady | not explicitly, but I'd do it with a reducecheck, if I were to do it in the grammar | 23:50 | |
in any case, sometime after the = reduces both its arguments, which means no sooner than the opp reduction | 23:51 | ||
(which is when a reducecheck runs) | 23:52 | ||
basically, any assignment has to look at the left side to see what kind of target is implied, and declarators are just one example of that | |||
colomon | comment about [Z] on the Advent blog: | ||
23:52
nihiliad left
|
|||
colomon | rakudo: my @a = 1, 2, 3; my @b = 4, 5, 6; my @c = @a, @b; say ([Z] @c).fmt; | 23:52 | |
p6eval | rakudo 7ef386: Confused at line 2, near "@c).fmt;"in Main (file <unknown>, line <unknown>) | 23:53 | |
jnthn | TimToady: OK. | ||
colomon | rakudo: my @a = 1, 2, 3; my @b = 4, 5, 6; my @c = @a, @b; say @c.perl | ||
p6eval | rakudo 7ef386: [1, 2, 3, 4, 5, 6] | ||
colomon | rakudo: my @a = 1, 2, 3; my @b = 4, 5, 6; my @c = \@a, \@b; say @c.perl | 23:54 | |
p6eval | rakudo 7ef386: [[1, 2, 3], [4, 5, 6]] | ||
carlin | Argh, I thought I had fixed zaslon's failure problem | ||
colomon | rakudo: my @a = 1, 2, 3; my @b = 4, 5, 6; my @c = \@a, \@b; say [Z] @c; | ||
p6eval | rakudo 7ef386: Confused at line 2, near "@c;"in Main (file <unknown>, line <unknown>) | ||
23:54
zaslon left
23:55
fridim_ left
|
|||
colomon | Is [Z] simple NYI? | 23:55 | |
TimToady | I suspect rakudo doesn't know about [Z] | ||
all its metaops are hardwired currently | |||
that will be fixed when ng reimplements them as higher-order functions | 23:56 | ||
colomon | Should [Z] work? (In ideal p6, I mean.) | ||
TimToady | std: [Z] 1,2 | ||
p6eval | std 29290: ok 00:01 108m | ||
23:56
zaslon joined
|
|||
TimToady | STD thinks it's fine | 23:57 | |
it's not too fiddly, or diffy | |||
std: [&&] 1,2 | |||
colomon | I wasn't sure if the meta operators were defined on list operators or not. | ||
p6eval | std 29290: ok 00:01 106m | ||
TimToady | std: [==>] 1,2 | 23:59 | |
p6eval | std 29290: ===SORRY!===Can't reduce ==> because sequencer operators are too fiddly at /tmp/aNcZcLOCIU line 1:------> [==>]⏏ 1,2 expecting prefix_circumfix_meta_operator__S_258reduceFAILED 00:01 104m | ||
TimToady | std: [,] 1,2 | ||
p6eval | std 29290: ok 00:01 106m | ||
23:59
am0c left
|