»ö« 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.
timotimo n: say "abc, efg = 123" ~~ /:s [$<key>=[\w+]]+% \, \= $<val>=\S+ / 00:06
camelia niecza v24-98-g473bd20: OUTPUT«「abc, efg = 123」␤ key => 「abc」␤ key => 「efg」␤ val => 「123」␤␤»
00:07 fhelmberger joined, fhelmberger left
Mouq nqp: my @a; @a[0] := 14; my $b := @a.unshift(57); say($b) 00:10
camelia nqp: OUTPUT«2␤»
Mouq nqp-jvm: my @a; @a[0] := 14; my $b := @a.unshift(57); say($b)
nqp-moarvm: my @a; @a[0] := 14; my $b := @a.unshift(57); say($b)
camelia nqp-jvm: OUTPUT«57␤»
nqp-moarvm: OUTPUT«57␤»
00:12 Psyche^_ joined 00:13 LWA left 00:16 Psyche^ left
TimToady nr: my @a; @a[0] := 14; my $b := @a.unshift(57); say($b) 00:21
camelia rakudo e9830d, niecza v24-98-g473bd20: OUTPUT«57 14␤»
00:37 btyler left, btyler joined 00:42 fridim_ joined 00:56 benabik joined 00:58 dayangkun left 00:59 dayangkun joined 01:12 dansamo joined 01:13 dayangkun left 01:15 dayangkun joined 01:45 berekuk_ left 01:48 berekuk joined
BenGoldberg It occurs to me that the evalbot (camelia) is lacking a useful feature: that of running a line of nqp code using multiple different nqp implementations, and grouping together identical outputs, just as it can do with the perl6 implementations. 02:03
02:04 btyler left
Mouq BenGoldberg: I can change that pretty easily. Do you think (I do) that 'nqp: ...' will do all of them, and 'nqp-p' and 'nqp-parrot' does what 'nqp' used to do? 02:10
s/will/should
dalek albot: 59a6f8f | Mouq++ | evalbot.pl:
Make 'nqp' try all nqp impls, move 'nqp' to 'nqp-parrot'
02:17
diakopter nqp: 1
camelia ( no output )
Mouq Too bad :) 02:18
Unless anyone objects, then I can just redact the commit :p
evalbot control restart
02:18 camelia left
Mouq *revert 02:18
02:19 camelia joined
Mouq nqp: 1 02:19
diakopter Mouq: I don't think evalbot control restart does a git pull
02:19 ChanServ sets mode: +v camelia
camelia ( no output ) 02:19
diakopter Mouq: however, I can trigger it
Mouq Oh, no it doesn't. You can if you want, and I'd appreciate it 02:20
02:24 camelia left 02:25 camelia joined
Mouq nqp: 1 02:25
02:25 ChanServ sets mode: +v camelia
camelia ( no output ) 02:25
Mouq diakopter++ BenGoldberg++
benabik Given that in the (near?) future, you'll have to use nqp-{j,p,m} to get a specific nqp, doing the same in camelia makes sense. :-) 02:26
Mouq nqp-p: say(4) 02:27
camelia nqp-parrot: OUTPUT«4␤»
Mouq nqp: say(4)
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«4␤»
diakopter nqp: 1 02:29
camelia ( no output )
lue benabik: not if you symlink :)
diakopter we'll use the distro stuff to do that 02:30
benabik lue: To get a specific version, I said. nqp alone will be unspecified VM, and on IRC happens to mean all three. :-)
diakopter if someone would like to fix this so it only rebuilds if git pull fetches new commits, it would be nice: github.com/perl6/evalbot/commit/e2...efd4c6ffdd 02:31
benabik Looks like all of the rebuild scripts could use it? 02:34
Busy doing homework, but all you should need a couple invocations of `git rev-parse HEAD`, a variable, and a comparison. 02:35
02:41 risou_awy is now known as risou 02:42 risou is now known as risou_awy
Mouq
.oO(Q:irc<nqp: …>'s been lacking a revision file, relatedly)
02:46
benabik p6: say 1 02:47
camelia rakudo e9830d, niecza v24-98-g473bd20: OUTPUT«1␤»
03:17 grondilu left 03:19 fridim_ left 03:24 berekuk left 03:35 c1sung left 03:37 preflex left 03:39 preflex joined, ChanServ sets mode: +v preflex 03:41 c1sung joined 03:54 dansamo left
TimToady nr: say <A B C D>.permutations 04:01
camelia niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Unable to resolve method permutations in type Parcel␤ at /tmp/qUaI9By7Mu line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE…»
..rakudo e9830d: OUTPUT«No such method 'permutations' for invocant of type 'Parcel'␤ in block at /tmp/D26NZdsuU0:1␤␤»
Mouq r: 4.permutations #? 04:02
camelia rakudo e9830d: OUTPUT«No such method 'permutations' for invocant of type 'Int'␤ in block at /tmp/mfJwrjJlZ2:1␤␤»
Mouq r: permutations(4).say #?
camelia rakudo e9830d: OUTPUT«===SORRY!===␤no ICU lib loaded␤»
TimToady nr: say <A B C D>.combinations
camelia niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Unable to resolve method combinations in type Parcel␤ at /tmp/aU0JxXKYpM line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE…»
..rakudo e9830d: OUTPUT«No such method 'combinations' for invocant of type 'Parcel'␤ in block at /tmp/1OH_lfybZj:1␤␤»
TimToady nr: say <A B C D>.combinations(4)
camelia niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Unable to resolve method combinations in type Parcel␤ at /tmp/FiYcJWq2Z2 line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE…» 04:03
..rakudo e9830d: OUTPUT«No such method 'combinations' for invocant of type 'Parcel'␤ in block at /tmp/1TS0K0931y:1␤␤»
Mouq r: permutations(4,3).say # oh, duh
camelia rakudo e9830d: OUTPUT«===SORRY!===␤no ICU lib loaded␤»
TimToady o_O
nr: say [<A B C D>].permutations 04:04
camelia rakudo e9830d: OUTPUT«A B C D A B D C A C B D A C D B A D B C A D C B B A C D B A D C B C A D B C D A B D A C B D C A C A B D C A D B C B A D C B D A C D A B C D B A D A B C D A C B D B A C D B C A D C A B D C B A␤»
..niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Unable to resolve method permutations in type Array␤ at /tmp/QPWfnuDiGb line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE …»
TimToady nr: say [<A B C D>].permutations».join
camelia niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Unable to resolve method permutations in type Array␤ at /tmp/eYzr1swGpx line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE …»
..rakudo e9830d: OUTPUT«A B C D A B D C A C B D A C D B A D B C A D C B B A C D B A D C B C A D B C D A B D A C B D C A C A B D C A D B C B A D C B D A C D A B C D B A D A B C D A C B D B A C D B C A D C A B D C B A␤»
TimToady rakudobug 04:05
.join should be nodal
yoleaux TimToady: Sorry, this command is admin-only.
TimToady .go jump in a lake
r: say [<A B C D>].permutations.perl 04:06
camelia rakudo e9830d: OUTPUT«(("A", "B", "C", "D"), ("A", "B", "D", "C"), ("A", "C", "B", "D"), ("A", "C", "D", "B"), ("A", "D", "B", "C"), ("A", "D", "C", "B"), ("B", "A", "C", "D"), ("B", "A", "D", "C"), ("B", "C", "A", "D"), ("B", "C", "D", "A"), ("B", "D", "A", "C"), ("B", "D", "C", "A…»
TimToady r: say [<A B C D>].permutations.perl.lol.perl
camelia rakudo e9830d: OUTPUT«("((\"A\", \"B\", \"C\", \"D\"), (\"A\", \"B\", \"D\", \"C\"), (\"A\", \"C\", \"B\", \"D\"), (\"A\", \"C\", \"D\", \"B\"), (\"A\", \"D\", \"B\", \"C\"), (\"A\", \"D\", \"C\", \"B\"), (\"B\", \"A\", \"C\", \"D\"), (\"B\", \"A\", \"D\", \"C\"), (\"B\", \"C\", \"A…»
TimToady r: say [<A B C D>].permutations.lol.perl
camelia rakudo e9830d: OUTPUT«LoL.new(ListIter.new())␤»
TimToady r: say [<A B C D>].permutations.lol».join
camelia rakudo e9830d: OUTPUT«Default constructor for 'ListIter' only takes named arguments␤ in method new at src/gen/CORE.setting:798␤ in method new at src/gen/CORE.setting:793␤ in sub hyper at src/gen/CORE.setting:16562␤ in sub hyper at src/gen/CORE.setting:16518␤ in method…»
TimToady um... 04:07
r: say [<A B C D>].permutations.lol.map: *.join
camelia rakudo e9830d: OUTPUT«ABCDABDCACBDACDBADBCADCBBACDBADCBCADBCDABDACBDCACABDCADBCBADCBDACDABCDBADABCDACBDBACDBCADCABDCBA␤»
TimToady sigh...
r: say [<A B C D>].permutations.tree.map: *.join 04:08
camelia rakudo e9830d: OUTPUT«ABCD ABDC ACBD ACDB ADBC ADCB BACD BADC BCAD BCDA BDAC BDCA CABD CADB CBAD CBDA CDAB CDBA DABC DACB DBAC DBCA DCAB DCBA␤»
TimToady that should not be the only way to do that...
Mouq r: say [<A B C D>].permutations.tree>>.join 04:09
camelia rakudo e9830d: OUTPUT«A B C D A B D C A C B D A C D B A D B C A D C B B A C D B A D C B C A D B C D A B D A C B D C A C A B D C A D B C B A D C B D A C D A B C D B A D A B C D A C B D B A C D B C A D C A B D C B A␤»
TimToady descended to the leaves, alas
methods on lists should be considered nodal 04:10
04:13 araujo left 04:14 dakkar joined 04:23 [Sno] left 04:39 kaleem joined 04:54 Rotwang joined
lue nqp: my @a := 5,6; say(nqp::existspos(@a, 2)); 05:07
camelia nqp-jvm: OUTPUT«P6int representation does not implement exists_pos␤ in (/tmp/Cs0gC3rbON:1)␤ in (src/stage2/gen/NQPHLL.nqp:1098)␤ in eval (src/stage2/gen/NQPHLL.nqp:1084)␤ in evalfiles (src/stage2/gen/NQPHLL.nqp:1290)␤ in command_eval (src/stage2/gen/NQPHLL.nqp:1194)…»
..nqp-parrot: OUTPUT«exists_keyed() not implemented in class 'Integer'␤current instr.: '' pc 64 ((file unknown):38321776) (/tmp/T7zOhxARUd:1)␤»
..nqp-moarvm: OUTPUT«This representation (P6int) does not support positional access␤frame_name_0␤»
lue nqp: my @a := [5,6]; say(nqp::existspos(@a, 2)); 05:08
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«0␤»
lue nqp: my $a := [5,6]; say(nqp::existspos($a, 2));
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«0␤»
05:08 Mouq left 05:10 skids joined
lue Now I suddenly understand why exactly jnthn uses **0..1 instead of ? in his regexes in most of the slides :D 05:13
Blargh. I'm getting a segfault using nqp::existspos, and I've no clue why :( 05:25
there's no nqp function to just tell me the type of a given variable, is there? :/ 05:41
05:42 SamuraiJack joined
moritz lue: $obj.HOW.name($obj) 05:44
lue Well then :) . I guess I'm being a bit too conservative in guessing how large NQP's subset of P is :) 05:45
moritz in particular NQP has a MOP too
lue For some reason, **0..1 isn't forcing a list in NQP like the slides claim, which means some fiddling involving an if nqp::islist() {} conditional. :/ 05:46
05:46 [Sno] joined 05:48 BenGoldberg left
moritz nqp: 'a' ~~ /^ (a) ** 0..1 /; say $/[0][0] 05:52
camelia nqp-jvm: OUTPUT«Confused at line 2, near "say $/[0]["␤ in panic (src/stage2/gen/NQPHLL.nqp:279)␤ in comp_unit (src/stage2/gen/NQP.nqp:772)␤ in TOP (src/stage2/gen/NQP.nqp:669)␤ in parse (src/stage2/gen/QRegex.nqp:1247)␤ in parse (src/stage2/gen/NQPHLL.nqp:1376)␤ in…»
..nqp-moarvm: OUTPUT«Confused at line 2, near "say $/[0]["␤panic␤»
..nqp-parrot: OUTPUT«Confused at line 2, near "say $/[0]["␤current instr.: 'panic' pc 14748 (src/stage2/gen/NQPHLL.pir:5229) (src/stage2/gen/NQPHLL.nqp:279)␤»
moritz nqp: 'a' ~~ /^ (a) ** 0..1 /; say($/[0][0])
camelia nqp-jvm: OUTPUT«java.lang.NullPointerException␤ in (/tmp/IipcQZwbba:1)␤ in (src/stage2/gen/NQPHLL.nqp:1098)␤ in eval (src/stage2/gen/NQPHLL.nqp:1084)␤ in evalfiles (src/stage2/gen/NQPHLL.nqp:1290)␤ in command_eval (src/stage2/gen/NQPHLL.nqp:1194)␤ in command_line…»
..nqp-moarvm: OUTPUT«No lexical found with name '$/'␤frame_name_0␤»
..nqp-parrot: OUTPUT«␤»
moritz nqp: my $/ := 'a' ~~ /^ (a) ** 0..1 /; say($/[0][0])
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«a␤» 05:53
moritz nqp: my $/ := 'a' ~~ /^ (b) ** 0..1 /; my $first := $/[0]; say $first.HOW.name($first)
camelia nqp-moarvm: OUTPUT«Confused at line 2, near "say $first"␤panic␤»
..nqp-parrot: OUTPUT«Confused at line 2, near "say $first"␤current instr.: 'panic' pc 14748 (src/stage2/gen/NQPHLL.pir:5229) (src/stage2/gen/NQPHLL.nqp:279)␤»
..nqp-jvm: OUTPUT«Confused at line 2, near "say $first"␤ in panic (src/stage2/gen/NQPHLL.nqp:279)␤ in comp_unit (src/stage2/gen/NQP.nqp:772)␤ in TOP (src/stage2/gen/NQP.nqp:669)␤ in parse (src/stage2/gen/QRegex.nqp:1247)␤ in parse (src/stage2/gen/NQPHLL.nqp:1376)␤ in…»
moritz nqp: my $/ := 'a' ~~ /^ (b) ** 0..1 /; my $first := $/[0]; say($first.HOW.name($first))
camelia nqp-parrot: OUTPUT«Can only use get_how on a SixModelObject␤current instr.: '' pc 176 ((file unknown):48718186) (/tmp/Ss2gPnxEnP:1)␤»
..nqp-moarvm, nqp-jvm: OUTPUT«NQPArray␤»
moritz lue: looks to me like it's a list always 05:54
lue weirdly though, existpos segfaults and islist returns 0 unless I step in and forcibly create a list. (I'm working on the if/else part of the slides, so the issue is with one <EXPR> not becoming a 1-elem list) 05:55
At least I finally got it working, by forcing that list so existspos doesn't segfault :) 06:00
06:00 xenoterracide left 06:01 fhelmberger joined 06:02 fhelmberger left 06:11 denisboyun joined 06:13 Rotwang left 06:17 darutoko joined 06:18 lue left 06:23 aindilis left
jnthn morning, #perl6 06:41
yoleaux 21 Oct 2013 23:11Z <lue> jnthn: I haz change to nqp, but I no haz push bit. halp? :) [the specific change is the removal of the "redundant \h* line" from earlier]
06:41 kurahaupo joined 06:45 kurahaupo_ joined, kurahaupo left 06:48 denisboyun left
jnthn .lue tell I need your github name 06:49
uh, dammit
.tell lue I need your github name :)
yoleaux jnthn: I'll pass your message to lue.
06:51 denis_boyun joined 06:53 araujo joined, araujo left, araujo joined 06:54 kurahaupo_ left 06:56 kurahaupo joined
dalek p/unified-build: 250283c | moritz++ | / (3 files):
[build] various MoarVM fixes
06:56
p/unified-build: a6a11fc | moritz++ | tools/build/gen-moar-runner.pl:
[moar] runner is now nqp-m
06:58
jnthn moritz: Do you get a (delegating) ./nqp at all under the latest work? 06:59
07:01 FROGGS joined
moritz jnthn: no 07:02
jnthn: and I'd like to avoid doing that 07:03
jnthn hm
moritz (unless there's a very good use case of which I'm not yet aware)
but rakudo (on a branch) builds on top of the nqps from unified-build 07:04
dalek kudo/unified-build: 499325e | moritz++ | / (5 files):
start to fold ConfigureJVM.pl into Configure.pl
07:05
moritz (at least before this patch; now rakudo-jvm is a bit broken, will fix soon)
lizmat good *, #perl6! 07:09
lizmat tries to catch up on 3+ days of backlog
arnsholt moritz: Symlinking nqp to nqp-$foo won't work? 07:10
moritz arnsholt: it might 07:11
arnsholt: but once you start to actually it for anything serious, you still have to know for which backend it was compiled 07:12
*actually using
that's why I won't bother, unless somebody has a good use case
07:13 preflex left 07:15 preflex joined, ChanServ sets mode: +v preflex, dmol joined 07:16 hypolin left
diakopter right, same for any compiler that doesn't support cross compilation.. you hafta know which architecture it's built to target 07:18
07:19 dansamo joined
arnsholt moritz: Yeah. I'm all for the new layout for my workflow =) 07:21
07:22 kurahaupo left 07:34 kurahaupo joined 07:38 fhelmberger joined
masak morning, #perl6 07:38
diakopter ayoy
masak agog 07:39
dalek kudo/unified-build: 74481bb | moritz++ | tools/lib/NQP/Configure.pm:
fix parsing of nqp-j config
07:40
moritz azoz
07:42 kurahaupo left
FROGGS morning 07:44
masak moarning
07:49 kurahaupo joined 07:52 denis_boyun left 07:53 kurahaupo left 07:54 kurahaupo joined 07:55 benabik left 07:56 integral joined
FROGGS diakopter++ BenGoldberg++ Mouq++ 07:56
nqp: say(nqp::null_s()) 07:57
camelia nqp-jvm: OUTPUT«null␤»
..nqp-moarvm: OUTPUT«(signal SEGV)»
..nqp-parrot: OUTPUT«␤»
FROGGS \o/
masak wow, it's so wonderful to see all three of them. 08:01
though I must say I prefer nqp-jvm's stance in the above dialogue. 08:02
moritz wonders why nqp-parrot doesn't NPMCA
wait, what's null_s ? 08:03
null string?
masak huh. good_q. 08:04
08:06 kurahaupo left
moritz in perl 5 lingo, "null string" just means an empty string 08:07
if that's what's going on, I agree with parrot
arnsholt Probably a Parrot-ism
IIRC Parrot distinguishes between NULLPMC and NULLSTRING 08:08
moritz or is it a NULL pointer in a string register?
08:19 yoleaux left, donaldh left
dalek kudo/nom: b0c90ed | (Elizabeth Mattijsen)++ | src/core/Parcel.pm:
Implement Parcel.rotate

One wonders whether the internal logic would warrant an nqp::rotate op, which could then be shared with List.rotate
08:19
moritz lizmat: one wonders if such methods (that go into both List and Parcel) actually belong into a common role 08:20
jnthn moritz: Main use case is being able to write just "nqp" when I want to run code to demonstrate stuff. :)
moritz jnthn: for that I recommand a shell alias :-)
lizmat moritz: big difference is that a Parcel has fixed length, no ? 08:21
moritz lizmat: yes, but that doesn't preclude common operations
jnthn r: my @a = 1,2,3; say @a.rotate(2) 08:22
camelia rakudo e9830d: OUTPUT«3 1 2␤»
jnthn r: my @a = 1,2,3; @a.rotate(2); say @a;
camelia rakudo e9830d: OUTPUT«1 2 3␤»
jnthn ok, good, it's immutable.
JimmyZ how do you do shell alias on cmd
jnthn moritz: It just feels a little unfortunate that anybody building an NQP (and most people will only care for one backend) will not just be able to run it as "nqp" 08:23
08:23 kurahaupo joined, donaldh joined
jnthn moritz: I'm not suggesting we use that in the Rakudo build. 08:23
moritz jnthn: hm. Maybe I can come up with something clever 08:24
08:26 sqirrel joined
jnthn moritz: Mostly I'm just making a convenience argument :) 08:27
moritz: What do we do in Rakudo? Do you get a ./perl6 ?
arnsholt I dunno about Moar, but at least NQP/JVM's ./nqp is pretty useless at any rate 08:28
moritz jnthn: not yet (rakudo doesn't yet support building multiple backends in one place)
lizmat is there a reason why there is nothing in S32/Containers about Parcel ?
as a class, I mean?
moritz lizmat: hysterical raisins 08:29
lizmat does it live somewhere else then?
or was it simply omitted ?
moritz scattered through S02 iirc
or not documented at all
lizmat ack
afk for a few hours&
jnthn arnsholt: Useless in what sense?
arnsholt: I use it plenty.
arnsholt At least on my machine it's only useful as long as you're inside the NQP directory 08:30
Since the classpaths are relative, it borks if you call it from a different directory
jnthn You generally have to be in the same directory as soemthing to write ./something :P 08:31
arnsholt If you want that you have to use ./nqp/install/foo
jnthn Well sure, you use the installed one then.
arnsholt Sure, sure
08:32 kurahaupo left
jnthn moritz: Oh, do you *install* a nqp that delegaets? 08:33
moritz jnthn: no
jnthn Ah, OK
08:34 kurahaupo joined 08:38 iSlug joined 08:45 kurahaupo_ joined 08:46 kurahaupo left 08:47 kurahaupo_ is now known as kurahaupo
arnsholt rj: class Foo { has str $!str is box_target; method foo() { say "`$!str'" }; }; my Foo $x := nqp::box_s(nqp::null_s(), Foo); $x.foo 08:49
camelia rakudo-jvm b0c90e: OUTPUT«`null'␤»
arnsholt jnthn: Golfed test case for the null string bug NativeCall uncovered
jnthn Hmm 08:50
arnsholt Can probably do the same thing using NQP, but I don't think NQP exposes box_targets directly in the syntax 08:51
08:52 daxim joined 08:56 Sarath joined 08:59 kurahaupo left, kurahaupo joined
moritz you'd have to create an NQPAttribute manually 09:00
09:04 kurahaupo left 09:09 kurahaupo joined 09:13 kurahaupo left 09:25 kurahaupo joined 09:29 xinming left 09:32 kurahaupo left, kurahaupo joined 09:33 xinming joined 09:34 dansamo left 09:36 dansamo joined 09:54 dmol left
dalek kudo/unified-build: bbb9262 | moritz++ | / (4 files):
more Makefile fiddling
10:01
kudo/unified-build: 65dec35 | moritz++ | / (3 files):
unconfuse perl6-j runner
kudo/unified-build: a7d6e69 | moritz++ | ConfigureJVM.pl:
toss ConfigureJVM.pl
10:05 kaleem left
moritz the unified-build branch in rakudo is now at the point where you can compile the setting with both parrot and JVM in the same build dir 10:11
FROGGS cool!
moritz++
moritz: now you just have to make it compiling on moar :P
10:12 kurahaupo_ joined, kurahaupo left
moritz oh noez, rakudo's setting compilation failed in a quite late stage :( 10:12
10:13 iSlug left
FROGGS :( 10:14
dalek kudo/unified-build: b9d2244 | moritz++ | tools/build/Makefile- (2 files):
avoid collision in src/gen/main.nqp
10:15
10:18 denisboyun joined 10:25 kurahaupo_ left 10:28 kurahaupo joined 10:29 kurahaupo left, kurahaupo joined
lizmat is back 10:31
r: say (1,2,3).List # shouldn't this just work, because List is a type ?
camelia rakudo b0c90e: OUTPUT«No such method 'List' for invocant of type 'Parcel'␤ in block at /tmp/rUcvHwjlD9:1␤␤»
lizmat n: say (1,2,3).List
camelia niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Unable to resolve method List in type Parcel␤ at /tmp/yCPNW8SzIk line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE @ 576) …»
lizmat std: say (1,2,3).List 10:32
camelia std 082981d: OUTPUT«ok 00:01 126m␤»
10:33 xinming left
diakopter lizmat: it's my recollection that the general method form of coercion isn't yet implemented 10:34
lizmat isn't that really LHF ? 10:35
10:35 xinming joined
diakopter seems to me it would have to be a compiler/macro-y thing if you didn't want to have to go recomposing all other types when a new type is declared... so, yes, probably :) 10:36
on the other hand, maybe rakudo's dispatcher has a universal built-in fallback thing to lookup in a hash of type names on method missing. 10:38
(with the usual optimizations to avoid the hash lookup) 10:40
lizmat well, I hope TimToady can shine a light 10:41
dalek kudo/unified-build: f882d65 | moritz++ | tools/build/Makefile- (2 files):
unentangle CORE_SOURCES
10:43
ast: 0d307b0 | (Elizabeth Mattijsen)++ | S (2 files):
Added/Moved Parcel.rotate tests
10:44
10:45 iSlug joined
lizmat this actually removes one skip from the spectest 10:47
10:49 dmol joined
dalek kudo/unified-build: b654966 | moritz++ | t (2 files):
[build] more fiddling

now "make j-test p-test" builds rakudo-j and rakudo-p and runs their tests successfully, without any interferences.
10:51
lizmat moritz++ 10:52
moritz and p-spectest and j-spectest also seem to work 10:54
jnthn lizmat++ 10:59
moritz++
it's nice to look here while I do teaching stuff and see stuff happening :)
dalek kudo/nom: 09336e3 | (Elizabeth Mattijsen)++ | src/Perl6/Optimizer.nqp:
Turn "with no arguments" to "without arguments"
11:01
lizmat it's only textual, but that message was bothering me for some time now ;-) 11:02
dalek kudo/unified-build: d251dd4 | moritz++ | Configure.pl:
[build] generate some catch-all targets
jnthn lizmat: hm, why? :)
lizmat: But the wording change is fine by me :)
moritz lizmat++ # fixing small things
lizmat r: sub a ($x) {}; a() # will become "without"
camelia rakudo b0c90e: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'a' will never work with no arguments (lines 1, 1)␤ Expected: :($x)␤»
moritz "with no arguments" sounds a bit clumsy to me 11:03
lizmat indeed, that's the word :-)
moritz "will never with" ... wait, not with, how shall we finish that sentence...
jnthn Well, if you want to really awesome it, "Calling 'a' requires arguments" :)
moritz things to do in the unified-build branches: 11:05
1) set up default launcher (./nqp and ./perl6)
2) use those for the */*/*.t targets, avoid duplication
3) test and fix on non-linux platforms
4) ???
5) profit!
jnthn moritz: Will we have a make test-j, etc? 11:06
11:06 kurahaupo_ joined, kurahaupo left
moritz jnthn: 'make j-test' and 'make j-spectest' already work in those branches 11:08
and 'j-all' for building, 'j-install' etc.
and simply 'make test' run all the {j,p,m}-test targets that were written at Configure time 11:11
*runs
dalek kudo/nom: b3ea82b | (Elizabeth Mattijsen)++ | src/Perl6/Optimizer.nqp:
Further awesomize CHECK error message, jnthn++ for suggesting
11:12
lizmat jnthn: your wish is my command :-)
r: (1,2,3).reverse.WHAT.say # hmmm…. shouldn't that be a Parcel also ? 11:15
camelia rakudo b0c90e: OUTPUT«(List)␤»
lizmat n: (1,2,3).reverse.WHAT.say
camelia niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Unable to resolve method reverse in type Parcel␤ at /tmp/IqoRTEmd5f line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE @ 57…»
lizmat I guess Niecza misses a 'method reverse () { self.list.reverse }' in Any 11:16
jnthn lizmat: I wish Rakudo has like 10 times faster :D 11:17
*was
lizmat ponders getting heavier iron for jnthn 11:19
jnthn :P
lizmat although I think you already have the fastest iron in a notebook form factor, right ?
r: (1,2,3).reverse.push(4,5).say # hehe 11:20
camelia rakudo 09336e: OUTPUT«3 2 1 4 5␤»
moritz lizmat: no, get him a slower notebook, to make create additional incentive to speed up rakudo :-) 11:21
jnthn lizmat: Yeah, it's an i7 in the notebook. And a quad-core i7 at home. 11:23
16 GB RAM in both.
SSD :)
moritz holy shit :-)
jnthn I can "make test" in NQP on MoarVM in 8s on my machine at home, with -j6
uh 11:24
that's assuming it's already built :)
Wonder how quick I can do it once we make MoarVM actually fast... :)
11:25 iSlug left
lizmat
.oO( we'll just add moar tests )
11:25
moritz 7s? :-)
jnthn I think the next big win will probably come from writing the type specializer... :) 11:27
11:27 kurahaupo_ left, kurahaupo joined 11:28 kurahaupo_ joined, kurahaupo left 11:30 Sarath left, kurahaupo_ left 11:31 kurahaupo joined 11:32 denisboyun left 11:37 kurahaupo left
FROGGS moritz: why j-test and not test-j ooc? 11:38
lizmat tab completion ?
jnthn FROGGS: Prevention of excessive lols when we get a tcl backend.
FROGGS I'd think test-j is nicer because you would get auto completion for test-<tab><tab>
jnthn: err, what?
jnthn isn't spelling this one out :) 11:40
FROGGS .oO( in the ... )
I think I didn't get it 11:41
moritz test-tcl 11:43
you have to read it out loud
FROGGS: anyway, no particularly good reason; if you feel like, you can change it to test-j 11:44
11:45 berekuk joined
FROGGS ah!! 11:49
hehe
well, test-t would be fine though :P
lizmat r: (1,2,3).reverse.push(4,5).say # TimToady: should this work? aka, should .reverse on a Parcel return a List ? 11:56
camelia rakudo 09336e: OUTPUT«3 2 1 4 5␤»
lizmat there seems at least one spectest depending on this behaviour
11:57 daxim left, daxim joined
moritz would object 11:58
dalek ast: 17c4e16 | (Elizabeth Mattijsen)++ | integration/99problems-41-to-50.t:
Test the gray(0) case
ast: 51a9828 | (Elizabeth Mattijsen)++ | integration/99problems-41-to-50.t:
Marking failing Parcel.reverse test as todo
kudo/nom: 2684416 | (Elizabeth Mattijsen)++ | src/core/Parcel.pm:
Make Parcel.reverse return a Parcel rather than a List
11:59
lizmat afk for a bit& 12:00
12:08 pernatiy joined, iSlug joined 12:13 dakkar left 12:15 sqirrel left 12:27 LWA joined 12:38 sqirrel joined 12:40 FROGGS left 12:46 zakharyas joined, fhelmberger_ joined 12:49 fhelmberger_ left 12:50 fhelmberger_ joined, fhelmberger left, kurahaupo joined 12:52 ajr joined 12:53 ajr is now known as Guest84149, SmokeMachine left, Guest84149 is now known as ajr_ 13:00 FROGGS joined 13:10 sqirrel left 13:13 iSlug left 13:18 kurahaupo left, kurahaupo joined 13:20 fridim_ joined 13:23 benabik joined, kurahaupo left, kurahaupo joined 13:31 xinming left 13:33 xinming joined 13:37 kurahaupo_ joined, kurahaupo left 13:38 kurahaupo_ left, kurahaupo joined 13:44 iSlug joined
dalek kudo/nom: 1428359 | (Elizabeth Mattijsen)++ | src/core/Parcel.pm:
Remove some obsolete postcircumfix[] code
13:45
13:46 btyler joined 13:54 kaare_ joined, sqirrel joined 13:58 bluescreen10 joined 14:00 fridim_ left 14:01 kurahaupo left, kurahaupo_ joined 14:04 berekuk left, kaleem joined, fhelmberger_ left 14:06 denis_boyun joined 14:07 bluescreen10 left 14:08 FROGGS left 14:09 berekuk joined 14:10 denis_boyun__ joined 14:12 denis_boyun left 14:14 FROGGS joined, kurahaupo_ left, kurahaupo joined 14:15 denis_boyun__ left, denis_boyun joined 14:16 kurahaupo_ joined, kurahaupo left
dalek kudo/nom: 0224123 | (Elizabeth Mattijsen)++ | src/core/Failure.pm:
Some more obsolete method postcircumfix {} removal
14:19
14:47 ilogger2 joined, ChanServ sets mode: +v ilogger2
japhb__ Pretty please add benchmarks to perl6-bench. I know I've not spent enough time on that recently, but pull requests are quick and easy. :-) 14:48
14:49 kurahaupo joined 14:53 ajr joined 14:54 ajr is now known as Guest68570, Guest68570 is now known as ajr_ 14:55 kurahaupo left, kurahaupo joined 15:03 benabik joined 15:06 kurahaupo left, kurahaupo joined 15:09 kurahaupo_ joined, kurahaupo left 15:12 kurahaupo_ left, kurahaupo joined 15:13 sqirrel joined 15:18 kurahaupo_ joined, kurahaupo left 15:23 araujo joined 15:25 daxim_ joined 15:26 amboss joined 15:27 kurahaupo_ left 15:29 kurahaupo joined 15:33 kurahaupo left, kurahaupo joined 15:39 amboss left
dalek ecs: b8106c9 | (Elizabeth Mattijsen)++ | S02-bits.pod:
Add some spec for "is DEPRECATED"
15:40
15:41 kurahaupo left, kurahaupo_ joined
dalek p/unified-build: 0d845f5 | moritz++ | .gitignore:
ignore nqp launchers
15:41
p/unified-build: 4d3d9d8 | moritz++ | / (4 files):
build convenience nqp "executable"

also fix making individual test files, like "make t/nqp/65-how.t"
15:43 kurahaupo_ is now known as kurahaupo 15:46 denis_boyun joined, FROGGS joined
[Coke] moritz: did you answer your question about what null_s is? (catching up) 15:48
(if so, please add it to the docs. ;) 15:49
15:52 FOAD joined
dalek kudo/unified-build: af43dae | moritz++ | / (3 files):
build convenience perl6 "executable"

also enable make $single_test_file
15:56
moritz [Coke]: not really; I have a hypothesis, but no knowledge 15:58
15:58 iSlug joined
lizmat std: "perl6".reverse 15:59
camelia std 082981d: OUTPUT«ok 00:01 121m␤»
jnthn [Coke]: null_s gives a "null string"; a null that can be stored in a native str
lizmat
.oO( shouldn't that warn as a Perl5 ism? )
rn: "perl6".reverse.say
camelia niecza v24-98-g473bd20: OUTPUT«Unhandled exception: Unable to resolve method reverse in type Str␤ at /tmp/zTq1tgSOqL line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE @ 576) …»
..rakudo 022412: OUTPUT«perl6␤»
lizmat rn: "perl6".rotate.say 16:00
camelia rakudo 022412: OUTPUT«No such method 'rotate' for invocant of type 'Str'␤ in block at /tmp/ocRgq3hB5Z:1␤␤»
..niecza v24-98-g473bd20: OUTPUT«perl6␤»
TimToady we can warn if we know they intentionally fed it one value, but not if they said something.reverse and something happened to be a degenerate case of one value 16:01
so really, one could only warn on literals, which is not terribly useful 16:02
dalek kudo/unified-build: d47f860 | moritz++ | tools/build/Makefile- (3 files):
[build] get rid of the last few Makefile rule collisions
16:08
TimToady I suppose one could warn on $x.reverse if $x were declared to contaion something non-Positional such as Str, but Any includes Positionals, as well as Parcels, and singleton scalars that serve as their own parcel when there's only one element in the parcel, so in general we can't know without difficult code analysis whether reverse or flip was intended 16:09
16:09 dmol joined
TimToady a medium-hard heuristic would be to look at all the other uses of $x in the scope and decide whether any of them imply $x is being thought of as positional 16:12
but in the case of .flip, I'd say most of the uses of it are rather toy-like, and likely to be caught early, and unlikely to be mission-critical, so heroic heuristics are probably not warranted 16:15
16:15 skids joined
dalek kudo/unified-build: fe4e1ff | moritz++ | Configure.pl:
unbreak --gen-nqp=$branch
16:17
kudo/unified-build: 274bd5e | moritz++ | Configure.pl:
[Configure] fix help text
16:23 sqirrel left 16:30 FOAD left 16:32 FOAD joined 16:33 iSlug left 16:34 fhelmberger_ joined 16:39 [Sno] joined 16:43 sqirrel joined
masak is the new 'function*' keyword, proposed in ECMAScript.next, the first example of a keyword with both \w and \W characters in a major language? 16:43
16:43 colomon joined
japhb masak: My "no true Scotsman" alarm went off when you ended that with 'in a major language'. ;-) 16:45
masak japhb: ok, feel free to pick a non-major language. :)
16:45 denis_boyun_ joined
masak I don't know of any such keyword anywhere else. 16:45
japhb #t 16:46
(Scheme)
16:46 denis_boyun left
masak hm. :) 16:46
I've always thought of it as a constant, not a keyword.
japhb You say poe-tay-toe ...
masak yeah.
the terms are quite loosely defined in the first place. 16:47
japhb Quite.
geekosaur I'd have said let* from scheme/clisp 16:48
although, any example involving those is kinda iffy on the "keyword" front
16:48 fhelmberger_ left, fhelmberger joined
masak yes, let* is definitely an example of what I mean. 16:50
it's just as definition-y as function*
japhb "special form" 16:51
16:54 ajr_ left
arnsholt Macro-ish =) 16:54
masak well, yeah.
because Lisp is one big macro :)
arnsholt Indeed 16:55
16:55 ajr joined 16:56 ajr is now known as Guest13796
arnsholt One of the last chapters of Practical Common Lisp has a very enlightening discussion of which bits of the language are macros and which are special forms 16:56
16:56 Guest13796 is now known as ajr_
arnsholt Apparently it's kind of like complete sets of operators in logic. Some of them have to be special, but exactly which is a bit arbitrary as many of them can be defined in terms of eachother 16:57
benabik masak: function* keyword? 16:59
masak benabik: coming soon to a JavaScript near you. 17:00
benabik: (to define generators with yield-y semantics. a bit like Perl 6's gather/take) 17:01
benabik masak: Thanks. Trying to search for "new function keyword" doesn't give a lot of useful results. ;-) 17:02
17:03 FOAD left
masak benabik: I was reading var jake = require("jake"); 17:04
jake.task('hello', function(){ print('hello world');
ergh
I was reading oreilly.com/javascript/radarreports...cript.html
which I recommend to anyone with an interest in the evolution of JavaScript.
17:05 FOAD joined
benabik Ah, excellent. It's on the Safari bookshelf. 17:06
I love the ridiculous amounts of things you can get for free by accessing the internet from a university. :-D
TimToady
.oO(Is that why my royalties have been going from Little down to Very Little...)
17:08
masak benabik: fwiw, I got it for free from outside of a university. 17:12
wow, looking at the gray boxes over the years at irclog.perlgeek.de/perl6/ is... interesting.
benabik masak: Hah. I saw "O'Reilly" and automatically headed for the uni's bookshelf page.
TimToady: I doubt university students are the main source of sales for the camel. 17:13
masak 2005/2006 were strong years. then a slump for two years. then 2009..2010 were strong years. then a slump in early 2011. then two more strong years. 17:14
masak uses / and .. inconsistently, apparently
17:14 rindolf joined 17:19 Rotwang joined 17:22 grondilu joined 17:23 ajr_ left
moritz oh man, --gen-nqp for multiple NQPs turns out to be a lot more complicated than doing two calls to gen_nqp in a row 17:23
jnthn Oh?
oh...yeah :)
moritz well, I have to specify which backends to use when I configure NQP
jnthn Yeah :)
Does NQP have an automatic "figure out what you can build" mode? :) 17:24
moritz which means I have to start to actually understand the Configure.pl code instead of just moving blocks of it around :-)
jnthn Aww, understand stuff? Dang!
jnthn is just working out what he wants for dinner :) 17:25
moritz jnthn: no, nqp's configure doesn't autodetect anything
benabik let x :: Number = 37
Javascript is apparently going to merge with SML or Haskell at some point in the future. 17:26
TimToady wonders if this would make it even harder to find people smart enough to produce an insurance market website... 17:28
(that works)
moritz 17:36
jnthn dinner &
Rotwang hi 17:37
moritz hello 17:38
Rotwang could someone explain: image.spreadshirt.com/image-server/...design.png ?
moritz Rotwang: are you aware of the "Second System Syndrome"? 17:39
Rotwang just googled it, thanks [;
moritz one of Perl 6's early mottos is "Second System Syndrome done right" 17:40
Rotwang haha 17:41
17:58 LWA joined
nwc10 via someone on Google+ who got it from Sam Ruby: mathiasbynens.be/notes/javascript-unicode 17:58
daxim_ mauke.hopto.org/interweb/http://98....1/gbu.html slide 8 18:04
18:07 vky joined, vky left 18:12 ajr joined, ajr is now known as Guest52706, Guest52706 is now known as ajr_
timotimo i'm a bit surprised by the use of "polyfill" in javascript contents 18:16
18:16 kurahaupo left
daxim_ stupidest word of the decade 18:18
18:18 spider-mario joined
TimToady
.oO(decade ain't over yet)
18:19
colomon TimToady: Think that given 7 years, you can think of a stupider word? 18:31
18:35 daxim_ left
TimToady there are plenty of stupid words; the real trick is to come up with a stupid meaning 18:35
18:36 iSlug joined 18:37 btyler joined
lizmat TimToady: wrt to .reverse on strings: I was thinking of just letting Str.reverse warn 18:45
even if something degenerates into a one element list, it would still be a list then, so not triggering the warning 18:46
18:46 vky joined
TimToady I'm sayin' that won't work when you've bound something to \name 18:46
18:47 sqirrel left
lizmat I'm not sure I'm following, you mean something like: 18:48
r: sub a (\a) { say a.WHAT }; a("foo") # ?
camelia rakudo 022412: OUTPUT«(Str)␤»
TimToady that, plus note that <foo> is a Str, when <foo bar> is a parcel; there are lots of things that can act as a parcel of one element without being officially wrapped in Parcel 18:50
lizmat r: sub a (\a) { say a.WHAT }; a(<a>); a(<a b>) # gotcha 18:51
camelia rakudo 022412: OUTPUT«(Str)␤(Parcel)␤»
lizmat shelves the idea for (much) later, most likely never :-)
dalek kudo/unified-build: e8a0f9d | moritz++ | / (2 files):
[Configure] more --gen-nqp fixes
18:53
kudo/unified-build: 53dcdc8 | moritz++ | / (2 files):
rework Configure.pl and gen_nqp

turns out that needing to know what NQPs to build in advance means that the structure of the whole configure process needs to tweaked
moritz still seems to build too much stuff :/
18:55 iSlug left
dalek kudo/unified-build: 3c99ca7 | moritz++ | tools/lib/NQP/Configure.pm:
only build the NQPs that we need and that are not yet there
18:55
18:59 awwaiid joined
moritz touching 90 lines of Configure.pl code simply isn't a good idea, however you put it 19:00
pmichaud good afternoon, #perl6 19:02
moritz: ooc, are you working/planning to keep the lib/NQP/Configure.pm changes synchronized between the NQP and Rakudo repos? 19:03
moritz pmichaud: yes 19:09
pmichaud okay, good. 19:10
19:11 awwaiid left
moritz pmichaud: nqp can already be built and tested on all three backends in the same source dir 19:12
jnthn back from dinner :)
moritz (without any interference)
jnthn ooh, a pmichaud \o/
moritz (and in that branch)
19:13 awwaiid joined
dalek kudo/nom: e13fa98 | (Elizabeth Mattijsen)++ | src/core/traits.pm:
Add "is DEPRECATED" as an Attribute trait (for now, so I can make todo tests)
19:15
jnthn On stupidest word, I'd like to nominate "phablet", a word whose existence I sadly discoverd this week.
Util #ps in 15m 19:16
TimToady yes, they should've been called tablones instead :)
jnthn Tomorrow is the last day of teaching for a bit. So I may actually have decent Perl 6 time again. :) 19:19
moritz \o/
tadzik jnthn: they should've just stop pretending and call it "faplet" right away :P 19:24
TimToady or "phobelet", a small phobia 19:25
jnthn tadzik: argh! :P 19:26
A phoblet sounds like something I should be scared to drink out of... 19:27
tadzik Harry Potter and the phoblet of phire
FROGGS hehe
19:27 Rotwang left
FROGGS it would be allright if the beer in it multiplies though 19:28
19:28 lue joined
lue Hello world! o/ 19:28
lizmat lue!
TimToady not if it's phobear
er, *phobeer 19:29
FROGGS hmmmm, I'd say the germans have some sort of phobeeria
foreign thin tasteless beer *shudder*
TimToady no, you're think of french fauxbeer
FROGGS *g* 19:30
TimToady *thinking
Util #ps time
lizmat
.oO( bibblet, as it is too small for the napkin )
19:31
timotimo "for...of", i'm not sure if any other language has a spelling like that 19:33
dalek kudo/nom: fd3e683 | (Elizabeth Mattijsen)++ | src/core/traits.pm:
Add "is DEPRECATED" trait to class/etc. (to be able to add todo tests)
lue .ping 19:35
yoleaux's missing! No wonder I didn't get that message in the backlog.
dalek kudo/unified-build: 3c7f661 | moritz++ | tools/lib/NQP/Configure.pm:
[Configure] read_config clobbers $_

who would have thought?
19:36 lizmat joined
jnthn lue: Well, it only lived once, and now it's gone... :) 19:36
lue :)
jnthn: the username is 'lue', unless I used some sort of name-as-it-appears changer feature I'm unaware of. 19:37
19:38 stevan_ joined 19:39 vky left
moritz lue: then you now have an NQP commit bit 19:40
19:40 stevan_ left
lue \o/ 19:40
19:42 Rotwang joined
jnthn moritz: Beat me to it! :) 19:43
lue is testing his commit-to-be one last time for sureness' sake. 19:48
19:48 stevan_ joined
colomon lue++ 19:50
19:51 denis_boyun_ left
arnsholt lue: You talked about triggering segfaults yesterday. Do you have a small-ish test case that reproduces it? 19:52
lue arnsholt: I get the sad suspicion it involves actions and grammar, so I don't have a test case prepared :( . (I tried really-small uses of existspos in here earlier, and I only got a SEGV from MVM once.) 19:53
xalbo The recent commit about "is DEPRECATED" got me wondering, again, whether there shouldn't be a "use Debug;" or the like. That is, something that tells causes the program to be run in a mode that's as picky as possible. Deprecation warnings are really only useful for the developer. 19:54
lue arnsholt: the bug is not with existspos, but with me not getting an ar— *sigh* well of course that wasn't going to get me an arrayed EXPR *facepalm*
19:55 stevan_ left
lue [ and there really is no way to force an arrayed <EXPR> either in the cases of 1 if or if + else. So it wasn't that **0..1 was broken; it was my brain :) ] 19:55
lizmat xalbo: please note that "is DEPRECATED" warnings will only be shown after exiting the program, *not* during execution of the program 19:57
19:58 Mouq joined
lizmat r: sub a is DEPRECATED { say "foo" }; a(); say "bar" # note the report *after* "bar" 19:58
camelia rakudo 022412: OUTPUT«foo␤bar␤Saw 1 call to deprecated code during execution.␤================================================================================␤Sub a (from GLOBAL) called at:␤ /tmp/0arBUJa7cz, line 1␤Please use something else instead.␤------------------…»
moritz xalbo: experience with perl 5 development has shown that if deprecation warnings aren't shown *BY DEFAULT*, nearly nobody ever reads them 19:59
arnsholt lue: Oh, so you were passing something not a list to existspos?
xalbo I did note that. But I imagine upgrading Perl and suddenly getting warnings (on stderr) from things you didn't write, and previously had no reason to care whether they were in perl or not.
moritz better that you get those warnings, open a bug report, and get a fix, and all the while have a working program
lue arnsholt: yeah, the problem I suppose is the SEGFAULT instead of an error message. (I fixed this eventually by forcing the non-list to be a list when necessary, btw.) 20:00
moritz than nobody noticing, and the next upgrade breaking your program completely
lue arnsholt: on nqp-p naturally.
arnsholt lue: Yeah, the segfault still shouldn't happen
lizmat r: sub a is DEPRECATED { say "foo" }; a(); say "bar"; %DEPRECATIONS=() # suppress DEPRECATED report
camelia rakudo 022412: OUTPUT«foo␤bar␤»
jnthn Oh no, nqp-p out loud is "en queue pee pee"
lizmat r: say "hello" 20:01
camelia rakudo 022412: OUTPUT«hello␤»
lizmat r: sub a is DEPRECATED { say "foo" }; a(); say "bar"; %DEPRECATIONS=() # suppress DEPRECATED report
arnsholt lue: It normally doesn't segfault though. If you figure out what triggered it, could you open an NQP issue?
jnthn puts that on "things not to say in talks" list :)
camelia rakudo 022412: OUTPUT«foo␤bar␤»
jnthn lue: The MoarVM segfault is worth filing too, unless it's the typical NULL one we know about. :)
arnsholt It could in theory be a Parrot bug, but probably not I think
lue arnsholt: working on a golf right now :) 20:02
lizmat not sure how we want to define syntactic sugar for surpressing DEPRECATED warnings
lue jnthn: I'll have to look in the camelia chatlogs a bit later for that one.
jnthn lue: OK, thanks :)
arnsholt Cheers!
moritz nqp-m: say(nqp::null_s()) 20:03
camelia nqp-moarvm: OUTPUT«(signal SEGV)»
jnthn moritz: Right, that's the known one :)
arnsholt nqp: say(nqp::null_s())
jnthn I thought I heard an existspos mention though...
camelia nqp-jvm: OUTPUT«null␤»
..nqp-moarvm: OUTPUT«(signal SEGV)» 20:04
..nqp-parrot: OUTPUT«␤»
lue nqp: grammar G { regex TOP { <foo>+ }; regex foo { foo } }; class G::A { method TOP($/) { if nqp::existspos($<foo>, 2) { say("YAY") } } }; G.parse("foofoo", :actions(G::A));
camelia ( no output )
lue nqp: grammar G { regex TOP { <foo>+ }; regex foo { foo } }; class G::A { method TOP($/) { if nqp::existspos($<foo>, 1) { say("YAY") } } }; G.parse("foofoo", :actions(G::A));
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«YAY␤»
lue nqp: grammar G { regex TOP { <foo>+ }; regex foo { foo } }; class G::A { method TOP($/) { if nqp::existspos($<foo>, 1) { say("YAY") } } }; G.parse("foo", :actions(G::A));
camelia ( no output )
arnsholt Oh, that's probably the simplest manifestation of the stringification problem, completely free of box_targets
arnsholt opens issue
lue Hm. Now I'm really confused as to how I got a segfault :( 20:05
TimToady r: package NotMain { sub a is DEPRECATED { say "foo" }; a(); say "bar"; } 20:06
camelia rakudo 022412: OUTPUT«foo␤bar␤Saw 1 call to deprecated code during execution.␤================================================================================␤Sub a (from NotMain) called at:␤ /tmp/1p50DTZJYH, line 1␤Please use something else instead.␤-----------------…»
TimToady rj: package NotMain { sub a is DEPRECATED { say "foo" }; a(); say "bar"; }
camelia rakudo-jvm e13fa9: OUTPUT«Cannot look up attributes in a type object␤ in sub infix:<<> at src/gen/CORE.setting:4089␤ in sub postcircumfix:<[ ]> at src/gen/CORE.setting:2264␤ in sub DEPRECATED at src/gen/CORE.setting:16639␤ in block at src/gen/CORE.setting:121␤ in blo…» 20:07
arnsholt lue: Yeah, that happens occasionally =/ 20:08
lizmat TimToady: that is probably because of difference in Backtrace implementation between parakudo and jakudo 20:09
20:09 logie joined
lizmat possibly because Exceptions are handled differently 20:10
jnthn Still sounds kinda odd...
TimToady was really just wondering what scope %DEPRECATIONS lives in
dalek kudo/unified-build: e7ffc63 | moritz++ | tools/lib/NQP/Configure.pm:
[Configure] need to aggregate config values from both parrot and nqp
20:11
lizmat every time you call something that is deprecated, it creates a Backtrace, and then starts looking back for where it was called from
jnthn suspects that's kinda costly ;)
lizmat I guess it doesn't handle false negatives in the search
TimToady seems like %*DEPRECATIONS would be cheaper
lizmat jnthn: you said I shouldn't optimize is DEPRECATED :-) 20:12
diakopter moritz+=lots
dalek p/ext: 2c393d3 | dwarring++ | examples/rubyish/ (6 files):
added bitwise ops, fixed precedence, etc
nqp/ext: b8a7bbb | moritz++ | src/vm/parrot/QAST/Compiler.nqp:
nqp/ext: [regex] avoid an unnecessary comparison
jnthn lizmat: Yes, but I didn't say to pessimize it :D
moritz rj: sub a is DEPRECATED { say "foo" }; a(); say "bar"
camelia rakudo-jvm e13fa9: OUTPUT«Cannot look up attributes in a type object␤ in sub infix:<<> at src/gen/CORE.setting:4089␤ in sub postcircumfix:<[ ]> at src/gen/CORE.setting:2264␤ in sub DEPRECATED at src/gen/CORE.setting:16639␤ in block at src/gen/CORE.setting:121␤␤»
jnthn lizmat: Anyway, if it becoems an issue we can come up with something :)
Mouq moritz++ # I don't think I've ++'d you much for the unified-build work
lizmat well, I'm open to suggestions on finding out where the code is being called from
20:12 dalek joined, ChanServ sets mode: +v dalek
moritz ok, unified-build is now open for public testing 20:12
lue arnsholt: at the moment I think it might have to do with HLL's EXPR specifically, though I don't know for sure. 20:13
jnthn lizmat: Well, we could avoid making the entire bt and perhaps nqp::callercode() it or so..but anyway, let's not worry about it fo rnow. I like the improved reporting ;)
moritz (note that you need both the rakudo and nqp branch to work together)
TimToady if only the application cares at exit time, then only the application should set up a %*DEPRECATIONS, and that's the one everyone will see
dalek p: 7384f3e | lue++ | src/NQP/Grammar.nqp:
[NQP::Grammar] Remove redundant regex line

Since rule unv contains \h+ as a possible alternative, <.unv>? in the second (and surviving) line of ENDSTMT is sometimes [\h+]?, which is functionally equivalent to \h*.
The first (and now removed) line of ENDSTMT was essentially line 2 with
  <.unv>? replaced by \h*. As stated <.unv>? already covers what \h* does,
so line 1 was removed. No regressions or speed drops result from the removal of this line.
moritz and you'll likely want to test stuff like perl Configure.pl --backends=parrot,jvm --gen-nqp or so
TimToady or poke it into GLOBAL
20:14 jnap joined
lizmat I'm not sure how to actually handle the scoping here yet 20:16
r: sub a is DEPRECATED { say "foo" }; a(); say "bar"; Deprecations.report.say; say "baz"
camelia rakudo fd3e68: OUTPUT«===SORRY!=== Error while compiling /tmp/fC7zqit9WX␤Undeclared name:␤ Deprecations used at line 1. Did you mean 'Deprecation'?␤␤»
jnthn moritz: I can maybe give it a workout on the train tomorrow. that'll pass the journey :)
lizmat r: sub a is DEPRECATED { say "foo" }; a(); say "bar"; Deprecation.report.say; say "baz" 20:17
camelia rakudo fd3e68: OUTPUT«foo␤bar␤Saw 1 call to deprecated code during execution.␤================================================================================␤Sub a (from GLOBAL) called at:␤ /tmp/gZsBUsgX7K, line 1␤Please use something else instead.␤------------------…»
jnthn (Yes, I have power there. :))
lizmat r: sub a is DEPRECATED { say "foo" }; a(); say "bar"; Deprecation.report; say "baz"
camelia rakudo fd3e68: OUTPUT«foo␤bar␤baz␤»
lizmat I just realized I already have something of an API for disregarding deprecation messages, or show them during runtime 20:18
moritz jnthn: will probably needs lots of small fixes with $(BAT) and $(EXE) postfixes 20:22
windows-- # double reboot after upgrades
jnthn moritz: OK :) 20:23
moritz: I'll see what I can do
20:26 Rotwang left
arnsholt & # Zzzzz 20:30
lizmat gnight arnsholt!
jnthn o/ arnsholt 20:31
diakopter moritz: you got Windows 8.1? :D
moritz diakopter: I have no idea. I simply installed the ~84 "important updates" that the windows updater suggest a few days ago 20:32
then booted into linux again
and tonight I booted into windows, and immediately regretted it
it took some time, did another reboot, and now suggested that I install another 8 updates 20:33
"No, thanks"
diakopter ah yes. open the "Store" in the windows 8 view, and it might prompt you for win 8.1
moritz just wants to test if stuff compiles under windows. That's all.
lue
.oO(Get fresh air. Break Windows.)
20:34
diakopter
.oO( complete the loop; defenestrate Windows. )
benabik This is why my Windows runs in a VM 90% of the time. 20:35
jnthn I love how the Wikipedia article features sections on "Notable defenestrations in history" and "Self-defenestration" :D 20:37
lizmat going down for Mavericks upgrade 20:50
wish me luch :-)
luck rather :-)
20:50 lizmat left
lue good /lʌx/ lizmat o/ :) 20:51
20:52 spider-mario left
lue
.oO("there are other wonderful irregularities to be had in the elseif and else forms too, involving colons and who knows what." that can't be so bad... *looks up PHP conditionals* ...why)
20:53
jnthn lue: hahaha :) 20:54
lue why { do these things } because($PHP); 20:55
It's safe to say I will not be touching the colon forms, and I feel a smidge too lazy to bother with the brace-less stuff either. :) 20:56
jnthn I'm curious where on earth they were taken from 20:57
I had no idea PHP let you write it that way until I wsa carefully reading the docs while setting the PHPish exercise :) 20:58
lue 0..* Things Wrong with PHP: 1) $$variable 2) end_if 3) ... [to be continued]
20:59 fhelmberger left
benabik ... end_if? 20:59
lue benabik: endif actually. www.php.net/manual/en/control-struc...elseif.php and www.php.net/manual/en/control-struc...syntax.php 21:00
jnthn I would not be surprised :P
geekosaur "let's pretend we're algol" (except algol was way saner...)
benabik WTF is that 21:01
lue I really should read the PHP docs sometime; whenever I hear about PHP's features it seems like the docs'd be a hilarious read.
benabik: *obviously*, TIMTOWTDI taken to 11 :D
benabik Oh dear. That actually vaguely makes sense with the <?php> forms 21:02
21:02 stevan_ joined
lue jnthn: I think once I get through the rest of Ex. 6 and Day 2, I feel like maybe tackling slangs as a starter contribution :P (so I could do things like that why{}because block I showed earlier in Perl 6) 21:03
jnthn lue: Cool. I think FROGGS++ has also been pondering slangs and wrote up some bits of them 21:05
FROGGS I want to provide a pattern that just works as a module, yes 21:06
21:06 benabik left
lue jnthn: because just about every module idea for Perl 6 I have involves slangs, and it's kinda silly I still can't do "foo" ~~ ☃foo☄ or why { say "hi" } because(True); :) 21:07
jnthn lue: I fear your future module collection :D
lue will try to find/look at what FROGGS has done sometime.
FROGGS lue: I'll ping you when there is progress :o) 21:08
lue (there's also the snarky error message module, but that requires changes to the spec and/or implementation of supercede/augment)
lue &
dalek p/config: 9a1455c | (Tobias Leich)++ | src/vm/moar/ (2 files):
wire up and use nqp::backendconfig

This is just lacking a fresh stage0 to work.
21:12
Mouq rn: say("_ a " ~~ / a? /) 21:20
camelia rakudo fd3e68, niecza v24-98-g473bd20: OUTPUT«「」␤␤»
Mouq This a WAT for me
21:20 ssutch joined
Mouq rn: say("_ a " ~~ / . . a? /) # Thankfully 21:20
camelia rakudo fd3e68, niecza v24-98-g473bd20: OUTPUT«「_ a」␤␤»
jnthn Mouq: It matches at index 0 :) 21:21
It only goes scanning if it fails to match 21:22
Mouq rn: say "_ a " ~~ / <?after .> a / 21:23
camelia niecza v24-98-g473bd20: OUTPUT«===SORRY!===␤␤Unsuppored elements in after list at /tmp/jeUJbpEguV line 1:␤------> say "_ a " ~~ / <?after .⏏> a /␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting l…»
..rakudo fd3e68: OUTPUT«「a」␤␤»
Mouq rn: say "_ a " ~~ / <?after .> a? / #oop
camelia niecza v24-98-g473bd20: OUTPUT«===SORRY!===␤␤Unsuppored elements in after list at /tmp/Mbx5IPIfeI line 1:␤------> say "_ a " ~~ / <?after .⏏> a? / #oop␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.set…»
..rakudo fd3e68: OUTPUT«「」␤␤»
21:23 vky joined
Mouq p5eval: "_ a " =~ /a?/ 21:24
p5eval Mouq: 1
Mouq p5eval: "_ a " =~ /(a?)/; $1
p5eval Mouq: No output
Mouq Okay. I'm not sure why I'd expect it to mean anything other than "match nothing or something" 21:26
21:37 FROGGS left 21:38 aindilis joined 21:39 ajr_ left 21:43 ajr joined, ajr is now known as Guest4548 21:44 Guest4548 is now known as ajr_ 21:46 colomon left, lizmat joined
lizmat
.oO( seems Mavericks works )
21:47
21:48 colomon joined
tadzik first thing that Maverick brings to my mind is an Ubuntu release, the second is what Counter-Strike uses instead of Colt since 1.6 :) 21:48
21:50 skids left
lizmat Mavericks is OS X 10.9 21:53
fwiw, it feels a *bit* faster
$ make install 21:54
Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
:-(
jnthn fail 21:55
geekosaur sadly typical 21:56
lizmat hmmm... seems I need to run "sudo make" just once to agree with the EULA 21:58
after that, it's back to normal
ok, doing several GB on updates of Aperture/Keynote/iMovie/iPhoto still... 21:59
I'll let it run its course while slep&
so gnight, #perl6!
lue good ♞ lizmat o/ 22:00
geekosaur yes, you only need to accept the license once per code upgrade
*xcode
lue rn: say "_ a" ~~ / a? /;
camelia rakudo fd3e68, niecza v24-98-g473bd20: OUTPUT«「」␤␤»
lue I would expect that ? to be greedy, and to not need to be from the start unless I use ^/^^ 22:01
timotimo early match trumps longer match, no?
jnthn aye 22:03
'night o/
Mouq \o night lizmat, jnthn 22:04
colomon o/ 22:05
Mouq rn: say "_ a " ~~ / a || ''/
camelia rakudo fd3e68, niecza v24-98-g473bd20: OUTPUT«「」␤␤»
Mouq rn: say "_ a " ~~ / a | ''/
camelia rakudo fd3e68, niecza v24-98-g473bd20: OUTPUT«「」␤␤»
Mouq Or wait, just lizmat? 22:07
Mouq needs to go to bed himself, so the ambiguity is somewhat self-resolving 22:09
22:09 stevan_ left
Mouq cya #perl6 22:09
22:10 grondilu left 22:15 Mouq left 22:16 FROGGS joined
diakopter upgrades to Mavericks and Win 8.1 at the same time .. on the same computer... 22:17
geekosaur you like having everything explode at the same time? 22:20
22:21 FROGGS left
diakopter :) 22:21
lue diakopter: I would recommend you also go do a major and potentially breaking upgrade to a linux system, but I can't think of one :P 22:24
22:25 LWA left 22:27 go|dfish joined 22:30 ssutch left 22:33 ssutch joined 22:37 PZt joined
Tene lue: any no-longer-maintained release of a distro 22:38
[Coke] wakes up. 22:47
22:54 benabik joined 22:55 btyler left
lue
.oO(PHPish: it's funnier how while loops took no time at all, after my annoyances with if statments.)
23:00
s/ier/y/
dalek p: fc3b77f | coke++ | docs/ops.markdown:
Document backend specific behavior of null_s

Resolves issue #142
23:04
23:04 FROGGS joined 23:09 benabik left 23:13 FROGGS left
japhb__ .tell lizmat just got this deprecation error: "Method gimme (from List) called at: lib/Panda/App.pm, line 54 Please use 'tc' instead." Wat? 23:23
D'oh! No yoleaux
23:29 vky left
timotimo haha, wat :) 23:32
probably has something to do with "hidden_from_backtrace"? 23:33
23:40 telex joined 23:41 retupmoca joined 23:45 FROGGS joined 23:55 FROGGS left