»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:01
virtualsue left
|
|||
segomos_ | jnthn: thanks for your help on everything | 00:03 | |
00:20
itz left
|
|||
psch | m: Inf.Int.say | 00:24 | |
camelia | rakudo-moar 8de0fd: OUTPUT«===SORRY!===Cannot coerce Inf or NaN to an Int» | ||
psch actually rather goes to sleep instead of browsing rt. | 00:26 | ||
00:26
psch left
00:27
btyler joined
00:28
btyler left
00:30
lizmat left
00:33
woolfy left
00:43
FROGGS left
00:49
vendethiel left
00:53
yogan joined,
atrodo joined,
timotimo joined,
tokuhirom joined
00:55
ggherdov_ joined
01:00
FROGGS joined
01:03
FROGGS_ joined
01:06
FROGGS left
01:10
klapperl_ left
01:11
Su-Shee left,
klapperl joined
01:12
Su-Shee joined
01:19
Akagi201_ joined
01:23
Akagi201_ left
01:26
BenGoldberg left
01:31
mr-foobar left
01:32
BenGoldberg joined
01:44
ilbot3 left
01:45
rurban1 joined
01:46
ilbot3 joined
01:47
rurban2 joined
01:49
rurban1 left
|
|||
Mouq | BenGoldberg: Hackity, but: gist.github.com/Mouq/8d6548b27e614bff1abf | 01:50 | |
01:51
rurban2 left
|
|||
Mouq | Oh, wait, bug in that | 01:52 | |
Lots of bugs actually | |||
BenGoldberg | Even if buggy, the idea is kinda cool :) | 01:53 | |
Mouq | Updated quick to be slightly less awful :) | 01:55 | |
'night #perl6 | |||
01:55
Mouq left
|
|||
[Coke] | what happened to feather? | 02:17 | |
02:27
noganex joined
02:30
noganex_ left
02:37
nnunley left
02:45
Akagi201_ joined
|
|||
TimToady_ | Thundergnat++ for three GTK entries on RC in a row | 02:47 | |
we're now only 40 behind Python | |||
and only 103 from the leader, Tcl | 02:48 | ||
02:48
rurban1 joined
02:52
rurban1 left
02:54
hoverboard joined
03:02
araujo left
03:15
uniejo joined
03:21
xragnar_ joined,
xragnar is now known as Guest27639,
Guest27639 left,
xragnar_ is now known as xragnar
03:29
BenGoldberg left
03:32
TimToady_ is now known as TimToady
03:49
rurban1 joined
03:53
uniejo left
03:55
estrabd left
03:59
pdcawley left
04:02
estrabd joined
04:03
estrabd left
04:04
estrabd joined
04:09
hoverboard left
04:15
punter joined
04:16
punter left
04:31
pdcawley joined
04:35
obra_ is now known as obra
04:36
pdcawley left
04:37
pdcawley joined
04:42
pdcawley left
04:46
pdcawley joined
04:49
rurban1 left
04:50
rurban1 joined
04:53
pdcawley left
05:01
rurban1 left
05:11
gfldex joined
05:14
petercom1and is now known as petercommand
05:20
pdcawley joined
05:32
rurban1 joined
05:34
pdcawley left,
SamuraiJack_ joined
05:36
rurban1 left
05:45
darutoko joined
05:58
pdcawley joined
06:00
lizmat joined,
woolfy joined
06:03
kaare_ joined
06:05
pdcawley left
06:21
SamuraiJack joined,
SamuraiJack_ left
06:25
SamuraiJack left
06:27
SamuraiJack joined
06:29
dmol joined
06:41
Rotwang joined
06:47
sisar joined
06:57
sisar_ joined
|
|||
sisar_ | rakudo: say IO::Path.^methods; #what decides the order in which the methods are printed ? | 06:58 | |
camelia | rakudo-parrot 8de0fd: OUTPUT«SPEC dir BUILD path parts basename directory volume Bridge Int succ pred IO open is-absolute is-relative absolute relative cleanup resolve parent child copy chmod contents d e f s l r w x z modified accessed changed umask ACCEPTS new Str gist perl Numeri…» | ||
..rakudo-moar 8de0fd: OUTPUT«SPEC dir BUILD path parts basename directory volume Bridge Int succ pred IO open watch is-absolute is-relative absolute relative cleanup resolve parent child copy chmod contents d e f s l r w x z modified accessed changed umask ACCEPTS new Str gist perl Nu…» | |||
..rakudo-jvm 8de0fd: OUTPUT«SPEC dir BUILD path parts basename directory volume Bridge Int succ pred IO open is-absolute is-relative absolute relative cleanup resolve parent child copy chmod contents f w accessed umask d e s r l z x modified changed ACCEPTS new Str gist perl Numeric» | |||
FROGGS_ | maybe the order they are in the method table? | 06:59 | |
sisar_ | would getting them in alphabetical order be a bad default ? | 07:00 | |
07:00
sisar left
|
|||
sisar_ | FROGGS_: what is a method table ? | 07:00 | |
07:01
lizmat left,
bluescreen100 left
|
|||
FROGGS_ | a lookup list so that you know which type has what methods... | 07:01 | |
but in fact I don't know much about the implementation here | 07:02 | ||
sisar_ | FROGGS_: now I wonder what decides the order in the method table :-) maybe the inheritance heirarchy. | ||
anyway, i suggest alphabetical output for that | 07:04 | ||
FROGGS_ | sisar_: you can find out by searching for 'method methods' in rakudo's src | ||
sisar_ | ok | ||
07:04
dmol left
07:05
woolfy left
07:06
schogen joined
07:08
sisar_ left
07:12
sisar joined
07:14
bluescreen100 joined
07:16
SamuraiJack left
07:29
sisar left
07:34
rurban1 joined
07:38
rurban1 left
07:41
spider-mario joined
07:51
denis_boyun_ joined
07:58
denis_boyun_ left
08:13
kaare_ left
08:18
sisar joined
08:30
sisar left
08:35
rurban1 joined
08:39
rurban1 left
08:40
kweetal joined
08:41
woolfy joined,
lizmat joined
08:45
kivutar joined
08:51
lizmat_ joined
08:52
rindolf left,
rindolf joined
08:54
lizmat left
09:00
vendethiel joined
09:03
rindolf left
09:04
rindolf joined
09:07
SevenWolf left
|
|||
ChoHag | I have written this: gist.github.com/ChoHag/5bf910fa4b04d51bfa5f but I can't help feeling somehow like it's The Wrong Way. | 09:16 | |
vendethiel | ChoHag: how so ? | 09:17 | |
ChoHag | I don't know. | ||
vendethiel | you can also use method postcircumfix:<{ }>, but subs are easier to inline | 09:18 | |
ChoHag | Oh I'm not interested in performance at this point, just playing with perl. | ||
Or rather, performance is a side note. | 09:20 | ||
vendethiel | with current perl 6 implementations, it better be :-P | 09:24 | |
m: class A { has $.i; submethod BUILD($!i) {}; method postcircumfix:<{ }>(Int $n) {} }; say A.new(5){60}; | 09:25 | ||
camelia | rakudo-moar 8de0fd: OUTPUT«Default constructor for 'A' only takes named arguments in method new at src/gen/m-CORE.setting:827 in block at /tmp/gZ6yj93YPo:1» | ||
vendethiel | m: class A { has $.i; method postcircumfix:<{ }>(Int $n) {} }; say A.new(i => 5){60}; | ||
camelia | rakudo-moar 8de0fd: OUTPUT«===SORRY!===postcircumfix:<{ }> not defined for type A» | ||
vendethiel | uh. | 09:26 | |
09:32
anaeem1_ joined
09:36
rurban1 joined
|
|||
masak | good antenoon, #perl6 | 09:37 | |
09:38
rurban2 joined,
itz joined
09:40
rurban1 left
09:42
rurban2 left
09:43
lizmat_ left
09:46
woolfy left
|
|||
moritz | \o masak | 09:51 | |
09:59
anaeem1_ left,
kaare_ joined,
virtualsue joined
|
|||
timotimo | ChoHag: you can also override at_key, bind_key, assign_key | 10:03 | |
then you get the "mighty" postcircumfix:<{ }> "for free" | 10:04 | ||
ChoHag | Override them in what? | ||
timotimo | in your class | ||
those are methods | |||
see also Hash.pm in src/core/ | 10:05 | ||
10:05
dmol joined
10:13
kivutar left
10:14
virtualsue left
10:15
anaeem1_ joined
10:19
anaeem1_ left
|
|||
jnthn | m: class LazyHashyThing does Associative { method at_pos($key) { $key.uc } }; my %h := LazyHashyThing.new; say %h<omg> | 10:31 | |
camelia | rakudo-moar 8de0fd: OUTPUT«===SORRY!===postcircumfix:<{ }> not defined for type LazyHashyThing» | ||
jnthn | oops | ||
m: class LazyHashyThing does Associative { method at_key($key) { $key.uc } }; my %h := LazyHashyThing.new; say %h<omg> | |||
camelia | rakudo-moar 8de0fd: OUTPUT«OMG» | ||
jnthn | There we go | ||
Clearly, more coffee needed. Or maybe coffee doens't help against just being full of cold... | |||
ChoHag | Can you store a multi method in a variable? So that $foo(1) and $foo(1,"string") will DTRT? | 10:32 | |
Or would you just have $foo be something like: { real_multi_method(\args) } | |||
vendethiel | ChoHag: you *can*, but it has some issues with lexpads ATM | 10:33 | |
well, you need to first declare it as multi, then capture it | 10:34 | ||
10:38
schogen left
10:39
rurban1 joined,
schogen joined
10:40
pdcawley joined
10:43
rurban1 left
10:51
denis_boyun joined
10:53
virtualsue joined
|
|||
jnthn | You can $foo = &some_multi; | 10:58 | |
m: my $adder = &infix:<+>; say $adder(1); say $adder(1, 1); | 10:59 | ||
camelia | rakudo-moar 8de0fd: OUTPUT«12» | ||
ChoHag | I have class AutoHash is Hash. How can I override new (which Hash provides) or BUILD (which it doesn't) so that I can strip some named arguments off the call to AutoHash.new() and pass the rest up to the parent Hash class? | 11:02 | |
11:02
anaeem1_ joined,
telex left
11:03
pdcawley left
11:04
telex joined
11:05
anaeem1_ left
|
|||
jnthn | method new(:$thing, :$another, *%rest) { callwith(|%rest) } # or so, but I guess you want to do something with the other named args | 11:06 | |
11:10
pdcawley joined
11:15
pdcawley left
11:16
pdcawley joined
11:20
pdcawley_ joined
11:21
pdcawley left,
itz left
11:22
kivutar joined
11:29
denis_boyun left,
denis_boyun_ joined
11:32
virtualsue left
11:34
itz joined
11:40
rurban1 joined
11:44
rurban1 left
11:59
pdcawley_ left
12:00
BenGoldberg joined
|
|||
FROGGS_ | o/ | 12:05 | |
12:09
schogen left
|
|||
BenGoldberg | \o | 12:09 | |
12:09
schogen joined
|
|||
BenGoldberg | . o O ( That ascii person looks more like he's getting something down from a shelf, than waving hello, but whatever :) ) | 12:10 | |
FROGGS_ | :o) | 12:30 | |
12:34
schogen left
12:35
schogen joined
|
|||
moritz | m: * but * | 12:36 | |
camelia | ( no output ) | ||
vendethiel | moritz: do you want to see the world burning ? Because that's how you get the world burning | ||
BenGoldberg | m: say * but * | 12:37 | |
camelia | rakudo-moar 8de0fd: OUTPUT«*» | ||
BenGoldberg | m: (* but *).WHAT.say | ||
camelia | rakudo-moar 8de0fd: OUTPUT«(Whatever+{<anon>})» | ||
jnthn | m: (* but *).^methods(:local)>>.name>>.say | 12:39 | |
camelia | rakudo-moar 8de0fd: OUTPUT«Whatever» | ||
jnthn | haha | ||
12:40
rurban1 joined
|
|||
moritz | lol | 12:43 | |
m: say (* but *)(Int, Bool).^name | |||
camelia | rakudo-moar 8de0fd: OUTPUT«Cannot find method 'postcircumfix:<( )>' in block at /tmp/bdWOm1D33b:1» | ||
12:44
schogen left
12:45
rurban1 left,
schogen joined
12:50
isBEKaml joined
13:00
kurahaupo joined
|
|||
moritz | m: say (* but *)(Int).^name | 13:06 | |
camelia | rakudo-moar 8de0fd: OUTPUT«Cannot find method 'postcircumfix:<( )>' in block at /tmp/8hQwbVM71u:1» | ||
13:06
SamuraiJack joined
|
|||
moritz | m: say (* but *).^roles | 13:08 | |
camelia | rakudo-moar 8de0fd: OUTPUT«(<anon>)» | ||
moritz | m: say (* but *).^name | ||
camelia | rakudo-moar 8de0fd: OUTPUT«Whatever+{<anon>}» | ||
13:20
schogen left
13:21
schogen joined
|
|||
FROGGS_ | lol, I blogged # usev5.wordpress.com/ | 13:28 | |
timotimo | \o/ | 13:32 | |
FROGGS_: "deliverable", not "diliverable" | 13:33 | ||
FROGGS_ | timotimo: thanks! will change | 13:35 | |
timotimo | otherwise, FROGGS++ :) | 13:37 | |
13:39
schogen left
13:41
rurban1 joined,
denis_boyun_ left
13:44
Alina-malina left
13:45
rurban1 left
13:46
kivutar left
13:53
rurban1 joined,
vendethiel left
13:57
xenoterracide joined
|
|||
masak | FROGGS_: ss/all our GSOC student<()>/s/ | 13:57 | |
FROGGS++ # blog post | 13:58 | ||
timotimo | masak: oh that's a cute use of <( and )> | 13:59 | |
masak | also, perhaps a more minor thing: ss/This is <((in several ways) (interesting))>/$1 $0/ -- I believe that's a question of German vs English placement of adverbials. | ||
timotimo: patent pending ;) | |||
14:04
xenoterracide left
14:05
orafu left
14:06
OuLouFu joined,
OuLouFu is now known as orafu
14:07
xenoterracide_ joined
14:09
isBEKaml left,
Alina-malina joined
14:10
Alina-malina left
|
|||
timotimo | yeah, that looks like a germanism | 14:11 | |
which is funny, because english is also a germanic language :P | |||
14:11
Alina-malina joined
|
|||
masak .oO( which is in several ways funny ) | 14:13 | ||
timotimo: I find that, several families and groupings notwithstanding, each individual language tends to have lots of arbitrary restrictions of the type "no, you can't say it that way, because because!" | 14:14 | ||
timotimo | aye | 14:15 | |
masak | probably chiseled out over the centuries as the ground to the figure of actual usage. | ||
but that usage is *contingent*, and thus so are the restrictions. | 14:16 | ||
timotimo | m: $_ = "foo bar"; s/foo<()>/ooooo/; .say | ||
camelia | rakudo-moar 8de0fd: OUTPUT«fooooooo bar» | ||
masak | :D | ||
timotimo | i'm a tiny bit surprised that <()> doesn't parse as a single thing and errors out | ||
masak | that's because <( and )> are individual ops, and not a grouping construct. | ||
m: $_ = "foo"; s/f)>o<(o/!/; .say | 14:17 | ||
camelia | rakudo-moar 8de0fd: OUTPUT«foo» | ||
masak expected that to match, and replace *something* | |||
m: $_ = "foo"; s/fo<(o/!/; .say | |||
camelia | rakudo-moar 8de0fd: OUTPUT«fo!» | ||
masak | ah. | ||
ok, fair enough. Rakudo has it right. | 14:18 | ||
m: $_ = "foo"; s/<()>/!/; .say | |||
camelia | rakudo-moar 8de0fd: OUTPUT«!foo» | ||
masak | I could argue both ways about whether *that* one is an "empty" regex, though. | ||
but I don't see the harm in allowing it -- which tends to mean Perl allows it. | |||
timotimo | m: $_ = "foo bar"; s/<</!/; .say | 14:20 | |
camelia | rakudo-moar 8de0fd: OUTPUT«!foo bar» | ||
timotimo | same reason that's allowed, IMO. | ||
oh ... actually | |||
yeah, i do see your point | |||
14:21
atroxaper joined,
atroxaper left
14:25
woolfy joined,
lizmat joined
|
|||
masak | well, << is an *anchor*. <( is just a directive, really. | 14:28 | |
timotimo | mhh | ||
14:29
woolfy left
14:30
woolfy joined,
xenoterracide_ left
14:32
vendethiel joined
14:34
xenoterracide_ joined
14:36
anaeem1 joined
14:38
xragnar left
14:39
schogen joined,
xragnar joined
|
|||
masak | another way to say it is that << still acts on the target string just as much as 'foo' and \d do. | 14:47 | |
whereas <( acts on the matching process, more akin to what () and {} do. | |||
timotimo | mhh, right | 14:48 | |
moritz | s/matching/capturing/ process, actually | 14:51 | |
14:56
guru joined,
guru is now known as Guest58523
14:57
amkrankr1leuen left
|
|||
masak | ok, sure. | 14:57 | |
14:57
Guest58523 is now known as ajr_
|
|||
masak reaches 22:09 of www.youtube.com/watch?v=8OJ7ih8EE7s and gets a bit of an epiphany on macros | 14:58 | ||
macros are really all about a safe and rich "interchange" or "negotiation" between "macro land" and "program land". | 14:59 | ||
vendethiel | oh, a masak macros are really | ||
masak | for simplicity, we can imagine the macro as having been written years ago by a competent developer, stuffed away in a module somewhere, and used profitably by users. | ||
that means that this old macro will be "used" time and time again by code from the future (from its perspective). | 15:00 | ||
in other words, the macro is in the same business as a base class written to be extended, or a function written to accept callbacks. | |||
remember, our three high-level use cases here are "generate, analyze and typecheck code". (from scalamacros.org/) | 15:01 | ||
"generate" is what we've mostly been looking at as use cases. that's what quasis do for us. quasi interpolation makes it a bit more dynamic and useful. hopefully the scopes make sense, too. | 15:02 | ||
moritz | sounds like you realized that macros are abstractions (sorry, could not quite resist) | 15:03 | |
masak | heh. | ||
well, yeah, but lots of things are abstractions. functions, classes. | |||
moritz | 17:00 < masak> in other words, the macro is in the same business as a base class written to be extended, or a function written to accept callbacks. | 15:04 | |
masak | what I'm saying is that the macros are the special subtype of "responsible" abstraction that has to negotiate with its caller. | ||
or at least often they are. | |||
in the cases where they aren't, probably most of the time a function, inlining, and dead code elimination would do just fine. | |||
that was an insight that bothered me early on. like, the sense of macros being a feature looking for a use case. | 15:05 | ||
but then I found the "generate, analyze and typecheck" slogan, and then I felt better. | |||
because it really hinges on the macro being "aware" enough of (a) the context in which it is being invoked, and (b) the arguments/code it is being invoked *with*. | 15:06 | ||
15:06
xenoterracide_ left
|
|||
masak | this really points us towards the need for (a) a way to evaluate ASTs to values, (b) ways/better ways to construct/manipulate/navigate ASTs, and (c) ways to refer to the context around the macro invocation. | 15:09 | |
15:09
anaeem1 left
15:10
Akagi201_ left
|
|||
moritz | (c) makes a mit uneasy, actually. I imagine a macro rumamging around in the containing lexpad like a shady character in someone elses cupboards | 15:11 | |
but I guess it really is necessary | |||
vendethiel | masak: generate, analyze and type-check ? | 15:20 | |
to me, type checking is just part of the two firsts. | |||
but it's more of an idea, somewhat ... I write my ruby like it's lisp. | |||
(which is probably why I think crystal looks so cool, being ruby with type inference and macros) | 15:21 | ||
masak: but then, you need a specced AST format. | |||
which might or might not be what the compiler itself is using, after all ... | 15:22 | ||
masak | moritz: I was thinking more a readonly access than a read-write access. but maybe it needs to be one of those great power/great responsibility things. | 15:26 | |
vendethiel: re crystal: url? | 15:27 | ||
vendethiel | masak: github.com/manastech/crystal/ | ||
thought I linked it several times already, so I didn't want to spam it haha | |||
masak | vendethiel: yeah, "you need a specced AST format" is a thought that comes up with worrying regularity in my thoughts on macros. | ||
vendethiel | well, it's because it's normal in the grand scheme of dissection | ||
masak | ah, and crystal-lang.org/ | ||
vendethiel | masak: yep. It's ruby, with typing and powerful type inference, and macros. | 15:28 | |
I havn't had the opportunity to toy with it yet because I've experienced issues on windows, but it looks nifty. | 15:29 | ||
.oO( Why do everybody want to bring macros to ruby ? after elixir, crystal. ) |
|||
jnthn | FROGGS_: Any reason your blog ain't on planeteria.org/perl6/ ? | 15:35 | |
15:35
[particle]1 joined
15:36
[particle] left
15:37
amkrankruleuen joined,
amkrankruleuen left,
amkrankruleuen joined
|
|||
masak | another useful model when thinking about macros is the "three sites" thinking. there's the macro itself, the callsite where we use the macro, and the code that the macro generates and splices into the program. all of these want to interact, but only some of the interactions (in certain directions) make sense. | 15:37 | |
ah, I should draw a diagram, I think. | |||
the three sites correspond, respectively, to the concerns of the macro author, the program author, and the compiler. kinda. | 15:40 | ||
vendethiel | masak: let's avoid non-hygienic stuff~ | 15:41 | |
masak | heh -- sorry, the non-hygienic stuff is already spec'd and part of my ongoing grant. | 15:43 | |
it will be up to the macro author to avoid it, by choice. | |||
but that's a good example of two interactions. | |||
moritz | FROGGS++'s blog added to planeteria.org/perl6/ | ||
ChoHag | How can you change 'if $var:defined { ... }' to 'given $var { when ?? { ... } }' without making undefined be the degenerate case? | ||
masak | let's see. the hygienic version would be "generated code gets to see macro code". | 15:44 | |
the non-hygienic version would be "generated code gets to see the callsite code", and sometimes vice versa. | |||
vendethiel | masak: I disagree on that point. | ||
It can *see* the callsite and be hygienic | |||
masak | yeah, I think I'm working with too loose definitions here. | 15:45 | |
vendethiel | and you don't actually need macros for what they're currently available in p6 | 15:46 | |
just changing the meta model, using proxies and other dynamic method adding works | 15:47 | ||
(also `our export` :P) | |||
quasiquotes are very important, though | 15:48 | ||
I think I've read the scalac guys want to move codegen from the compiler to use quasiquotes instead. | 15:49 | ||
masak | macros and quasis are really just a way to participate in the compilation pipeline. | 15:50 | |
15:52
xenoterracide_ joined
16:03
xenoterracide_ left
16:04
raiph joined,
zakharyas joined
16:15
virtualsue joined
16:31
molaf__ joined
16:34
molaf_ left
16:38
SamuraiJack left
16:44
smls joined
|
|||
japhb | Is this known while trying to install first modules after bootstrapping panda successfully: Could not download module metadata: Failed to connect: connection refused in method update at lib/Panda/Ecosystem.pm:91 | 16:51 | |
? | |||
That was from a build I ran last night. If it's fixed already, I can build again .... | |||
timotimo | i believe we restarted the server | 16:52 | |
16:52
carlin_ joined
|
|||
japhb | timotimo: Ah, OK, will try again. | 16:52 | |
japhb watches it all build again .... | 16:53 | ||
16:54
virtualsue left
|
|||
japhb | Gah, well that failed pretty hard | 16:56 | |
timotimo | oh crap ... | ||
japhb | Now panda won't run from my rebuild script at all. | ||
japhb wonders what's gone wrong | |||
===SORRY!=== | 16:57 | ||
Missing or wrong version of dependency 'src/gen/m-Metamodel.nqp' | |||
Huh. | |||
16:58
labster joined
|
|||
jnthn | Did you bootstrap or rebootstrap? | 16:58 | |
japhb applies fire to the clones | |||
jnthn really doesn't know Panda that well, though... | |||
vendethiel | .oO( He set fire ... To the clones ... Watch it burn, lalalala ) |
||
japhb | jnthn: bootstrap | ||
16:59
R0b0t1` joined
|
|||
labster | I had an issue with panda a few days ago where a new install couldn't see anything in the ecosystem after bootstrap.pl. Running rebootstrap fixed it, but it was weird on a clean install. | 17:01 | |
17:02
R0b0t1 left
|
|||
labster | Maybe a bug, maybe the YAPC::NA hotel's rather questionable wifi. | 17:02 | |
japhb | Last night I was able to wget the module metadata JSON file, but if I went into the REPL and even tried to connect an IO::Socket::INET to the same host and port, it would immediately error saying connection refused. | 17:05 | |
Made me wonder if it was confused about return values from the underlying socket calls, or had gotten DNS wrong, or something like that. | 17:06 | ||
smls | When I try `panda install NativeCall` with R* 2014.04, a whole bunch of tests fail with: "No such method 'config' for invocant of type 'Hash'" :( | ||
do I need a newer | 17:07 | ||
Rakudo? | |||
japhb | I'm back to the behavior from earlier of being unable to download the module metadata. If I try to connect at the REPL, I get: | 17:09 | |
> my $s = IO::Socket::INET.new(:host<feather.perl6.nl>, :port(3000)); | |||
Failed to connect: connection refused | |||
jnthn | smls: R* already includes NativeCall | ||
smls: Of note, a version that works with the rakudo you have. | 17:10 | ||
japhb | Connecting in the same way to www.google.com port 80 works fine. | ||
WTH | |||
17:11
pdcawley joined
|
|||
smls | jnthn: Oh, right. | 17:12 | |
But why does Panda insist on installing its own NativeCall as a dependency for GTK::Simple ? | |||
timotimo | japhb: could be panda-server is still b0rked? | ||
17:12
virtualsue joined
|
|||
japhb | No, it gets weirder. If I use `host feather.perl6.nl` to get an IPv4 address, and connect using that, it works. | 17:13 | |
japhb wonders what happens if he tries the IPv6 address | |||
Hmmm, 'Failed to resolve host name' | 17:14 | ||
tadzik | smls: panda doesn't know about R* modules | ||
japhb | timotimo: if you do the socket connect I had above in the REPL, using feather.perl6.nl, does it work for you? | 17:15 | |
timotimo | i'm in a hurry, running late | ||
japhb | tadzik: I thought that was planned for R* a while back (to install all modules using the R* panda)? | ||
timotimo: no worries | |||
smls | tadzik: So that means I cannot install GTK::Simple on 2014.04? | ||
17:16
labster left
|
|||
japhb | smls: I believe there is a --no-deps or so | 17:16 | |
smls | installing that way failed too, but thanks | 17:22 | |
17:25
itz left,
R0b0t1` is now known as R0b0t1
|
|||
japhb | smls: Maybe other dependencies that you need to install manually first, so that the --no-deps becomes a noop? | 17:27 | |
smls | no, this time I hit a parsing error in lib/GTK/Simple.pm6 | 17:28 | |
maybe I'll investigae later | |||
17:29
carlin joined,
carlin left
17:30
raiph left
|
|||
tadzik | japhb: it was :( | 17:32 | |
japhb | tadzik: What blocked it? | 17:34 | |
tadzik | tuits | 17:35 | |
japhb | Oh. :-( | ||
tadzik | or rather: nobody ever tried :D | ||
:) | |||
FROGGS_ | jnthn: no, no idea... (v5@planeteria) | ||
who's the admin? | |||
japhb | I could swear that *someone* put some tuits to making that transition less painful .... | ||
17:35
araujo joined
|
|||
jnthn | FROGGS_: It got added by now, I think :) | 17:35 | |
FROGGS_ | \o/ | ||
awesome :o) | |||
jnthn | oh, or I thought it did, but don't see it... | 17:36 | |
FROGGS_ | hmmm, I don't see it | ||
jnthn | 15:43moritzFROGGS++'s blog added to planeteria.org/perl6/ | 17:37 | |
FROGGS_ | ahh | ||
jnthn | Maybe it takes a while to appear | 17:38 | |
FROGGS_ | yeah, perhaps it runs on the jvm :P | 17:39 | |
vendethiel | "Perl 6 is a highly capable, feature-rich programming language with over 25 years of history." | 17:46 | |
does that work ? | |||
moritz | perl's history is >25 years, Perl 6's isn't | 17:47 | |
vendethiel | mmmh, hmm. But perl's history is perl 6's history, isn't it ? | 17:48 | |
outside of the diverging year (but that doesn't change the count) | |||
FROGGS_ | "Perl 6 is a highly capable, feature-rich programming language made for the upcoming hundred years." | ||
sort of | |||
but when nobody thought of Perl 6 back then, then this is not directly Perl 6's history | 17:49 | ||
vendethiel | I'm not nobody thought ever thought of the future, but that's still history. I don't get your remark? | 17:54 | |
17:54
rurban1 left
|
|||
vendethiel | oh, I should make clear that I'm using "Perl 6" namingly here because there's another perl 5 tutorial | 17:56 | |
18:00
xinming_ joined
18:03
xinming left
|
|||
TimToady | our flight is 1.5 hours delayed; apparently they broke the air conditioner on the plane | 18:07 | |
japhb | Is there anyone that can recreate my problem with 'my $s = IO::Socket::INET.new(:host<feather.perl6.nl>, :port(3000));' ? | 18:08 | |
carlin_ | who needs airconditioning? just open a window | ||
jnthn | carlin_: On a plane, that solution kinda sucks :P | ||
japhb | TimToady: When you fill a metal cylinder with several tens of thousands of watts of humans, I would bet that becomes a critical feature. | ||
FROGGS_ | it actually blows | ||
TimToady | well, it does a bit of both, generally | 18:09 | |
R0b0t1 | So what is this :identifier stuff? | ||
TimToady | m: say :identifier.perl | ||
camelia | rakudo-moar 8de0fd: OUTPUT«"identifier" => Bool::True» | ||
R0b0t1 | Construction? | ||
TimToady | m: say :host<feather.perl.nl>.perl | ||
camelia | rakudo-moar 8de0fd: OUTPUT«"host" => "feather.perl.nl"» | ||
TimToady | constructs Pair objects | 18:10 | |
R0b0t1 | m: say :host<feather.perl6.nl> | ||
camelia | rakudo-moar 8de0fd: OUTPUT«» | ||
R0b0t1 | Pair objects? | ||
TimToady | you just passed a named argument to 'say', which it ignored | ||
which is likely a bug | |||
in the case above, it was named arguments to .new | 18:11 | ||
18:11
sjn_ joined
|
|||
TimToady | used to initialize the attributes | 18:11 | |
Pair objects turn into named args when you use them in an argument list to a function or method | |||
R0b0t1 | I see | 18:12 | |
FROGGS_ | ohh noes /o\, this proves that it sucks! www.youtube.com/watch?v=SqARHIKuuuU | ||
R0b0t1 | So a pair is a sigiled name and an object? | ||
TimToady | no sigil | ||
japhb | R0b0t1: A pair is literally that, a pair of things. Exactly two, and one is the key and the other the value. | 18:13 | |
TimToady | just a key and a value | ||
like one entry in a hash | |||
FROGGS_ | m: say (:host<feather.perl6.nl>) | ||
camelia | rakudo-moar 8de0fd: OUTPUT«"host" => "feather.perl6.nl"» | ||
FROGGS_ | m: say (:host<feather.perl6.nl>).perl | ||
camelia | rakudo-moar 8de0fd: OUTPUT«"host" => "feather.perl6.nl"» | ||
FROGGS_ | m: say (:host<feather.perl6.nl>).WHAT | ||
camelia | rakudo-moar 8de0fd: OUTPUT«(Pair)» | ||
R0b0t1 | The syntax is a bit strange, but okay. | ||
FROGGS_ | one get used to it :o) | ||
TimToady | well, you can use host => "feather.perl.nl" instead if you like | 18:14 | |
FROGGS_ | good thing is that you can chain them | ||
m: use QAST:from<NQP>:ver(*) | |||
camelia | ( no output ) | ||
TimToady | => is something like . in Lisp | ||
oh, different sense of 'chain' | |||
japhb | say foo => bar => baz => quux | 18:15 | |
m: say foo => bar => baz => quux | |||
camelia | rakudo-moar 8de0fd: OUTPUT«===SORRY!=== Error while compiling /tmp/P1SkeRFQfFUndeclared routine: quux used at line 1» | ||
japhb | m: say foo => bar => baz => 'quux' | ||
camelia | rakudo-moar 8de0fd: OUTPUT«» | ||
japhb | m: say (foo => bar => baz => 'quux').perl | ||
camelia | rakudo-moar 8de0fd: OUTPUT«"foo" => "bar" => "baz" => "quux"» | ||
japhb | cons lists for the win | ||
R0b0t1 | Neat | 18:19 | |
FROGGS_ | m: fail 42 | 18:32 | |
camelia | rakudo-moar 8de0fd: OUTPUT«Unhandled exception: 42 at src/gen/m-CORE.setting:11409 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:117) from src/gen/m-CORE.setting:12867 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:s…» | ||
FROGGS_ | m: die 42 | 18:33 | |
camelia | rakudo-moar 8de0fd: OUTPUT«42 in block at /tmp/7zxhbL3xsI:1» | ||
FROGGS_ | why do we get a low level backtrace for 'fail' ? | ||
jnthn | FROGGS_: I think because it's sunk back in NQP land... | 18:34 | |
m: fail 42; 1; | |||
camelia | rakudo-moar 8de0fd: OUTPUT«Unhandled exception: 42 at src/gen/m-CORE.setting:11409 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:117) from src/gen/m-CORE.setting:12867 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:s…» | ||
jnthn | Hm, maybe not that then. | ||
FROGGS_ | I like to fix it... perhaps I find the position of my bug then :o) | ||
jnthn | go for it :) | 18:35 | |
I've got a handful of Rakudo patches that improve assignment to scalar code-gen quite a bit, but dinner first... | |||
18:36
virtualsue left
|
|||
FROGGS_ | dinner++ | 18:36 | |
18:37
pdcawley left
|
|||
japhb | WTH? As a sanity check, I tried connecting to feather.perl6.nl port 80 (instead of 3000), and ... it worked. | 18:42 | |
japhb is really confused now. | 18:43 | ||
18:43
pdcawley joined
18:44
kaare_ left
|
|||
japhb | Oooh! I see this in wget's output: | 18:45 | |
Connecting to feather.perl6.nl (feather.perl6.nl)|2a02:2308:10::f:1|:3000... failed: Connection refused. | |||
Connecting to feather.perl6.nl (feather.perl6.nl)|193.200.132.135|:3000... connected. | |||
But for port 80: | |||
Resolving feather.perl6.nl (feather.perl6.nl)... 2a02:2308:10::f:1, 193.200.132.135 | |||
Connecting to feather.perl6.nl (feather.perl6.nl)|2a02:2308:10::f:1|:80... connected. | |||
So, my DNS lookup is returning the AAAA record before the A record, but port 3000 is only listening on the IPv4 address, not the IPv6 address, while port 80 is listening on both (I checked by forcing the IPv4 address) | 18:47 | ||
So ... can someone with the proper powers on feather fix the listen addresses on port 3000? :-) | 18:48 | ||
Also, the IO::Socket::INET code (or lower layers) should probably attempt to connect on multiple different addresses, if available for the given host. | 18:49 | ||
Is address resolution exposed at the Perl 6 level anywhere? | 18:51 | ||
18:52
darutoko left
18:53
carlin_ left,
carlin joined
|
|||
FROGGS_ | japhb: don't think so | 18:53 | |
it is in nqp for parrot and should be in moarvm for moar | 18:54 | ||
18:54
pdcawley left,
virtualsue joined
19:01
schogen left
|
|||
TimToady is wondering whether we're dispatching to tap targets assuming a single $ argument, or whether we can feed directly to a multi-arg multiple-dispatch... | 19:03 | ||
it would be a shame to have to redispatch just to unpack a $ into a |c | |||
19:04
rindolf left
19:05
hoverboard joined
|
|||
TimToady | it looks like the args are \val and passed on as val, but maybe they should be |val? | 19:06 | |
19:07
virtualsue left
|
|||
TimToady | just thinkin' how Erlang can pass messages directly to pattern matchers | 19:08 | |
19:10
itz joined
19:12
virtualsue joined
19:15
asterite joined
|
|||
timotimo | smls: i don't get a parse error in gtk-simple; did you pull latest? | 19:22 | |
vendethiel | Where's the syn part about `macro is parsed` ? I can't seem to find it. | 19:30 | |
TimToady wonders whether we should have a 'macro regex' instead of using the trait mechanism | 19:31 | ||
and the macro just returns whatever you 'make' | 19:32 | ||
vendethiel | TimToady: macro grammar ;-) | ||
TimToady | well, one would get grammatical categories for free with macro-regex infix:sym<foo> and such | 19:33 | |
19:33
LLamaRider joined
|
|||
FROGGS_ | jnthn: it looks like there are two issues... one in main.nqp about sink, and one about the way &fail works | 19:40 | |
TimToady | I guess it would want a declarator that puts it into the curren tslang | ||
FROGGS_ | jnthn: and I think I have a fix for the latter | 19:41 | |
vendethiel | m: say 3+4; { sub infix:<+>($foo, $bar) { say $foo }; "foo" + "bar"; }; say 3+4; | ||
camelia | rakudo-moar 8de0fd: OUTPUT«7foo7» | ||
TimToady | slang regex infix:sym<op> { <sym> { make quasi { } } } and such | ||
well, probably slang token in the normal case | 19:42 | ||
jnthn | FROGGS_: OK, nice :) | ||
FROGGS_ | jnthn: for 'fail 42; 1' there was no backtrace at all fwiw, now there is one :o) | 19:43 | |
19:43
Sqirrel joined
|
|||
FROGGS_ spectests | 19:43 | ||
jnthn | ok :) | ||
I pushed a bunch of stuff a bit ago | |||
FROGGS_ | it just was "SORRY\n=======\n42", which sucks slightly, especially for beginners | 19:44 | |
okay, will pull right before pushing | |||
jnthn | ok :) | ||
Am currently discovering that it's possible to choke on ice cream...and working on inlining things containing extops. | 19:45 | ||
FROGGS_ | O.o | ||
TimToady | well, maybe infix is a bad example for a category macro | ||
FROGGS_ | don't inline ice cream then ó.ò | ||
wrap has four fails currently | 19:46 | ||
BenGoldberg | . o O (mmm, ice cream) | ||
jnthn | yeah, I think those are new tests | ||
FROGGS_ | ahh, that is known: github.com/coke/perl6-roast-data/b....out#L2281 | ||
FROGGS_ .oO( We all scream for ice cream! ) | 19:47 | ||
no new fail and I'm at S29 already... seems like I didn't break anything | 19:48 | ||
vendethiel | m: sub postfix:<xy>(Int $n) {$n*3}; say 3xy; | 19:50 | |
camelia | rakudo-moar 8de0fd: OUTPUT«9» | ||
timotimo | ah, d'oh | 19:52 | |
now i see what's wrong about the isconcrete optimization %) | |||
jnthn | result register. argument register. what's the difference? :P | 19:53 | |
timotimo | if i was the one who implemented that, i think i probably thought i was setting a fact on the result register | ||
jnthn | Well, the fact goes on the result reg | 19:54 | |
timotimo | rather than setting the instruction to a constant literal and setting the literal's result value | ||
jnthn | Right. :) | ||
btw, one thong I notice now... | |||
uh, thing | |||
Is we could probably use the const_i64_16 | |||
And get more compact code. Feel free to tweak that. | 19:55 | ||
timotimo | sure | ||
TimToady | my plane is now only going to be about 3.5 hours late... | 19:56 | |
well, at least Orlando has wifi | |||
FROGGS_ | TimToady: :/ | ||
19:57
virtualsue left
|
|||
vendethiel | (at this point, and considering how I've seen everybody saying this, I'm not scared of planes because of crashes, but because of delays) | 19:57 | |
TimToady | well, at least a busted AC is not likely to take down a plane... | 19:58 | |
not unless it shoots flames or some such | |||
20:00
hoverboard left
|
|||
vendethiel | anybody still have the link to that "scheme slang" I think I've seen ? | 20:00 | |
I seem to remember something like that ... | |||
FROGGS_ | I pushed: | ||
fix 'fail' so it also prints a backtrace | |||
This works in all cases except when the fail is the last statement of | |||
our program. The call to .sink in main.nqp seems to introduce a problem, | |||
which results in a low level backtrace that does not even show the file | |||
and line number of the user's code. | |||
github.com/rakudo/rakudo/commit/6b...4699f1b09b | 20:01 | ||
and it nicely shows the error I have in Archive::Tar :o) | |||
20:03
LLamaRider left
|
|||
timotimo | jnthn: i'm going to benchmark a rakudo-moar on the current rakudo head; without my spesh const_i64_16 tuning, but with the osr and isconcrete fixes | 20:05 | |
jnthn | timotimo: OK, nice | ||
FROGGS_ | jnthn: why was there a 'my &fail := ...' instead of a sub? is that so damn faster? | ||
jnthn | FROGGS_: No | ||
FROGGS_ | because it does not allow to export a sub fail from a module fwiw | 20:06 | |
jnthn | FROGGS_: Actually worse 'cus it frustrates inling. | ||
FROGGS_ | had to fight that in v5 | ||
k | |||
jnthn | FROGGS_: The problem is that a sub introduces a return handler | ||
So | |||
sub return(\x) { ...get return handler... } | |||
TimToady | jnthn: can a tap call into a multiple dispatch with multiple args directly, or would it need a helper closure currently? | ||
timotimo | a "tap" call? | ||
TimToady | .tap( &my_multi_sub } | 20:07 | |
jnthn | I think got interesting in terms of the return handler... | ||
TimToady | er, ) | ||
FROGGS_ | m: sub foo { fail 42 }; sub bar { foo }; bar() | ||
camelia | rakudo-moar 8de0fd: OUTPUT«Unhandled exception: 42 at src/gen/m-CORE.setting:11409 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:117) from src/gen/m-CORE.setting:12867 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:s…» | ||
FROGGS_ | ahh, well, can't check the bt here anyway | ||
jnthn | TimToady: It can be a multi-dispatch sub, but "more" provides one more value... | ||
20:07
user3 joined
|
|||
jnthn | TimToady: So it's only useful if you're planning to dispatch on type | 20:08 | |
20:08
user3 left
|
|||
jnthn | TimToady: Of course, you can use unpacking in the signatures of the multi to do unpacking; it'll be a perfectly ordinary multi-dispatch. | 20:08 | |
TimToady | what if you have a supply that supplies Capture objects? | ||
FROGGS_ | m: sub foo { fail 42; 1 }; sub bar { foo; 1 }; bar() | ||
camelia | rakudo-moar 8de0fd: OUTPUT«===SORRY!===42» | ||
FROGGS_ | that is weeeeeird | ||
locally I get: 42 | 20:09 | ||
in sub bar at -e:1 | |||
in block at -e:1 | |||
dunno if it supposed to show foo, I guess so | |||
jnthn | TimToady: Hm, I'm strugglying a tiny bit on a use case for that. If you wanted to flatten the capture into a call then you'd need a closure to help do that, I guess | ||
{ foo(|$_) } or so | |||
TimToady | which isn't necessary in Erlang | ||
messages basically go straight to pattern matchers | 20:10 | ||
would be nice to avoid the indirection | |||
jnthn | I do plenty of message-based things, but I just use types for my messages. | ||
TimToady | seems passing $ would just be a degerate case | ||
*generate | |||
one can always pass an item through as the first and only arg of a Capture | 20:11 | ||
so I'm wondering what would be the cost of saying we always pass Captures as messages | 20:13 | ||
or Parcels, maybe | |||
(and then there's all the objects that can behave as a 1-item Parcel without the wrapper) | |||
so I'm thinking this might be another spot we should be lazy about context | 20:14 | ||
jnthn | TimToady: Quite high... | ||
It wasn't so long ago you mentioned |capture is an escape hatch. | 20:15 | ||
Spesh heavily agrees. It won't even touch a callsite that flattens. | |||
TimToady | well, what about Parcel if , and bare thing otherwise, that would be very expensive for anything that can be its own parceloid | ||
jnthn | And things are about the same on JVM with invokedynamic... | ||
Flattening callsites are a huge pain optimization wise. | 20:16 | ||
And I'm heavily disinclined to like a design that makes my quite-hard-enough-thanks optimization job even harder... | |||
What's the actual Erlang feature you're wanting to recreate easily here? | 20:17 | ||
TimToady | you basically send messages to a proto | ||
in p6 terms | |||
jnthn | I'd thought Erlang was more about actors... | ||
timotimo | jnthn: should i also run a nqp master and compare that against our released version? | 20:18 | |
TimToady | well that's how it does actors :P | ||
jnthn | In which case I'd have thought we really want an actors module that uses the MOP to introduce an "actor" keyword, which provides asynchronous dispatch of methods.... | ||
jnthn has even pondered writing such a module ;) | |||
I agree there's more than one way to actor-like things :) | 20:19 | ||
20:19
asterite left
|
|||
TimToady | anywho, have to pack up and go to a different gate, just something to think about whether the default is quite right | 20:19 | |
jnthn | Heck, .act on a supply is even short for "actor"... | ||
TimToady | biab & | ||
jnthn | Well, it's one of the meanings, anyway :) | ||
k | |||
timotimo | oh, i'm not actually sure if i pulled latest perl6-bench, i may be missing benchmarks in this run :| | 20:20 | |
jnthn | timotimo: Can you include Perl 5 too? :) | ||
timotimo | i can | 20:21 | |
jnthn | thx | ||
I'm working on inline improvements as we speak, but having the set with OSR but not inline improvements is nice. | |||
timotimo | ok | ||
jnthn | (so we can see how much each helps) | ||
timotimo | yes, i need to pull perl6-bench first | 20:22 | |
how long until you push? and would you bump? | |||
jnthn | It'll be at least an hour or so. | 20:23 | |
The extops case is not quite trivial. | |||
timotimo | ok | ||
japhb: can we rename either nqp-moarvm or rakudo-moar so that they line up? | 20:27 | ||
46 benchmarks now rather than 43 | 20:28 | ||
should be more interesting, as these benchmarks are a bit bigger than the rest | |||
20:29
smls left
20:35
virtualsue joined
20:41
SHODAN left
20:43
SHODAN joined
|
|||
vendethiel | m: my $a_ = 5; say $a_ | 20:44 | |
camelia | rakudo-moar 8de0fd: OUTPUT«5» | ||
vendethiel | m: my $a"_ = 5; say $a"_ | ||
camelia | rakudo-moar 8de0fd: OUTPUT«===SORRY!=== Error while compiling /tmp/makxddcAGqTwo terms in a rowat /tmp/makxddcAGq:1------> my $a⏏"_ = 5; say $a"_ expecting any of: scoped declarator constraint postfi…» | ||
vendethiel | m: my $long'variable-name_ = 5; | 20:45 | |
camelia | ( no output ) | ||
TimToady is back; flight is now delayed about 7 hours; they're flying in a new plane from Detroit | 20:50 | ||
Just For Us | |||
FROGGS_ | ohh dear | ||
are they about to build that new plane? | 20:51 | ||
TimToady | Michigan is right next to Florida, right? | ||
FROGGS_ | I have no idea :o) | ||
jnthn | 7 hours? ugh. | 20:53 | |
Delays longer than the trip itself really suck... | |||
TimToady | esp for the volunteers picking you up on the other end, who would probably have stayed out at the lake if they'd known we'd be so late | ||
jnthn | :( | 20:54 | |
20:54
ajr_ left
|
|||
TimToady | with all our messaging, we will be fast friends with them before we've even met them... | 20:54 | |
20:55
virtualsue left
20:58
LLamaRider joined
|
|||
vendethiel | First sketch of Perl6 learnxinyminutes : github.com/Nami-Doc/learnxinyminut...ee2e913128 | 20:59 | |
lee__ | missing an oxford comma in the list of VMs :D | 21:00 | |
TimToady | oxford++ | 21:01 | |
jnthn | bah, what's so great about oxford... | ||
TimToady | only the commas :) | 21:02 | |
ChoHag | Given a class (not mine) which has a private attribute, how could I extend that class in such a way that I could examine that attribute? | 21:04 | |
TimToady | you can always cheat | ||
jnthn | ChoHag: Inheritance doesn't grant you access to the parent class attributes, so it's the usual answer for "how do I access private things": through the MOP. | 21:05 | |
ChoHag | Lingustic rules are for people who don't know how to write. | ||
TimToady | where MONKEY_TYPING is one form of cheating :) | ||
jnthn | Ah, I guess extend could mean things other than inherit | ||
In which case, yeah, augment after using what TimToady++ said. | |||
ChoHag | Yes. Sorry. | ||
Extend in the Microsoft sense. | |||
TimToady | ChoHag: unfortunately the AP style guide folks don't know how to write :/ | ||
vendethiel | As a french one, I'm afraid I despise the oxford comma, so no :P | 21:07 | |
TimToady | Adam and Eve, Abbot and Costello, and Laural and Hardy would all disagree. | ||
ChoHag | I've always been a simple start to finish type of coder. Things like object orientation and the like are just fancy ways of wrapping up bits en route so I never paid much attention to what the various terms mean. | ||
Especially since the number of programming paradigms seems to have exploded recently. | 21:08 | ||
I think it's the September effect. | |||
vendethiel | TimToady: they wouldn't. | ||
itz | is feather down? | ||
ChoHag | ergo, there are objects, and they can be changed. Whether that's by inheritence, roles, fucking about with the machine code at run time, it's the same. | 21:09 | |
TimToady | I think Asterix and Obelix would also prefer to be written with the comma :) | ||
ChoHag | The CPU doesn't know or care, so why should I? It's like knowing the names and particulars of linguistic grammar rules. | 21:10 | |
(There. Conversations reduce()d.) | |||
FROGGS_ | jnthn: fyi, I pushed to rakudo | ||
jnthn | FROGGS_: Cool. I just segfaulted it... | 21:11 | |
TimToady | well, if English would put the 'and' out front it with a reduce operator like P6, the issue wouldn't arise :) | ||
FROGGS_ | jnthn: you... what? | ||
carlin | Common arguments for consistent use of the serial comma: Use of the comma is consistent with conventional practice | ||
ChoHag | So on MOP buggery, what can I do? In a role which is does/butted, something like self.HOW.get_value_I_don't_remember_the_function_name(self, 'hidden_attribute')? | ||
carlin | Common arguments against consistent use of the serial comma: Use of the comma is inconsistent with conventional practice | ||
from en.wikipedia.org/wiki/Serial_comma#...nd_against -- good johb wikipedia | 21:12 | ||
ChoHag | I want to be read-only. I promise! | ||
TimToady smiles, winks at, and nudges Chohag. | 21:13 | ||
ChoHag | carlin: My argument: Writing is one medium of many among the forms of communication humans continue to (re-)invent, and if people feel the need to pin rules down on the matter they are welcome to do so as effectively as butterfly collectors. | ||
itz | $ panda install Task::Star | 21:14 | |
Could not download module metadata: Failed to connect: connection refused | |||
hmm wget works | |||
TimToady | we already got a bunch of publishers doing logical quoting and series comma, including O'Reilly++ | ||
the french should be in favor of anything that is revolutionary... | 21:15 | ||
FROGGS_ | damn, I seem to have hit a 'next LABEL' bug :/ | ||
TimToady | we'll have to hunt down whoever implemented that... | 21:16 | |
FROGGS_ | /o\ | ||
TimToady: ha! try to get to my place :P | |||
TimToady can't even get to Nashville... | |||
and in any case doesn't have his passport with him, since it's getting extra pages installed | 21:17 | ||
m: FROGGS_: goto FROGGS_; | 21:18 | ||
camelia | rakudo-moar 8de0fd: OUTPUT«===SORRY!=== Error while compiling /tmp/ErLmkK9HTXUndeclared routine: goto used at line 1» | ||
TimToady | n: FROGGS_: goto FROGGS_; | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«(timeout)» | ||
FROGGS_ | hehe | ||
no way! | |||
TimToady | unfortunately my niecza is busted, won't compile under mono 3 | ||
so you're safe until someone ports niecza to mono 3 | 21:19 | ||
or hacks goto into rakudo | |||
TimToady looks around for a volunteer | 21:20 | ||
itz | does IO::Socket::INET work with ipv6? | ||
FROGGS_ | my niecza still works | ||
TimToady | don't upgrade your mono | ||
FROGGS_ | k | 21:21 | |
TimToady | or your .NET | ||
ChoHag | Bah it might help if I saved the .pl with the change I'm testing... | ||
TimToady | just type u in vim till it gets back to where you were... | ||
(this is why I almost never exit vim, just have it autosave on ^Z) | 21:22 | ||
sort of a micro revision control system | |||
ChoHag | Is there a shorter way to write self.HOW.attributes(self).grep({$_.name ~~ '$!foo'})[0].get_value(self)? | 21:28 | |
jnthn | .grep(*.name eq '$!foo') | 21:30 | |
itz | panda doesn't work on an ipv6 system since feather has an ipv6 address and port 3000 isn't bound on it | ||
ChoHag | What about the whole attributes.grep.get_value chain? | 21:31 | |
Is there a 'get_attribute' for example? | 21:32 | ||
And if not, why not? | |||
FROGGS_ | \o/ | 21:35 | |
I can print the content of a tar | 21:36 | ||
TimToady | \o/ | ||
Nothing can stop us now! | |||
FROGGS_ | *g* | 21:38 | |
jnthn | ChoHag: The fact it hurts is meant to be a fairly storng hint that it's usually a bad idea. | 21:41 | |
ChoHag | It *is* a bad idea. | 21:43 | |
But I'm not going to let that stop me. | |||
TimToady | use I'LL_BE_A_MONKEY'S_UNCLE; | 21:44 | |
jnthn | If you want to use something non-spec, I *think* .get_attribute_for_usage('$!name') may work... | ||
It's the thing the compiler uses to resolve attribute names when it wants to do usage/declaration checks. | |||
TimToady | we should randomly switch internal method names between _ and - each version just to make it more painful | 21:45 | |
ChoHag | And the odd unicode symbol. Or apostrophe. | 21:46 | |
Throw in a few british spellings. | |||
TimToady | and a few french spellings... | 21:47 | |
just to be fair | |||
ChoHag | ITYM xE9quitable. | 21:48 | |
TimToady | and maybe a bit of klingon just to be...not killed... | ||
jnthn hopes somebody other than him is going to be putting the french into the internals | 21:49 | ||
My French vocab is a bit limited. I forgot most of what I learend at high school, and the only new French word I learned this year is gode... | 21:50 | ||
TimToady | is that like doge? | ||
vendethiel | TimToady: not quite ... | 21:52 | |
trust me, I'm french | |||
actually, let me fix that -- don't trust me, I'm french. | |||
carlin | I'd love to know the circumstances that one would come to learn that word | 21:53 | |
(having just translated it) | |||
I like how it means "good" in Norwegian | 21:54 | ||
jnthn | carlin: Was sat next to somebody who did a typo when trying to search for doge :P | 21:55 | |
vendethiel | now imagine that happening to kids | 21:56 | |
BenGoldberg | One might also have been searching for "geode" | ||
carlin | that's a gode excuse :p | 21:57 | |
vendethiel | I lost my last ounce of innocence at the FPW2014 anyway. | 21:59 | |
22:00
SevenWolf joined
|
|||
zengargo1le | unpack doesn't seem to support the * in something like 'NNCxxxN*', is there some new format? | 22:09 | |
timotimo | what was that * for? | 22:10 | |
zengargo1le | like 'N' xx $count but just 'N' to the end i guess... that was the p5 unpack format for something.. | 22:11 | |
timotimo | oh? | 22:12 | |
zengargo1le | a few N's, a char, 3 pad bytes, then all N's | ||
timotimo | was the count supplied as an extra argument? | ||
zengargo1le | more like one of the initial N is the count | ||
BenGoldberg | With a *, it would mean use the entire string. | ||
zengargo1le | right. | 22:13 | |
that's what i want. | |||
timotimo | ah, ok | ||
the strings length is known of course | |||
TimToady | our new plane has finally taken off from Detroit, sigh... | ||
zengargo1le | i'm using 'N' xx $count now, since the 'N*' didn't do the trick. | ||
but it seems awful to have a string of thousands of N to unpack a long buffer. | 22:14 | ||
22:14
dmol left
|
|||
timotimo | aye | 22:16 | |
TimToady: i wish you a pleasant flight! | |||
TimToady | well, the plane still has to get to Orlando in one piece | 22:17 | |
22:17
LLamaRider left
|
|||
TimToady | and doubtless it'll be time for the evening electrical storm by then... | 22:17 | |
last night's was a dandy | 22:18 | ||
22:18
zakharyas left
22:19
raiph joined
22:20
pdcawley joined
22:23
itz left,
R0b0t1 left
22:25
colomon_ joined
22:36
kivutar joined
22:38
R0b0t1 joined
22:43
spider-mario left
22:47
tgt joined
|
|||
[Coke] waves from oregon. | 22:47 | ||
22:48
tgt left
|
|||
[Coke] | ENODALEK? | 22:48 | |
carlin | Dalek is MIA | 22:50 | |
timotimo | aye :( | ||
cognominal | blame the talibans | 22:56 | |
22:56
LLamaRider joined
|
|||
TimToady | compiling Test.pm with perl6-j: Unhandled exception: Method 'count' not found for invocant of class 'Scalar' | 22:57 | |
jnthn | o.O | ||
TimToady | with current head, also with =master | ||
22:57
LLamaRider left
|
|||
jnthn | TimToady: Is it a load-time failure? | 22:57 | |
(as in, does perl6-j -e "say 42" also fail?) | 22:58 | ||
TimToady | yes | 22:59 | |
jnthn | ugh | ||
[Coke] | oh, I never pushed my commits from the other day. | ||
22:59
ClarusCogitatio left
|
|||
jnthn wonders how recently what broke | 22:59 | ||
*that | |||
TimToady | j: say 42 | ||
camelia | rakudo-jvm 8de0fd: OUTPUT«42» | ||
22:59
amkrankruleuen left
|
|||
TimToady | gist.github.com/anonymous/ea6d6afd908f00f3ece6 is the error | 23:01 | |
jnthn | What if you add --ll-exception ? | ||
I'm vaguely suspecting one of 6a7df16, 78f85e1, or perhaps even 8de1f65, but it's not clear why they'd affect JVM in an odd way | 23:03 | ||
23:03
ClarusCogitatio joined
|
|||
TimToady | gist.github.com/anonymous/a83350804b0654290a60 | 23:03 | |
jnthn | eek | 23:04 | |
23:05
Rotwang left
|
|||
TimToady wanders off to look for dinner | 23:05 | ||
since our New Plane is supposed to get here in a little over an hour... | 23:06 | ||
bbl & | |||
jnthn | OK. Think I found it. | ||
23:07
amkrankruleuen joined
23:08
thou left
23:11
pdcawley left
23:16
pdcawley_ joined
|
|||
timotimo | interestingly, the self-describing-numbers benchmark takes a really long time | 23:18 | |
TimToady | 2nd prize: 2 meals at Outback Steakhouse... | 23:22 | |
the only actual restaurant in this terminal | 23:23 | ||
jnthn: seems fixed, thanks | 23:26 | ||
23:26
hoverboard joined
|
|||
timotimo | i got ze timings | 23:29 | |
jnthn | TimToady: With the latest NQP patch? | ||
Yeah, I just got it build here too | |||
Bumping | |||
timotimo | t.h8.lv/p6bench/2014-06-29-OSR_inlinefix.html ← jnthn | 23:31 | |
i'm surprised, not too much has changed | 23:34 | ||
in the very last benchmark, 9 million names, nqp has actually become slower | |||
er, rakudo-moar has become slower | |||
nqp has become a bit faster | |||
jnthn | Curious. | 23:36 | |
timotimo: Uh, quite big changes in some benchmarks. | |||
timotimo | oh, *damn* that log-log scale | 23:37 | |
jnthn | Most of the while loop ones make it an extra notch | ||
Curious about that rc-9-billion-names one. | 23:38 | ||
NQP beats Perl 5 for that one. | |||
23:38
pdcawley_ left
|
|||
jnthn | rc-dragon-curve Rakudo doesn't do awfully on. rc-self-describing-numbers is awful, though. | 23:39 | |
timotimo | only in the very first ones | 23:40 | |
23:40
pdcawley joined
|
|||
jnthn | Note that inline doesn't handle things with return handlers left behind yet | 23:42 | |
timotimo | ah | 23:45 | |
that would be most things, eh? | |||
131mb is our startup memory use for rakudo-moar now | |||
23:46
gfldex left
|
|||
timotimo | 21.5 for nqp | 23:46 | |
jnthn | Well, it's a bunch of things. Not ++ and <= though, which are the couple I was looking at. | ||
23:59
pdcawley left
|