»ö« 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:02
BenGoldberg left
|
|||
colomon | pretty sure "powerfulest" is not a word in English | 00:08 | |
vendethiel | CAN BE | ||
:P | |||
colomon | …. but then carlin++ has already answered your question quite well. | 00:09 | |
m: say (1..*).grep([+] *.comb == 7)[^20] | |||
camelia | rakudo-moar 866817: OUTPUT«Cannot call 'Numeric'; none of these signatures match::(Mu:U \v: *%_) in sub infix:<+> at src/gen/m-CORE.setting:4181 in sub at src/gen/m-CORE.setting:17420 in block at /tmp/RU2TZxAUFp:1» | ||
colomon | m: say (1..*).grep(([+] *.comb) == 7)[^20] | 00:10 | |
camelia | rakudo-moar 866817: OUTPUT«Cannot call 'Numeric'; none of these signatures match::(Mu:U \v: *%_) in sub infix:<+> at src/gen/m-CORE.setting:4181 in sub at src/gen/m-CORE.setting:17420 in block at /tmp/yZmDxp6RM9:1» | ||
00:10
hoverboard joined
|
|||
colomon | m: say (1..*).grep(-> $i { ([+] $i.comb) == 7 })[^20] | 00:10 | |
camelia | rakudo-moar 866817: OUTPUT«7 16 25 34 43 52 61 70 106 115 124 133 142 151 160 205 214 223 232 241» | ||
colomon realizes that's not actually the sequence operator he used in there. | 00:11 | ||
00:18
Ven left
|
|||
vendethiel | oh, I actually already explained [OP], nice. Missing [\OP], though. I'll check what it does (array ?) later | 00:19 | |
00:22
jnap left
|
|||
timotimo | [\| | 00:23 | |
m: [\~] <a b c d e f> | |||
camelia | ( no output ) | 00:24 | |
timotimo | m: say [\~] <a b c d e f> | ||
camelia | rakudo-moar 866817: OUTPUT«a ab abc abcd abcde abcdef» | ||
timotimo | m: say [~] <a b c d e f> | ||
camelia | rakudo-moar 866817: OUTPUT«abcdef» | ||
00:25
ivanshmakov left,
dmol left
00:28
ivanshmakov joined
00:38
thou joined
00:40
rurban1 joined
00:43
thou left
00:45
rurban1 left
01:00
anaeem1_ joined,
anaeem1_ left
01:01
anaeem1 joined
01:05
anaeem1 left
01:11
dayangkun joined
01:19
nbrown joined
01:22
FROGGS_ joined
01:24
BenGoldberg joined
01:26
nbrown left,
FROGGS left
01:30
nbrown joined
01:31
xenoterracide_ joined
01:35
nbrown left
01:38
cooper_ left
01:40
cooper_ joined
01:42
rurban1 joined
01:46
rurban1 left
01:48
rindolf joined
01:52
klapperl joined
01:55
klapperl_ left
02:15
noganex_ joined
02:18
noganex left
02:25
chenryn joined
02:27
thou joined
02:31
thou left
02:32
xenoterracide_ left
02:36
xenoterracide_ joined
02:42
rurban1 joined
02:47
rurban1 left
02:52
chenryn left
02:54
rurban1 joined
03:05
kurahaupo left
03:27
silug left
03:28
kaare_ joined
03:37
silug joined
03:45
hoverboard left
03:54
xenoterracide_ left
04:13
BenGoldberg left
04:15
thou joined
04:19
thou left
04:24
molaf joined
04:46
hoverboard joined
04:47
rurban1 left
05:04
gfldex joined
05:05
rurban1 joined
05:15
rurban1 left
|
|||
hoverboard | ou | 05:20 | |
05:24
charsbar_______2 is now known as charsbar
05:28
lizmat joined
05:29
xragnar left
05:31
xragnar joined
05:37
lizmat_ joined,
lizmat left
05:41
molaf left,
darutoko joined
|
|||
lizmat_ | #76456 # just checking | 05:42 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76456 | ||
05:46
rurban1 joined
05:50
rurban1 left
06:03
thou joined
06:07
lizmat_ left
06:08
thou left
06:16
Alina-malina left
06:30
hoverboard is now known as moistcherry
06:32
moistcherry left
06:33
ivanshmakov left,
ivanshmakov joined
06:49
rurban1 joined
06:53
rurban1 left
06:55
kurahaupo joined
06:59
Alina-malina joined
07:01
nhayashi left
07:05
nhayashi joined
07:21
jiffies joined
|
|||
jiffies | 。 | 07:22 | |
07:26
jiffies left
07:29
virtualsue joined
07:36
jiffies joined
|
|||
jiffies | hello? | 07:37 | |
07:38
jiffies left
07:50
rurban1 joined
07:52
thou joined
07:53
rurban2 joined
07:54
rurban1 left
07:55
rurban1 joined
07:56
thou left
07:57
rurban2 left
07:59
rurban1 left
08:01
anaeem1 joined
|
|||
nwc10 | FROGGS_: unfortunately 5c191ee846461727a14f84cb1df75c0d35396c80 breaks NQP tests. Specifically t/nqp/19-file-ops.t (which no longer parses) and t/qregex/01-qregex.t | 08:18 | |
08:24
FROGGS[mobile] joined
08:33
itz__ is now known as itz_
08:39
Rotwang joined
08:42
dmol joined
|
|||
nwc10 | FROGGS_: unfortunately it also breaks the Rakudo build | 08:50 | |
/home/nicholas/Sandpit/moar-san/bin/nqp-m --target=mbc --output=blib/Perl6/Grammar.moarvm --encoding=utf8 \ src/Perl6/Grammar.nqp | |||
Unrecognized regex modifier :my at line 903, near " $*POD_ALL" | |||
[backtrace.] | 08:51 | ||
08:56
rurban1 joined
|
|||
itz_ | I have perl6-m built OK as of 8668171 on linux | 08:56 | |
09:00
rurban1 left
|
|||
nwc10 | itz_: using which nqp? | 09:01 | |
FROGGS[mobile] | ewww | 09:02 | |
I'm moving it to a branch then... | |||
nwc10 | that seems best, if you don't have time to fix it "Real soon" | 09:03 | |
dalek | p/charrange: e1b6829 | (Tobias Leich)++ | src/QRegex/P6Regex/Actions.nqp: use ignorecase in charrange on moar |
09:05 | |
p: 3b7496c | (Tobias Leich)++ | src/ (2 files): back to using enumcharlist instead of charrange on moar |
09:07 | ||
itz_ | This is nqp version 2014.07-1-g6d4ea16 built on MoarVM version 2014.07 | ||
weird where does the nqp sha come from? | 09:09 | ||
FROGGS_ | 2014.07-1 is the first patch after the release | 09:11 | |
this is before the charrange stuff happened | |||
itz_: your's is about 24 hours old: github.com/perl6/nqp/commits/master | 09:12 | ||
itz_ | ah I assumed wrongly rakudobrew used the latest nqp | ||
09:16
vlaze joined
09:22
kaare_ left
09:29
brrt joined
|
|||
masak | antenoon, #perl6 | 09:37 | |
* vendethiel thinks it's kinda weird that only :: hasn't received sigil invariance | |||
vendethiel | o/, masak | 09:38 | |
masak | vendethiel: I think (a) :: has nothing to do with sigil invariance, and (b) the thing you're actually complaining about stems from a confusion about the function of the sigil, and its relation to the rest of the identifier. | ||
vendethiel | masak: it's probably that, for me, only the actual variable name (package-less) is the variable name, yet | 09:39 | |
09:40
thou joined
|
|||
vendethiel | (it's true that it's unrelated to sigil invariance, actually, it's just that I always expect it to be `A::$B`) | 09:40 | |
masak | m: module Foo { our $pi = 3 }; say $Foo::pi | ||
camelia | rakudo-moar 866817: OUTPUT«3» | ||
masak | vendethiel: thinking about it, I don't see any real reason it *couldn't* be Foo::$pi | 09:41 | |
but it would be a rather big break from Perl 5, for no really good reason. | |||
also, it "feels" wrong, because the sigil has a function that doesn't rhyme well with being put in the middle like that. | 09:42 | ||
the sigil is a noun marker. | |||
vendethiel | I admit I tend to struggle a bit with the module system. Hopefully it'll go better after I read my tutorial ... oh :-P | ||
masak: it feels "right" to me, because what we're marking is the variable itself, not the package | |||
masak | yes, I know. | ||
that's subordinate to marking the whole term up-front, though. | 09:43 | ||
09:44
denis_boyun_ joined,
nugged joined,
thou left
09:46
nugged left
|
|||
FROGGS_ | nwc10: I was able to build nqp/rakudo on every backend right now... | 09:53 | |
nqp tests also pass | 09:55 | ||
sorry for the noise | |||
10:03
cognominal left
|
|||
FROGGS_ | and I've found one issue with the charrange branch: | 10:21 | |
nqp-m -e 'say( "2" ~~ / <[2..3]> | b / )' | |||
Substring length (-4) cannot be negative | |||
an | alternation breaks it | 10:22 | ||
zengargoyle | i'm thinking Foo::$pi makes more sense now than $Foo::pi does, esp. when written Foo::<$pi> | 10:25 | |
10:26
spider-mario joined
|
|||
FROGGS_ | we are moving the sigil the the last element in the compiler to look up a symbol in fact | 10:27 | |
but I know that we're checking for things starting with a certain sigil in the grammar | |||
like in [[&foo]] | |||
that would work with [[&Foo::foo]] but not with [[Foo::&foo]] | 10:28 | ||
about the charrange... seems like setting the subtype breaks it :/ (I used it for ignorecase, but seems I can't do so) | 10:29 | ||
zengargoyle doesn't know what [[&foo]] means. :) so many specs skimmed... | 10:31 | ||
vendethiel | zengargoyle: reduce with the foo sub | ||
nwc10 | FROGGS_: I left it running and I can confirm NQP, Rakudo and spectest PASS | ||
FROGGS_ | nwc10: thank you! | 10:32 | |
zengargoyle | so subs vs operator takes an extra pair of []? | ||
10:42
Rotwang left
10:50
Akagi201 joined
10:51
vlaze left
|
|||
masak | m: sub foo($a, $b) { $a + $b }; say 2 [&foo] 3 | 10:52 | |
camelia | rakudo-moar 866817: OUTPUT«===SORRY!===Error while compiling op ifnull: The 'ifnull' op expects two children» | ||
masak | m: sub foo($a, $b) { $a + $b }; say [[&foo]] 2, 3 | ||
camelia | rakudo-moar 866817: OUTPUT«5» | ||
masak submits LTA rakudobug | |||
10:58
rurban1 joined
10:59
kurahaupo left,
mr-foobar left,
mr-foobar joined
11:02
rurban1 left
11:04
virtualsue left
11:05
virtualsue joined
11:16
BenGoldberg joined
|
|||
colomon | Hmmm, three new failing modules this morning: YAML, XXX, and Test-Corpus. All fail in test stage. | 11:21 | |
BTW, I don't know if anyone else has picked up on this -- we have 50-60 more passing modules than we had a year ago. | 11:22 | ||
11:23
jlaire joined
11:24
jlaire left,
jlaire joined,
eiro left
11:26
jlaire left,
jlaire joined
11:27
eiro joined
11:28
Jiffies joined,
thou joined
11:29
Jiffies left
|
|||
colomon | looking at YAML, it's Could not find t::Bridge in any of: /home/colomon/tools/yaml-pm6/lib, /home/colomon/tools/yaml-pm6/t where Bridge.pm is in t/ | 11:30 | |
hmmm…. is . no longer included in @INC? | |||
11:31
akaseki joined
11:32
BenGoldberg left,
eiro left
11:33
thou left
11:34
kuroseki left,
eiro joined
|
|||
FROGGS_ | colomon: it never was | 11:36 | |
bbl | |||
colomon | FROGGS_: well, clearly something related has changed, because the module found Bridge.pm yesterday and doesn't today, and the module itself has not been changed in six months. | 11:38 | |
11:49
cognominal joined
11:50
BenGoldberg joined
11:58
brrt left,
itz_ is now known as stmuk
11:59
psch joined,
rurban1 joined
|
|||
psch | good day, #perl6 o/ | 11:59 | |
12:01
denis_boyun___ joined
12:02
denis_boyun_ left
|
|||
moritz | \o psch | 12:02 | |
12:04
rurban1 left
12:05
slavik left
12:08
eiro left
12:10
telex left
12:12
telex joined
12:14
stmuk is now known as itz
12:17
virtualsue left,
cognominal left
12:18
slavik joined
12:20
cognominal joined
12:33
PotatoGim left
12:37
Ven joined
12:38
user3 joined,
user3 is now known as xylixy
12:39
jnap joined
12:40
xylixy left
|
|||
dalek | osystem: 5a94e38 | Carlin++ | META.list: add Printing::Jdf |
12:41 | |
12:48
rurban1 joined
12:49
kurahaupo joined
12:51
xylixy joined
13:06
virtualsue joined
13:16
thou joined,
denis_boyun___ left
13:21
thou left
|
|||
psch | m: say <<a\ b>>.perl; #`[[ RT #76120, but: ]] say "a\ b".perl # should backslash-space throw UnrecognizedSequence here? | 13:23 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76120 | ||
camelia | rakudo-moar 866817: OUTPUT«("a", "b")"a b"» | ||
psch | or does unspacing work in double quoted strings? | 13:24 | |
n: say "a\ b" | |||
camelia | niecza v24-109-g48a8de3: OUTPUT«a b» | ||
masak | I'm of two minds. | ||
(a) it doesn't mean anything, so it should be disallowed (to catch spurious uses which are probably indicative of something wrong) | 13:25 | ||
(b) it's harmless, so we might as well silently interpret it as a literal space | |||
I think (a) is what qq strings usually do. | |||
m: say "a\qb" | |||
camelia | rakudo-moar 866817: OUTPUT«===SORRY!=== Error while compiling /tmp/St_MNH0PrnCouldn't find terminator "at /tmp/St_MNH0Prn:1------> say "a\qb"⏏<EOL> expecting any of: argument list prefix or term pref…» | ||
masak | huh. | 13:26 | |
13:30
Ven left
|
|||
psch | huh indeed | 13:34 | |
m: say q|a\qq | | |||
camelia | rakudo-moar 866817: OUTPUT«===SORRY!=== Error while compiling /tmp/4cOyPkFW4nCouldn't find terminator |at /tmp/4cOyPkFW4n:1------> say q|a\qq |⏏<EOL> expecting any of: argument list prefix or term …» | ||
13:40
Ven joined
|
|||
masak | I kind of expected it to go "there's no \q, silly!" | 13:40 | |
psch | m: say "\qqq" | 13:41 | |
camelia | rakudo-moar 866817: OUTPUT«===SORRY!=== Error while compiling /tmp/aPbiqbXAkIUnrecognized backslash sequence: '\q'at /tmp/aPbiqbXAkI:1------> say "\qq⏏q" expecting any of: argument list prefix or term …» | ||
psch | i suspect Grammar.nqp:4204 plays a part there | ||
masak looks | 13:42 | ||
yes, probably. | 13:44 | ||
13:44
colomon left
|
|||
masak | but I had it as "q strings always let through things they don't recognize, qq strings are more strict" | 13:44 | |
I don't understand why Rakudo behaves as it does with the last three evals. | |||
13:53
xylixy left
|
|||
psch | m: say 'ab\qq"\x63"' | 13:59 | |
camelia | rakudo-moar 866817: OUTPUT«abc» | ||
psch | i think that means that broken cases of \qq have LTA errors? | 14:00 | |
14:12
jnap left
14:13
molaf joined
|
|||
masak | waitwait... | 14:18 | |
that's a *feature*? | |||
is this in S02 somewhere? | |||
psch | "Intepolating into a single-quoted string" | 14:20 | |
masak looks | |||
14:21
atroxaper joined
|
|||
masak | huh. | 14:21 | |
and it's from (at least) 2008. | |||
ok. | |||
anyway, I don't think it should affect qq strings in any way. | |||
14:21
virtualsue left
|
|||
FROGGS_ | yay, I think my charrange patch works on moar.... (needed also NFA tweaks) | 14:21 | |
ohh, RT is back \o/ | 14:22 | ||
psch | right. so the question remains if '\ ' is meaningful in any way | 14:24 | |
masak | did you use single quotes there deliberately? | 14:25 | |
psch | yes, but wrongfully too :) | ||
masak | because I don't see backslash-space being problematic in single quotes at all :) | ||
psch | you're right of course, i meant "\ " | ||
and it is meaningful right now as well, but it means " " | 14:26 | ||
i can see the case in the original ticket as a bit more involved though, i.e. <<foo\ bar>> | |||
that *could* mean <<foobar>>, if unspace works into extrapolation, but that doesn't happen currently | 14:27 | ||
14:27
atroxaper left
|
|||
psch | say <<\x61 \o142>> # this case works at least | 14:27 | |
m: say <<\x61 \o142>> # this case works at least | 14:28 | ||
camelia | rakudo-moar 866817: OUTPUT«a b» | ||
14:30
virtualsue joined
14:31
atroxaper joined,
atroxaper left
14:34
colomon joined
14:35
nbrown joined
|
|||
FROGGS_ | yay, m-spectest PASS | 14:41 | |
14:41
estrabd left
14:42
estrabd joined,
estrabd left
14:43
estrabd joined
|
|||
FROGGS_ | I think RT #76734 was fixed two years ago... | 14:45 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76734 | ||
FROGGS_ | lots and lots of tickets can be closed I think :o) | ||
14:46
estrabd left
|
|||
carlin | lots of bugs will have just gone away as various bits were re-written | 14:46 | |
FROGGS_ | nah... the ticket I pasted was fixed by me, I had that problem in my first module | 14:48 | |
though, it is weird that I have not spotted that ticket within these two years | |||
ahh, RT #76734 already is marked testneeded | 14:51 | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76734 | ||
14:51
slavik left
|
|||
FROGGS_ | m: $_ = 'oh 2!'; s[\d+] += 40; .say | 14:52 | |
camelia | rakudo-moar 866817: OUTPUT«===SORRY!=== Error while compiling /tmp/9_M0hRnKqFMalformed assignment operatorat /tmp/9_M0hRnKqF:1------> $_ = 'oh 2!'; s[\d+] +=⏏ 40; .say» | ||
masak | FROGGS_: the test for RT #76734 is still being skipped. | 14:55 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76734 | ||
FROGGS_ | huh | 14:57 | |
masak | so I think it needs to be un-skiped before the ticket is closed. | 14:58 | |
FROGGS_ | masak: it fails with: | 15:01 | |
Cannot modify an immutable A | 15:02 | ||
in block at t/spec/S03-operators/assign.rakudo.moar:886 | |||
so that overloaded infix:<=> is not taken into account at all | 15:03 | ||
15:05
Ven left,
thou joined,
slavik joined
|
|||
dalek | kudo-star-daily: 7bfe90d | coke++ | log/ (14 files): today (automated commit) |
15:09 | |
rl6-roast-data: 65a50f2 | coke++ | / (5 files): today (automated commit) |
|||
15:09
thou left
|
|||
[Coke] | ... it's been nine days since pugs was run. *sniff* | 15:13 | |
carlin | long live rakudo | 15:14 | |
[Coke] | moar is aborting -new- tests. | ||
FROGGS_ | and I killed the star daily :/ | ||
[Coke] | S32-list/uniq.t aborted 26 test(s) | ||
integration/99problems-11-to-20.rakudo.moar aborted 14 test(s) | |||
15:15
Ven joined,
dayangkun left
|
|||
[Coke] | Unrecognized regex modifier :my at line 903, near " $*POD_ALL" | 15:15 | |
? | |||
FROGGS_ | yeah | ||
nqp HEAD is faulty at that time, but is back in a good shape | 15:16 | ||
me is getting lazy when it gets all dark | |||
15:18
mr-foobar left
15:42
kaare_ joined
15:46
virtualsue left
|
|||
masak | nwc10: have you seen the way jQuery is handling their Big Major Version Upgrade? jQuery 2.0 was released back in April 2013, and most of the world still seems to be on jQuery 1.x. | 15:46 | |
nwc10: on CDNs, jquery-latest.js tends to point to the latest 1.x version. (and I think they tried it the other way for a while, and there was chaos/outcry) | 15:47 | ||
Ven | yay hell breaking loose :) | ||
psch | they're only serving 1.11.1 from now on as jquery-latest.js -> blog.jquery.com/2014/07/03/dont-use...latest-js/ | 15:49 | |
or rather "from then on" :) | |||
masak | nwc10: *but* they are keeping feature parity in all their releases. | ||
so it's not quite the same reason to switch as with Perl or as with Python. | 15:50 | ||
the reason to switch in jQuery's case is mainly to get a smaller jQuery. | |||
15:51
raiph joined
|
|||
Ven | masak: not, it's to fight against crime :P | 15:53 | |
15:53
japhb__ is now known as japhb
|
|||
masak | "[jQuery 2.0] is smaller, faster, and can be used in JavaScript environments where the code needed for old-IE compatibility often causes problems of its own." --blog.jquery.com/2013/04/18/jquery-2-0-released/ | 15:53 | |
Ven | I think Perl 6 is maturing fast enough that I'm ready to tell people to use it. | 15:54 | |
Actually, let me fix that -- I think perl 6 is maturing fast enough that **I** am ready to use it :P | |||
jQuery has no "mature enough". They're waiting on an external factor -- quite different, imho | 15:55 | ||
masak | this comment has all the rings of the Perl 5/Perl 6 rift: blog.jquery.com/2013/04/18/jquery-2...ent-541881 | ||
Ven: well, Python is waiting on an "external factor", too. namely, all of their ecosystem being *willing* to switch over. | 15:56 | ||
15:56
zakharyas joined
|
|||
timotimo | Ven: it'd probably be nice if you pulled in your people in batches so that instead of getting a thousand newcomers at once, we can make sure to learn and improve between waves :P | 15:56 | |
Ven | Disagreed. That's something they can influence (like we can) | ||
timotimo: well, I might not have evangelized thousands ! But I definitely got over 20 people interested, and 10 doing something with it right away. | 15:57 | ||
timotimo | :) | 15:58 | |
16:00
xenoterracide_ joined
16:01
rurban1 left
16:03
spider-mario left
|
|||
raiph | <masak> I don't see any real reason it *couldn't* be Foo::$pi ... <FROGGS> ... not with [[Foo::&foo]] | 16:06 | |
I personally find Foo::$pi much preferable even if it doesn't work in some cases | 16:08 | ||
16:12
lizmat joined
16:13
denis_boyun joined
16:17
guru joined,
guru is now known as Guest29562,
Guest29562 is now known as ajr_
16:18
mr-foobar joined
|
|||
nwc10 | masak: this seems somewhat like Apache, where 1.3x stuck around for years and years, while 2 was also out | 16:21 | |
and it does seem that there's a good pull-factor for jquery | 16:22 | ||
(I don't acutally know what the end user pull case for Apache 2 was) | |||
16:22
mr-foobar left,
nbrown left
16:23
spider-mario joined
|
|||
japhb | nwc10: Wasn't it the improved worker model? My memory is pretty fuzzy. | 16:24 | |
16:24
lizmat left
16:25
Ven left,
denis_boyun left
16:26
lizmat joined
16:27
denis_boyun joined
|
|||
dalek | blets: 1e1bbe6 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt: fix utf |
16:28 | |
16:30
mr-foobar joined
16:35
woolfy joined
16:38
cognome joined
16:42
Ven joined
16:44
mr-foobar left
16:45
pmurias joined
|
|||
timotimo | .u ⟪ | 16:47 | |
yoleaux | U+27EA MATHEMATICAL LEFT DOUBLE ANGLE BRACKET [Ps] (⟪) | ||
timotimo | i don't think that's the right character actually | ||
16:48
atroxaper joined
|
|||
timotimo | m: say (1, 2, 3) ⟪+⟪ ( 5, 5, 5, 5, 5, 5 ) | 16:48 | |
camelia | rakudo-moar 866817: OUTPUT«===SORRY!=== Error while compiling /tmp/Nok9gcPCIPTwo terms in a rowat /tmp/Nok9gcPCIP:1------> say (1, 2, 3) ⏏⟪+⟪ ( 5, 5, 5, 5, 5, 5 ) expecting any of: postfix infix stopper…» | ||
timotimo | m: say (1, 2, 3) «+« ( 5, 5, 5, 5, 5, 5 ) | ||
camelia | rakudo-moar 866817: OUTPUT«6 7 8 6 7 8» | ||
Ven | Trying to sway a pythonista to perl 6. This is gonna be a hard one :D | 16:49 | |
timotimo | don't forget to stay honest :) | ||
16:50
raiph left
16:51
Akagi201 left
|
|||
carlin | it's a tough sell since python has `import antigravity` | 16:51 | |
16:51
Akagi201 joined
|
|||
timotimo | yeah, i was thinking the other day we ought to have something like "import this" | 16:51 | |
16:53
thou joined
16:54
denis_boyun left
16:58
thou left
16:59
carlin left,
Ven left
17:00
carlin joined
17:02
cognome left,
xenoterracide_ left
17:04
Ven joined,
BenGoldberg left
|
|||
pmurias | why does the nqp-moar and nqp-jvm use a different MAIN signature? | 17:04 | |
Ven | timotimo: Are you implying I'd need to lie ;-) ? | ||
timotimo | well ... dunno? | ||
Ven | belieeeve :P | 17:05 | |
masak | raiI think many with you would prefer Foo::$pi. my point -- enhanced by FROGGS' use case -- is that having it that way is a way to misunderstand sigils and exactly why they are useful. cf string interpolation for another such use case. | 17:06 | |
raiph* | |||
Ven | (not in me, I mean. In the ability of P6 to swing a pythonista gangsta) | ||
17:07
mr-foobar joined
|
|||
timotimo | :) | 17:08 | |
maybe i'll spend some time writing python benchmark equivalents to the perl6bench benchmarks we have? | |||
at least the microbenchmarks should be doable | |||
japhb | timotimo: And ... that would be why I changed 'perls' to 'compilers' in perl6bench. ;-) | 17:10 | |
timotimo | ayup | 17:11 | |
you think we have any chance against cpython performance wise? | |||
definitely no chance against pypy, that's for sure | |||
17:11
virtualsue joined
|
|||
FROGGS_ | still would be good to know where we are | 17:12 | |
timotimo | of course | ||
pmurias | has the performance improved so much recently? | ||
timotimo | our performance, you mean? | ||
pmurias | yes | 17:13 | |
FROGGS_ | this year happened a lot | ||
timotimo | jnthn.net/perl6/bench/2014-07-15.html - look at this | ||
last year's parrot vs last month's moar and a moar from a few days ago | |||
japhb | timotimo: IIRC CPython got faster than perl5 at some point, and certainly PyPy is really quite fast, but I'm with FROGGS, I'd love to know exactly where we stand. | ||
17:16
atroxaper left
17:19
Akagi201 left,
Akagi201 joined
|
|||
vendethiel | timotimo: it's really amazing :-) | 17:21 | |
17:24
Akagi201 left
17:25
lizmat left,
woolfy left
|
|||
carlin | while_concat_native graph is nice | 17:26 | |
does rakudo really beat perl5 in mandelbrot? that's impressive | |||
17:27
lizmat joined
|
|||
FROGGS_ | well, it looks like... | 17:27 | |
17:27
woolfy joined
17:28
rurban1 joined
|
|||
japhb | carlin: When using Math::Complex, yes. I suspect that if done using plain nums and shuffling the real/imaginary parts around by hand, perl5 would win for now. | 17:29 | |
*When perl5 is using Math::Complex | |||
carlin | come a long way since 2009 when colomon++'s mandelbrot scripts would eithe take hours to finish or segfault | 17:37 | |
17:38
lichtkind joined,
mr-foobar left
|
|||
retupmoca | $ perl6 -e 'sleep(9999);' # 0% CPU usage | 17:39 | |
$ perl6 -e 'Promise.in(2);sleep(9999);' # 100% cpu usage (forever) | |||
^ that's a little annoying | |||
17:39
mr-foobar joined
|
|||
retupmoca | (on perl6-m) | 17:39 | |
17:42
ChoHag joined
|
|||
ChoHag | How can I replace or in some way augment the code which sets an attribute's value? | 17:43 | |
17:44
mr-foobar left
|
|||
ChoHag | So that if a consumer of a class calls $class.attribute() = "value", I can have a piece of code which gets executed. | 17:44 | |
Prior to or post the actual changing of the value. | 17:45 | ||
timotimo | needs Proxy | 17:46 | |
ChoHag | Hmm I tried that before and couldn't get it to do ... something. | ||
I can't remember nwo. | |||
17:47
rurban1 left,
atroxaper joined
|
|||
FROGGS_ | ChoHag: see github.com/perl6/roast/blob/master...rs/proxy.t | 17:47 | |
ChoHag | Thanks. | 17:48 | |
I shall decipher that when I'm not melting into the sofa. | |||
17:50
woolfy left,
mr-foobar joined
|
|||
FROGGS_ | m: class Foo { has $!bar; method bar() is rw { Proxy.new( FETCH => sub ($self) { $!bar }, STORE => sub ($self, $value) { $!bar = $value**2 } ) } }; my $f = Foo.new; $f.bar = 42; say $f.bar # ChoHag | 17:51 | |
camelia | rakudo-moar 866817: OUTPUT«1764» | ||
ChoHag | That too. | ||
17:51
atroxaper left
|
|||
ChoHag | It's a hot day. I'm a Pratchett troll. | 17:51 | |
FROGGS_ | ChoHag: though you must know that FETCH/STORE might be called more often then you would expect | ||
17:52
woolfy joined
|
|||
ChoHag | OK I'll bear that in mind. | 17:52 | |
timotimo | aye, our code gen and stuff assume fetch is extremely cheap, so it'll do that quite often in many cases | 17:58 | |
m: my $foo = Proxy.new( FETCH => -> { say "fetched!"; 10 } ); say "hi" if $foo > 5; | 17:59 | ||
camelia | rakudo-moar 866817: OUTPUT«Too many positional parameters passed; got 1 but expected 0 in block at /tmp/fhKp1xetbT:1» | ||
17:59
xenoterracide_ joined
|
|||
timotimo | m: my $foo = Proxy.new( FETCH => -> $_ { say "fetched!"; 10 } ); say "hi" if $foo > 5; | 17:59 | |
camelia | rakudo-moar 866817: OUTPUT«fetched!hi» | ||
timotimo | m: my $foo = Proxy.new( FETCH => -> $_ { say "fetched!"; 10 } ); sub test(Int $arg) { say "called" }; test($foo); | ||
camelia | rakudo-moar 866817: OUTPUT«fetched!called» | ||
17:59
mr-foobar left
|
|||
timotimo | huh. | 18:00 | |
18:01
dmol left
18:02
mr-foobar joined
|
|||
carlin | m: Proxy.new( FETCH => -> $_ { return 1 } ); | 18:03 | |
camelia | rakudo-moar 866817: OUTPUT«(signal )» | ||
timotimo | carlin: that tries to return from outside the pointy block | ||
that's not a good idea :) | |||
carlin | yeah, I got that impression from the segfault :p | ||
timotimo | i wonder where we have to catch that to give the proper "trying to return from something that you can't return from" or something error | 18:04 | |
dalek | rl6-bench: 4b8e696 | (Geoffrey Broadwell)++ | README: README Really Quick Start section, copyright bump, and minor cleanups |
18:07 | |
rl6-bench: a7e9d83 | (Geoffrey Broadwell)++ | README (2 files): Rename README to README.md so GitHub will render it |
|||
18:10
SamuraiJack joined
18:12
hoverboard joined,
mr-foobar left
18:13
mr-foobar joined
18:14
mr-foobar left,
SamuraiJack left
18:16
woosley joined
|
|||
dalek | rl6-bench: 1e57fe1 | (Geoffrey Broadwell)++ | README.md: D'oh! Forgot a |
18:20 | |
18:23
woolfy left
18:30
carlin left
18:33
carlin joined
|
|||
japhb | Is there an easy way in current NQP to specify an array containing the values of a range? I want to be able to say something not much more complex than 'my @a := 1 .. 10;' | 18:34 | |
I recognize this is more likely an op than syntax, but if so, what op? | |||
timotimo | not that i know, no :( | ||
japhb | Gah. | 18:35 | |
japhb imagines an nqp::rangelist($min, $max) | |||
An easy way to do '... for 1 .. 10' or 'for 1 .. 10 { ... }' would be nice too, where this is turned into a fast loop, rather than actually instantiating the entire list. | 18:37 | ||
vendethiel read "nqp::evangelist" -- a bit tired, uh | 18:39 | ||
18:41
thou joined
|
|||
japhb | vendethiel: To what do you refer? | 18:44 | |
Ven | japhb: to "nqp::rangelist" | ||
japhb | Oh, heh. :-) | 18:45 | |
dalek | ast: b76ede5 | (Tobias Leich)++ | S03-metaops/cross.t: RT #112602 test for 1..* X* 1..* |
||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=112602 | ||
Ven | it ... it works :O ? yay~~ | ||
18:46
thou left
|
|||
japhb | FROGGS_: That should probably test that both sides of the X iterate properly over at least 2-3 iterations each. | 18:47 | |
(Or maybe that's another test) | |||
FROGGS_ | japhb: um, what? | ||
japhb | FROGGS_: Oh, the @a was misleading me, I read 1..* X* @a. | 18:49 | |
Though ... why mention @a at all if you're not going to test it? | |||
dalek | ast: 79a52c8 | (Tobias Leich)++ | S03-metaops/cross.t: fix left-over from copy&pasting, japhb++ |
||
18:50
Akagi201 joined
|
|||
Ven | what's the difference between `1..* X* 1..*` and `1 X* 1..*` , though :P ? | 18:51 | |
FROGGS_ | well... :P | 18:52 | |
japhb | Ven, functionally ... none, really. | ||
Ven | "it looks cool", ha | ||
FROGGS_ | but neither side is treated eagerly, so it matters for the test | ||
18:55
Akagi201 left
18:57
mr-foobar joined,
Sqirrel joined
19:05
dmol joined
|
|||
flussence | perl6: say 'ab\qq"\x63"'; | 19:07 | |
camelia | rakudo-{parrot,jvm,moar} 866817, niecza v24-109-g48a8de3: OUTPUT«abc» | ||
flussence | this... scares me for some reason. | ||
psch | perl6: say 'ab\qx[echo "c"]' # ... | 19:08 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: rungather may not be used in safe mode at /home/p6eval/niecza/lib/CORE.setting line 0 (rungather @ 0)  at /tmp/tmpfile line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3)  at /home/p…» | ||
..rakudo-moar 866817: OUTPUT«qx, qqx is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:1 in sub QX at src/RESTRICTED.setting:9 in block at /tmp/tmpfile:1» | |||
..rakudo-jvm 866817: OUTPUT«abc» | |||
..rakudo-parrot 866817: OUTPUT«qx, qqx is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:2 in sub QX at src/RESTRICTED.setting:9 in block at /tmp/tmpfile:1» | |||
dalek | rl6-bench: 0923c8d | (Geoffrey Broadwell)++ | microbenchmarks.pl: Add NQP version of split_string_constant Also switch Perl 5 and Perl 6 variants to while loops to match NQP, and add regex tag to split_string_regex. |
||
19:08
brrt joined
|
|||
psch | well, it's spec | 19:09 | |
19:11
darutoko left
19:19
lizmat left
19:21
lizmat joined
|
|||
dalek | ast: 42c8533 | (Tobias Leich)++ | S03-metaops/zip.t: RT #116036 test for <a b> Z=> [] |
19:25 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116036 | ||
dalek | ast: db3b9ec | (David Warring [email@hidden.address] | integration/advent2009-day24.t: completing advent 2009 day 24 |
19:30 | |
masak | dwarring++ | 19:31 | |
19:42
rindolf left,
bowtie left
19:43
bowtie joined
19:49
atroxaper joined,
bowtie left
19:50
carlin left,
bowtie_ joined
|
|||
dalek | p/charrange: 0376eaf | (Tobias Leich)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp: we use the first positional as subtype |
19:50 | |
p/charrange: 7557ea1 | (Tobias Leich)++ | src/vm/parrot/ (3 files): port EDGE_CHARRANGE to parrot backend |
|||
19:51
Akagi201 joined,
kurahaupo left
19:53
atroxaper left
19:56
Akagi201 left
|
|||
timotimo | FROGGS_: what do your changes to charrange do? improve performance of case insensitive charranges? | 19:56 | |
FROGGS_ | timotimo: yes, case insensitive ranges are also just a bounds checking now | 19:57 | |
and, we do not build the enumcharlist at all now | |||
I wanna bench it, because it might make sense to not use charrange but enumcharlist in case the range is very small | 19:58 | ||
m: say "\x[10001]" ~~ /<[\x10000..\xEFFFF]>/ # was not implemented on moar at all btw | 20:01 | ||
camelia | rakudo-moar 866817: OUTPUT«(signal )» | ||
20:04
Ven left
|
|||
dalek | p/charrange: efb67a8 | (Tobias Leich)++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files): port EDGE_CHARRANGE to jvm backend |
20:06 | |
20:07
virtualsue left
|
|||
dalek | p/charrange: 2631218 | (Tobias Leich)++ | src/QRegex/ (2 files): use charrange instead of enumcharlist We have charrange now on all backends, also for case insensitive matches and also have EDGE_CHARRANGE support in the NFA. That mean we do not need to create an enumcharlist compatible string at all, which gets very expensive when the range is big enough. |
20:08 | |
ast: 1c84a0b | (David Warring [email@hidden.address] | integration/advent2009-day06.t: Fix/unfudge incorrect test. |
|||
20:09
kaare_ left
|
|||
FROGGS_ | eww, I'm recompiling my perl6-m but I've got a running `p6bench setup` which uses it >.< | 20:09 | |
ChoHag | Can I silence the warning: useless use of 'is rw' on $!a | 20:11 | |
The weather is now reasonable, and for some reason the Proxy object seems to work like it didn't last time I failed to use it. | |||
FROGGS_ | no, does not seem like as if you could silence it | 20:12 | |
ChoHag | I thought not. | ||
FROGGS_ | m: class Foo { has $!a is rw } # also, that file/line is not helpful at all :/ | ||
camelia | rakudo-moar 866817: OUTPUT«useless use of 'is rw' on $!a in any at src/Perl6/World.nqp:1673» | ||
ChoHag | I probably want a $. variable anyway with a wrapper rather then writing my own accessor function out of whole cloth. | 20:13 | |
But since I'm squeezing in some coding in while the weather and a toddler allow, I'm not applying much in the way of actual thought. | |||
FROGGS_ | ChoHag: you can make it a $. and provide the accessor method, that should work out | ||
ChoHag | Can you remove methods from a class at runtime? | 20:14 | |
FROGGS_ | maybe using the MOP | ||
ChoHag | The MethodContainer.nqp suggests not. | ||
FROGGS_ | but I'm not sure | ||
ChoHag | Definitely appreciating that most of perl 6 is (not quite) written in perl 6. | 20:15 | |
FROGGS_ | but btw, I don't think you need the 'is rw' at all, you can assign to it from within the class | ||
yeah, otherwise I would have problems fixing bugs :o) | 20:16 | ||
20:17
kurahaupo joined
20:21
Sqirrel left
|
|||
ChoHag | I'm writing something which sort of fits in the space of library or api. | 20:22 | |
So I need to provide options I don't know about. | |||
20:22
virtualsue joined
|
|||
masak | yay, host07.perl6.com:8080/report/masak looks much better today \o/ | 20:26 | |
something still wrong with Perl6::Literate, though. | 20:28 | ||
not really sure how to find out what that is... | |||
20:30
thou joined
|
|||
timotimo | masak: well done! what broke druid? | 20:30 | |
i recall fixing druid a while back :) | |||
20:31
Ven joined
|
|||
masak | timotimo: EVAL, bless(*), .exists, and either smartmatching or grammars changing semantics. | 20:32 | |
timotimo: yes, I saw you had fixed a lot of things. thank you for that. | |||
20:34
thou left
|
|||
Ven | so, state of the art web frameworks in perl 6 are bailador and that other thingie ? | 20:35 | |
Ven tries to remember the other framework he's seen | |||
20:35
FROGGS[mobile] left
20:43
lizmat left,
lizmat joined
|
|||
cognominal | sometimes I feel the Perl 6 is an adventure game where information nuggets can be on irc, on the web (can be on weird places like host07.perl6.com:8080). With tadzik, probably even geocaching is involved. | 20:45 | |
or maybe is is a mystic things where knowldeged is imparted from gurus. | 20:46 | ||
timotimo | hah :) | ||
dalek | ast: 70902a0 | (David Warring [email@hidden.address] | integration/advent2009-day07.t: added a couple more tests |
20:47 | |
lizmat stops working on the migration of Foo.moarvm -> Foo.pm.moarvm | 20:48 | ||
Need to dig deeper into ModuleLoader.nqp to be able to fix the last failing spectests | |||
sightseeing again& | 20:49 | ||
cognominal | with synopsess pointed to unimplemented things to increase the confusion. Admittedly today, you need some persistance to find them. | ||
20:52
Akagi201 joined
20:54
Ven left
20:55
lizmat left
20:56
ajr_ left,
Akagi201 left
20:58
brrt left
20:59
Ven joined
21:11
FROGGS_ left
21:13
FROGGS joined
21:23
zengargo1le joined,
Ven left
21:27
zengargoyle left
21:30
btyler joined
|
|||
masak | cognominal: it is our job to make the adventure game simple to play. | 21:31 | |
cognominal: re host07.perl6.com:8080, it's fairly OK that it's not more prominent, since it's a fairly internal role it's playing. documentation, tutorials, FAQs, blogs should be prominent. | 21:33 | ||
zengargo1le | i wish the Apocalypses and Exegeses were updated/re-implemented. the specs can be a *long* read, really repetitive in places, sorta too detailed in places. | 21:41 | |
masak | I've sometimes toyed with the idea of going back and re-writing Apocalypses. | ||
I actually re-implemented some Exigeses long ago. | |||
vendethiel has read all specs, but did not read any of the exigeses/apocalypses | 21:42 | ||
masak | oh, and I've sometimes wanted to ghostwrite A09 :) | ||
vendethiel | A09 ? | 21:43 | |
masak | S09 references A09, which never existed. | ||
the thought of writing it in the style of TimToady, passing it off as an actual Apocalypse, always appealed to me. | |||
zengargo1le | sometimes i'd just like the meat of the specs without the detailed analysis/reasoning. | 21:44 | |
vendethiel | I admit that sometimes the NYI puts you off :D. | 21:47 | |
"oh it can do that ? amazing" *try it* "well, apparently it can't yet" :P | 21:48 | ||
(admittedly, I've had a LOOOOOT of "oh it can do that ? YES IT CAN §§") | |||
zengargo1le | that's why i haven't gone back and re-read the Apocalypses and Exegeses, too afraid they'll be so wrong by now... i just have the hazy memories of reading them some 10 years ago. :P | 21:50 | |
21:50
atroxaper joined
21:51
hoverboard left
|
|||
zengargo1le | as a 'this will tell you 90% of the stuff you need to know' sort of way. | 21:51 | |
21:51
zakharyas left
|
|||
masak | vendethiel: you should have been here in 2008 :P | 21:52 | |
vendethiel | masak: mmh ? nothing worked :P ? | ||
or stuff starting working feature by feature ? | |||
masak | vendethiel: "I can check if a file exists? ... no, apparently not. but I need to, because I'm implementing a wiki engine." | ||
21:53
Akagi201 joined
|
|||
vendethiel | when I hear about it; it's like nothing worked since 2008 :P | 21:53 | |
masak | vendethiel: ended up doing `try { open } CATCH { $exists = 0 }` | ||
:) | |||
vendethiel | I like just having gotten here. | ||
masak | 0, not False, because *Bool didn't exist*. | ||
:) | |||
vendethiel | I can tell people "yeah, I use perl 6 in prod, only 3 months after starting looking into it" | ||
21:53
molaf left
|
|||
vendethiel | I really believe this has a different sound to people | 21:54 | |
dalek | blets: 44c4b69 | (Herbert Breunung)++ | docs/ (3 files): basics, intro spacing semicolon |
||
21:54
atroxaper left
21:57
Akagi201 left
|
|||
vendethiel | masak: why didn't Bool exist :o) ? | 21:58 | |
masak | NYI. | 21:59 | |
vendethiel | oh ... | ||
but, if I understand it well, before 2008, most efforts when towards pugs, right ? | 22:02 | ||
masak | Pugs went to sleep in, hm, late 2006? Rakudo started picking up speed sometime in late 2007. | ||
there was a year there when I felt like nothing much happened. | 22:03 | ||
vendethiel | So that's why. makes sense... | ||
So much happened this year, it's really impressive ... | |||
dalek | blets: afedbff | (Herbert Breunung)++ | docs/tablet-2-basic-syntax.txt: spaces section 30% more crispy |
||
masak | 'night, #perl6 | ||
22:04
kurahaupo left
22:18
thou joined
22:22
thou left
22:23
xenoterracide_ left
22:27
Ven joined
|
|||
dalek | p/charrange: 88abbfe | (Tobias Leich)++ | tools/build/MOAR_REVISION: bump moar revision for charrange |
22:37 | |
Ven | I really need to explain contexts, uh .. | 22:44 | |
m: open 'nofilehere'; CATCH { when X::IO { .say } } | |||
camelia | rakudo-moar 866817: OUTPUT«open is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:1 in sub open at src/RESTRICTED.setting:5 in block at /tmp/WxMarWbDy0:1» | ||
Ven | mh, right. | 22:45 | |
22:50
btyler left
|
|||
Ven | Where should PHASERS be ? After flow control constructs ? Before operators ? After them ? Before class ? After exceptions ? | 22:50 | |
22:51
btyler joined
|
|||
Ven | (the hardest while making a tutorial is to make everything fit at the right place !!) | 22:51 | |
(probably after exceptions, to explain keep and undo) | 22:53 | ||
22:54
Akagi201 joined
|
|||
FROGGS | after exception, yeah | 22:54 | |
Ven | m: contend {} | 22:57 | |
camelia | rakudo-moar 866817: OUTPUT«===SORRY!=== Error while compiling /tmp/d8YuO5SwVUUndeclared routine: contend used at line 1» | ||
22:58
Akagi201 left
|
|||
Ven | m: say FINAL { 55 } | 23:01 | |
camelia | rakudo-moar 866817: OUTPUT«===SORRY!=== Error while compiling /tmp/erC84ZEpZ6Undeclared name: FINAL used at line 1» | ||
Ven | oh, FINAL is NYI ? | 23:02 | |
23:08
virtualsue left
|
|||
Ven | erm, is there an explanation on "leaving a block succesfully" ? I feel like I've been told already, but can't find it in the specs | 23:09 | |
23:12
anaeem1 left
|
|||
Ven | hmm, pre/post aren't really loop-related | 23:12 | |
23:13
BenGoldberg joined
23:15
spider-mario left
|
|||
colomon | Ven: I would take "leaving a block succesfully" as meaning you are leaving the block, either from the falling off the end or a return or ... | 23:15 | |
Ven | colomon: yeah, but that means with no exception | ||
m: try { return; } | 23:17 | ||
camelia | ( no output ) | ||
Ven | m: try { return; CONTROL {} } | ||
camelia | ( no output ) | ||
Ven | m: try { return; CONTROL { default { say 1 } } } # segfaults here | ||
camelia | ( no output ) | ||
Ven | maybe it was fixed in the last week. Or it's a repl fault | ||
oh, control gets triggered by warn (but not by die) ? | 23:19 | ||
Ven doesn't really understand fail vs warn vs die, and the s04 part about that doesn't have any example on throwing exceptions | 23:22 | ||
23:24
nbrown joined
|
|||
Ven | is COMPOSE NYI ? can't seem to find much in the roast either | 23:24 | |
Well, that's all for tonight I guess is.gd/HEHfje | 23:27 | ||
g | |||
23:33
Ven left
23:34
pmurias left
23:52
atroxaper joined
23:54
Akagi201 joined
23:56
vendethiel left,
atroxaper left
23:57
vendethiel joined
23:58
Akagi201 left
|