»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:31
quietfanatic left
00:35
att left
00:36
whiteknight joined
00:37
whiteknight is now known as Guest17151
00:48
atrodo left
01:02
scott_ joined
01:03
scott_ is now known as Guest86312
01:04
xinming joined
01:29
tokuhirom joined
01:47
Guest17151 left
01:52
fgomez joined
01:55
mattp_ left
01:56
adu joined,
mattp_ joined
02:06
quietfanatic joined
02:08
rsimoes left
02:13
rsimoes joined
02:27
orafu left,
orafu joined
02:36
telex left
02:37
cognominal joined
|
|||
sorear | o/ cognominal | 02:40 | |
02:40
cog_ left
02:41
telex joined
02:50
Entonian joined
02:51
Entonian left
02:52
leprevost joined
03:03
tokuhirom left
03:04
tokuhirom joined
03:08
tokuhirom left
03:22
baest left
03:28
kurahaupo left
03:33
baest joined
03:41
am0c joined
03:42
jaldhar joined
03:43
kurahaupo joined
03:53
sudokode left
04:03
sudokode joined
04:42
[particle]1 is now known as [particle]
04:54
estrai left
04:55
estrai joined
05:14
GlitchMr joined,
leprevost left
|
|||
masak | morning, #perl6 | 05:41 | |
sorear | o/ masak | 05:48 | |
05:51
kaleem joined,
odoacre joined
05:52
birdwindupbird joined
|
|||
masak has one more day of teaching, and then can focus on reintegrating his consciousness with that of #perl6 | 05:58 | ||
06:01
wtw joined
|
|||
adu | morning | 06:16 | |
tadzik | morning | ||
adu | my consciousness will be here | ||
sorear is struggling to work out parsing details in non-bootstrap | 06:21 | ||
06:27
GlitchMr left
06:34
sisar left
06:38
sisar joined
|
|||
adu | sorear: what is non-bootstrap? | 06:45 | |
did you mean nom? | 06:48 | ||
06:48
adu left
06:51
cog_ joined
06:55
cognominal left
07:15
kresike joined
|
|||
kresike | good morning all you happy perl6 people | 07:15 | |
tadzik | hello kresike | 07:17 | |
07:18
fhelmberger joined
|
|||
kresike | hello tadzik | 07:18 | |
sorear | hello tadzik and kresike. | ||
kresike | sorear, o/ | 07:19 | |
07:23
sudokode left
07:25
[particle]1 joined
07:28
[particle] left,
sisar left
07:29
sisar joined
|
|||
moritz | \o * | 07:36 | |
kresike | moritz, o/ | ||
moritz just got Finnish spam mail, and the spam filter did not recognize it | 07:40 | ||
tadzik | sjn: ping | 07:42 | |
jnthn | morning o/ | ||
tadzik | hello jnthn | ||
sjn | tadzik: pong | ||
tadzik | sjn: when do Oslo.pm meetings usually start? 18? | 07:43 | |
sjn | jnthn: hey, you're one of those guys that haven't signed up for the moose hackathon yet! :) | ||
tadzik: yeah, something like that... 18:30 most times, but sometimes earlier | 07:44 | ||
jnthn | sjn: I did the initial bit of the registration, just didn't get through all of the other steps :) | ||
sjn: I'll get to it very soon. | |||
sjn: Things have been...busy. | |||
sjn | place and time are usually announced om the mailing list a few days before (or on the same day, if we're lazy:) | ||
jnthn: please do it today | 07:45 | ||
tadzik | sjn: ok, we'll be there with zby on 90%-ish chances | ||
sjn | jnthn: the sign-up deadline is hard. I *have to* send a complete list of attendees to the hotel, and can't add any new names after the cut-off date | 07:46 | |
jnthn: meaning, if you "forget" to sign up much longer now, you'll miss the boat | 07:47 | ||
and there's no chance to get the next one | |||
the finality of this final deadline is *very* final, deadly and line-shaped! :) | 07:48 | ||
07:48
kurahaupo left
|
|||
frettled | It's an actual deadline! The line will be dead! | 07:52 | |
jnthn | OK, I've done sign-up now. You can relax (at least, about me :)) | ||
kresike | How does one distinguish a dead line from a live one ? | ||
jnthn | sjn: ^^ | 07:53 | |
frettled | jnthn++ :) | ||
jnthn | This is the first day in a while when I have loads of free time to actually do stuff. | ||
frettled is not an organiser or disorganiser this time. | 07:54 | ||
jnthn | Like, clear up my ridiculous email backlog :) | ||
frettled | jnthn: wow! Time to go out and enjoy the sunshine (if you have any) ;) | ||
jnthn | Yes, we have some :) | ||
I'll try and do that too :) | |||
07:55
DarthGandalf left
|
|||
sjn | jnthn: great! :) | 07:55 | |
07:57
am0c_ joined
|
|||
sorear | I... think I will probably have to pass on this. | 07:57 | |
sjn | jnthn: ok, I've confirmed your attendance now | 08:00 | |
jnthn | sjn: Great. :) | 08:02 | |
08:02
brrt joined
|
|||
shachaf | If you're golfing and you come up with a program which is correct but which no computer will ever finish computing more than a few digits of the output of, does it count? | 08:02 | |
moritz 's handicap is too bad to answer that :-) | 08:15 | ||
08:19
am0c_ left,
am0c_ joined
08:20
dakkar joined
08:43
sisar left,
sisar joined
09:18
cog_ left
09:19
cognominal joined
09:22
cognominal left
09:24
cognominal joined
09:29
cog_ joined,
cognominal left
09:47
snearch joined
09:59
yves_ joined
10:01
noam left
10:02
noam joined
10:08
Guest86312 left
10:30
ab5tract joined
10:31
daxim joined
10:47
ab5tract left
10:50
noam left
10:51
noam joined,
jaldhar left
10:52
spider-mario joined,
jaldhar joined
10:55
VXZ left,
noam left
10:56
noam joined
10:58
noam left
10:59
noam joined,
noam left,
noam joined
11:00
noam left
11:01
noam joined
11:02
brrt left
11:08
GlitchMr joined
11:17
noam left
|
|||
dalek | kudo/nom: 0e8d1a1 | pmichaud++ | docs/ChangeLog: Some ChangeLog updates. |
11:17 | |
11:18
noam joined
11:20
Vlavv` joined
|
|||
dalek | kudo/nom: e93b935 | pmichaud++ | docs/announce/2012.06: Update announcement a bit. |
11:20 | |
11:21
jimmy1980 joined
11:24
Vlavv_ left
11:32
noam left,
noam joined
11:36
spider-mario left
11:40
noam left,
noam joined
11:52
skids left
11:55
noam left,
noam joined
11:58
tokuhirom joined
12:09
cuckoo joined
12:11
cuckoo left
12:22
JimmyZ joined
12:39
cog_ left
12:40
cognominal joined
12:45
drbean left
12:48
sisar left
12:49
drbean joined,
sisar joined
12:59
PacoAir joined
13:01
jimmy1980 left
13:02
larks left
13:07
jimmy1980 joined
13:09
Psyche^ joined
13:12
MayDaniel joined
13:13
cognominal left,
cognominal joined
13:14
Patterner left,
Psyche^ is now known as Patterner,
daxim left
13:18
atrodo joined
13:19
daxim joined
13:23
skids joined
13:24
gfldex left
|
|||
dalek | kudo/nom: 65dc805 | pmichaud++ | src/core/ (3 files): Refactor <prior> and $last_save handling for matches. |
13:34 | |
13:49
PZt left
13:52
edit_21 left,
edit_21 joined
14:07
tyatpi joined
|
|||
jnthn | pmichaud++ # nice cleanup | 14:13 | |
14:15
[particle]1 is now known as [particle]
14:17
kaleem left
14:18
noam left,
noam joined
14:21
cggoebel left
|
|||
kresike | bye all | 14:32 | |
14:32
kresike left
14:50
noam_ joined,
noam left
14:55
kaleem joined
15:10
ggoebel joined,
kaare_ joined
15:14
ggoebel left
15:16
aindilis left
15:18
aindilis joined
15:19
MayDaniel left
15:24
noam_ left,
noam_ joined
|
|||
harmil | Something to think about for strict/debug/validation/whatever: It's very, very easy in the separated Grammar/Actions model to have a method called "exper" and a rule called "expr" and to spend a LONG time trying to figure out why you're not getting your AST built! | 15:26 | |
tadzik | :) | 15:27 | |
jnthn | Maybe Grammar::Debugger should have something to help with that issue. | 15:28 | |
TimToady | maybe we can find a better way to bind actions to grammars... | ||
colomon | +1 +1 | 15:29 | |
moritz | +1 +1 | ||
harmil | Well, one obvious way would be to introduce a syntactic binding such as "action expr { make … }" or "method expr is action { make … }" …if you're going to do that, then can I humbly suggest that the $/ parameter becomes implicit? | 15:31 | |
I get tired of typing ($/) ;-) | 15:32 | ||
TimToady is reminded of switch statements that can tell you when you've left out one of the enum values | 15:33 | ||
harmil | Doing that would allow the parse method on the grammar to run-time check the actions in the :actions parameter matched existing rules. However, you still can't do anything at compile-time… and perhaps should not. | ||
TimToady | well, the real problem is binding to derived grammars | ||
jnthn | Using a grammar as a role could perhaps result in a role that requires the implementation of matching methods. | ||
harmil | TimToady: Can you give an example? | ||
jnthn | But that's...too magical. | 15:34 | |
It'd get compile time checking though :) | |||
But a bit too much, because sometimes its legit for a grammar rule to have no action method. | |||
15:34
thou joined
|
|||
harmil | jnthn: it's common, in fact. | 15:34 | |
jnthn | harmil: Agreed. | ||
harmil | I very often have, for example, string bodies that I just .Str in a parent action | 15:35 | |
TimToady | but we could detect an action that has nothing to bind to in the grammar | ||
jnthn | True...but then utility methods... :) | ||
OTOH they can be written as submethods or privates. | 15:36 | ||
harmil | yes, if we know which things are actions (vs. utility methods in the action object) | ||
jnthn | Or subs. | ||
TimToady | and it could be a special declarator | ||
jnthn | Or alternatively, a new trait. | 15:37 | |
harmil | TimToady: yeah, that's where I was going. I was just adding in extra magic for that declarator handling the default signature. | ||
TimToady | but we still have the derivation problem | ||
jnthn | class FooActions actions FooGrammar { } | ||
TimToady | now derive an anonymous grammar from FooGrammar; how do you attach it? | ||
harmil | jnthn: that still doesn't let you clearly separate actions from utility methods. It's probably easier and cleaner to put that trait on the methods. | 15:38 | |
TimToady: I think you still have to :actions it when calling .parse | |||
jnthn | TimToady: Well, the other question that always comes up in this space is slangs... | ||
TimToady: How do they specify their actions. | 15:39 | ||
harmil: Well, above I suggested you don't have utility methods but instead write the utility stuff as something else. Or somewhere else. :) | |||
harmil: I agree that may be overly restrictive. | |||
TimToady | harmil: when you're calling into .parse, you may be calling into a largish hierarchy of (mostly) anonymous grammars, so one :actions doesn't cut it | ||
jnthn | Well, Rakudo solves this problem with: | 15:40 | |
%*LANG<MAIN> := Perl6::Grammar; | |||
%*LANG<MAIN-actions> := Perl6::Actions; | |||
TimToady | it seems we need some kind of namespace for grammars and actions to rendezvous in | 15:41 | |
whether that's dependency injection or just something like it | |||
15:45
JimmyZ left
15:46
majrmovies joined
15:48
noam_ left,
noam_ joined
15:50
vmspb joined
|
|||
harmil | OK, so I'm still not sure I entirely grasp the problem. I've written up a concrete example if anyone wants to hack it up to describe what they mean… gist.github.com/2966586 | 15:52 | |
Or not if you have better things to do ;-) | |||
PerlJam | harmil: what does "action" actually do? Is it just a synonym for "method"? | 15:53 | |
harmil | Yes | ||
You could also spell that "method foo is action" if you're not fond of a new alias for method | |||
TimToady: I think the anonymous grammar problem is solved when you do the checking at run-time | 15:54 | ||
And when you have a grammar take a :actions seems to be the right time to do that | |||
*modulo all the problems with using "run time" in a Perl 6 context... | |||
And yes, that's the world's worst AST ;-) | 15:55 | ||
15:57
tokuhirom left
|
|||
harmil | Totally other random point: thank you to whoever came up with :parameter{:hashkey1, :hashkey2} Yes, it only saves me 2 characters over :parameter({:hashkey1, :hashkey2}), but I'm using it so often that I'm really glad to have it! | 15:57 | |
15:57
mikemol_ joined
|
|||
TimToady bows | 16:01 | ||
moritz | :$parameter is one of my favorite shortcuts | 16:12 | |
quietfanatic | I've used that one in hash definitions s well as argument lists. | 16:14 | |
harmil | Yeah, I love saying "sub ast_foo($bar, $baz) { {:type<foo>, :$bar, :$baz} }" … it's just so damned clean | ||
actually, it's usually "(:$bar, :$baz)" in the parameter list as well, but you get the idea | |||
pmichaud | good morning, #perl6 | 16:15 | |
harmil | howdy, pmichaud | ||
moritz | good am, pm | 16:16 | |
harmil | heh | ||
jnthn | morning, pmichaud | ||
pmichaud: Wait, weren't you up and committing like, a few hours ago? :) | 16:17 | ||
moritz | that was michaudbot, I think :-) | ||
jnthn | ah, my mistake! :-) | ||
pmichaud | jnthn: yes, that was me. :) | ||
harmil | Hmmm… I have a function that returns a pair… I want to pass off that pair as a named parameter. Simply a(b()) doesn't seem to work. How do I do that? | 16:18 | |
pmichaud | I have some more commits to make, but they're a little too risky for a release day. | ||
quietfanatic | a(|b()) perhaps? | ||
pmichaud | harmil: a(|b()) | ||
moritz | pmichaud: that's what we have branches for :-) | ||
jnthn | pmichaud: Well, could always drop 'em in a branch. | ||
harmil | Tried that, i got "No such method 'FLATTENABLE_LIST' for invocant of type 'Pair'" | ||
quietfanatic | er | ||
moritz | well, that's a rakudobug then | ||
harmil | ah, ok | ||
jnthn | That's probably fixable. | ||
pmichaud | yeah, I can do it in a branch. | ||
16:18
am0c_ left
|
|||
moritz | iirc I once tried to fix that, and didn't have much luck | 16:18 | |
quietfanatic | harmil: in the meanwhile, try a(|hash(b())) | 16:19 | |
pmichaud | harmil: in the meantime, maybe a(|%(b())) | ||
moritz | because I didn't know much about that FLATTENABLE protocol | ||
jnthn | Should the pair be treated as a named param? | ||
*arg | |||
timotimo | remind me again, how does one define operator precedence of self-made operators in perl6? | ||
moritz | jnthn: yes | ||
pmichaud | timotimo: is tighter, is looser | ||
quietfanatic | and is equiv | ||
moritz | timotimo: sub infix:<foo> is tighter(&infix:<+>) { ... } # NYI in rakudo | ||
PerlJam | pmichaud: I'm not releasing for another 8 or 9 hours. you've got t ime | ||
:-) | |||
pmichaud | PerlJam: it's still a bit much | 16:20 | |
PerlJam: it's not "can I finish in time", but more of "can I be sure the result won't introduce an unwanted regression" | |||
timotimo | that's sweeter | ||
than scala does it :) | |||
PerlJam | how does scala do it? | 16:21 | |
timotimo | the first letter of the function name defines the tightness | ||
well, not letter | |||
PerlJam | *boggle* | ||
timotimo | symbol | ||
pmichaud | the fixes are the final adjustments to eagerness, which for some reason causes a regression in :global handling... and since I'm planning to re-do :global handling anyway... it's a bit much :) | ||
timotimo | so is tighter(&infix:<+>) will put it at tighter than +, but looser than atything defined to be tighter than + before this "is tighter" is put there? | 16:22 | |
PerlJam | next thing you'll tell me that variables that start with i,j,k, or l are all interger typed in scala | ||
moritz | or that h, j, k, l move the cursor left, down, up, right :-) | ||
16:23
mtk0 joined
|
|||
pmichaud | timotimo: close, not precisely correct. It'll put it tighter than +, which will be the same precedence as anything else that was defined as "is tighter(&infix:<+>)" | 16:23 | |
TimToady | a(|(b(),)) might also work | ||
moritz | pmichaud: I thought it's added inbetween | 16:24 | |
pmichaud | moritz: it's added in between %additive and %multiplicative, yes | ||
jnthn | moritz: Trying a patch for the | with pairs. | ||
TimToady | two tighters are supposed to be equiv | ||
pmichaud | but if I have sub infix:<xyz> is tighter(&infix:<+>) { ... } and sub infix:<abc> is tighter(&infix:<+>) { ... } then both of them are the same precedence | ||
16:24
mtk left
|
|||
pmichaud | which isn't exactly what timotimo said :) | 16:25 | |
but is what TimToady++ just said :) | |||
afk for a bit | 16:26 | ||
moritz | ok, makes sense on second (or third) thought | 16:27 | |
PerlJam wolfs down his 10th tamale | 16:28 | ||
one of the nice things about south texas is there is no shortage of people offering you food | |||
16:29
MayDaniel joined
|
|||
PerlJam | (of course, there is a reason Corpus Christi is the obesity capitol of texas) | 16:29 | |
jnthn | > sub foo() { :a(42) }; sub bar(:$a) { say $a }; bar(|foo()) | ||
42 | |||
\o/ | |||
moritz | \o/ | ||
jnthn | Guess I should spectest :) | ||
TimToady | we've also conjectured an 'is between' that produces a new level "halfway between" two other predecence levels | 16:30 | |
moritz | you can always get that now already | ||
if you a is tighter than b | |||
and then c is tighter than a | |||
TimToady | no, that's not halfway | ||
there's no way to create a new independent level without something like 'between' | 16:31 | ||
16:31
spider-mario joined
|
|||
TimToady | (or by peeking at the string precedences involved and manufacturing something) | 16:32 | |
PerlJam | Are the string precedences available? | ||
TimToady | not officially | ||
maybe we were gonna do that with a combined 'is tighter() is looser()' in the same declaration | 16:33 | ||
moritz: or is that what you were saying? | 16:34 | ||
16:34
kaleem left
|
|||
timotimo | what might i be doing wrong? use.perl.org/use.perl.org/~masak/journal/39568 doesn't work for me :| | 16:34 | |
moritz | timotimo: use.perl.org broken | 16:35 | |
TimToady: no | |||
daxim | use.perl.org/use.perl.org/_masak/jo...39568.html | ||
timotimo | oh no what did i do? | ||
moritz | TimToady: I think my mental picture of tighter/looser still is wrong | ||
pmichaud | daxim++ | ||
timotimo | oh, that's nonstandard | ||
thanks, daxim | |||
dalek | kudo/nom: 4d79923 | jnthn++ | / (2 files): Make | flattening work on pairs, which flatten as named arguments. |
16:36 | |
daxim | strangelyconsistent.org/blog/an-int...ate-perl-6 | ||
jnthn | harmil: there you go ^^ :) | ||
timotimo | even better | 16:37 | |
moritz | jnthn++ # putting it in Enum right away, not Pair | ||
jnthn++ # fast fix | |||
pmichaud | TimToady had mentioned at yapc::na that one of the reasons for having => produce Pair instead of Enum is to support a => b => c => d => ... style chaining and still be able to mutate the results. | 16:38 | |
moritz | I don't think I've ever used => chains in p6 | 16:39 | |
PerlJam | I know I've never used them | ||
pmichaud | iirc, it's for doing things using a lisp car/cdr style framework, as TimToady++ describes it | ||
TimToady: when you get a chance, could you construct a use case code example for => as Pair ? | 16:40 | ||
(or point us to one?) | |||
moritz | are cons mutable in lisp? | 16:41 | |
PerlJam | don't think so | ||
(but I haven't actually used lisp in well over a decade :) | 16:42 | ||
pmichaud | 2.5 decades here :-) | ||
timotimo | an idea when rakudo will get class Foo is also { ... }? | ||
n: class Foo { method a() { 1 }; } class Foo is also { method b() { 2 }; }; say Foo.new().b() | 16:43 | ||
p6eval | niecza v18-7-ga660099: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/nEwN2KeFQ1 line 1:------> class Foo { method a() { 1 }; }⏏ class Foo is also { method b() { 2 }; }Parse failed»… | ||
timotimo | n: class Foo { method a() { 1 }; }; class Foo is also { method b() { 2 }; }; say Foo.new().b() | ||
p6eval | niecza v18-7-ga660099: OUTPUT«===SORRY!===Two definitions found for symbol ::GLOBAL::Foo first at /tmp/PPb0cw4T_7 line 1 second at /tmp/PPb0cw4T_7 line 1 at /tmp/PPb0cw4T_7 line 1:------> method a() { 1 }; }; class Foo is also ⏏{ method b() { 2 … | ||
jnthn | timotimo: It's not been spelt "is also" for ages | ||
16:43
mtk0 left
|
|||
timotimo | aaw :( | 16:43 | |
[Coke] | b: class Foo { method a() { 1 }; } class Foo is also { method b() { 2 }; }; say Foo.new().b() | ||
p6eval | b 922500: OUTPUT«===SORRY!===Confused at line 22, near "class Foo "» | ||
jnthn | It's augment class Foo { ... } now | ||
timotimo | i read it in masaks post about labyrinths and i thought it was kind of cute | ||
jnthn | And Rakudo implements it. | ||
16:44
mtk0 joined
|
|||
pmichaud | (need MONKEY_TYPING?) | 16:44 | |
PerlJam | The Internet's memory is long even of things that should be forgotten | ||
timotimo | :) | ||
jnthn | Yes, you have to use MONKEY_TYPING TO DO IT | ||
er, *to do it | |||
pmichaud | oh dear, it looks like MONKEY_TYPING CAUSES EVERYTHING ELSE TO BE ALL CAPS | ||
:-P | |||
jnthn | No, it just makes people want to shout :P | 16:45 | |
PerlJam | as long as they don't start throwing things | ||
masak | good evening, #perl6. from a train! \o/ | 16:46 | |
16:47
dakkar left
|
|||
TimToady | moritz: yes, see stackoverflow.com/questions/170931/...ommon-lisp and stackoverflow.com/questions/869529/...ommon-lisp | 16:47 | |
jnthn | What a life...training all day, then training for more hours in the evening. :P | ||
timotimo | is there no event loop like library for perl6 yet? | 16:48 | |
is probably quite hard to do it right, isn't it? | 16:49 | ||
[Coke] | tcl does it. :) | 16:50 | |
masak | what's that supposed to mean? :) | ||
jnthn | timotimo: I think tadzik++ did the few bits of work in this area that we have so far. | 16:51 | |
pmichaud | Two people asked me in the hallway track about non-blocking (socket) I/O, said they would really like to do some stuff with Rakudo and Perl 6 when we had that working. Do we have it working? ;-) | ||
jnthn | timotimo: MuEvent, iirc. | ||
dalek | kudo/nom: 61f6f14 | jnthn++ | src/Perl6/Grammar.pm: <arglist> happily parses empty space here, then we could get nasty errors if whitespace fell in the wrong place rather than good errors or the module being loaded. Add a check against it. |
16:52 | |
sorear | good * #perl6 | 16:53 | |
timotimo | oh, MuEvent sounds pretty nice | 16:55 | |
harmil | As long as it's not Muvent, I'm cool | 16:56 | |
timotimo | "i like to muvent, muvent"? | ||
harmil | ugh | ||
;) | |||
PerlJam throws a talking lion at harmil | |||
timotimo | hm, why can't i tell an IO::Socket::INET what SOCK_ type i want when instantiating it? will there be a way in the future? | 17:07 | |
(until now i can use the numbers in the PIO module, but that feels dirty | |||
moritz | timotimo: probably just NYI | ||
17:07
daxim left
|
|||
timotimo | ah, indeed, can't create a SOCK_DGRAM socket | 17:08 | |
i'll see if there's anything i can do about that | 17:11 | ||
moritz | ++timotimo | ||
17:13
Chillance joined
|
|||
pmichaud | r: my $undefined; my $x = $undefined ~ '... and so forth'; say $x; | 17:13 | |
p6eval | rakudo 65dc80: OUTPUT«use of uninitialized value of type Any in string context in block <anon> at /tmp/2a1kc8mbRW:1... and so forth» | ||
pmichaud | the REPL gives me | ||
use of uninitialized value of type Any in string contextMethod 'message' not found for invocant of class 'Any' | |||
that "Method 'message' not found for invocant of class 'Any'" seems LTA | 17:14 | ||
moritz | it means the exception printer was triggered even though there was no exception | ||
pmichaud | shall I file a rakudobug for it? | 17:15 | |
jnthn | pmichaud: oops, I didn't see you had taken RT#113590 and I accidentally a patch... | ||
Well, if it spectests | |||
masak | pmichaud: please do. | ||
pmichaud | jnthn: no problem, if your patch works :) | ||
jnthn | pmichaud: It fixes the bug :) | 17:16 | |
And probably others. | |||
pmichaud | I tried a patch last week and got failures. | ||
(and then halted work on it because of yapc::na) | |||
jnthn | OK, we'll see what this one does in spectest... | ||
pmichaud | jnthn: can you nopaste the patch, ooc? | ||
jnthn | pmichaud: gist.github.com/2967127 | 17:17 | |
pmichaud: spectest running now | |||
pmichaud: I suspect the colonpair handling wants some twiddles overall there, but this is less wrong at least. | 17:18 | ||
No failures by S04 | 17:19 | ||
pmichaud | jnthn: that patch doesn't look like what I tried... so I suspect it might work :) | ||
(I don't remember exactly what I tried... but that wasn't it :-) | 17:20 | ||
jnthn | Also (unrelated to this patch) we seem to have some passing todos. | ||
pmichaud | exception bug is RT#113776 | 17:21 | |
masak | pmichaud++ | 17:22 | |
timotimo doesn't see where the error originates :| | |||
dalek | kudo/nom: d5f39a2 | jnthn++ | src/Perl6/ (2 files): Canonicalize regex names properly so that they will properly participate in protoregex dispatch and <sym> will get set properly. |
17:23 | |
timotimo | well, i can, but i can't find Parrot_io_socket, which i think is where the error comes from ... | 17:24 | |
vmspb | Hello, question about precedence: | ||
pmichaud | jnthn++ # fix for french angles | ||
vmspb | if L1 is tighter(L0) {} and Lx is looser(L1) {} | ||
jnthn | moritz: Is rt.perl.org/rt3/Ticket/Display.html?id=112586 sufficiently dealt with by now? | ||
vmspb | then Lx == L0 or L0 < Lx < L1 ? | ||
jnthn | moritz: If so, resolve or testneeded? | ||
timotimo | there it is | ||
harmil | rn: my $x={:a, :b}; given "a" { when $x { given $_{"a"} { when True { say $_ } } } } | ||
p6eval | niecza v18-7-ga660099: OUTPUT«Potential difficulties: Smartmatch against True always matches; if you mean to test the topic for truthiness, please use :so or *.so or ?* instead at /tmp/W7bT3Omw1p line 1:------> en "a" { when $x { given $_{"a"} { when ⏏True { say $_… | 17:25 | |
..rakudo 61f6f1: OUTPUT«postcircumfix:<{ }> not defined for type Str in method gist at src/gen/CORE.setting:9439 in sub say at src/gen/CORE.setting:6970 in block <anon> at /tmp/JRcQhe6gzf:1 in block <anon> at /tmp/JRcQhe6gzf:1 in block <anon> at /tmp/JRcQhe6gzf:1» | |||
moritz | jnthn: looking... | ||
pmichaud | vmspb: L0 < Lx < L1 | ||
moritz | jnthn: yes, testneeded | ||
harmil | OK, so ignoring the True matching thing…. why is Rakudo getting an indexing eror? | ||
jnthn | moritz: done | ||
pmichaud | harmil: strings don't have a postcircumfix:<{ }> | ||
harmil | But… I'm not indexing a string | 17:26 | |
ever | |||
moritz | yes you do | ||
PerlJam | harmil: you are. $_{"a"} | ||
jnthn | Huh? | ||
moritz | $_{"a"} | ||
pmichaud | is when $x { ... } supposed to topicalize $x ? | ||
jnthn | No | ||
harmil | Oh hell | ||
jnthn | given sets $_ | ||
harmil | OK, I reversed the case of my test and never noticed | ||
doh | |||
Thepart that made it hard to see is that in my real code (which isn't all one line) Rakudo got all lazy and reported the error inside the when. | 17:27 | ||
pmichaud | harmil: which when ? ;-) | ||
harmil | Theinner one | 17:28 | |
So when I was saying, "say $_" that's when it was executing the postcircumfix:<{}> | |||
17:29
birdwindupbird left
|
|||
harmil | which is valid laziness, but made it really hard to understand what was going on | 17:29 | |
pmichaud | correct, because $_{"a"} returns a Failure | ||
which doesn't throw until you use it. | |||
harmil | right | ||
pmichaud | the Failure probably needs to record the point of its creation (if it doesn't already) and to report it (which it doesn't already) | ||
moritz | we need to store the original error location, and make that available in the backtrace | 17:30 | |
pmichaud | I suspect Failures already have the original error location | ||
&fail creates an exception using "die" and builds a Failure object from that. | 17:32 | ||
moritz | maybe we .throw it instead of .rethrow-ing it | 17:33 | |
pmichaud | well, I think there are two exceptions involved here. | 17:34 | |
17:34
mikemol_ left
|
|||
pmichaud | we want to throw one at the point of the fail, and another at the point where the Failure is used. | 17:34 | |
that way we end up with the dual backtraces | |||
I'm fine if rethrowing would handle that as well, though. | |||
method Int(Failure:D:) { $!handled ?? 0 !! $!exception.throw; } | 17:35 | ||
method Num(Failure:D:) { $!handled ?? 0e0 !! $!exception.throw; } | |||
method Numeric(Failure:D:) { $!handled ?? 0e0 !! $!exception.throw; } | |||
multi method Str(Failure:D:) { $!handled ?? '' !! $!exception.throw; } | |||
multi method gist(Failure:D:) { $!handled ?? $.perl !! $!exception.throw; } | |||
maybe those should be .rethrow ? | |||
(src/core/Failure.pm) | |||
timotimo | i'm suggesting the following amendment to IO/Socket/INET.pm: add a constant PROTO_AUTO = 0;, use it as the default value. reason: if the socket function gets 0 as the protocol, it will figure out what protocol to use by itself, saving rakudo the trouble of opening /etc/protocols (and whatever's the equivalent on windows) | ||
moritz | pmichaud: maybe, yes | 17:36 | |
timotimo | additionally, i would probably try to make parrot get the actually used protocol number and set it on the socket object or something | 17:37 | |
jnthn | afk for a bit | 17:38 | |
17:39
sudokode joined
17:47
birdwindupbird joined
|
|||
timotimo tries compiling | 17:47 | ||
17:48
mikemol_ joined
|
|||
dalek | ast: ffe1467 | moritz++ | S (2 files): unfudge some tests for rakudo; fix one |
17:55 | |
17:57
fhelmberger left
|
|||
moritz | that should remove the passing TODOs | 17:57 | |
timotimo | hum, i don't even need udp sockets, still i'm improving perl6s support for them | 18:02 | |
fun times | |||
afk for a bit | 18:03 | ||
flussence | .oO( we should have built in sctp sockets just to be different ) |
18:04 | |
masak looks at moritz' ufo branch | 18:15 | ||
harmil | r: sub a(List $l=List) { say "List $l" if $l.defined } ; a($(1,2,3)) | 18:16 | |
p6eval | rakudo d5f39a: OUTPUT«Nominal type check failed for parameter '$l'; expected List but got Parcel instead in sub a at /tmp/AYQiMQlZxY:1 in block <anon> at /tmp/AYQiMQlZxY:1» | ||
harmil | Hmm… is there any way to make that work? | ||
masak | `List $l=List` better written `List $l?`, not that that solves your problem. | 18:17 | |
pmichaud | a(@(1,2,3)) | ||
harmil | That is, to say, can I define a sub that says, "Parcels past as this parameter should be converted to List" | ||
pmichaud: that would be nice, but my parameter is coming out of a Match object | 18:18 | ||
masak | List(Parcel) $l | ||
pmichaud | List(Positional) $l | ||
harmil | oh, interesting. I'll try that | ||
pmichaud | Positional $l as List | ||
masak | doesn't work yet. | ||
pmichaud | r: sub a(Positional $l as List) { say $a.WHAT; }; a((1,2,3)); | 18:19 | |
p6eval | rakudo d5f39a: OUTPUT«===SORRY!===Variable $a is not declaredat /tmp/YC4lLzg5hW:1» | ||
pmichaud | r: sub a(Positional $l as List) { say $l.WHAT; }; a((1,2,3)); | ||
p6eval | rakudo d5f39a: OUTPUT«Unable to coerce value for '$l' from Parcel to List; no coercion method defined in sub a at /tmp/53hlCBanIf:1 in block <anon> at /tmp/53hlCBanIf:1» | ||
harmil | Well, at least it's *trying* to coerce ;) | 18:20 | |
masak | I think there should be such a coercion method. | ||
pmichaud | r: sub a(Positional $l as Array) { say $l.WHAT; }; a((1,2,3)); | ||
p6eval | rakudo d5f39a: OUTPUT«Array()» | ||
pmichaud | the Array() coercer exists. | ||
so, perhaps add | 18:21 | ||
method List() { self.list } | |||
to src/core/Any.pm | |||
although it somewhat begs the question... why not just use | 18:24 | ||
masak | moritz: could you tell me what changing '::' to ':' in github.com/masak/ufo/commit/c94c69...3abeea6304 means? | 18:25 | |
(be ause I don't know and I'm curious) | |||
pmichaud | r: sub a(@l) { say "List @l[]" if @l.defined }; a((1,2,3)) | ||
p6eval | rakudo d5f39a: OUTPUT«List 1 2 3» | ||
masak | s/be ause/because/ | ||
moritz | masak: compatibility with non-GNU make | ||
masak | moritz: in GNU make, what does '::' mean? | ||
rn: say Module | |||
p6eval | rakudo d5f39a: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&Module' called (line 1)» | ||
..niecza v18-7-ga660099: OUTPUT«===SORRY!===Undeclared name: 'Module' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1401 (die @ 5)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37)  at /home/… | |||
moritz | masak: I'm not sure either | 18:26 | |
harmil | pmichaud that might be the better approach | ||
18:27
PacoAir left
|
|||
masak | moritz: if we're aiming for compatibility with non-GNU make, do you have a particular make in mind? is there someone who will maintain that compatibility? do we know it's worth aiming for? | 18:27 | |
18:27
PacoAir joined
|
|||
masak has grown wary with age :) | 18:27 | ||
pmichaud | I think we have to consider nmake, at least. | ||
jnthn | If ufo and/or panda worked on Windows, I'd be less of a sad panda :) | ||
pmichaud | (for windows) | ||
or whatever the Windows 'make' is. | 18:28 | ||
harmil | Windows make is gmake, given Cygwin... | ||
pmichaud | in 2009 someone patched Rakudo's makefile to use a bunch of ::'s, and I immediately reverted it. | ||
masak | I'm fine with considering nmake. but that requires someone to actually make sure it works. | 18:29 | |
ooh, delegating dependency handling to the Makefile, instead of manually topo-sorting. why didn't I think of that? :) moritz++ | 18:30 | ||
pmichaud | without going into the details of "which make to target", I think we have to ultimately fix: | ||
18:27 <jnthn> If ufo and/or panda worked on Windows, I'd be less of a sad panda :) | |||
Windows is a huge target, especially for newcomers. | 18:31 | ||
masak | aye. | ||
harmil | rn: my $s = "foo, "; $s.subst(/\s*<[,]>\s*$/, ""); say $s | ||
p6eval | rakudo d5f39a, niecza v18-7-ga660099: OUTPUT«foo, » | ||
pmichaud | if we're not doing so already, we also need to be packaging up binaries for windows. | ||
harmil | am I missing something? does subst just return the substituted value? | ||
pmichaud | harmil: inplace modifications are almost always done using .= | 18:32 | |
harmil | ah | ||
ok | |||
masak | I'm fine with targeting nmake. I'm not sure how to best do it, and make sure ufo stays nmake-compatible. | ||
pmichaud | .= is a much more generic pattern than having some methods that do inplace modifications and others that do not. | ||
masak | if some Windows user wants to step up and help ufo target nmake, that would be -Ofun. | ||
harmil | is it possible for subst to notice its return value is being ignored and whine? | 18:33 | |
pmichaud | note that we manage to successfully keep rakudo and nqp's makefiles windows compatible :) | ||
harmil: if/when we have sink context implemented, it might be possible to have .subst return a value that carps on that, yes. | 18:34 | ||
moritz | masak: I want compatiblity with every make | 18:37 | |
masak: which is why I want ufo to generate rather simple makefiles | |||
masak: ie only use normal dependencies, variable interpolations and non-parameterized rules | 18:38 | ||
pmichaud | moritz: +1 +1 | ||
[Coke] can help with windows makefile targetting. | |||
just not during work hours for a bit. | |||
moritz | currently ufo shells out to 'find', which is why it won't work on windows | ||
masak | [Coke]: nice! | ||
moritz | but the generated makefiles are much closer to run on windows now | 18:39 | |
masak | moritz: your ufo branch has been rebased on top of master, merged, and culled. | ||
I think we can do without `find`. mini-tote emulates `find`. | |||
moritz: oh, and thank you for your contributions. it's nice to see someone make ufo saner for once. | 18:40 | ||
moritz | masak: :-) you're welcome | 18:43 | |
[Coke] really would like to hack on something not java for a while. :P | 18:50 | ||
18:52
snearch left
|
|||
timotimo | flussence: i'd love to use sctp for something some day. it seems so ridiculously cool and useful | 18:52 | |
19:00
MayDaniel left
19:03
sudokode is now known as sudokode|echo,
sudokode|echo is now known as sudokode
19:06
birdwindupbird left
19:08
birdwindupbird joined
19:11
colomon left,
GlitchMr left
|
|||
tadzik | good evening | 19:15 | |
19:16
colomon joined
|
|||
moritz | \o tadzik | 19:17 | |
19:18
fridim_ joined
19:20
mtk0 left
19:21
mtk joined
19:23
not_gerd joined
|
|||
not_gerd | hello, #perl6 | 19:23 | |
phenny | not_gerd: 15 Jun 20:50Z <pmichaud> tell not_gerd no, and I had forgotten about it. Thanks for the ping/reminder. I'd be happy if a bug was filed and I was made the owner of the bug. | ||
not_gerd | masak: I did do a (partial) ufo port to pure perl6 -- gist.github.com/2891292 | ||
it was unusabbly slow due to parsing speed (1.5s on my machine) | 19:24 | ||
^unusably | |||
masak | not_gerd: interesting exercise. one day it might even be fast ;) | 19:29 | |
not_gerd | to clarify: it still relies on make (but only uses portable syntax), but does not use shell commands (rm, find) but invokes a perl6 script instead | 19:31 | |
which translates to a 1.5s delay on every command invoked by make :( | 19:32 | ||
19:34
MayDaniel joined
|
|||
not_gerd | the find replacement could probably be used with current ufo ( gist.github.com/2942255 ) | 19:36 | |
moritz | yes, looks good | 19:37 | |
masak | yes, I believe so. | 19:38 | |
I find &f.() somewhat unidiomatic compared to &f() | |||
moritz | just write f() | ||
no need to ues the sigil | 19:39 | ||
masak | I don't mind the & when it's a parameter. that adds a kind of clarity/parallel. | ||
but the dot is superfluous. | |||
moritz | I often like the dot when the expression before it is something more complicated than a mere variable | 19:41 | |
masak | oh, then it adds visual distance, I guess. | 19:42 | |
yeah, I can see that. the dot somehow says "treat the lhs as an object that can be invoked" | |||
not_gerd | I'm still at the cargo-culting phase where using perl6 is concernced | 19:44 | |
masak | r: multi sub infix:<+>(&f, &g) { -> { f; g } }; ({say "OH"} + {say "HAI"}).() | ||
p6eval | rakudo d5f39a: OUTPUT«OHHAI» | ||
masak | \o/ | ||
that is *awesome*. | |||
moritz | is that, like, monadic nonesense? | ||
jnthn | No, it's overloading operators with unrelated meanings :P | 19:45 | |
masak | no, it's just subverting addition to mean sequencing. | ||
colomon | yeah, that's exactly the problem with it | ||
masak | I promise not to do it in production code. | ||
jnthn | masak: Surely there's something nicer in unicode for sequencing? :) | ||
masak | bloody prudes. :P | ||
flussence | r: multi sub infix:<·>(&f, &g) { ... } # ? | 19:46 | |
p6eval | rakudo d5f39a: ( no output ) | ||
TimToady | see rosettacode.org/wiki/Function_composition#Perl_6 | ||
though maybe you want to overload ; for this instead, oh wait | 19:47 | ||
masak | ;) | 19:48 | |
colomon | TimToady++ | ||
masak | I bet there is some reason ; is a terminator and not an operator. | 19:49 | |
though I can't think of it immediately. | |||
sorear | I might have to hurl if someone makes ; overridable. :D | 19:50 | |
colomon | sorear++ | 19:51 | |
;) | |||
huf | meh, surely you can always define xCDxBE to be an operator | ||
even if you cant use ; | 19:52 | ||
tadzik | eeeeek | ||
btw, we were discussing today at $work how is it that so many programmers can't write fibonacci on the interview | |||
atrodo | I'd like to make ; an operator and make STOP the operation separator | 19:53 | |
tadzik | and I showed them the one with 10 characters in Perl 6 :) | ||
the reaction was quite positive :) | |||
colomon | :) | ||
atrodo: wait, like a telegram? say "Hello" STOP for 1.. 10 { .say } STOP | 19:56 | ||
atrodo | colomon: Exactly | ||
harmil | Why am I wrong for expecting this to work: | 19:57 | |
colomon | atrodo: there's a certain style to that.... | ||
sorear | tadzik: If I were an interviewer, I would probalby respond "Now, can you do that WITHOUT the ... operator?" | ||
harmil | r: say "".HOW.methods | ||
p6eval | rakudo d5f39a: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected in any methods at src/gen/Metamodel.pm:377 in block <anon> at /tmp/f8bVHXMrLL:1» | ||
moritz | harmil: because that's not how calls to the MOP work | ||
harmil | More to the point, what's the correct way to say, "what methods do you support"? | ||
moritz | r: say ''.^methods | ||
p6eval | rakudo d5f39a: OUTPUT«BUILD Int Num chomp chop substr pred succ ll-match match-list ords lines samecase samespace trim-leading trim-trailing trim words encode capitalize trans indent WHICH Bool Str ACCEPTS Numeric gist perl comb match subst split» | ||
harmil | oh right, I think I asked that before. Thanks moritz++ | 19:58 | |
moritz | harmil: thing is, several classes can share the same meta-object | ||
masak | so you have to supply the class to .methods | ||
moritz | harmil: which is why .^methods passes the invocant to the class on the meta object | ||
harmil | yep, I just forgot | ||
masak | .^ hides that. | 19:59 | |
or folds it in, rather. | |||
harmil | I switch between Perl 5, Perl 6 and Python so often at work and at home, it's hard to remember details sometimes, and meta-model details are the most diverent. | ||
*divergent | |||
masak | indeed. | 20:00 | |
it'll get easier with time :) | |||
harmil | rn: say "".elems, "/", "a".elems; | 20:01 | |
p6eval | rakudo d5f39a, niecza v18-7-ga660099: OUTPUT«1/1» | 20:02 | |
harmil | ur… really? | ||
huf | "" is one empty string, i guess? | ||
harmil | I meant .chars, thanks | 20:03 | |
Interesting that .elems works at alll | |||
r: "".^methods | |||
p6eval | rakudo d5f39a: ( no output ) | ||
harmil | r: say "".^methods | 20:04 | |
p6eval | rakudo d5f39a: OUTPUT«BUILD Int Num chomp chop substr pred succ ll-match match-list ords lines samecase samespace trim-leading trim-trailing trim words encode capitalize trans indent WHICH Bool Str ACCEPTS Numeric gist perl comb match subst split» | ||
harmil | some deep magic going on there, converting my Str to a … something that has a .elems? | ||
flussence | r: say Str.^mro | 20:05 | |
p6eval | rakudo d5f39a: OUTPUT«Str() Cool() Any() Mu()» | ||
flussence | r: say Cool.^methods | ||
p6eval | rakudo d5f39a: OUTPUT«abs conj sqrt sign rand sin asin cos acos tan atan atan2 sec asec cosec acosec cotan acotan sinh asinh cosh acosh tanh atanh sech asech cosech acosech cotanh acotanh cis log exp roots log10 unpolar round floor ceiling truncate bytes chars fmt substr uc lc ucfirst l… | ||
flussence | r: say Cool.^methods(:local) | ||
p6eval | rakudo d5f39a: OUTPUT«abs conj sqrt sign rand sin asin cos acos tan atan atan2 sec asec cosec acosec cotan acotan sinh asinh cosh acosh tanh atanh sech asech cosech acosech cotanh acotanh cis log exp roots log10 unpolar round floor ceiling truncate bytes chars fmt substr uc lc ucfirst l… | ||
huf | so .^methods only lists the ones it has directly? | ||
flussence | r: say Str.^methods(:all) | 20:06 | |
p6eval | rakudo d5f39a: OUTPUT«BUILD Int Num chomp chop substr pred succ ll-match match-list ords lines samecase samespace trim-leading trim-trailing trim words encode capitalize trans indent WHICH Bool Str ACCEPTS Numeric gist perl comb match subst split abs conj sqrt sign rand sin asin cos aco… | ||
moritz | huf: it stops at Cool by default | 20:07 | |
huf | ah. | ||
Cool. | |||
jnthn | Well, that's not quite true. | ||
huf | aha! | ||
jnthn | Any and Mu are excluded by default. | ||
huf | so why isnt Cool in "".^methods' output? | 20:08 | |
sorear | harmil: perl 6 tries to hide the difference between items and singleton lists | ||
jnthn | huf: Oh, maybe Cool is in the exclude list too... | 20:09 | |
huf | i see | ||
makes a sortof perlish sense | |||
jnthn | Ah, yeah | 20:10 | |
Metamodel::ClassHOW.exclude_parent(Cool); | |||
Yes, it's excluding Cool also. | |||
20:17
kaare_ left
|
|||
harmil | sorear: that's probably wise | 20:19 | |
Meta-question about IRC: when people say they're "backlogging" does that just mean "reviewing the logs" or is there a more sophistimicated filter that can be used? | 20:20 | ||
dalek | Heuristic branch merge: pushed 221 commits to nqp/toqast by jnthn | 20:21 | |
[Coke] | harmil: my irc session pauses where last I was, I have to manually scroll forward to catch up. (but I call that backscrolling) | ||
[Coke] imagines some people let their session roll forward, but mark the last place they read, so they really have to backscroll. | 20:22 | ||
dalek | p/toqast: f19813a | jnthn++ | t/qast/qast.t: Correct test count and switch over to use QAST; now that QAST is broken out into a separate library post-qbootstrap. |
||
geekosaur | xchat has markers you can place (or it can try to place them automatically based on idle time) | ||
[Coke] | NQP TOAST! | ||
jnthn | ... :) | 20:23 | |
20:25
fridim_ left
|
|||
dalek | p/toqast: ea9ceea | jnthn++ | src/HLL/Grammar.pm: Override FAILGOAL in HLL::Grammar and get it to delegate to panic, so we get a line number. |
20:26 | |
p/toqast: d82864d | pmichaud++ | CREDITS: Fix CREDITS to reflect that usernames are for GitHub. |
|||
p/toqast: b1226fb | jnthn++ | src/6model/serialization.c: Try to unbust things on big endian platforms. Untested, but should do the trick. |
|||
p/toqast: b5930e1 | moritz++ | tools/build/PARROT_REVISION: bump parrot version to 4.5 release |
|||
jnthn | OK, toqast is now sync'd up with the post-qbootstrap NQP world. :) | 20:27 | |
harmil | OK, I suspected there was something else going on where you could request that the server replay "items of interest" or something | ||
sorear | harmil: the server itself doesn't hold on to any items, other than the TCP send buffer stuff | 20:28 | |
harmil: there are a large number of clients in use, many of them provide conveniences for dealing with a backlog of messages received while away | |||
"backlogging" comes from the concept of a person or bureaucracy being backlogged with things it hasn't been able to handle yet | 20:29 | ||
why do I keep trying to write that word starting with beau- | |||
jnthn | ...'cus it sure ain't beautiful :) | 20:30 | |
20:40
MayDaniel left
20:46
sisar left
20:47
cog_ joined
20:50
cognominal left
20:56
birdwindupbird left
20:58
skids left
|
|||
[Coke] | did p5's named capture regexs come from p6? | 21:00 | |
21:01
mikemol_ left
|
|||
sorear | [Coke]: I want to say they came from .net | 21:01 | |
harmil | Really? I was pretty sure P5 originated those... | 21:02 | |
dalek | p: 46cf8f8 | jnthn++ | src/PAST/NQP.pir: Start getting some more of the 6model primitives into the nqp:: namespace. |
21:05 | |
p: bc64ed0 | jnthn++ | src/how/NQP (5 files): Use nqp::setwho and nqp::newtype. |
|||
21:14
ggoebel joined
|
|||
ggoebel | sub merge_sort ( @a ) { | 21:14 | |
return @a if @a <= 1; | |||
my $m = @a.elems div 2; | |||
my @l = merge_sort @a[ 0 ..^ $m ]; | |||
my @r = merge_sort @a[ $m ..^ @a ]; | |||
return @l, @r if @l[*-1] !after @r[0]; | |||
return gather { | |||
take @l[0] before @r[0] ?? @l.shift !! @r.shift | |||
while @l and @r; | |||
take @l, @r; | |||
} | |||
} | |||
my @data = 6, 7, 2, 1, 8, 9, 5, 3, 4; | 21:15 | ||
say 'input = ' ~ @data; | |||
say 'output = ' ~ @data.&merge_sort; | |||
perl6: sub merge_sort ( @a ) { | |||
p6eval | niecza v18-7-ga660099: OUTPUT«===SORRY!===Unable to parse block at /tmp/cKNLVWxQVq line 1 (EOF):------> sub merge_sort ( @a ) {⏏<EOL>Couldn't find final '}'; gave up at /tmp/cKNLVWxQVq line 1 (EOF):------> sub merge_sort ( @a ) {⏏… | ||
..pugs: OUTPUT«***  Unexpected end of input expecting "use", statements or "}" at /tmp/jsOvL6_qBq line 2, column 1» | |||
..rakudo d5f39a: OUTPUT«===SORRY!===Unable to parse blockoid, couldn't find final '}'» | |||
ggoebel | return @a if @a <= 1; | ||
my $m = @a.elems div 2; | |||
my @l = merge_sort @a[ 0 ..^ $m ]; | |||
my @r = merge_sort @a[ $m ..^ @a ]; | |||
return @l, @r if @l[*-1] !after @r[0]; | |||
return gather { | |||
take @l[0] before @r[0] ?? @l.shift !! @r.shift | |||
while @l and @r; | |||
take @l, @r; | |||
} | |||
} | |||
my @data = 6, 7, 2, 1, 8, 9, 5, 3, 4; | |||
say 'input = ' ~ @data; | |||
say 'output = ' ~ @data.&merge_sort; | |||
sorry folks | |||
benabik | ggoebel: p6eval accepts URLs to gists | 21:16 | |
sorear | and I show up too late to kick. sorry folks. | 21:19 | |
masak | also, there are IRC clients out there that can intercept and prevent paste mishaps. | ||
sorear: I wouldn't kick if there isn't malicious intent. | |||
well, maybe if the paste went on for minutes. | |||
sorear | 14:14 < ggoebel> sub merge_sort ( @a ) { | 21:20 | |
14:15 < ggoebel> sorry folks | |||
21:20
sergot joined
|
|||
sergot | hi o/ | 21:20 | |
phenny | sergot: 20 Jun 14:20Z <moritz> tell sergot < sjn> btw, if you bump into sergot, would you mind reminding him about sending his receipts and tickets and stuff? | ||
PerlJam | that's like 1 minute-ish :) | ||
sorear | seconds required for a paste to complete = (lines - 10) / 2 | ||
ways to interrupt a paste, completeish list: kick, kill, setting moderation | 21:21 | ||
masak .oO( How do I silence thee? let me count the ways... ) | 21:23 | ||
21:23
not_gerd left
|
|||
[Coke] | sorear: it's annoying, but is it /that/ annoying? | 21:30 | |
hugme: hug ggoebel,sorear | |||
hugme hugs ggoebel,sorear | |||
21:43
erkan joined,
erkan left,
erkan joined
21:44
sergot left
21:47
kurahaupo joined
21:48
noam_ left,
noam_ joined
|
|||
pmichaud | /lastlog pmichaud 5 | 21:52 | |
oops | |||
21:59
cog__ joined
22:00
mikemol left
22:01
mikemol joined
22:02
cog_ left,
spider-mario left
|
|||
timotimo | do you think i can commit the incomplete code for using 0 as protocol argument to the socket constructor for sockets, even though it doesn't yet set the protocol that was actually assigned to the socket? | 22:04 | |
22:05
mtk left
22:27
majrmovies left
22:29
adu joined
|
|||
dalek | p: 01558df | jnthn++ | src/how/NQPClassHOW.pm: Eliminate a pir::isa usage. |
22:30 | |
p: 73ebd23 | jnthn++ | src/stage0/ (8 files): Update bootstrap. |
|||
masak | 'night, #perl6 | 22:32 | |
colomon | \o | 22:34 | |
sorear | o/ | 22:36 | |
22:37
cog__ left,
cog__ joined
22:38
vmspb left
|
|||
adu | \o | 22:41 | |
jnthn | Figure I'll sleep too. o/ | 22:50 | |
22:57
PacoAir left
23:20
mtk joined
23:24
Vlavv` left
23:29
noam_ left
23:30
noam_ joined,
tyatpi left
23:42
leprevost joined
23:47
kurahaupo left
23:55
tyatpi joined
|