»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:00 zoomby joined
dalek p-jvm-prep: 7356c32 | jnthn++ | docs/ROADMAP:
Update ROADMAP.
00:01
timotimo jnthn: am i reading this correctly? bounded serialisation is almost complete?
jnthn That awkward moment when you complete your weekend project on Friday night...
timotimo ah, deserialisation is still missing, ok
jnthn++
jnthn timotimo: It's missing a few important pieces.
timotimo try not to burn yourself out :)
jnthn timotimo: But it's much more there than not.
diakopter That awkward moment when weekend projects take all of weekends and weekdays 00:02
jnthn :)
00:02 snearch left
Ulti yay my windows calls ran.... but didnt do anything 00:02
jnthn Yeah, though I've gotta teach some classes in the next couple of weeks. So my weekdays are gonna be a little more consumed. :)
00:06 zoomby left
jnthn OK, sleep time... 'night o/ 00:09
diakopter o/
timotimo night jnthn!
00:13 zoomby joined, benabik joined 00:16 thou left 00:31 benabik left 00:34 spider-mario left 00:54 thou joined
djanatyn hello! :) 00:58
if I wanted to make a quick change to the perl6 site, what would be the most convenient way to do that? fork and send a pull request?
diakopter ask for a commit bit 01:00
timotimo i seem to have a commit bit, if noone else is around
diakopter hm, I don't know whether anyone's around who can do that
timotimo i'll be here about 30 minutes, then decommute and go to sleep
diakopter I don't have admin rights on the perl6 org
01:02 PacoAir left
timotimo djanatyn: i think pull request is easiest 01:02
huf that site still falls apart on my browser :) a <table> would work though... 01:03
diakopter huf: does more than 0.1% of people use your browser? 01:04
huf of course not
diakopter oh :P
(how was I to know..)
huf it only happens if you set the minimum font size rather large in firefox 01:05
i dont think many people do that
djanatyn pull request sent 01:07
I literally changed one line ^_^:
^_^;
01:07 Pleiades` left
timotimo yeah, that seems nice. 01:10
seems like that's 2 entirely distinct repositories? 01:11
oh, but it says so right in the description 01:12
dalek href="https://perl6.org:">perl6.org: b259f0b | (Jonathan Strickland)++ | source/whatever/index.html:
updated vim-perl link to current repository
href="https://perl6.org:">perl6.org: c897bd5 | timo++ | source/whatever/index.html:
Merge pull request #8 from djanatyn/master

just updated a not-entirely-up-to-date link for vim-perl
01:12 Pleiades` joined 01:15 benabik joined 01:21 skids left 01:23 Pleiades` left 01:27 Pleiades` joined 01:33 wk left 01:34 PacoAir joined, japhb_ left 02:01 FROGGS_ joined 02:04 FROGGS left 02:05 PacoAir left 02:06 PacoAir joined 02:22 PacoAir left, PacoAir joined
timotimo i wonder where to put tests for this error. 02:26
hm. typed exceptions are supposed to be standardised, no? so it would actually get into t/spec, isn't that right?
it seems a bit much to expect suggestions from all implementations, though, doesn't it? 02:27
02:32 vdaghan joined 02:37 vdaghan left 02:39 benabik left 02:40 benabik joined
timotimo being able to use my inside a statement is SO GOOD 02:42
i think perl6 should optimistically skip ahead blocks and parallely parse future blocks with multithreading, so that in case of correct parsing, it goes faster and if not, redundant work is just thrown away 02:46
sorear checking whether the correct parse was chosen seems nontrivial 02:47
timotimo i'd only propose it for very simple cases
like when you start doing a class {, try to find the next class { in the same level (not nested classes, for instance) 02:48
CORE.setting is full of this kind of stuff. if it could be sped up to 1 / Ncores minus overhead, that would be so amazingly cool
even use a heuristic like "where's the next class with the same amount of whitespace in front?" 02:49
hm, this seems to gotcha me: 02:50
nqp: sub yoink() { 10 }; say(my $yoinkresult := yoink()) unless $yoinkresult > 20;
p6eval nqp: OUTPUT«10␤»
timotimo or maybe something else does. hmm.
02:53 Pleiades` left
timotimo nqp: my $distance := 10; $distance := (my $new-distance := 5) if $new-distance < $distance; say($distance); 02:58
p6eval nqp: OUTPUT«5␤»
timotimo nqp: my $distance := 10; $distance := (my $new-distance := 15) if $new-distance < $distance; say($distance);
p6eval nqp: OUTPUT«15␤»
timotimo so the if clause is evaluated before the left part of it 02:59
is there a nice way to do it differently?
i should switch the computation on the right side then. 03:00
03:00 Pleiades` joined 03:03 araujo left
timotimo that seems to work fine. and it totally looks like a where clause in haskell now :D 03:04
sorear there is "and" 03:09
timotimo github.com/timo/rakudo/commit/8587...b45c78892e - just for reference, this is what i ended up doing for now 03:10
nqp: my $distance := 10; (my $new-distance := 5) < $distance and $distance := $new-distance; say($distance);
p6eval nqp: OUTPUT«Confused at line 2, near "(my $new-d"␤current instr.: 'panic' pc 13207 (src/stage2/gen/NQPHLL.pir:4680) (src/stage2/gen/NQPHLL.pm:328)␤»
timotimo "FancyClass cannot inherit from Juntikon because it is unknown. Did you mean Junction?" i'm enjoying this feature way more than i should :D 03:12
03:17 perigrin joined 03:23 cibs left 03:26 cibs joined
swarley lol, that reminds me of a ruby gem. Except that gem often encourages sloppy programming because it doesn't warn you about mistyped methods, it just attempts to correct it for you if it's close enough to an existing one. 03:30
sorear metacpan.org/module/Symbol::Approx::Sub 03:33
03:33 cibs left 03:34 cibs joined
swarley Yeah, like that. Sort of 03:35
github.com/AndrewVos/metherd-missing
03:40 orafu left, orafu joined 03:44 cibs left 03:46 Pleiades` left 03:50 PacoAir left, cibs joined 03:51 Pleiades` joined
timotimo "DESCRIPTION 03:53
This is _really_ stupid."
03:59 sevin joined 04:01 jaldhar joined 04:05 cibs left, aindilis left 04:06 cibs joined 04:13 cibs left 04:14 jaldhar left 04:17 jaldhar joined 04:21 cibs joined, benabik left 04:23 benabik joined 04:24 preflex_ joined 04:26 preflex left, preflex_ is now known as preflex 04:37 fgomez left 04:42 cibs left, sevin left, cibs joined 04:50 cibs left, Pleiades` left 04:53 cibs joined 04:57 Pleiades` joined 04:58 fgomez joined 05:03 cibs left 05:04 cibs joined 05:05 Pleiades` left 05:09 nuba joined 05:12 Pleiades` joined 05:28 cibs left 05:30 SamuraiJack joined 05:35 cibs joined 05:45 cibs left 05:46 cibs joined
[Coke] masak: suggestion for next year - allow us to emit diagnostics on stderr. 05:49
05:50 cibs left 05:51 cibs joined
[Coke] $ panda list 05:57
===SORRY!===
No object at index 164
panda is 144 lines long. whee. 05:58
sorear [Coke]: The indexes are not line numbers.
05:58 cibs left
sorear They're arbitrary numbers that identify objects in separately-compiled modules. 05:58
[Coke] so, it's even less useful than I feared. 05:59
sorear That error message means that you didn't delete and reinstall panda like you're supposed to after changing Rakudo
05:59 skids joined, cibs joined
[Coke] pointer to docs on that? 05:59
sorear ...that could have been better phrased
[Coke] I have probably rebuilt rakudo since installing panda. I just did a rebootstrap of panda with the new perl6 and got failures. 06:00
06:02 SunilJoshi joined
[Coke] occasionally tires of "early adopter" pains. :( 06:02
06:11 Pleiades` left 06:16 MikeFair joined 06:17 MikeFair_ left 06:19 Pleiades` joined
diakopter [Coke]: probably? 06:22
oh
diakopter read more context 06:23
06:23 Pleiades` left 06:24 araujo joined 06:30 Pleiades` joined 06:34 Pleiades` left
[Coke] hopes it's still Friday somewhere. 06:36
diakopter here
06:37 sevin joined 06:39 doy left 06:40 Pleiades` joined 06:47 vividsnow joined
diakopter aha! reproduced it on the first run 06:50
er, ww 06:51
06:51 [particle] joined 06:52 sevin left
quester perl6: say "Inf.Int = ", Inf.Int 06:55
p6eval rakudo 98a4a8: OUTPUT«Inf.Int = Cannot coerce Inf to an Int␤ in method gist at src/gen/CORE.setting:10404␤ in sub say at src/gen/CORE.setting:7559␤ in block at /tmp/UOIxLpZgou:1␤␤»
..niecza v24-18-gaf64300: OUTPUT«Inf.Int = Inf␤»
quester say "NaN.Int = ", NaN.Int
perl6: say "NaN.Int = ", NaN.Int 06:56
p6eval rakudo 98a4a8: OUTPUT«NaN.Int = 0␤»
..niecza v24-18-gaf64300: OUTPUT«NaN.Int = NaN␤»
quester notes rakudo 2012.12 claims NaN.Int = 9223372036854775808 06:58
[Coke] p: say NaN.Int 07:03
p6eval pugs: OUTPUT«-269653970229347386159395778618353710042696546841345985910145121736599013708251444699062715983611304031680170819807090036488184653221624933739271145959211186566651840137298227914453329401869141179179624428127508653257226023513694322210869665811240855745025766026879447359920…
diakopter cool 07:04
good thing it's negative
sorear n: say NaN.Int 07:05
p6eval niecza v24-18-gaf64300: OUTPUT«NaN␤»
sorear for a while n and p got the same answer :D
p: say 2**63
p6eval pugs: OUTPUT«9223372036854775808␤»
diakopter rnp: 9**9**9 07:07
p6eval niecza v24-18-gaf64300, pugs: OUTPUT«(timeout)»
..rakudo 98a4a8: ( no output )
diakopter rakudo completed it!?
sorear r: say (9**9**9).chars 07:08
p6eval rakudo 98a4a8: OUTPUT«3␤»
sorear r: say (9**9**9)
p6eval rakudo 98a4a8: OUTPUT«Inf␤»
sorear not far off 07:09
diakopter heh :) 07:11
07:15 vividsnow left 07:24 Pleiades` left 07:30 Pleiades` joined
diakopter windows tip: heisenbug far less often reproducible with console debug output - direct output to more so the screen doesn't scroll 07:34
07:37 Pleiades` left 07:38 [particle]1 joined 07:40 [particle] left, quester left 07:42 erkan left
sorear diakopter: What kind of console debug output? Is this a p6 thing or a windows kernel thing? 07:42
07:43 Pleiades` joined
diakopter oh, just general programming 07:43
making the screen scroll slows the program considerably 07:44
07:51 kaare_ joined, erkan joined, erkan left, erkan joined
moritz \o 08:03
08:18 kaare__ joined 08:22 kaare_ left
sorear o/ moritz 08:27
08:54 zostay joined
FROGGS_ morning 09:11
sorear o/ FROGGS_ 09:19
09:28 FROGGS[mobile] joined 09:42 Psyche^ joined 09:43 fgomez left 09:44 fgomez joined 09:46 Patterner left, Psyche^ is now known as Patterner 10:13 zby_home_ joined 10:15 xinming joined 10:19 xinming_ left
FROGGS_ timotimo: perl6 -e "class Unt is Ant { }": OUTPUT«Unt cannot inherit from Ant because it is unknown.␤Did you mean one of these?␤Any␤Int␤int␤Unt␤» 10:22
timotimo: would it be possible (some day) to skip the symbol an unknown trait is applied on? 10:23
timotimo: and you maybe quote the symbols in the first sentence, other error messages do this too 10:25
r: sub a is useless { }
p6eval rakudo 98a4a8: OUTPUT«===SORRY!===␤Cannot call 'trait_mod:<is>'; none of these signatures match:␤:(Mu:U $child, Mu:U $parent)␤:(Attribute:D $attr, :rw(:$rw)!)␤:(Attribute:D $attr, :readonly(:$readonly)!)␤:(Attribute:D $attr, :box_target(:$box_target)!)␤:(Routine:D $r, …
jnthn ohhai o/ 10:28
FROGGS_ morning jnthn 10:29
10:29 FROGGS_ is now known as FROGGS, PacoAir joined 10:42 denisboyun joined 10:48 rindolf joined 10:53 PacoAir left, PacoAir joined 10:54 SunilJoshi left 11:06 Su-Shee_ joined 11:08 Su-Shee left 11:12 denisboyun left
nwc10 jnthn++ # overnight awesomness 11:14
11:15 denisboyun joined
timotimo FROGGS: totally can! 11:34
FROGGS good boy *g* 11:38
11:41 Pleiades` left, spider-mario joined 11:46 Pleiades` joined 11:52 thou left
FROGGS can somebody please read Note#3 and tell me if it is sane? github.com/FROGGS/p6-S11Versioning 11:53
github.com/FROGGS/p6-S11Versioning#notes 11:54
will work more on this these days, since I can stop working on the grammar... that means I will add a feature branch (or fork) to panda 11:55
timotimo: where do you live? do we meet at gpw2013? 11:56
FROGGS hopes that timotimo's WHOIS is misleading about his position on earth 11:57
timotimo that's litteraly spot on on my birthday o_O
berlin's a bit far for me, though
FROGGS hmmm, sad
masak oh hai, #perl6 11:58
FROGGS hi masak
jnthn yayitsmasak \o/
masak funniest p6cc praise so far, from the sent-in-solutions-in-Python guy: "I just wanted to show you your tasks are popular even among people who can't stand Perl6." 12:02
tadzik :)
arnsholt =D 12:03
masak: Have you done a talk about p6cc yet?
FROGGS we should organize a perl 6 hackaton in near future, but I think I could only come to a place in germany 12:04
masak arnsholt: oh! I haven't. I totally should.
Ulti perl6: my int32 enum DayOfWeek <<Sunday Monday Tuesday Wednesday Thursday Friday Saturday>>;
masak arnsholt: need to figure out an "angle" for it, and then I will submit it to YAPC::EU 2013.
p6eval rakudo 98a4a8: OUTPUT«===SORRY!===␤Method 'parrot_vtable_mappings' not found for invocant of class 'Perl6::Metamodel::NativeHOW'␤»
..niecza v24-18-gaf64300: OUTPUT«===SORRY!===␤␤Malformed my at /tmp/u2UqQ8iKP_ line 1:␤------> my⏏ int32 enum DayOfWeek <<Sunday Monday Tu␤␤Parse failed␤␤»
timotimo masak: "can't stand perl6" - must be due to not having looked at it seriously.
Ulti perl6: my Num enum DayOfWeek <<Sunday Monday Tuesday Wednesday Thursday Friday Saturday>>; 12:05
p6eval rakudo 98a4a8: OUTPUT«===SORRY!===␤P6opaque only supports type changes where the MRO of the original type is a suffix of the MRO of the new type␤»
..niecza v24-18-gaf64300: ( no output )
masak timotimo: surely it doesn't need to be due to that.
timotimo i'm regularly a python guy and perl6 gives me what python lacks, so ... ;)
masak timotimo: I've had people look at Perl 6 seriously and recoil in horror.
people are different.
arnsholt masak: One possible angle could be Perl 6 and how it varies between people, or somesuch 12:06
masak yeah, that's some of the joys of reviewing the solutions.
people are all over the map.
some are an aerodynamic fit to the shape of the language itself. some write 80's procedural code. some write OO code. some write FP code. 12:07
yes, there's definitely a talk in there.
arnsholt And that's one of your stated goals with it as well, no? Getting many people to do the same things to explore the state-space for style?
masak yeah.
timotimo so, rakudo has a bit of ANSI coloring available. i'm thinking of writing that backtracking support for the levenshtein, so we get difference highlighting for the suggestions. 12:09
jnthn timotimo: Make sure the appropriate environment variable for if we should do color or not is set if you do it. I'm not sure it'll be a help or a distraction, though... 12:10
masak did we get a turn-off-ANSI option? if so, might be good to plug this into the same option.
right.
tadzik FROGGS: I don't mind taking a trip to germany :)
timotimo i was thinking of non-obstrusive highlighting. underlining the parts that were added or changed and before and after removed characters would be fine, i think 12:11
jnthn timotimo: tbh, I'd leave the coloring thing there. But doing it for variable names would be good. Even better is if you can get the "wrong sigil" thing to have a good error...
std: my @x; say $x[0]
12:11 MayDaniel joined
timotimo yes, that's on my list of things to plug this stuff into. i don't know where to find that, though. haven't looked either. 12:11
p6eval std 7deb9d7: OUTPUT«===SORRY!===␤Variable $x is not predeclared (did you mean @x?) at /tmp/sX5JHng4Ey line 1:␤------> my @x; say ⏏$x[0]␤Check failed␤FAILED 00:00 44m␤»
timotimo i think sigil changes could be a case like "-"/"_"/"" in the current code: cost less than a regular letter change 12:12
jnthn yeah
masak <[Coke]> masak: suggestion for next year - allow us to emit diagnostics on stderr.
hrm, yes.
timotimo is there a short way of writing $char eq any('$@%&|'.comb) in nqp? 12:13
masak a bigger problem is that contestants can't really use &die, because &die also emits a stacktrace and won't shut up about it.
timotimo: indexof?
er, .index?
jnthn nqp::indexof
timotimo that sounds decent, but also OMG that's so C ;)
jnthn heh :)
timotimo say(nqp::indexof("@", '@$%|')); say(nqp::indexof("A", "@$%|")); 12:14
nqp: say(nqp::indexof("@", '@$%|')); say(nqp::indexof("A", "@$%|"));
p6eval nqp: OUTPUT«Error while compiling block : Error while compiling op call: Error while compiling op indexof: No registered operation handler for 'indexof'␤current instr.: '' pc 45675 (src/stage2/QAST.pir:15918) (src/stage2/QAST.nqp:2400)␤»
jnthn oh, it's just index
timotimo OK
masak guesses it's... what jnthn said
timotimo nqp: say(nqp::index("@", '@$%|')); say(nqp::index("A", "@$%|"));
p6eval nqp: OUTPUT«-1␤-1␤»
masak rhymes better with Perl 6.
timotimo er, huh?
masak heh :) 12:15
12:15 am0c joined
timotimo wrong way around? 12:15
masak other way around.
timotimo nqp: say(nqp::index('@$%|', '@')); say(nqp::index('@$%|', "A"));
p6eval nqp: OUTPUT«0␤-1␤»
masak \o/
timotimo yes, that'll do nicely
FROGGS tadzik: cool! 12:21
arnsholt starts reading up on JNI 12:22
timotimo oooh, nativecall for jakudo? :)
arnsholt I've started thinking about it, at least 12:23
But there's a fair chunk of thinking to go, methinks
timotimo one day it'll have to happen ;)
bbiab 12:24
nwc10 wonders when the IRC logger will migrate to Perl 6 12:37
(naughty me, suggesting things rather than hacking on them)
arnsholt That'll be a while I think, since it depends on search functionality and such, which is definitely non-trivial 12:38
nwc10 moritz.faui2k3.org/en/ilbot suggest that it's in (at least) two parts - an IRC logging bot, and a web frontent 12:39
anyway, if someone else wants to fix regcomp.c in Perl 5, I'd have time to hack on it. :-)
12:39 Chillance joined
arnsholt The modified UTF-8 encoding used in JNI is kind of clever, really 12:47
Oh, except that it encodes surrogate pairs from UTF-16. That's a bit icky 12:48
nwc10 what does it do? Surrogate pairs into UTF-8, and NUL bytes as non-shortest form?
arnsholt But encoding NULL bytes as 1100 0000 1000 0000 Is neat
Yeah, that's all. It's not a bad way to avoid the horrors of embedded NULLs, really 12:49
jnthn They use the same thing in the Java bytecode itself, iirc.
nwc10 careful. NUL
timotimo Non Unicode Letter?
nwc10 but surrogate pairs as 6 bytes of UTF-8 is (to my mind) sick and wrong
given that UTF-16 starts out with all the "benefits" of UTF-8 *combined* with the "benefits" of UTF-32
and then IIRC adds a "benefit" that neither have 12:50
so, if you do UTF-16 encoded as UTF-8, you've just made UTF-8 worse
arnsholt Yeah, >16-bit characters all of a sudden require 6 bytes
nwc10 you now have an O(n squared) encoding, not just O(n)
jnthn The horrible thing is that the String type is really an array of 16-bit things.
I dunno if this is true of Java, but in .Net languages you can do a .substr and it works on the array indexes. 12:51
12:51 FROGGS[mobile] left
jnthn Meaning that you can cut a surrogate pair in half. 12:51
arnsholt GAH!
That's just horrible
nwc10 I'm pretty sure that Dan and Jarkko had it right - do it all as fixed width, 7, 8, 16 or 32
which is, as I understand it, what Python 3.3 now does
arnsholt Dan and Jarkko?
nwc10 Sugalski
jnthn Trouble is, most developers never see how broken this is because 16 bits gets you all of the BMP.
nwc10 Jarkko seems to be out if "it" for long enough to no longer be the top hit 12:52
en.wikipedia.org/wiki/Jarkko_Hietaniemi
(claims not to be noteworthy)
arnsholt jnthn: Similar to the UCS-2 curse
nwc10 jnthn: it's ASCII->UTF-8, all over again?
it's like people don't learn 12:53
"whoever doesn't learn from history is doomed to re-implement it" (acme told me that - not sure if he originated that parody)
OK, Python probably isn't doing 7
timotimo "yeah, having 16 bit per character is bad enough! besides, 16 bits gives us all of the BMP. what else do we need?"
nwc10 but 7 is crafty. Assuming you're using 2 bits to encode 8/16/32 you have one state left 12:54
and 7 lets you say "pure ASCII", which is of course a subset of both UTF-8 and many legacy 8 bit encodings.
"pile of poo". Obviously. As it describes many things rather too well.
jnthn When I teach advanced C# I demonstrate this wonderful bustage. I don't think I've had a single person come to the class who knew about this problem already. :/ 12:55
12:56 not_gerd joined
not_gerd hello, #perl6 12:56
jnthn Then there was the company whose developers excitedly told me about a coding contest where they were seeing who could write the fastest string reverse in C#. None of the fast solutions handled surrogate pairs, of course...
Let alone combining chars! 12:57
o/ not_gerd
timotimo jnthn: but they were FAST!
you're missing the important part, obviously!!
does your algorithm even lift, bro?
nwc10 Advice from Klortho #11912: Evidently it's important to you to get the wrong answer as quickly as possible.
jnthn ;)
not_gerd thinks UTF-16 should die 12:58
it's prevalence is just due to hysterical raisins
keep in mind that UTF-32 is no silver bullet, though: you can still cut grapheme clusters in half 12:59
ie even UTF-32 has to be treated as a variable-length coding
jnthn Yeah. Just a very bulky one. :)
nwc10 roll on NFG 13:00
13:01 rindolf left 13:02 vividsnow joined
not_gerd is it possible to conditionally 'use' a module, depending on, say, an environment variable? 13:05
not_gerd doesn't want to recompile just to uncomment #use Grammar::Tracer;
13:06 denisboyun left
tadzik require? 13:06
use is compile time
nwc10 in perl 5, you would do it with require and import in a BEGIN block
13:09 rindolf joined
jnthn The problem is that use Grammar::Tracer influences the contents of %*HOW 13:09
Menaing that if changes the meta-object used when compiling grammars.
It'd be easier to always use it and have it look at an env var to decide whether to dump output or not 13:10
(Which would mean adding to Grammar::Tracer, but it's probably an easy feature to add) 13:11
masak enjoys jwenet.net/notebook/2005/1036.html
it's like a really angry collection of advice to get you to try harder as a programmer.
#11941 Of course it doesn't work! That's because you don't know what you are doing! 13:12
#11946 Perhaps you have forgotten that this is an engineering discipline, not some sort of black magic. 13:13
#11947 You know, this sort of thing is amenable to experimental observation.
*lol*
arnsholt Yeah, it's a good list 13:14
masak the thing I *do* take away from the "How to ask questions to good way" text is that what you, the questioner, owe the people you're asking is to try to learn about and solve the problem with your current best understanding.
13:14 Su-Shee_ is now known as Su-Shee
arnsholt A couple of very good ones about actually reading the compiler errors =D 13:14
masak or, expressed as its antithesis autopun: bash.org/?3936 13:16
masak .oO( every rule about bootstrapping behavior can be reformulated as an antithesis autopun ) 13:17
masak .oO( yo dawg, you know I like X but I can't X because they put an X in the X so I'd need to X before I X ) 13:18
13:23 Khisanth left
arnsholt But my favourite MJD advice is "#11951 Your question has exceeded the system limit for pronouns in a single sentence. Please dereference and try again." I think 13:23
moritz masak: re irclog.perlgeek.de/perl6/2013-01-19#i_6351971 I believe I did use "die" in my solution(s), and passed the base tests 13:27
if not, it's in my incomplete and not submitted solution
masak moritz: yeah, that was a neat trick.
will surely get a mention in the reviews :)
13:47 Khisanth joined 13:54 SamuraiJack_ joined 13:57 SamuraiJack left
timotimo so, how do i test X::Inheritance::UnknownParent? i don't feel like the suggestions should be mandatory for all implementations, but i still want to test that they work at all. 14:03
14:06 [hds] joined, [hds] is now known as hds 14:07 hds is now known as Guest62399, Guest62399 is now known as [hds] 14:08 not_gerd left 14:09 [hds] left
masak timotimo: maybe make the test conditional on the phrase "did you mean"? 14:18
[Coke]: oh! I *did* allow you to emit things on STDERR in all tasks. there are 2>&1 in all the base-test files. so I don't think I understand your request any more. 14:32
14:43 SunilJoshi joined 14:47 vividsnow left
masak moritz: another contestant did this in his MAIN method: CATCH { say ~$_; return -1 } 14:48
moritz: I'm not sure whether to be delighted or disgusted :) 14:49
I think stacktraces in errors are great, but I think we're overusing them and I'm a bit sad there's no way to turn them off.
I know it doesn't count as evidence that we need stacktrace-less errors if I cite the base-tests of a competition that I set up... but we need stacktrace-less errors. :) 14:51
14:59 SunilJoshi left, SunilJoshi1 joined 15:05 vividsnow joined
timotimo masak: how do i plan() for that? 15:05
15:06 SunilJoshi1 left
masak timotimo: include the test in the plan(), but skip() it if it doesn't contain the substring. 15:07
15:07 SunilJoshi joined
timotimo ah, that seems sensible 15:07
masak [Coke]: what kind of word is 'samh'? it's in your wordlist, but I don't find it in online wordlists, and a ddg search doesn't turn up anything useful either. :)
the haikus will be fun to judge. they range all the way from senseless word salads to beautiful sentences... 15:09
probably the task with the most "personality" I've ever had in the contest.
15:18 sevin joined 15:20 sevin left 15:23 wk joined 15:26 am0c left 15:28 wk left
felher Whats the problem with error with backtraces? 15:30
*stacktraces
15:31 wk joined
masak stacktraces can be informative. but sometimes you (the programmer) know they won't be, and then there's no way to switch them off. 15:34
15:44 xinming left
TimToady stacktraces should be put in a file or log or webpage somewhere, where you can see them if you want them, but don't have to see them if you don't 15:44
along with any other pertinent cockpit recorders
easy enough if you own the current directory, a bit harder if not 15:45
masak next year's p6cc, I think I will do the base-test files in Perl 6, not Perl 5.
TimToady: I'm more concerned about the programmer having total control over what goes on STDERR than where the stacktrace ends up. 15:46
TimToady: that is, if the implementation automatically outputs "See <cockpit recorder file> for stacktrace", I'll still be unhappy.
15:47 xinming joined
TimToady sure 15:47
15:47 SunilJoshi left
flussence An option to send then to an arbitrary file descriptor would be useful (and the same for --profile output...) 15:49
felher I see, thnx :) 15:50
TimToady send it to a pastebot :)
along with all the current config parameters
timotimo so, in order to make undeclared variable names do a suggestion, i'm going to change Grammar::check_variable and build a method like is_lexically_visible that emits suggestions based on levenshtein distance. do i get the value for the $scope argument that wwould be there by using $var.ast and get the parent until i find the first QAST::Block instance? 15:56
15:57 SunilJoshi joined 15:58 am0c joined
timotimo huh, i don't see a way to get the parent of a QAST::Node. is that not possible? 15:58
masak I don't think so, no. 15:59
if you're in a situation where you want to, chances are you're approaching things wrong.
15:59 stevan_ joined
timotimo i wonder if it would be enough to just walk the blocks like i used to for the classes 16:00
except this time i probably have to check for nqp::isconcrete($thing) to be true. what type do i have to check against? QAST::Var?
16:01 stevan_ left 16:03 benabik left, benabik joined
FROGGS .oO( #11922 You don't suppress error messages, you dumbass, you PAY ATTENTION and try to understand them. ) 16:04
tadzik unless you're writing Go 16:05
"fmt is unused! fmt is unused!". I know damnit, I just commented out some debugging code
and it's not a warning, it's an error
16:08 vividsnow left 16:09 stevan_ joined
masak tadzik: did you read the blog post (linked to from HN) about this? 16:13
tadzik yeah
I'm speaking from experience too
masak I almost linked to it here. it made me think that there are two layers of error messages that are interesting to get: one is during each compile. the other layer is during checkin/commit. 16:14
tadzik someone on reddit got downvoted to hell, but actually had an interesting solution: 'go run' warns, 'go build' dies
masak I haven't yet seen a programming language (or surrounding tooling) that distinguishes those two.
tadzik: ooh.
yeah, something like that.
folks, p6cc is now closed. 16:15
I've accepted/rejected all solutions I got before the deadline.
I'll make a blog post, but here's some early statistics for all y'all faithful channel readers. 16:16
tadzik yay
masak 32 people signed up this year.
8 contestants submitted solutions.
24 solutions passed base-test and will be part of the review process. 16:17
compare previous years' triplets with the same data: (35, 6, 27) for last year; (18, 5, 26) for the first year. 16:18
I also got two submissions (by a non-contestant) sent in as Python 3 code. I find this so amusing that I'll probably review them too. 16:19
tadzik :)
diakopter hee
tadzik oh, the readability scores... ;) 16:20
masak well, I'll have to be as fair as possible, of course. 16:21
tadzik of course
masak (don't want to set of an intergalactic war between Perl 6 and Python 3...)
off* 16:22
tadzik yeah
I know a fellow pythoner who sometimes mentions himself porting Rakudo to PyPy
I think those are just plans tho
jnthn is back
tadzik hi jnthn 16:23
TimToady well, hopefully jnthn++ is writing the Porting Guide while doing his current port :)
unless he intends to just up and do them all himownself
masak I'm sure jnthn has quite enough on his plate than to do more VMs than the JVM. :) 16:24
16:24 vividsnow joined
masak at least, I mean, at the same time. 16:24
timotimo so, given an entry from one of the @!BLOCKS.symtable, how do i decide if it's a variable? i can't just check for a sigil, because there's sigil-less variables, too. can i nqp::istype($thing, QAST::Var) (or self.find_symbol["QAST", "Var"] perhaps)? 16:25
masak writes blog post 16:26
FROGGS tadzik: de.webfail.com/e3146bceee6
jnthn timotimo: I was gonna say go by sigil but...yeah, that's not gonna quite work.
tadzik hahaha 16:27
I wonder if Żubry are good at rocking horses
16:28 Nom- left
jnthn moritz: Is any mention of LazyScalar dead code? 16:28
masak awww, poor panda :) 16:29
16:31 stevan_ left
jnthn timotimo: Anything that has a descriptor key in the symbol table hash will be a variable. You could go by that. 16:31
timotimo sounds good to me
jnthn Not sure how reliable that is but I'd expect "sufficiently". :) 16:32
masak tadzik: I bet Żubry are excellent at slides...
tadzik I googled 'bison sliding', internet is disappointing me 16:34
timotimo i would have expected at least some people sliding around on bisons.
masak .oO( rule 34 )
jnthn tadzik: www.dunriteplaygrounds.com/images/t.../bison.jpg 16:36
tadzik oh wow
16:38 aindilis joined 16:40 rindolf left, rindolf joined 16:47 rindolf left
timotimo ===SORRY!=== 16:47
Variable '$Foo' is not declared. Did you mean '$foo'?
jnthn why yes...yes I did!
timotimo++
tadzik niice
timotimo++ 16:48
timotimo Variable '$foo' is not declared. Did you mean '@foo'? - my @foo := 1,2,3; say $foo[2]⏏;
benabik timotimo++
timotimo i'm proud of my code :) 16:49
tadzik the second one is like a cherry on top :)
timotimo also, why do i get expecting any of: postfix directly after $Foo instead of $foo? 16:50
that surprises me a bit
16:51 mtk left, SunilJoshi1 joined, SunilJoshi left
jnthn timotimo: I suspect highexpect wants to be a bit smarter about when it triggers. 16:51
16:52 rindolf joined, [particle]1 is now known as [particle] 16:53 SunilJoshi1 left
timotimo can i call this "not my problem"? 16:53
16:54 Nom- joined
jnthn timotimo: It's not your problem. 16:54
timotimo thank you :)
now to add suggestions to "undeclared routine called" 16:55
16:56 rindolf left, rindolf joined 17:01 rindolf left 17:02 rindolf joined 17:04 b1rkh0ff joined 17:07 rindolf left 17:08 rindolf joined
timotimo jnthn: you seem to know all this. how is a routine identified in the symbol table? 17:08
FROGGS leading '&' ? 17:09
jnthn Leading & is reliable.
timotimo great, thanks :) 17:10
17:14 rindolf left 17:15 rindolf joined
timotimo oh no, i ran into a endless recursion while compiling :( 17:15
arnsholt Whoops =) 17:17
17:19 rindolf left, dayangkun left 17:20 rindolf joined
timotimo i refered to an undeclared thing in the message method of the undeclared exception :D 17:20
masak :) 17:23
17:24 rindolf left
masak blol, I logged! \o/ strangelyconsistent.org/blog/the-pe...now-closed 17:25
17:25 rindolf joined 17:27 dayangkun joined
timotimo turns out what i really did was put a backtick somewhere and thought it was dirt on my screen 17:27
arnsholt Oooh, the first problem was knights and knaves. That one really made me think of Prolog =D 17:28
17:28 rindolf left 17:29 rindolf joined 17:31 rindolf left 17:33 benabik left
FROGGS r: my $a:= 1; say "$a." 17:33
p6eval rakudo 98a4a8: OUTPUT«===SORRY!===␤Unable to parse expression in double quotes; couldn't find final '"'␤at /tmp/eNScK1PS7F:1␤------> my $a:= 1; say "$a."⏏<EOL>␤ expecting any of:␤ dotty method or postfix␤ double quotes␤»…
FROGGS r: my $a:= 1; say "$a!"
p6eval rakudo 98a4a8: OUTPUT«===SORRY!===␤Unable to parse expression in double quotes; couldn't find final '"'␤at /tmp/RpFM0YYy5J:1␤------> my $a:= 1; say "$a!"⏏<EOL>␤ expecting any of:␤ postfix␤ double quotes␤»
masak std: my $a:= 1; say "$a." 17:34
p6eval std 7deb9d7: OUTPUT«ok 00:00 43m␤»
masak std: my $a:= 1; say "$a!"
p6eval std 7deb9d7: OUTPUT«ok 00:00 43m␤»
FROGGS I can imagine that is problems with $a. (method call), but why $a! ?
masak FROGGS: private method call?
FROGGS ohh
okay
masak r: class A { method pub { self!priv }; method !priv { say "OH HAI" } }; A.new.pub
p6eval rakudo 98a4a8: OUTPUT«OH HAI␤»
FROGGS r: my $a:= 1; say "$a->" 17:35
p6eval rakudo 98a4a8: OUTPUT«===SORRY!===␤Unsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy block␤at /tmp/eTS2D6QykN:1␤------> my $a:= 1; say "$a->⏏"␤ expecting any of:␤ postfix␤»…
masak r: class A { method pub { my $a = self; "$a!priv()" }; method !priv { say "OH HAI" } }; A.new.pub
p6eval rakudo 98a4a8: OUTPUT«OH HAI␤»
masak std: my $a:= 1; say "$a->"
p6eval std 7deb9d7: OUTPUT«===SORRY!===␤Unsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy block at /tmp/iTcYvHjZJl line 1:␤------> my $a:= 1; say "$a->⏏"␤Parse failed␤FAILED 00:00 42m␤»…
masak FROGGS: nice find!
both Rakudo and STD are dead wrong here, if you ask me.
17:35 benabik joined
FROGGS so "$a!" should die 17:36
masak no.
and neither shoudl "$a->"
should*
FROGGS it should guess where the code ends?
masak they should just stop interpolating and treat the "!" or "->" as literal, IMO.
others may disagree, but that seems like the sane behavior to me
FROGGS ... if nothing follows <[.!]> 17:37
masak well, the rule is "interpolate from the sigil up to the last postcircumfix".
and so if "!" or "->" are last in the string, by definition they can't be part of the interpolation. 17:38
jnthn Trouble is, ."..."() is a valid postcircumfix.
masak (and the fact that they aren't shouldn't cause an error)
jnthn It's not failing to parse the outer string, it's failing the parse the quoted method call.
*to parse
TimToady masak: re irclog.perlgeek.de/perl6/2013-01-15#i_6337271 see S02:3711 17:39
nr: say Q[\]
p6eval rakudo 98a4a8, niecza v24-18-gaf64300: OUTPUT«\␤»
TimToady nr: say 「\」
p6eval rakudo 98a4a8: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/guWhxvibuM:1␤------> say ⏏「\」␤ expecting any of:␤ argument list␤ prefix or term␤ prefix or meta-prefix␤ postfix␤ infix or meta-infix␤ infix sto…
..niecza v24-18-gaf64300: OUTPUT«===SORRY!===␤␤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/HrsgvDZOug line 1:␤------> say⏏ 「\」␤␤Confused at /tmp/HrsgvDZOug line 1:␤------> […
TimToady that's just a NYI
jnthn
.oO( Not so perfect quotes... )
hah! 17:40
[ <!{$*QSIGIL}> || <!before '"' <-["]>*? \s > ] # dwim on "$foo."
Oh but...we have that line. 17:41
17:41 stevan_ joined
FROGGS r: my $a:= 1; say "$a. " 17:42
p6eval rakudo 98a4a8: OUTPUT«1. ␤»
jnthn r: my $foo = 42; say "$foo."
17:42 stevan__ joined
p6eval rakudo 98a4a8: OUTPUT«===SORRY!===␤Unable to parse expression in double quotes; couldn't find final '"'␤at /tmp/VbmlrYZ534:1␤------> my $foo = 42; say "$foo."⏏<EOL>␤ expecting any of:␤ dotty method or postfix␤ double quotes␤»… 17:42
jnthn r: my $foo = 42; say "$foo."
p6eval rakudo 98a4a8: OUTPUT«===SORRY!===␤Unable to parse expression in double quotes; couldn't find final '"'␤at /tmp/LlJsbJBQim:1␤------> my $foo = 42; say "$foo."⏏<EOL>␤ expecting any of:␤ dotty method or postfix␤ double quotes␤»…
jnthn r: my $foo = 42; say "$foo." ;
p6eval rakudo 98a4a8: OUTPUT«42.␤»
jnthn r: my $foo = 42; eval 'say "$foo."' 17:43
p6eval rakudo 98a4a8: OUTPUT«===SORRY!===␤Unable to parse expression in double quotes; couldn't find final '"'␤at eval_0:1␤------> say "$foo."⏏<EOL>␤ expecting any of:␤ dotty method or postfix␤ double quotes␤»
jnthn r: my $foo = 42; eval 'say "$foo." '
p6eval rakudo 98a4a8: OUTPUT«42.␤»
jnthn std: say "$foo."
p6eval std 7deb9d7: OUTPUT«===SORRY!===␤Variable $foo is not predeclared at /tmp/pfmnb2hD0P line 1:␤------> say "⏏$foo."␤Check failed␤FAILED 00:00 42m␤»
17:43 stevan__ left
jnthn std: my $foo; say "$foo." 17:43
p6eval std 7deb9d7: OUTPUT«ok 00:00 43m␤»
jnthn OK, so where is STD magically getting something to match \s from?
Does p6eval put a newline after stuff sending to STD, but not after stuff sent to Rakudo? 17:44
*sent
FROGGS std: my $foo; say "$foo."; 17:45
p6eval std 7deb9d7: OUTPUT«ok 00:00 43m␤»
jnthn changes it to [s|$]
FROGGS will $ match ; too? 17:46
17:46 stevan_ left
jnthn FROGGS: No, the cclass will though 17:46
17:47 vividsnow left 17:48 stevan_ joined
jnthn Yeah, the $ thing works. Will spectest and push :) 17:49
FROGGS I'm testing too right now 17:50
timotimo Undeclared routines: floink used at line 1 Did you mean &yoink? troink used at line 1 Did you mean &yoink?
TimToady jnthn: from CursorBase.pmc: $text .= "\n" unless substr($text,-1,1) eq "\n"; 17:51
FROGGS timotimo: you have to add lines like "Not again a typo, dumbass?!" eevery five exceptions.... 17:52
timotimo should that be &yoink or just yoink?
FROGGS: use Profanity;
should that be a thing? 17:53
FROGGS with & is okay, it is similar to the msg about traits
geekosaur does that turn on python emulation? :)
jnthn TimToady: Oh. 17:54
TimToady: I'm...not sure if I want to do that. Does other stuff depend on it?
timotimo "90% of customers who typed Junktion ended up buying Junction instead" 17:55
dalek kudo/nom: e80cfd6 | jnthn++ | src/Perl6/Grammar.pm:
Fix parsing of 'say "$a!"'.
17:57
FROGGS jnthn: there is a cron that rebuilds rakudo here? 17:59
timotimo i'm pretty sure there is
moritz for p6eval? yes
FROGGS when will it be rebuilt? 18:00
moritz 8 * * * * perl ~/evalbot/build.pl nom > /dev/null 18:01
FROGGS k, thanks
nwc10 currently the evalbot responds to what? r, n, and p? 18:02
or s too?
moritz p6eval: help 18:03
p6eval moritz: Usage: <(star|pugs|nqp|b|std|niecza|rakudo|nom|npr|n|r|perl6|prn|rn|p|rnp|nrp|pnr|rpn|p6|nr)(?^::\s) $perl6_program>
diakopter nwc10: it also takes urls to gists
nwc10 oh, std is diffent?
FROGGS okay, "$a." and "$a!" fixed, "$a->" still throws
moritz nwc10: since std only parses, it usually doesn't produce the same output as the others, so we don't group it 18:04
jnthn FROGGS: I'll let STD come up with a fix for that one :)
nwc10 aha.
FROGGS jnthn: k :o)
std: my $a = 1; say "$a(" 18:06
p6eval std 7deb9d7: OUTPUT«===SORRY!===␤Unable to parse double quotes at /tmp/Imqfm1pAgc line 1:␤------> my $a = 1; say "$a(⏏"␤Couldn't find final '"'; gave up at /tmp/Imqfm1pAgc line 1 (EOF):␤------> my $a = 1; say "$a("⏏<EOL>␤Parse fail…
FROGGS std: my $a = 1; say "$a'" 18:07
p6eval std 7deb9d7: OUTPUT«ok 00:00 43m␤»
FROGGS std: my $a = 1; say "$a'a"
p6eval std 7deb9d7: OUTPUT«===SORRY!===␤Variable $a'a is not predeclared at /tmp/_9PjOltHoF line 1:␤------> my $a = 1; say "⏏$a'a"␤Check failed␤FAILED 00:00 42m␤»
FROGGS k
18:07 PacoAir left 18:10 rindolf joined
timotimo t.h8.lv/helpful.png 18:11
18:13 PacoAir joined
moritz timotimo++ 18:14
tadzik timotimo: this is awesome 18:15
timotimo thank you :)
18:15 stevan_ left
timotimo couldn't have done it without the helpful souls in here, who put up with my relentless nqp-failings :] 18:15
jnthn++ 18:16
18:17 PacoAir_ joined
timotimo and masak++ and moritz++ for good measure :D 18:17
18:21 PacoAir left, PacoAir_ is now known as PacoAir, sizz_ left 18:22 rindolf left 18:23 sizz joined, rindolf joined 18:25 cog joined
timotimo with throws_like, how do i write a match for a hash that has a string as a key and a list as a value? 18:34
routine_suggestion => "Uc" => "&uc" doesn't seem to match.
FROGGS routine_suggestion => <Uc &uc> 18:38
r: say <Uc &uc> 18:39
p6eval rakudo e80cfd: OUTPUT«Uc &uc␤»
FROGGS r: say <Uc &uc>:WHAT 18:40
p6eval rakudo e80cfd: OUTPUT«===SORRY!===␤You can't adverb that␤at /tmp/k3J2WAQWuJ:1␤------> say <Uc &uc>:WHAT⏏<EOL>␤ expecting any of:␤ pair value␤»
FROGGS r: say <Uc &uc>.WHAT
p6eval rakudo e80cfd: OUTPUT«Parcel()␤»
FROGGS r: say <Uc &uc>.elems
p6eval rakudo e80cfd: OUTPUT«2␤»
FROGGS r: say ['Uc', '&uc']
p6eval rakudo e80cfd: OUTPUT«Uc &uc␤» 18:41
FROGGS r: say ['Uc', '&uc'].elems
p6eval rakudo e80cfd: OUTPUT«2␤»
timotimo sprunge.us/CaBE - are those acceptable tests? i'm not 100% sure how to best do the skipping. maybe i'll do a test exception and see if "Did you mean" is in there? 18:44
18:46 stevan_ joined
timotimo sprunge.us/FAjQ - perhaps like so? 18:46
[Coke] yays, as his second and final submission for t1 & t2 are accepted. 18:48
timotimo # Got: huc &uc 18:49
# Expected: huc &uc
... yeah, right :(
FROGGS: ^^^
tadzik timotimo: trailing whitespace? 18:50
timotimo doesn't seem so
throws_like 'say huc("foo")', X::Undeclared::Symbols, routine_suggestion => <huc &uc>; # this is the test
moritz maybe one is a string, the other a list? 18:51
timotimo hm, that may be
[Coke] masak: I wish to emit things on stderr and have them IGNORED.
moritz what does $!.routine_suggestion.perl say?
[Coke] masak: samh is in my /usr/share/dict/words 18:52
timotimo ("huc" => $("\&uc",)).hash 18:53
masak [Coke]: it wasn't in mine. 18:57
[Coke] timotimo++
masak [Coke]: do you know what 'samh' means?
timotimo i'll just use a throws_like-less test instead. 18:58
[Coke] masak: nope. I don't see anything obvious on google either. all I did to generate the lexicon was grep for words that were of a certain length and contained only lowercase letters present in my name. 18:59
I did no vetting on whether or not they were real words. In fact, I wanted to use a lovely elvish lexicon I had compiled, but ENO ignoremark, so I had to go with english. 19:00
which is good, since it was supposed to be english. :) 19:01
FROGGS timotimo: throws_like 'say huc("foo")', X::Undeclared::Symbols, routine_suggestion => huc{ <&uc> };
r: { routine_suggestion => huc{ <&uc> } }.perl.say
p6eval rakudo e80cfd: OUTPUT«===SORRY!===␤Undeclared routine:␤ huc used at line 1␤␤»
timotimo heh.
FROGGS ehh
timotimo did you mean :huc?
FROGGS r: { routine_suggestion => { huc => <&uc> } }.perl.say 19:02
p6eval rakudo e80cfd: OUTPUT«{"routine_suggestion" => {"huc" => "\&uc"}}␤»
timotimo hm, ok
didn't seem to work:( 19:03
bbl
masak [Coke]: it's fine -- I'm just curious what the word might mean. 19:05
another autopun, courtesy of jnthn: "Autocorrect makes me sound regarded" :) 19:06
[Coke] masak: scottish association for mental health has the most google points.
masak: that is AWESOME.
19:08 stevan_ left
masak ;) 19:12
it's curious how there can be so many autopuns, and how each new one can feel fresh, even though one has "learned the trick". 19:13
19:14 nuba left 19:18 nuba joined 19:32 thou joined 19:35 stevan_ joined 19:42 SamuraiJack_ left 19:43 thou left 19:47 stevan_ left
timotimo if my pull request gets merged, i'll just push the roast changes, too .. i guess? 19:59
that's a missing feature, having coordinated pull requests between multiple repositories
20:02 stevan_ joined
timotimo resists the temptation to just press "merge pull request" himself 20:02
huh, i don't seem to see that button, although i thought i had a commit bit 20:03
FROGGS timotimo: you cant merge your own requests 20:04
timotimo oh. well that makes semantic sense 20:07
dalek p-jvm-prep: 5d5f31f | jnthn++ | src/org/perl6/nqp/sixmodel/reprs/P6Opaque.java:
Swallow less error info.
p-jvm-prep: d16fef5 | jnthn++ | src/org/perl6/nqp/runtime/ (2 files):
Fix outer handling bug for methods.
20:08 thou joined
jnthn And here's where I hit the point I need to go refactor a chunk of 6model... 20:08
diakopter o_O
jnthn Design fail I made in the early days, that I didn't re-make in the JVM port but now need to rectify. 20:10
(In the on-Parrot version)
Unless I want to get desync'd impls...
timotimo hm. maybe i should push the roast changes immediately?
jnthn timotimo: Did you spectest your changes? 20:11
timotimo hm. i didn't run the full test suite
i should really do that!
jnthn Please do, then I can merge it.
Otherwise I'd want to grab it locally to spectest :)
diakopter jnthn: are we talking a 3-hour refactor or a 30-hour refactor 20:12
jnthn Closer to the first
timotimo sure, i'll put it up on perl6/roast
FROGGS timotimo: if you have more than one core, do: TEST_JOBS=n make spectest
where n is like 4 on a quadcore
dalek ast: f71c502 | (Timo Paulssen)++ | S32-exceptions/misc.t:
added a few tests for suggestion exceptions
timotimo oooh, that's good 20:13
20:13 pmurias joined
jnthn has made himself a pst (parallel spectest) thingy that does that :) 20:13
pmurias jnthn: hi
jnthn pmurias: o/
pmurias jnthn: how is iterating over a hash/array that changes supposed to work? 20:14
jnthn pmurias: Non-explosively. 20:15
pmurias: It shouldn't be forbidden, but I don't think the exact consequences are nailed down.
timotimo already reached S12 without problems. i'm hopeful d)
pmurias while I can imagine sane semantics for iterating over a array changing size it's harder for hashes 20:16
if the array grows we keep iterating if it shrinks beyond the current point we stop 20:17
jnthn Yeah, hashes are harder
jnthn wonders that Perl 5 does
I can't recall the spec ruling on this, so it probably is the catch-all thing. 20:18
nwc10 for perl 5 you're specifically allowed to delete the entry that the iterator is currently sitting on
20:19 thou left
nwc10 other than that, I don't think that anything is "defined" 20:19
jnthn www.perlmonks.org/?node_id=43646 suggest similar
nwc10 and I can't remmeber what happens. It seems to be an "implementation detail"
jnthn *nod*
pmurias perldocs tells people not to do that
jnthn nwc10: what about for arrays, ooc?
pmurias otherwise elements may be skipped or duplicated
jnthn pmurias: OK. Then that means "implementation specific"
nwc10 I can't remember.
but it's storing an array index for iterator state. 20:20
timotimo oh, i fail one of my tests. hold on.
jnthn Hm. If you decrease the size of the array in my JVM port once you start an iteration it's gonna start throwing nulls at you... :)
20:20 thou joined
timotimo oh, yes, it's the incorrect throws_like 20:20
jnthn r: my @a = 1..10; for @a { .say; @a.push(1) }; 20:21
p6eval rakudo e80cfd: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
jnthn r: my @a = 1..10; for @a { .say; @a.delete(@a.end) };
p6eval rakudo e80cfd: OUTPUT«1␤2␤3␤4␤5␤Any()␤Any()␤Any()␤Any()␤Any()␤»
jnthn Heh
Well, fine, that's the semantics I've got on the JVM too :)
pmurias jnthn: for arrays in Perl 5, it's "Don't do that" 20:22
jnthn pmurias: OK, fair enough :)
diakopter r: my @a = 1..10; for @a { .say; @a.pop };
p6eval rakudo e80cfd: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
pmurias jnthn: so it's implementation specific?
diakopter r: my @a = 1..10; for @a { .say; @a.pop() };
p6eval rakudo e80cfd: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
jnthn pmurias: Unless TimToady++ decides to declare otherwise. 20:23
We'll just document it the same was as Perl 5.
timotimo oh, but the tests that are pushed to roast all pass! :D
jnthn *way
e.g. "don't do that"
geekosaur (that'd be i.e. :p ) 20:25
jnthn :P 20:26
timotimo with this stuff i'll get into the rakudo release announcement fersher~!
jnthn: did you read? spectest says no tests fail! :D
jnthn timotimo: OK, great 20:27
20:27 thou left
timotimo hasn't seen much real-life use, so i don't know if the selection-heuristic is sane to get only good suggestions etc 20:27
FROGGS timotimo: np, I'll collect issues if I hit 'em ;o)
timotimo thanks a lot :) 20:28
dalek Heuristic branch merge: pushed 27 commits to rakudo/nom by jnthn
jnthn timotimo++
Yeah, I think the best way to get this exercised is merge it and see how folks find it. 20:29
timotimo one more thing i'll have to think about is the heuristic that looks if the routine starts with a capital letter and it gets called "type" instead of "routine", not sure if i should have a suggest_type that only looks for capital-letter-starting things? 20:30
jnthn timotimo: Is that in the mystery stuff? 20:31
nwc10 I'm a bit stuck here - what's the best terse phrase for the oposite of LTA?
timotimo yes, it is
BTA?
jnthn timotimo: iirc that is using a capital letter heuristic for type vs routine
nwc10 well, they aren't now "better than awesome" error messages
timotimo yes, that's what the comment above it said 20:32
nwc10 nearer to awesome?
timotimo CTA sounds good
nwc10 yes.
FROGGS nod
timotimo "close{,r} to awesome"
pmurias timotimo: couldn't the capital-letter-starting heuristic prove misleading 20:34
?
timotimo pmurias: it might! it's not my invention ;)
jnthn pmurias: STD has done it for a good while and it's not been found misleading so far, at least. 20:35
arnsholt timotimo++ # Awesome feature
GlitchMr This is fun!
I like it
pmurias jnthn: ok
GlitchMr I'm currently compiling Rakudo.
timotimo the current code would consider changing the capital letter to a non-capital letter as a distance of 0.5 unless i explicitly throw them out
GlitchMr I rarely do that, but that feature sounds so fun, that I compile it.
pmurias timotimo: you could just increase the distance for the initial capital ;) 20:36
20:36 stevan_ left
timotimo r: my $foobar = "yay"; say $FooBar; # is it in here yet? 20:36
p6eval rakudo e80cfd: OUTPUT«===SORRY!===␤Variable $FooBar is not declared␤at /tmp/oWDJzKWCvS:1␤------> my $foobar = "yay"; say $FooBar⏏; # is it in here yet?␤ expecting any of:␤ postfix␤»
GlitchMr No
timotimo nope, not yet
GlitchMr /usr/bin/perl6 on feather claims to be before the branch merge.
timotimo iirc the cronjob runs every 30 minutes?
jnthn something like 20:37
timotimo so, possibly started 3 minutes ago?
rindolf Hi all, what's up? 20:38
FROGGS moritz pastest the job desc, it will run 8 past 20:39
GlitchMr rindolf: New fun feature in Rakudo
FROGGS so in 30mins
rindolf GlitchMr: which one?
FROGGS r: my $foo = 42; eval 'say "$foo."' 20:40
p6eval rakudo e80cfd: OUTPUT«42.␤»
GlitchMr For example, if you'll type "spit" by accident instead of "split", Rakudo will hint you to use "split" instead.
colomon r: say "hi" 20:41
p6eval rakudo e80cfd: OUTPUT«hi␤»
GlitchMr Actually, I think I've once implemented something similar in PHP. 20:42
dl.dropbox.com/u/63913412/clippy.png
timotimo wow, that's bloody excellent :)
GlitchMr That's old, but well - it wasn't supposed to be serious.
timotimo we were discussing use Profanity; earlier, which would cause nasty messages on errors. maybe it could be something like use Error::Profanity; and use Error::Clippy for an ascii-clippy? 20:43
GlitchMr I never have completed the Clippy error reporting 20:44
I wanted it to be too helpful...
Like mentioning missing semicolons and stuff.
And that with pure PHP code (that was difficult, considering you cannot catch fatal errors... or can you...) 20:45
tadzik FROGGS: cute panda revenge: i.imgur.com/RFbXe.gif 20:47
dalek ast: e2ce199 | (Tobias Leich)++ | S02-literals/misc-interpolation.t:
RT116166, test for interpolating "$a."
20:48 cog left
FROGGS tadzik: awwww, soooo cute ;o) 20:48
GlitchMr eval: spit 'ready?' 20:49
tadzik yeah, it's quite hardcore-cute :)
GlitchMr r: spit 'ready?'
p6eval rakudo e80cfd: OUTPUT«===SORRY!===␤Undeclared routine:␤ spit used at line 1␤␤»
20:50 thou joined
timotimo not yet. froggs said "in 30 mins" about 15 minutes ago 20:51
GlitchMr r: spit 'ready?' 20:56
p6eval rakudo e80cfd: OUTPUT«===SORRY!===␤Undeclared routine:␤ spit used at line 1␤␤»
FROGGS the job should start in 12 minutes, and will takes about 5minutes I guess 20:57
20:58 vividsnow joined
GlitchMr r: spit 'ready?' 21:06
p6eval rakudo e80cfd: OUTPUT«===SORRY!===␤Undeclared routine:␤ spit used at line 1␤␤»
GlitchMr I guess I'm too fast
FROGGS about seven minutes to go ;o)
timotimo r: spit "ready? set? go?"; 21:13
p6eval rakudo e80cfd: OUTPUT«===SORRY!===␤Undeclared routine:␤ spit used at line 1␤␤»
timotimo almost!
[Coke] calm down, beavis.
timotimo it's :13 on my local machine and :09 on the irc machine >_>
so i thought it would have already been finished minutes ago 21:14
FROGGS r: spit "ready? set? go?";
p6eval rakudo 830859: OUTPUT«===SORRY!===␤Undeclared routine:␤ spit used at line 1. Did you mean '&split'?␤␤»
FROGGS \o/
timotimo \o/
jnthn r: my @a = 1,2,3; say $a[1] 21:15
p6eval rakudo 830859: OUTPUT«===SORRY!===␤Variable '$a' is not declared. Did you mean '@a'?␤at /tmp/8ZCUlaKJwW:1␤------> my @a = 1,2,3; say $a[1]⏏<EOL>␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ statement…
FROGGS r: tolongtomatchanything( 42 )
p6eval rakudo 830859: OUTPUT«===SORRY!===␤Undeclared routine:␤ tolongtomatchanything used at line 1. Did you mean ''?␤␤»
FROGGS gotcha
timotimo whoops?
jnthn oops
21:15 b1rkh0ff left
timotimo i thought i checked against empty suggestion list. 21:15
thanks. i'll add tests
FROGGS and I thought I have checked exactly that in your pull request 21:16
} elsif +@.suggestions == 1 {
jnthn p6eval++ # allowing collaborative testing of new features
FROGGS timotimo: must be an empty string... 21:17
timotimo that would surprise me. i'll look into it, though.
good catch!
FROGGS otherwise we would get a warning that @.suggestions[0] ins Any() in string context
s/ins/is/
dalek p: bb97781 | jnthn++ | src/6model/sixmodelobject.h:
Add compose to REPR functions table.

This will be used to replace all the places we do introspection calls in REPRs, which create nested runloops.
21:19
p: 0255f36 | jnthn++ | src/6model/reprs/ (13 files):
Stub compose functions for all REPRs.
p: 53ea244 | jnthn++ | src/ (2 files):
Add nqp::composetype(...) op.
p: 4de7046 | jnthn++ | src/stage0/ (9 files):
Update bootstrap to get new op.
FROGGS jnthn: lately I ran the autounfudge script and recognized that several skipped tests are working in match.t or similar, should I push the changes? (running that script now)
jnthn FROGGS: Provided they pass for you locally, should be fine. 21:20
timotimo FROGGS: actually, yeah, i did a stupid mistake. i checked for %.routine_suggestions{$name} :exists
but it gets added no matter if there's suggestions or not
so yeah, empty list in this case.
(you looked at the wrong exception)
FROGGS hehe, okay ;o)
ahh, unknownparent, I see 21:21
r: class A is kjhjfklhdkfjhgkshgfkjf { }
p6eval rakudo 830859: OUTPUT«===SORRY!===␤'A' cannot inherit from 'kjhjfklhdkfjhgkshgfkjf' because it is unknown.␤at /tmp/HhurxkBKN9:1␤------> ␤»
masak \o/
FROGGS r: $lkksjdfjhsf=1 21:22
p6eval rakudo 830859: OUTPUT«===SORRY!===␤Variable '$lkksjdfjhsf' is not declared␤at /tmp/vBVSJSJcA0:1␤------> $lkksjdfjhsf⏏=1␤ expecting any of:␤ postfix␤»
FROGGS r: my $abc = 1; $bac
p6eval rakudo 830859: OUTPUT«===SORRY!===␤Variable '$bac' is not declared. Did you mean '$abc'?␤at /tmp/PTSB3R58m7:1␤------> my $abc = 1; $bac⏏<EOL>␤ expecting any of:␤ postfix␤»
dalek rl6-roast-data: 73519c3 | coke++ | / (3 files):
today (automated commit)
FROGGS pretty cool
tadzik jnthn: is that your favourite animal? i.imgur.com/IP4pNdu.jpg 21:25
jnthn oooh! 21:26
That's awesome :)
pmurias jnthn: do you plan on using vtables in nqp-jvm? 21:27
jnthn pmurias: As in, the Parrot v-table stuff? 21:28
pmurias yes
jnthn pmurias: No.
pmurias good :)
timotimo i made some tests to ensure that it doesn't say "did you mean ''?"
tadzik oh wow. building nom now segfaults for me :) 21:30
FROGGS do you have local changes?
jnthn tadzik: congrats!
dalek ast: dce99e0 | (Timo Paulssen)++ | S32-exceptions/misc.t:
if no suggestions, then no "did you mean".
21:31
timotimo oh, i don't have rakudo commit bits 21:32
21:32 Pleiades` left
tadzik FROGGS: nope 21:32
timotimo sprunge.us/ULaA - this fixes the "did you mean ''?" bug for routines 21:33
tadzik gist.github.com/4575342 --batkcrace
bat race!
yes, I've no debugging build 21:34
jnthn timotimo: send a pull request, I can merge it
pmurias jnthn: Bool in nqp should return an qp int (0 vs 1)?
jnthn pmurias: Yeah, nqp has no Bool type 21:35
21:38 zby_home_ left
FROGGS tadzik: did you made realclean? 21:38
I have no idea whats going on there 21:39
jnthn Me either. It's a really odd place to fail...
timotimo there it is, jnthn
tadzik trying -fdx now
21:40 MayDaniel left
dalek kudo/nom: 108e37f | (Timo Paulssen)++ | src/core/Exception.pm:
don't ask "did you mean" for 0 suggested routines.
21:40
kudo/nom: 5a895b4 | (Tobias Leich)++ | src/core/Exception.pm:
Merge pull request #96 from timo/levenshtein

don't ask "did you mean" for 0 suggested routines.
21:40 Pleiades` joined 21:41 stevan_ joined 21:44 thou left 21:46 kaare__ left 21:57 MayDaniel joined 21:58 PacoAir left 22:00 vividsnow left 22:01 PacoAir joined
dalek p: 9efdd5a | jnthn++ | src/how/NQPClassHOW.pm:
Get NQPClassHOW to do REPR composition.

Note that P6opaque isn't updated to do anything with this yet.
22:04
p: 2a13778 | jnthn++ | src/6model/reprs/P6opaque.c:
Teach P6opaque about REPR composition protocol.

Old one left in place for now; it'll need Rakudo updates and another trip around the bootstrap to eliminate that.
timotimo GlitchMr: a read your perl6 changes posts! 22:12
jnthn ooh, is there a new one? :) 22:13
GlitchMr++ # I like these 22:14
masak yes, GlitchMr++
dalek kudo-js: f1401e7 | (Paweł Murias)++ | / (2 files):
steal t/qast_bitops.t, add missing bitops
22:17
kudo-js: 70c0813 | (Paweł Murias)++ | t/helper.nqp:
Reorder subs.
kudo-js: 18b65bd | (Paweł Murias)++ | / (2 files):
Steal t/qast_aggregate.t
22:17 PacoAir left
dalek p-jvm-prep: 92240bc | jnthn++ | / (2 files):
Implement composetype op.
22:18
22:19 PacoAir joined, PacoAir left, PacoAir joined
timotimo closes some LTA bugs now :D 22:20
r: sub foo(Junktion $a) { say $a }; 22:21
p6eval rakudo 5a895b: OUTPUT«===SORRY!===␤Invalid typename in parameter declaration␤at /tmp/qJpe_h5ypT:1␤------> sub foo(Junktion⏏ $a) { say $a };␤»
timotimo may do that at one point, too.
22:21 MayDaniel left 22:22 geekosaur left 22:23 mikemol left, shachaf joined 22:24 mikemol joined 22:25 geekosaur joined 22:31 PacoAir_ joined, For-Odin joined 22:32 PacoAir left, PacoAir_ left, PacoAir joined
timotimo more error message improvements are in the pipeline :) 22:34
masak :) 22:37
22:38 PacoAir_ joined, PacoAir left, PacoAir_ is now known as PacoAir
masak good night, #perl6 22:41
dalek ast: 95a13d7 | (Timo Paulssen)++ | S32-exceptions/misc.t:
check for X::Inheritance::SelfInherit.
22:46
jnthn sleep, 'night o/ 23:01
FROGGS gnight 23:02
23:09 For-Odin left, rjbs joined
rjbs seen TimToady 23:10
aloha TimToady was last seen in #perl6 5 hours 18 mins ago saying "jnthn: from CursorBase.pmc: $text .= "\n" unless substr($text,-1,1) eq "\n";".
23:12 am0c left, Pleiades` left 23:18 Pleiades` joined
timotimo Error while compiling block : Error while compiling block : Error while compiling block apply_trait: Error while compiling op handle: Error while compiling op handle: Error while compiling op call: Error while compiling block : Error while compiling op if: Error while compiling op bind: First child of a 'bind' op must be a QAST::Var - i feel like i've accomplished something m) 23:19
(at least i know what i did wrong) 23:21
23:21 spider-mario left 23:23 sjohnson left 23:24 sjohnson joined 23:30 stevan_ left 23:31 rindolf left
timotimo i made some change that causes the setting to be parsed super-super slow, i fear :( 23:35
arnsholt Did you include any Unicode characters in your code? 23:37
That made things go superslow in the past
timotimo i don't think i did. at the very most by accident
timotimo tries origin/nom to verify it's his codes fault 23:38
that still works 23:40
it may be due to a # i introduced. #| means something, right? >_< 23:41
i wonder why those really old pull requests on rakudo/rakudo are not being merged 23:43
or closed
| <longname> <.typed_panic('X::Parameter::InvalidType', typename => $<longname>, suggestions => $*W.suggest_typename($<longname>))> - should this theoretically work?
23:48 stevan_ joined 23:54 pmurias left