»ö« 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 moritz on 3 May 2013.
00:18 census left 00:19 raiph joined 00:26 saxx11 left, tgt left 00:47 rking1 left 00:59 ifim` joined 01:00 ifim left 01:10 shinobicl__ joined
timotimo huh. deep-cloning a list of lists must be easier than my @output-lines = map { [map *.clone, @$_].item }, @board-tmpl; 01:25
but i made a solution for the galton board 01:30
galton box*
animated even :)
colomon has cloning every been properly specified? 01:36
sorear pretty sure at one point >>.[0] would deep clone :) 01:37
colomon :)
01:56 FROGGS_ joined 02:00 FROGGS left
timotimo why would i end up with a copy after >>.[0]? >>.[0] doesn't seem nodal to me. 02:13
i'd say >>.[] would perhaps deepclone. perhaps! 02:19
02:19 cognominal left 02:20 cognominal joined, ccc joined
sorear timotimo: "at one point" as in before nodality was introduced 02:24
if you have a list of numbers, try >>+>> 0
etc
hyper operators have the behavior of cloning as deeply as they need to to implement the operaitohn 02:25
timotimo ah, ok 02:26
hm. it's a list of lists of strings. i wouldn't be able to ~>> it, right? 02:27
that would just stringify the inner lists, no?
02:27 ifim`` joined
sorear try it and see 02:29
02:29 ifim` left
timotimo yaaaay error:imcc:Sub 'cuid_3_1368930565.5141' not found 02:29
r: constant $foo = BEGIN { 1 + 2 + 3 + 4 + 5 }; 02:33
camelia rakudo 9c5650: ( no output )
timotimo r: constant @foo = BEGIN { 1, 2, 3, 4, 5 };
camelia rakudo 9c5650: ( no output )
timotimo i wonder what exactly caused that error.
TimToady has been putting far too much work into rosettacode.org/wiki/Names_to_numbers#Perl_6 02:38
02:40 Chillance left
lue suddenly considers Linuga::EN::Numbers::Cardinal 02:41
TimToady: is that how you'd include actions with slangs as they are (the { make $<token>.ast } in the grammar trick you're using in Names_to_numbers) 02:42
timotimo TimToady: can you come up with something prettier to copy an array of arrays of (single-character) strings than my @output-lines = map { [map *.clone, @$_].item }, @board-tmpl; 02:43
TimToady use Bufs for the Array of Char? 02:48
lue: make was originally intended for use within the grammar, and got hijacked for action methods too :) 02:49
lue TimToady: If you didn't see from a month or so ago, that solves my problem with actions+slangs :) [leaving just "why is augment special-cased" and "what use are the $~ variables"] 02:50
TimToady afk for a bit & 02:51
lue (here's that link to the gist, again, but now updated with this new information: gist.github.com/lue/5241230) 02:54
timotimo huh. 02:57
r: my @stuff = "bleh", "foo", "frob"; say @stuff >>.ords; # whu?
camelia rakudo 9c5650: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix > instead␤at /tmp/DxJlxaHPQ8:1␤------> f = "bleh", "foo", "frob"; say @stuff >>⏏.ords; # whu?␤»
02:58 rking1 joined, adu joined
timotimo of, Bufs are immutable. that's not what i intended :( 02:59
adu hi all
lue r: my @stuff = "bleh", "foo", "frob"; say @stuff>>.ords;
camelia rakudo 9c5650: OUTPUT«98 108 101 104 102 111 111 102 114 111 98␤»
lue r: my @stuff = "bleh", "foo", "frob"; say @stuff ».ords;
camelia rakudo 9c5650: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/XNaR2zPLNm:1␤------> ff = "bleh", "foo", "frob"; say @stuff »⏏.ords;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤»
timotimo oh, i mustn't space there?
that explains it
the specs say Bufs are mutable. huh. 03:00
r: my $a = Buf.new("foo bar".ords); $a[4] = 20;
camelia rakudo 9c5650: OUTPUT«Cannot modify an immutable value␤ in block at /tmp/doNfngt_lH:1␤␤»
timotimo n: my $a = Buf.new("foo bar".ords); $a[4] = 20; 03:03
camelia niecza v24-51-g009f999: OUTPUT«Unhandled exception: Cannot call new; none of these signatures match:␤ Mu, *%_␤ at /tmp/mjWs2vcTbZ line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4331 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4332 (module-CORE @…
timotimo n: my $a = ("foo bar".ords).encode; $a[4] = 20;
camelia niecza v24-51-g009f999: OUTPUT«Unhandled exception: Unable to resolve method encode in type List␤ at /tmp/RAF7U4BBL1 line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4331 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4332 (module-CORE @ 582) ␤ at /hom…
timotimo n: my $a = "foo bar".encode; $a[4] = 20;
camelia niecza v24-51-g009f999: OUTPUT«Unhandled exception: No value for parameter '$enc' in 'Str.encode'␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (Str.encode @ 1) ␤ at /tmp/YZnsCeBRQF line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4331 (ANON @ 3) ␤ at /home/p6e…
timotimo n: my $a = "foo bar".encode("utf8"); $a[4] = 20;
camelia niecza v24-51-g009f999: OUTPUT«Unhandled exception: System.ArgumentException: Encoding name 'utf8' not supported␤Parameter name: name␤ at System.Text.Encoding.GetEncoding (System.String name) [0x00000] in <filename unknown>:0 ␤ at Builtins.encode (System.String inp, System.String enc)…
timotimo n: my $a = "foo bar".encode("utf-8"); $a[4] = 20;
camelia niecza v24-51-g009f999: OUTPUT«Unhandled exception: Writing to readonly scalar␤ at /tmp/jpnXwbzzIg line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4331 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4332 (module-CORE @ 582) ␤ at /home/p6eval/niecza/li…
timotimo so it's immutable in both rakudo and niecza, but not in the specs. huh. 03:04
03:04 preflex left, preflex_ joined
timotimo p: my $a = "foo'.encode("ascii"); $a[1] = "f".ord; 03:04
camelia pugs: OUTPUT«*** ␤ Unexpected "ascii"␤ expecting term postfix or operator␤ at /tmp/g2u16AwWoO line 1, column 23␤»
timotimo p: my $a = "foo'.encode; $a[1] = "f".ord; 03:05
camelia pugs: OUTPUT«*** ␤ Unexpected "f"␤ expecting term postfix or operator␤ at /tmp/LdzA9XpDwJ line 1, column 32␤»
timotimo ...
03:05 preflex_ is now known as preflex
timotimo hello adu :) 03:07
adu :) 03:08
timotimo lue: do you know how to mutate a Buf? :| 03:10
lue According to the spec... :) [being serious, I do not know how to get around improper implementation] 03:11
timotimo it's sad. when i changed to Buf and removed the line that would mutate the Buf, it got 10x faster
i bet i'm missing something blatantly obvious :| 03:18
03:18 woosley1 joined
sorear wait, seriously? buf is mutable? that's weird 03:20
timotimo A mutable container for an array of integer values in contiguous memory. 03:21
03:22 ehouse left
timotimo sorear: if Buf isn't supposed to be mutable, what should i use instead? 03:23
lue r: my $a = Buf.new(0xCF, 0xCF); my $b = Buf.new(($_ == 1 ?? 0x2A !! $a.list[$_] for ^+$a)); say $b.perl; # should be: $a[1] = 0x2A
camelia rakudo 9c5650: OUTPUT«Buf.new(207, 42)␤»
sorear timotimo: native-typed array 03:24
timotimo mhm. 03:25
then i get ugly cloning again :|
03:27 gdey joined
timotimo hm, but i have unicode that i want to put in there 03:27
ah, i remember now 03:29
under native types i don't find something good for characters, so would i need to use integers? 03:31
lue r: my int8 $a = 256; say $a; # native types aren't yet well-implemented it seems 03:34
camelia rakudo 9c5650: OUTPUT«256␤»
timotimo now it's not much faster, but much more confusing 03:35
r: my @everything; my int @one = 1, 2, 3, 4, 5; @everything.push: @one;
camelia rakudo 9c5650: OUTPUT«No such method 'STORE' for invocant of type 'Int'␤ in block at /tmp/Sk6PwMeEWK:1␤␤»
timotimo that's a/the problem i have right now. 03:36
r: my int @one = 1, 2, 3, 4, 5;
camelia rakudo 9c5650: OUTPUT«No such method 'STORE' for invocant of type 'Int'␤ in block at /tmp/qrmVEBiQm_:1␤␤»
timotimo oh!
it's not exactly what i thought.
03:37 andrew12 joined
lue r: my int $one = 1, 2, 3, 4, 5; 03:42
camelia rakudo 9c5650: ( no output )
lue r: my int @one := 1, 2, 3, 4, 5;
camelia rakudo 9c5650: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Parcel'␤ in block at /tmp/61fVqZqGsl:1␤␤»
lue r: my int @one := Array.new(1, 2, 3, 4, 5);
camelia rakudo 9c5650: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Array'␤ in block at /tmp/5AUfrx0iFl:1␤␤»
dalek rl6-roast-data: 311753c | coke++ | / (4 files):
today (automated commit)
[Coke] niecza has been dirty for 305 days. pugs has been clean for 1 day. rakudo has been dirty for 14 days. 03:43
dalek kudo-star-daily: 3741705 | coke++ | log/ (5 files):
today (automated commit)
03:49
[Coke] anyone remember ingy's URL for rosettacode? 03:51
No updates to rakudo-star module failures. :| 03:52
timotimo hm, i can't create an array with only undefined entries? 03:53
lue r: my @a = Int,Nil,Mu; say $_.defined for @a; say @a.perl; 03:54
camelia rakudo 9c5650: OUTPUT«False␤False␤Array.new(Int, Mu)␤»
timotimo oh, that's pretty obvious 03:55
i tried something similar recently, but ended up with Int.new() which gave me a 0 instead
lue there you go. Undefined entries :) (note that Nil disappers. Can't remember if that's to spec)
timotimo i think it's time to go to bed.
lue good ♞ then, timotimo o/
[Coke] .ask PerlJam about grammar-profiler-simple... the csv.t test has the plan commented out and no actual tests, which is why it's failing. 03:56
yoleaux [Coke]: I'll pass your message to PerlJam.
timotimo huh. those partial blocks between "lower one eigth block" and "full block" seem to be kind of borked... 03:59
they don't seem to line up horizontally at all :o 04:01
04:01 preflex_ joined 04:02 preflex left, preflex_ is now known as preflex
[Coke] initiates a rebuild of a rakudo... and now that it's running, has no idea why he did that. 04:04
[Coke] has too many rakudos going on.
r: say 1..rand(10).map{* * *} 04:05
camelia rakudo 9c5650: OUTPUT«===SORRY!===␤Unsupported use of rand(N); in Perl 6 please use N.rand or (1..N).pick␤at /tmp/17WEMO1sR7:1␤------> say 1..rand⏏(10).map{* * *}␤»
[Coke] r: say 1..10.rand.map{* * *}
camelia rakudo 9c5650: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method map at src/gen/CORE.setting:1381␤ in block at /tmp/EbSK6SGXMO:1␤␤»
timotimo r: say (1...10).rand.map: { * * * } 04:07
camelia rakudo 9c5650: OUTPUT«␤»
lue r: say 1..10.rand.map: {* * *} 04:13
camelia rakudo 9c5650: OUTPUT«1..1␤»
timotimo r: say 1..10.rand.map: {* * *}
camelia rakudo 9c5650: OUTPUT«1..1␤» 04:14
timotimo er
r: say (1..10.list).rand.map: {* * *}
camelia rakudo 9c5650: OUTPUT«␤»
timotimo i don't even know what we're trying to do
r: for ^3 { sleep 0.1; say now - ENTER now; } 04:16
camelia rakudo 9c5650: OUTPUT«use of uninitialized value of type Nil in numeric context in block at /tmp/D21AkL3ClS:1␤␤Instant:1368937007.302503␤use of uninitialized value of type Nil in numeric context in block at /tmp/D21AkL3ClS:1␤␤Instant:1368937007.482537␤use of uninitialized value of t…
timotimo why? :(
TimToady someone didn't notice the * at S04:1358, I guess 04:19
timotimo r: for ^3 { sleep 0.1; my $entertime; ENTER { $entertime = now }; say now - $entertime; } 04:20
camelia rakudo 9c5650: OUTPUT«0.1143043␤0.1217128␤0.109504899␤»
timotimo indeed. thanks!
r: sleep -10; # tee hee 04:22
camelia rakudo 9c5650: OUTPUT«Cannot go back in time␤ in sub sleep at src/gen/CORE.setting:657␤ in block at /tmp/JCDlMlrOhn:1␤␤»
lue :) 04:23
[Coke] r: sleep sleep sleep 04:25
camelia rakudo 9c5650: OUTPUT«(timeout)»
04:25 Psyche^ joined
lue
.oO(The error message isn't nearly as fun for sleep i;)
04:26
04:29 Patterner left, Psyche^ is now known as Patterner
timotimo oh, wow. this is pretty darn cool: 04:30
my $global-state = 10; for ^10 { manipulate; say "before: ", ENTER { ~$global-state }, " after: $global-state" } 04:31
sorear steers lue towards Wick rotations
lue makes a mental note to look into relativity and quantum mechanics in more detail, to understand better some of the usages of Wick rotations 04:43
04:43 dmol joined 04:51 adu left 04:52 adu joined 04:59 dagurval joined 05:04 kaare__ joined 05:11 jaldhar left 05:18 araujo left
TimToady nr: constant @M = <ones thousand million billion>; constant %M = @M Z=> (1,1000,1000000,1000000000); say %M<million> 05:23
camelia niecza v24-51-g009f999: OUTPUT«1000000␤» 05:24
..rakudo 9c5650: OUTPUT«postcircumfix:<{ }> not defined for type List␤ in method gist at src/gen/CORE.setting:10022␤ in method gist at src/gen/CORE.setting:893␤ in sub say at src/gen/CORE.setting:10920␤ in block at /tmp/a1l1OVgUUn:1␤␤»
TimToady rakudobug, methinks
05:26 skids left
[Coke] perl6-lwp-simple depends on MIME::Base64 - is there an easy way with the ufo-based makefile to install that prereq? 05:27
TimToady nr: gist.github.com/TimToady/5606798 05:32
camelia niecza v24-51-g009f999: OUTPUT«43␤»
..rakudo 9c5650: OUTPUT«No such method 'ast' for invocant of type 'Any'␤ in regex TOP at /tmp/0X_1m6kixK:2␤ in method parse at src/gen/CORE.setting:10354␤ in block at /tmp/0X_1m6kixK:8␤␤»
TimToady there's another rakudobug
probably from not distinguishing $/ from $¢ as STD-based parsers do 05:38
raiph top down operator precedence parser claimed to work nicely with rec descent parsers: journal.stuffwithstuff.com/2011/03/...made-easy/ 05:40
TimToady tried something like that early without much success; turns out the bottom-up opp works well too, and is easier to understand, at least to me 05:41
raiph "associates semantics with tokens instead of grammar rules" 05:43
TimToady well, we do some of that too :) 05:45
05:45 woosley1 left, erkan joined, erkan left, erkan joined
raiph presumably there's an opp in nqp, right? 05:47
(trying to find the opp code relevant to rakudo) 05:48
sorear it's deeeeep in the bowels of NQP 05:49
HLL::Grammar method "EXPR" or so
it was one of the last things to be rewritten out of PIR, I remember that much
timotimo my head prefers planning and pretend-giving a perl 6 talk for the GPN in ~2 weeks, so I figure i could just start preparing instead of getting the quite overdue sleep >_< 05:51
raiph sorear: thanks 05:56
sorear GPN? 05:57
dagurval If I make changes to rakudo core modules, do I need to re-run make every time to test the changes?
sorear dagurval: yes 05:58
dagurval: it's preferred to test your work in a copy of the core module, and then copy back when you're done
(there are subtleties in this procedure, of course)
dagurval ok, I see 05:59
how do I make my copy take precedence over core? 06:00
timotimo sorear: GulaschProgrammierNacht 06:06
gulas.ch/
06:07 SamuraiJack joined
sorear bah. only so many days in the year, but still 06:13
dagurval attempt at loading my copy of the module.. gist.github.com/dagurval/3e5e75d6db2e9f6d3b13 06:14
timotimo how is "zavolaj" pronounced correctly, btw? 06:17
sorear timotimo: it's a slovak word 06:20
timotimo doesn't help me much :( 06:21
sorear en.wikipedia.org/wiki/Slovak_alphabet 06:22
timotimo ah, that's a good hint 06:23
sorear as long as you don't try to pronounce the j /dʒ/ you're probably doing it OK
timotimo oh, i've been doing it wrong the whole time! 06:24
so it should sound more like "zavolai"
well, "savolai" if we're turning it into grotesque english spelling
sorear in an English phonological approximation, yeah. (probably za- is closer though) 06:25
being german should give you an advantage here, you automatically get the js correct :p
-speaking 06:26
06:31 birdwindupbird joined 06:36 birdwindupbird left
timotimo did pcre have something like subtracting character classes from each other? 06:37
i can't find anything in man pcrepattern
06:43 dagurval left 06:45 n0den1te joined 06:51 n0den1te left
sorear don't think so 06:52
timotimo great. 06:53
i'll flaunt that :)
i'll try to convey my awe and enthusiasm about perl6 and not go too much into the nitty-gritty if i can
hm. i'll only have an hour. 06:55
i'll probably have to compress a lot of stuff :(
06:56 dagurval joined, adu left
moritz timotimo: instead of compressing too much stuff, it's usually better to leave it out 07:05
ie focus on a few nice things, and skip the rest
that's a better experience for the audience than learning about many things but too fast
timotimo indeed 07:06
but how do i decide what to cut? :(
TimToady Martha Steward, the person who does everything better than you, but today is only talking about your drapes. :)
*Stewart
timotimo moritz: do you have a few cycles to spare to use some multi-user-simultaneous-markdown-editing-gizmo with me and occasionally have a look? 07:07
moritz timotimo: yes
timotimo do you also happen to know a good piece of software that can do that? if not, i'd fall back to google documents. 07:08
moritz timotimo: I don't know any, but I can google it :-) 07:09
escrito.herokuapp.com/ 07:10
(haven't tested it though) 07:11
timotimo escrito.herokuapp.com/0adb6d87f#markdown - let's give it a try
i'll quickly paste in what i've got
it doesn't seem to have any kind of indicator where other users are looking/typing, or does it? 07:12
socrates.io/#PppE1Dp - how about this? 07:13
moritz that one seems to kill my browser :-) 07:15
timotimo i think i'll use google docs instead. i know it's got some good features.
moritz or just use github
diakopter openetherpad 07:16
timotimo i'd prefer realtime.
docs.google.com/document/d/1G3dK3b...sp=sharing - does this work?
diakopter I can comment only 07:17
timotimo one second, i'll quickly paste my stuff
diakopter wait, what is this 07:18
looks like leadership..... *runs away flailing arms* ;)
click the chat thing to become un-anonymous 07:20
timotimo it's kind of cute that they have animals there for anonymous users
07:22 woosley1 joined, woosley1 left
timotimo wow, google docs is user-scriptable in JS 07:23
moritz: did you discover the chat? 07:32
07:34 ggoebel left
timotimo okay, this doesn't really work terribly well. excuse me as i switch technologies once again. 07:35
openetherpad.org/perl6gpntalk
moritz timotimo: no, I didn't discover the chat
07:46 ggoebel joined
Su-Shee good morning everyone. 07:54
timotimo hello su-shee
can you intuit chunks of perl6 that would make a good 1-hour presentation to people who probably have never seriously looked into perl6 yet? 07:55
because i'm at a total loss. i don't know where to cut
moritz timotimo: I'm biased, but I like to introduce / walk through JSON::Tiny 07:56
Su-Shee timotimo: experienced programmers otherwise or perl 5 programmers? 07:57
timotimo hackers in general. i suspect a pretty low percentage of perl 5 knowers
(also, i know diddly-squat (that's a funny word!) about perl 5) 07:58
Su-Shee timotimo: then show off whatever you would show off as a "this language has the following interesting features" in any other language.
timotimo: and don't bother to do "look, it has hashes and arrays too"
timotimo of course, but given 1 hour, i will have to cut way more than just "it has hashes and arrays" 07:59
08:00 ccc left
Su-Shee timotimo: personally, if I'd sit in the audience, I'd fancy things like "ok, and OO is done like this, and MOP we have here and if you look at the functional programming elements, we do this and as it is a perl, it has advanced text processing here and here" 08:00
timotimo: emphasis on "way more".
timotimo: show "style" and "features", preferably in sync ;) 08:01
timotimo introduce each new feature with a completely different subset of the syntactic possibilities? :D
Su-Shee timotimo: comparisons are cool, too. "so, if you'd have in Lisp this, you'd do that in Perl 6" for example. 08:02
timotimo: sure, why not?
timotimo: we're programmers. we can read many languages.
timotimo i'd fear i'd lose the audience that way; but since this isn't a "learn to write perl 6 in an hour!" talk, i should probably completely give up on that thought
Su-Shee timotimo: I only need real help with very unfamiliar things - ocaml for example.
timotimo: you don't, it's easier to bore people than to go over their heads. 08:03
assuming you have a competent audience.
timotimo hard to tell, actually. they'll be a very mixed bunch.
the GPN is kind of attracting artists, coders, hackers and makers 08:04
Su-Shee timotimo: a good thing to show is usally "conciseness" of a language. like "normally you would have to do this 10 lines, but here it's only 2, because.."
timotimo "and if you don't need readability, try these 10 characters for fun" :)
Su-Shee timotimo: artists and makers?! what are they supposed to do with perl 6?
timotimo: that is the VERY LAST THING to show EVAR
timotimo: "show me unreadable code!" <- nobody, ever. 08:05
timotimo hahaha, i was not quite serious
Su-Shee timotimo: skip the golf shit, seriously. nobody cares for stuff like this.
timotimo: then don't give me a heart attack :)
timotimo okay, noted 08:06
Su-Shee I'm old, I need clean code ;)
timotimo re: makers/artists and perl6: the event is no-entrance-fee, two-simultaneous-lectures. thus they have the freedom to attend whatever they like and skip what they don't
and even attend workshops at that time
Su-Shee timotimo: then don't take them into account. 08:07
timotimo also, there'll be a big chill-out area again
dalek ast: 6ed5d17 | dagurval++ | S32-io/dir.t:
test that we get IO::Paths with directory in them
ast: a0422f3 | dagurval++ | / (73 files):
Merge branch 'master' of github.com:perl6/roast
timotimo yeah, they won't be putting perl 6 code on their arduinos any time soon.
Su-Shee timotimo: if ever.
timotimo although tools for their ecosystem might be written successfully in perl6.
Su-Shee timotimo: no.
timotimo but i won't go there.
Su-Shee timotimo: good.
timotimo: have you ever watched the douglas crockford lecture series about javascript? 08:08
timotimo no, i have not
can you summarize what's notable about it, or should i find and watch them?
Su-Shee timotimo: the javascript part isn't the important part, actually. the lectures are very well done, technically pretty dense and yet good to follow. 08:09
timotimo: they're a must-have-seen, imho. 08:10
timotimo is it important to start with the first one?
Su-Shee timotimo: he starts with history of languages, and then peels off the bad layers of javascript and shows off the functional features.
yes.
timotimo oh my, 1:40h of history 08:11
Su-Shee timotimo: welcome to knowledge ;) 08:12
it's not wasted, really. 08:13
timotimo what? what did i do to deserve all this knowledge?! :(
Su-Shee you said something while I was awake ;)
timotimo: no, really, watch it. it gives you a lot to think about. 08:14
timotimo: also, mind his clothes. :) (you'll understand later :)
timotimo oooh foreshadowing 08:15
Su-Shee: is "vim with big font and executing snippets out of the file" a bad idea?
Su-Shee timotimo: his talk inspired me to invest more time into learning "the classics" because when he started rambling about "developers don't even know their own history" I realized that he's right and that I should treat computing like I treated political science: do the classics ;) 08:16
timotimo: no, if you don't embarass yourself with bad font rendering and no antialiasing, it's fine 08:17
timotimo er
Su-Shee timotimo: just turn down syntax highlighting.
timotimo gvim will give me pretty fonts at big resolutions, i'd think. although not as pretty as they would be on a mac
Su-Shee timotimo: that's what I meant :)
timotimo er, not resolutions, point sizes i meant 08:18
Su-Shee you actually mean both, usally.
timotimo i will not be able to influence the resolution of the projector. i'll just go with the highest it can do. 08:19
gvim does antialiasing at higher point sizes fwiw
Su-Shee antialiasing starts at the point size you configured via fonts.conf (usally your distribution does and it's 8 I think) 08:21
timotimo i'd go with maybe 14pt i anticipate
08:21 domidumont joined
Su-Shee timotimo: you probably have to try it 08:21
you can change it anyways on the fly, font size is in one of the menus somewhere in gvim 08:22
timotimo i always do :set guifont=*
i hide the menus and scrollbars and status bars on my gvim by default 08:23
Su-Shee I have my own status bar, but disable menus and scrollbars. I also have more tabs. 08:24
timotimo by status bar i meant the little gui widget thing at the bottom, not the "vim status bar" that you also have in terminal vim, jftr 08:25
Su-Shee older gvim with menus and icons but good font rendering: frollein-schmidt.de/screenshots/dro...o-utf8.png
there's a gui widget at the bottom, too?! 08:26
timotimo oh, i guess there isn't 08:27
can you recommend a font at bigger sizes? i was going to try monaco and envy code at least 08:28
08:28 shinobicl__ left
Su-Shee droid mono is my favorite. 08:29
it's the one in the above screen shot
here's code in it: frollein-schmidt.de/screenshots/droidmono.png 08:30
(ignore the lego-colored theme ;)
timotimo hm, it seems to produce kind of bold letters on my machine 08:31
Su-Shee gist.github.com/Su-Shee/5607078 my ~/.fonts.conf 08:33
timotimo diff to mine is hintmedium instead of hintfull and "none" instead of "rgb" 08:35
what does that rgba thing mean?
Su-Shee the arrangement of the rgbalpha on your display 08:36
timotimo you mean the LCD subpixels?
08:36 dagurval left
Su-Shee yes 08:36
timotimo what's a good way to figure that out?
make a picture with a red, green and blue pixel and zoom in on it with a physical lense?
Su-Shee if I remember it correctly, mine is the common setting, others are pretty rare 08:37
timotimo good to know
but what about projectors? will they have that kind of subpixeling at all?
i'd think at least DLP (is that what it's called?) will project the "subpixels" to the very same spot, unless miscalibrated/damaged 08:38
Su-Shee here, this is a good article: wiki.archlinux.org/index.php/Font_Configuration
timotimo okay, i must sum up what you told me, else i'll forget: 08:40
for the love of the flying spaghetti monster: no golfing 08:41
it's easier to accidentally bore the audience than to fly way over their heads
the settings i made will give me decent font rendering at bigger sizes on the projector
instead of "know your audience", "focus on the part of the audience that can benefit from perl 6" 08:42
GlitchMr .u 
yoleaux No characters found
Su-Shee timotimo: well it's not an "instead" of "know your audience" 08:43
timotimo: simply do a talk which would interest _you_ :)
timotimo as in "if you could go back to timotimo anno 2010, what would you tell 'em to spark interest in perl6"? 08:44
Su-Shee not just that.
timotimo: what is it what intrests you in a talk? do you want illustrative examples? it is about code style? ideas? principles? 08:45
timotimo: I like "principles" and "opinions" for example, I'm interested in thinking differently.
timotimo: I absolutely hate beginner's talks. I can read that faster from a tutorial on my own. 08:46
timotimo: so I like talk like rich hickey's "simple versus easy" (the clojure guy) or a talk by alan kay (which in itself is cool) about DSLs 08:47
timotimo hm, can you elaborate what you mean by "opinions"?
08:47 dagurval joined, domidumont left
Su-Shee timotimo: I love a good rant about the usal conflicts in programming "typed is better! no it's not!" or "you need UML and strong architecture! no, you don't, do bottom-up" :) 08:47
FROGGS_ 3
08:48 domidumont joined
timotimo mhm 08:49
Su-Shee timotimo: I'm not a "cool feature" audience, I totally don't care. Not interested.
timotimo: I like honest talks/books/papers about failures, too.
timotimo: a lot to think about, a lot to learn from
timotimo i don't think i can aspire to give a talk that could excite you i fear :D 08:50
Su-Shee timotimo: ever heard of lucid emacs?
timotimo: I'm difficult :) I already have my opinions and principles. also, it just were examples. maybe you just LOVE cool feature show-offs.
timotimo i'm excited by lots of the things perl 6 has, but i want to go more deeply than just to say "we do functional! and we also do object-oriented! and we do imperative! and maybe some day someone will make a module for logical programming! and stack based programming! and ..." 08:52
Su-Shee timotimo: also, I put a lot of work into actually finding my opinions and values and principles.
masak good antenoon, #perl6
Su-Shee timotimo: well if you actually CAN show that in code in one hour, you already have done a great talk.
timotimo: like "here, five basic OO principles, in code like this: ... " "here, most common functional elements, looks like this..." 08:53
masak has done it with Perl 6, several times
Su-Shee timotimo: "love conservatice procedural? just go like this"
masak: if YOU couldn't show different perl 6 styles by now.. ;) 08:54
timotimo masak: can i ask you for a bit of advice as well? i've asked for a 1 hour time slot and i don't quite know what portion of perl6 to cut out
well, rather: there are only 1h-slots and i've applied for one of them and most probably will get it 08:55
masak timotimo: what makes you enthusiastic about Perl 6? I want to hear what makes your heart beat faster :) then the rest will sort itself out. 08:56
08:56 SamuraiJack left
Su-Shee timotimo: SEE? ;) 08:57
masak in speaking courses, the first exercise is sometimes just "get up and rant about something for 5 minutes". as long as you're passionate, people will listen.
timotimo i wasn't doubting you, but i was hoping there would be an easier way :D
masak no shortcuts, sorry :)
timotimo of course. there never are
so, i love about perl 6 is that it gives me loads of expressiveness and loads of power to do any kind of thing i want to do 08:58
and there's so many cool concepts in there and the most amazing thing is that it all seems to fit together so ridiculously nicely
masak timotimo: maybe show an example of a program can be written in lots of different ways?
and point out cool feature usages as you go. 08:59
it's nice if it doesn't get too abstract -- if the feature is actually introduced in a program, in a context.
timotimo yes, i can appreciate that concept. same with learning languages
immersion is the very best way, rote memoization of rules and vocabulary is probably the worst
masak two of my YAPC::NA talks will lean on RC quite a bit for that reason.
Su-Shee timotimo: also, you're totally overthinking it by now.. watch talks of other people. extract what you like. copy. 09:00
timotimo you're probably right. i'm also kind of overtired. i couldn't sleep tonight >_< 09:01
Su-Shee don't try to be funny if you're not generally a funny guy.
timotimo i can do funny. i probably will, to get rid of any nervousness i may build up 09:03
masak oh wow, TimToady++ # rosettacode.org/wiki/Names_to_numbers#Perl_6 09:04
FROGGS_ TimToady: I believe this bug gist.github.com/TimToady/5606798 is already reported as rt.perl.org/rt3/Ticket/Display.html?id=111518 09:06
09:07 FROGGS_ is now known as FROGGS
lizmat good *, #perl6! 09:07
Su-Shee masak: I like novemseptuagintillion best. I use it daily. :)
masak "87 years ago, our 4 fathers..." # lol
lizmat o_O { wow, that was a lot to catch up on, since mindlessly watching the ESC } 09:08
timotimo suddenly succeeded at parsing ESC as "eurovision song contest"
FROGGS r: constant @M = <ones thousand million billion>; constant %M = @M Z=> (1,1000,1000000,1000000000); say %M<million> 09:09
camelia rakudo 9c5650: OUTPUT«postcircumfix:<{ }> not defined for type List␤ in method gist at src/gen/CORE.setting:10022␤ in method gist at src/gen/CORE.setting:893␤ in sub say at src/gen/CORE.setting:10920␤ in block at /tmp/09MfiyYyrS:1␤␤»
masak .oO( ESC as a way to Esc )
FROGGS r: constant @M = <ones thousand million billion>; my %M = @M Z=> (1,1000,1000000,1000000000); say %M<million>
camelia rakudo 9c5650: OUTPUT«1000000␤»
lizmat .tell moritz: I'm not sure how those changes got mixed in: I did do the git reset --hard origin/nom after creating the new branch 09:13
yoleaux lizmat: What kind of a name is "moritz:"?!
lizmat .tell moritz I'm not sure how those changes got mixed in: I did do the git reset --hard origin/nom after creating the new branch
yoleaux lizmat: I'll pass your message to moritz.
lizmat I guess the only way is to store all of my pull requests as gists, drop the forked repo (thereby invalidating all pull requests I made), fork a new repo, apply patches one by one again in a fresh branch, and create new pull requests? 09:14
09:16 spider-mario joined
timotimo masak, Su-Shee: one point i'd love to make is that everything in perl 6 tends to have good "principles" behind everything that stretch across wide pieces of the language. but to see those common things pop up, you have to spend lots of time with the language :( 09:16
Su-Shee timotimo: an example? 09:17
timotimo one thing i noticed very early on was the colon-pair-syntax (is it called that?) 09:19
at first i saw it as putting named arguments into function/method calls
then i noticed, that i can use it in hashes, too. and then i saw, that i can actually use them everywhere i wanted 09:20
that was a nice experience
Su-Shee timotimo: you mean foo : bar?
timotimo i mean :foo(123), :foo<yoink>, :foo vs :!foo and :$foo 09:21
lizmat and the real kicker: :2nd 09:22
aka :nd(2)
FROGGS nr: say (my %m = ()).WHAT; say (constant %c = ()).WHAT
camelia rakudo 9c5650: OUTPUT«(Hash)␤(Parcel)␤»
..niecza v24-51-g009f999: OUTPUT«Potential difficulties:␤ %m is declared but not used at /tmp/nCgqA3u_Ar line 1:␤------> say (my ⏏%m = ()).WHAT; say (constant %c = ()).WH␤ %c is declared but not used at /tmp/nCgqA3u_Ar line 1:␤------> say (my %m = ()).WHAT; say (…
timotimo lizmat: that, actually, is pretty darn crazy :))) 09:23
Su-Shee bah, all way too cluttered for my taste.. :) 09:24
lizmat it's one of my clarifications the spec: as it was just demoed as :16sweet, and that didn't make any sense to me… :2nd, :3rd, :1st do
:2nd and the like are very nice with matches and substitutions
FROGGS r: say (my %m = ()).WHAT; say (our %o = ()).WHAT; say (constant %c = ()).WHAT
camelia rakudo 9c5650: OUTPUT«(Hash)␤(Hash)␤(Parcel)␤»
timotimo indeed.
lizmat makes it very readable to me
FROGGS I guess a constant hash should still be a hash? 09:25
timotimo yeah, :123foo is ... strange
lizmat :42answer
or rather: :42question :-)
timotimo Su-Shee: i'm slowly watching the crockford lecture; he just started talking about the "mother of all demos". i'm pretty sure i saw that video 09:26
i think i shall actually watch that again
oh yikes, it's 1:40h 09:27
lizmat FROGGS: I would think so, there is some system here though: 09:31
r: say (constant %a=()).WHAT; say (constant %a=(a=>1)).WHAT; say (constant %a=(a=>1,b=>3)).WHAT
camelia rakudo 9c5650: OUTPUT«(Parcel)␤(Pair)␤(Parcel)␤»
lizmat the first is an empty Parcel.
I guess the second is turned into a Pair because it happens to be a 2-element Parcel? 09:32
FROGGS hmmm 09:33
09:35 rindolf joined
jnthn constant in Rakudo doesn't try to do any kind of coercion of the RHS at present. 09:40
timotimo gosh, what a magical time it was back then 09:42
09:46 araujo joined, araujo left, araujo joined 10:03 tgt joined
lizmat off to enjoy the nice weather 10:12
moritz \o 10:19
yoleaux 09:13Z <lizmat> moritz: I'm not sure how those changes got mixed in: I did do the git reset --hard origin/nom after creating the new branch
10:23 aghbas joined 10:27 lustlife joined 10:28 Su-Shee left 10:36 dbr left 10:40 bloonix left 10:41 FROGGS left 10:42 FROGGS joined, bloonix joined 12:12 isBEKaml joined
dalek : 1aa1ade | (Tobias Leich)++ | / (3 files):
more dissect_longname -> p5dissect_longname
12:12
FROGGS jnthn: I wonder how to change the perl6 types to fit perl5's needs... I'd like to, say, a Mu.pm which changes its Str method, but I dont know how to do that 12:39
jnthn: I tried making a P5Mu class, and export that as symbol Mu via an EXPORT sub but it didnt work out, I guess I will replay that and show you the problem I run into 12:40
13:01 silug____ left 13:08 tgt left
isBEKaml ... and all is silent (OHHAI) 13:13
13:13 arc_of_descent joined
FROGGS :o) 13:13
colomon \o 13:14
isBEKaml Hello colomon and FROGGS
13:16 arc_of_descent left, silug____ joined
FROGGS o/ 13:19
13:21 dayangkun joined 13:22 dayangkun left
FROGGS jnthn: I get "This type cannot unbox to a native string", where can I steal boxing operations from? BOOTSTRAP.pm? 13:30
jnthn: nvm, I think I got it :o) 13:40
13:44 tgt joined 13:47 Chillance joined 13:48 ajr joined, ajr is now known as Guest26160 13:51 Guest26160 is now known as ajr_ 14:00 isBEKaml left 14:29 FROGGS[mobile] joined
FROGGS[mobile] weather++ 14:29
14:35 mtk left 14:38 mtk joined 14:56 SamuraiJack joined 14:57 arlinius left 15:01 shinobicl__ joined 15:05 shinobicl__ left 15:06 shinobicl__ joined 15:26 arlinius joined 15:35 skids joined 15:48 ajr joined, ajr_ left, ajr is now known as Guest54406, Guest54406 is now known as ajr_ 15:50 PacoAir left 15:54 PacoAir joined
masak drops a pin 15:55
colomon catches it
masak nice reflexes.
diakopter hears it fall in the forest
15:56 chrisdev joined
masak so, yesterday instead of going to bed after midnight, I stayed up for two hours scouring Wikipedia for entries like "group", "monoid", "field", etc. drawing them all on a sheet of paper, linking them together with arrows. 15:57
chrisdev Just installed rakudo on my Mac for first time - running ./perl6 from installed directory works fine, but running it from anywhere else results in perl6 15:58
PARROT VM: Could not load bytecode
Could not load oplib `perl6_ops'
moritz masak: show pictures
chrisdev: are you sure you ran 'make install'?
masak moritz: best thing I can do is upload a photo. I really plan to SVG it in the fullness of time.
moritz: so as long as you accept that this is not the final version... :)
moritz masak: upload a photo sounds great
masak gets on it
chrisdev moritz just like that, without args 15:59
lizmat having used feeds for the first time, I wondered if there is some way of doing
moritz chrisdev: because it's the error you usually get when you try to run a not-installed rakudo from somewhere else than its source tree
lizmat @array ==> filter("a") ==> filter("b") ==> @result 16:00
masak lizmat: should be, yes.
16:00 PacoAir left
moritz r: say <a b ab> ==> grep /a/, * ==> grep /b/, * ==> say() 16:00
lizmat filter being a sub
camelia rakudo 9c5650: OUTPUT«a b ab␤␤»
masak lizmat: &filter
I think. 16:01
16:01 PacoAir joined
lizmat so how do I receive the incoming in filter then? 16:01
moritz r: <a b ab> ==> grep /a/, * ==> grep /b/, * ==> say(*)
camelia rakudo 9c5650: OUTPUT«*ab␤»
chrisdev moritz: um, ok, just RTFMing the install directions - with Perl5, the binary knows where to find its stuff regardless of where its installed
moritz chrisdev: well, not with rakudo, which is why I asked about 'make install'
ah, with "without args" you meant "just 'make'", right? 16:02
lizmat moritz: thanks, but instead of the grep, a sub of my own definition with additional parameters specified on how to filter
16:02 ruoso joined
chrisdev moritz: yeah, thats the instructions in the INSTALL.txt 16:02
moritz: README I should say 16:03
moritz lizmat: well, I do try to supply additional arguments, and grep is not different from functions you wrote yourself
$ make install # IMPORTANT, installs to install/bin/perl6
that's what the README says
masak moritz: masak.org/carl/tmp/mathematical-structures.jpg 16:04
moritz masak: wow 16:05
masak moritz: the "root" is the "Set" bubble near the top left.
moritz: I plan to SVGize this, clean it up a bit, and *find examples* of a concrete structure of each type. (which is an example of that type but not of a narrower one.)
chrisdev mortitz: I'm a moron, I actually did NOT run make install, I've been building so much stuff today I just *assumed* I did - please berate me.
moritz chrisdev: no reason to berate anybody, happens to all of us occasionally 16:06
masak: I guess you know about dot/neato for automatically laying out such stuff?
chrisdev moritz: ;) 16:07
lizmat moritz: I must be dense, but how does "my" grep know what to grep on ?
masak moritz: yes, I do. I was never very good at making them succumb to my wishes, though.
colomon chrisdev: happens to all of us even after years of working on Rakudo...
moritz lizmat: yes, that's the question
r: <a b> ==> say()
camelia rakudo 9c5650: OUTPUT«a b␤»
moritz lizmat: seems the feed data is just appended to the argument list
r: <a b ab> ==> grep(/a/) ==> grep(/b/) ==> say() 16:08
camelia rakudo 9c5650: OUTPUT«ab␤»
moritz r: sub filter (*@a) { @a[0..*-2] }; <a b c d e> ==> filter() => say()
camelia rakudo 9c5650: OUTPUT«␤Too many positional parameters passed; got 3 but expected 2␤ in sub infix:<=>> at src/gen/CORE.setting:6702␤ in block at /tmp/RJdMSUFOQG:1␤␤»
lizmat r: sub f { say @_ }; <a b> ==> f(3) 16:09
camelia rakudo 9c5650: OUTPUT«3 a b␤»
lizmat that should work for me… :-)
masak moritz: to help navigate that: after I finished drawing it, I realized it has four parts: group-like things (upper left), ring-like things (most of the right half and lower left), modules (lower right), and lattices/orders (top middle).
ruoso is "jvm-support" the rakudo branch to test the jvm stuff?
masak should probably color-code those each with their own background in the final diagram.
moritz ruoso: yes; (needs the newest rak-jvm-support branch from nqp) 16:10
ruoso does it require Oracle's JVM? or does it work with any open source one? 16:11
moritz last I tried, it worked with openjdk-7 16:12
ruoso giving it a go. Thanks
16:12 PacoAir left 16:15 PacoAir joined 16:21 PacoAir left
ruoso hm... running make in parallel causes it to fail, apparently. Is that a known issue? 16:21
(in Rakudo itself, I mean)
I think there's some missing dependency declaration 16:22
16:22 PacoAir joined
moritz not known to me, at least 16:22
ruoso hmmm... can't reproduce... 16:32
lizmat r: sub a ($a=Mu) { }; a 16:35
camelia rakudo 9c5650: OUTPUT«Nominal type check failed for parameter '$a'; expected Any but got Mu instead␤ in sub a at /tmp/IvMlnzFJOY:1␤ in block at /tmp/IvMlnzFJOY:1␤␤»
lizmat expected Any? but but, I specified Mu as the default 16:36
ingy [Coke]: github.com/acmeism/RosettaCodeData ? 16:37
ruoso is there a way to get more diagnosis on where things have failed when running the jvm rakudo? 16:38
lizmat submits rakudobug 16:39
ingy hi lizmat
lizmat hi ingy, long time no see on #perl6! 16:40
ingy not *that* long :)
I need to port pegex and testml to p6 16:41
lizmat you must have been lurking then...
cool!
ingy could use some help
lizmat is but a novice, but I can try 16:42
ingy I've noticed you hacking on p6 a lot lately
lizmat doesn't feel like a lot yet to me… :-) 16:43
ingy :)
I just started playing with peg/leg. It's looks really solid for what it is. I want to apply the diff of good ideas to pegex 16:44
16:45 SamuraiJack_ joined, SamuraiJack left
ingy can rakudo bind to C libs yet? 16:45
lizmat I understand yes (NativeCall and Zavolaj come to mind) 16:46
someone please correct me if I'm wrong, haven't done anything with it myself yet
tadzik it can, yes 16:47
FROGGS NativeCall is the module, Zavolaj its repository name
16:48 FROGGS[mobile] left, sqirrel joined
moritz it's good enough to bind to mysql, postgresql and sqlite 16:49
ingy groovy
someone should bind libpcre :) 16:50
lizmat and what would be the benefit of that ? I mean, in a Perl 6 context with grammars and all that shit :-) 16:51
ruoso hmm... I wonder how hard it would be to annotate the jvm bytecode with debugging information 16:52
16:53 dbr joined
lizmat I think donaldh++ and jnthn++ are already working on that 16:53
ingy lizmat: I need pcre to (easily) port pegex to p6 16:54
timotimo hm. how much do you have to fight perl6 in order to come up with a prototype based OOP system?
ingy and I need pegex as the basis for many acmeist packages 16:55
lee_ isn't there a :p5 regex modifier? not sure how accurately that simulates p5 regexes
ingy lee_: yes, but I don't believe it is implemented :) 16:56
at least that's what I last heard
FROGGS r: say "abc" ~~ m:P5/^abc$/ 16:57
camelia rakudo 9c5650: OUTPUT«「abc」␤␤»
FROGGS r: say "abc" ~~ m:P5/^ abc $/ # perl6-mode would ignore whitespace
camelia rakudo 9c5650: OUTPUT«False␤»
FROGGS see?
ingy great
FROGGS you have to test what pieces are supported and which are not 16:58
ingy nobody tells me these things!
FROGGS depending on the crazyness of your regexes :o)
brb
ingy the regexes are all generated and quite sane
16:59 zipf joined
lizmat ingy: you didn't ask that, you assumed you needed pcre :-) 16:59
ingy r: say "abc" ~~ m:P5/^ab([cd])/ 17:00
camelia rakudo 9c5650: OUTPUT«「abc」␤ 0 => 「c」␤␤»
ingy lizmat: not really. I was informed that m:P5 was not working anywhere
some time ago though 17:01
17:01 Guest41938 left
masak indeed. 17:01
17:01 zipf left
ingy it didn't seem like a high priority here (with grammars and all that shit :-) 17:02
17:03 tgt left
ingy I'll giv'r a try, and report back any needs 17:03
FROGGS ingy: btw, it would actually help if you would try P5-regexes and report bugs, I'd love to fix them 17:04
ingy FROGGS: thanks! 17:05
is there P5 (or native binding) support outside rakudo? 17:07
17:13 japhb_ left
jnthn ruoso: The debugging info, if you mean line numbers, should already be going in there...just need to incorporate it into the stack trace output. 17:13
donaldh++ did that part
lizmat ingy: I don't really understand that question 17:14
ruoso jnthn: I was trying to get any type of information on how things were failing, but I'm not being able to derive anything... 17:16
I even tried to use jdb, but I can't quite get any debug information
17:18 chrisdev left
ruoso for instance, if I try something I know is not supported, I get gist.github.com/ruoso/5608329 17:20
but I can't quite figure out how to go from there to see where and how it is failing
17:21 ajr_ left 17:26 MrMeek left
timotimo wow, going for the complicated stuff so quickly, ruoso? :) 17:27
jnthn ruoso: Ah, that's 'cus the Rakudo backtrace thingy is not yet functional
ruoso: Do --ll-exception
That often gives something usefuller
ruoso ah... that was better... 17:28
jnthn :)
ruoso but... gist.github.com/ruoso/5608345 17:29
still not really... :)
timotimo so, in the actions, some phasers look like make $*W.add_phaser($/, 'INIT', ($<blorst>.ast)<code_object>, ($<blorst>.ast)<past_block>); and some look like make $*W.add_phaser($/, 'ENTER', ($<blorst>.ast)<code_object>); 17:30
am i correct in assuming that adding the ($<blorst>.ast)<past_block> to ENTER would make it work in expressions?
jnthn timotimo: No
There'll be a bit more to it than that.
timotimo mhm 17:31
jnthn You may need to do that, but still...
timotimo ah, i see there's a big bunch of ifs in add_phaser
jnthn The question is where to stick the answer.
You can probably just declare a QAST::Var local to store it in and evaluate to something to look at up
We can't store it globally as that'd break as soon as you did closures or recursion :) 17:32
So the INIT approach wouldn't work, for example
timotimo hu-hum
jnthn I doubt it's more than 3-4 line addition to make it work... :) 17:34
It's just writing the correct 3-4 lines :P
lizmat finally figured out how to make pull requests clean: github.com/rakudo/rakudo/pull/145
17:34 MrMeek joined
timotimo hehe, yes. 17:35
japhb Installing Oracle JDK 7 did not seem to fix the JVM segfault during build of nqp-jvm. :-( 17:38
17:38 lukas_ joined
jnthn japhb: Or help at HEAD? 17:38
17:39 lukas_ is now known as Guest1764
timotimo jnthn: i'm not sure how to tell the phaser what variable to set and i don't quite know if i can define the lexical vraiable at the point where the phaser is placed, because the phaser would be executed before that part is 'hit' 17:40
japhb jnthn, HEAD of rak-jvm-support? 17:41
jnthn japhb: yeah
japhb I can try that if you like?
er, .
jnthn japhb: Well, you had a different problem with that last time, but not a segfault?
17:41 tgt joined
jnthn timotimo: You declare the variable; make a fresh name by calling .unique('enter_res_') or so 17:41
timotimo: I think there's already code to run the phaser at the block start; bind the local (not a lexical) to whatever it produces. And then instead of evaluating to Nil, evaluate to a lookup of the variable that was bound earlier. 17:42
timotimo i'll look into Code.add_phaser then 17:43
jnthn That's probably not quite the place this goes...pretty sure the code you need to edit is in World.nqp 17:44
Time for dinner; bbiab
timotimo OK 17:45
good appetite :)
ah, it's probably in add_phasers_handling_code 17:46
17:48 Guest1764 left
ingy lizmat: I meant niecza et al 17:58
18:02 census joined 18:05 donaldh joined
FROGGS n: say "abc" ~~ m:P5/^ abc $/ # has niecza perl5 regexes? 18:07
camelia niecza v24-51-g009f999: OUTPUT«Unhandled exception: Autoloading NYI␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 4672 (Regex.tweak @ 8) ␤ at /home/p6eval/niecza/src/STD.pm6 line 500 (ANON @ 5) ␤ at /home/p6eval/niecza/sr…
18:07 rindolf left 18:08 rindolf joined
FROGGS ingy: so it looks like there is no PR-regexes and no NativeCall in niecza 18:08
dont know about other c-lib calls
ingy what is the current @et_al? 18:09
another way to port pegex is to compile pegex grammars to p6rules 18:11
masak rn: my @et_al; say +@et_al # might be this at this point, actually 18:12
camelia rakudo 9c5650, niecza v24-51-g009f999: OUTPUT«0␤»
masak well, depends how you count, for sure. 18:13
rakudo and niecza are the only two listed under "Compilers" at perl6.org. and in perl6.org/compilers/features
ingy looks forward to a UniScript bot ☺ 18:19
.uni is a wip cdent syntax
that will compile to p6 one day
so I can single source p5/p6(/py/rb/js/…) packages one day 18:20
uniscript gets it's name because the current version makes absurd use of unicode chars
18:22 adu joined
ingy github.com/ingydotnet/testml-cd/bl...TestML.uni :P 18:23
in general, a LiveScript variant would be my preferred cdent syntax
it's teh sexy and teh au 18:24
lue rn: say val("1+2i");
camelia niecza v24-51-g009f999: OUTPUT«1+2i␤»
..rakudo 9c5650: OUTPUT«===SORRY!===␤Undeclared routine:␤ val used at line 1. Did you mean '&eval'?␤␤»
lizmat val is NYI in rakudo 18:25
masak ingy: is "LiveScript" your spelling of "JavaScript"?
ingy lizmat is obviously not a p6 n00b :P
masak: heh, no it's #livescript a coffeescript variant heavily used by clkao and audreyt 18:26
lue ingy: I'm not finding uniscript. Could you give a link to its page? 18:27
18:28 rindolf left, rindolf joined
geekosaur there is a strange historical not-quite-loop there 18:29
ingy lue: it's *very* wip… github.com/ingydotnet/uniscript/ it's just a name at this point to a coffee-esque syntax that will become probably my first cdent syntax 18:30
lue geekosaur: are you thinking of APL? :)
masak ingy: ah.
ingy geekosaur: livescript.net/#name
masak ingy: when I searched for "LiveScript" on Wikipedia, it redirected me to "JavaScript" :) 18:31
geekosaur was in fact referring to what that first paragraph says
(without having read it, since some of us still remember when livescript was renamed javacript)
ingy only 18 people in #livescript
but au has already done aumazing things with it 18:32
timotimo wow, i'm getting a *lot* of flak for trying to defend the decision to allow - in identifier 18:33
s
ingy timotimo: livescript does it
:)
lizmat has reworked all of her patches from the past weeks to clean pull requests (just 7 of them ;-)
ingy foo-bar is sugar for fooBar 18:34
timotimo oh, wow
ingy I kinda like it.
masak lizmat++ 18:35
lue
.oO("How can we tell the difference between variable $foo-bar and variable $foo minus sigilless bar‽‽")
japhb jnthn, had no luck with Oracle Java even on rak-jvm-support. Under the assumption my clone may just be borken, I'm cloning fresh to try again. :-/ 18:36
ingy I was just playing around with adding it to pegex-identifiers
lizmat lue: whitespace
timotimo lue: identifiers are greedy
ingy :)
lue I was imagining some of the opposition to - is all :)
ingy bad for golf!
japhb I was going to say, I'm pretty sure lue knew the answer to his question. ;-) 18:37
donaldh japhb: in what timeframe. nqp/rak-jvm-support latest seems broken for me.
japhb: it was working before jnthn's last commits.
18:38 SamuraiJack__ joined
ingy FizzBuzz in LS is: 18:38
[1 to 100]map ->[k+\zz for k,v of{Fi:3,Bu:5,Ba:7}|it%v<1]*''||it
lizmat Perl6 isn't about golfing: Perl6 is the 3D printer of programming languages
japhb donaldh, I was building head as of a couple hours ago
lue thought the use of interrobangs (plural!) would hint at his non-seriousness
ingy note the ungodly ws
donaldh japhb: Unhandled exception: Wrong number of arguments passed; expected 0..0, but got 10 ?
18:38 SamuraiJack_ left
japhb donaldh, different counts of expected and got, but yeah, same problem. 18:39
What's your platform?
timotimo std: my $foo- = 5;
donaldh MacOS
camelia std 9906f18: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix = instead at /tmp/8MMTtv_TZb line 1:␤------> my $foo- ⏏= 5;␤Parse failed␤FAILED 00:00 43m␤»
japhb donaldh, using what 'java -version'?
donaldh japhb: java version "1.7.0_21" 18:40
ingy lizmat: what about 3D golfing?
japhb donaldh, OpenJDK or Oracle?
diakopter lizmat: Perl 6 is a 3D printer printer
donaldh japhb: Oracle. Oh. Intermittent. 18:41
I used to get intermittent crashes.
ingy diakopter: golf that for me
18:41 kaare__ left
lizmat diakopter: ;-) 18:41
japhb ingy, we win simply by being *able* to golf in 3D. Every linear dimension can shrink while still containing the same measure of space. ;-)
ingy japhb: %-)
timotimo lue: obviously it's stupid to allow - inside names, because that's an arithmetic operator 18:42
donaldh japhb: methinks byte code generation and use of invokedynamic is sufficiently off-piste to expose JVM bugs. 18:43
diakopter timotimo: what about '
timotimo i better not tell them about that, or they'll be entirely convinced that perl 6 is the dumbest language ever invented
japhb donaldh: So far, I'm getting the same problem with either Oracle or OpenJDK 18:44
diakopter it was invented? I thought it fell from heaven
lue What about ' in Perl 5 ? :) [It means something there]
donaldh japhb: should be the same code
timotimo lue: what does it mean?
masak japhb: I just had a horrible vision of golfing combined with the Banach-Tarski paradox
lue IIRC, ' == :: in Perl 5
geekosaur ada? haskell? 18:45
japhb diakopter, Perhaps the way to reach heaven is to follow the fourth dimension while maintaining one's three-dimensional spacial reference frame rooted on TimToady's brain.
donaldh, "should" I agree, but I needed to rule out shenanigans 18:46
lue
.oO(Perl 6 is the 3D printer that decided to accomplish its designed task by manipulating subatomic particles into the correct configurations. This method of 3D printing takes *decades* to make feature-complete)
18:47
donaldh japhb: aye, agreed.
japhb: what platform are you on?
japhb masak: chuckle
donaldh flight &
18:47 donaldh left
japhb donaldh, linux-i686 (Linux Mint, AKA "Ubuntu + different desktop") 18:47
lizmat r: class A { method a (Mu $b?, :$a=Mu) {} }; my $a=A.new; $a.a(1)
camelia rakudo 9c5650: OUTPUT«Nominal type check failed for parameter '$a'; expected Any but got Mu instead␤ in method a at /tmp/yydp3SM9XJ:1␤ in block at /tmp/yydp3SM9XJ:1␤␤»
lizmat moritz: is that also right? feels wrong to me, even with the type constraint specified 18:48
ah, duh
moritz: sorry, see it now
18:49 domidumont left
timotimo lue: ' is not a problem, because it's not used for arithmetic, so ... 18:49
18:50 pmurias joined, chrisdev joined
lue
.oO("My Hold'em module's breaking! What did you do?" "I just closed off all the open single quotes you had lying around...")
18:50
timotimo :D 18:51
i wonder why things like $foo---bar wouldn't be allowed 18:53
lue gets the feeling ' was left in Perl 6 to keep Perl 5 modules from needing too many changes in the upgrade process
18:53 shinobicl__ left 18:55 rindolf left
pmurias lue: ? 18:56
lue: you mean 'string literal'? 18:57
lue "Perl 5 compatibility" is the only reason I can think to keep ' in variable names in Perl 6
ingy I thought ' was deprecated in p5 18:58
gtodd ' in variable names is allowed in perl 5?
ingy ' means :: in package names 18:59
pmurias and it's not used in modern perl 5 code
ingy not even by ingy
pmurias perl6: my $foo'bar = 123;say $foo'bar;
camelia rakudo 9c5650, niecza v24-51-g009f999: OUTPUT«123␤»
ingy ? and ! work nicely in ruby 19:00
pmurias gtodd: it's treated as a part of the variable name, and not as a :: like in Perl 5
ingy imo
ingy is converting github.com/jgm/peg-markdown/blob/m...parser.leg peg/leg grammar to Pegex. 19:03
anyone interested in converting it to p6rules?
looks like it could be used as the basis for several markup converters 19:04
gtodd www.pegex.org/ <-- is you? 19:06
timotimo it would seem so
gtodd does it help me use p6-rules in p5? or ....
ingy cringes… *click* 19:07
yes, that's my pegex thing
it helps you use Pegex in Perl5
and in Ruby
exactly the same
(exact same idion for idiom port, passing same TestML tests) 19:08
gtodd so it's an alternative to Perl6::Rules ...
ingy porting to Node/LiveScript currently
gtodd: it was originally meant to be (a lot of) p6rules for everyone (that has a regex engine) 19:09
gtodd cool so learning Pegex one can master perl6 rules and then use the same approach in many languages
that makes it sound really really useful :-)
19:10 gaussblurinc joined
gaussblurinc hi! 19:10
gtodd I just started learning about rules and trying to figure out how I might use them with Perl6::Rules in perl5
ingy the idea is to be able to easily create new DSL-s (like jsony) and publish them everywhere (that pegex is ported) 19:11
gaussblurinc are there any special channels connected to gsoc 2013 parrot?
ingy gtodd: you can /join #pegex :)
tadzik gaussblurinc: #parrot probably 19:17
gaussblurinc: on irc.perl.org
19:21 rindolf joined
gaussblurinc tadzik: thank you 19:22
tadzik you're welcome 19:27
dagurval is there some way of seeing exported subs of a module?
r: use Test; say Test::^methods
camelia rakudo 9c5650: OUTPUT«===SORRY!===␤Undeclared routine:␤ methods used at line 1␤␤»
lizmat tadzik: doing a fresh panda clone in my rakudo fork, and get this: $ mp6 bootstrap.pl (nl) Could not find Shell::Command 19:28
tadzik lizmat: oh, I think I know
lizmat ring a bell?
tadzik yeah
git submodule update?
there's a similar bug report too, I think it's related to submodules 19:29
lizmat ?? in panda? doesn't do anything
tadzik git submodule init, and then submodule update?
19:29 Chillance left 19:30 Chillance joined
lizmat yup, that's it 19:30
hhmmm… feels to me labster should update his blog post then: blog.brentlaabs.com/2013/05/how-to-...erl-6.html
tadzik no 19:35
I should update panda so it's not necessary
those steps can be ran by bootstrap
by merging the pull request I broke UX 19:36
lizmat seems like a good idea
BTW, does JSON::Tiny do Typed hashes ? 19:37
tadzik I don't think so, no
oh, that reminds me of a JSON project I wanted to do :) 19:38
lizmat grrrr… I need support for typed hashes for what I want to do :-)
jnthn lizmat: I'm not sure JSON itself can represent a hash with non-string keys? 19:39
lizmat hmmmmm… then maybe I should have a look at Sereal ;-)
typed hashes aren't much good if we can't serialize/deserialize them 19:41
or is there another way to serialize typed hashes in rakudo that I don't know of?
arnsholt We don't really have anything like Storable, I think 19:44
Unfortuntaely. I've been meaning to look into whether it's possible to hijack jnthn's bounded serialization code to do it, but tuit underflow has happened so far 19:45
19:45 berekuk left
lizmat that serialization code is for creating CORE.setting, right? 19:45
jnthn Yeah, and everything else. 19:46
The reason you *don't* want to use it for making a Storable module is that you statically link the stuff you serialize against, say, a particular CORE.setting.
lizmat aha, ok, I see 19:47
jnthn So, upgrade your Rakudo and you can't deserialize.
If those conditions are fine for you (e.g. it's just a cache) then it's usable.
lizmat then maybe I just need to write a better .perl for the module I'm writing, and just "do" the file
19:47 berekuk joined
lizmat pretty sure I want it readable by different versions of rakudo, at least the ones sharing @INC directories 19:48
jnthn OK, then it's the Wrong Tool For The Job.
lizmat .perl it is then :) for now at least
jnthn While you work on module stuff, though, please do remember that pre-comp stuff *is* at the level of "cache"
So if you want multiple Rakudos side by side, they're each gonna need their own place to have pre-comp'd things.
lizmat this is just about being able to quickly find whatever pre-comped or source stuff can be found 19:49
jnthn Sure, but we probably want to know to ignore any pre-comp'd stuff built with a different version of Rakudo. 19:50
arnsholt jnthn: Good to know. I won't sink too much time into that project then =) 19:51
lizmat so you're saying that apart from longname/from/auth/version, we also want to remember which version of rakudo is needed (and also the VM I guess)
is that something that can be introspected from a pre-comp'd file? 19:52
jnthn There's no way to do that at present, and it's a bit tricky 'cus the precomp output looks different per VM 19:53
(a PBC on Parrot, a .class on the JVM, etc.)
(uh, typically PIR on Parrot, actually)
lizmat there is no magic header or so?
or would the extension already give it away? 19:54
jnthn Well, the extension gives away VM I guess
I see it more as knowing whether or not you need to load the module from source or if you can use a pre-compiled version 'cus there's one to hand that is good enough. 19:55
lizmat wouldn't different VM's use different @INC directories, though?
jnthn Dunno. :)
Depends how we implement it. that's up to us really.
lizmat understood
there would be something to say for sharing source in @INC between different VM's 19:56
19:57 dmol left
lizmat I mean, in principle, a .pm or .pm6 should be runnable by either rakudo-parrot, rakudo-jvm or niecza, right? 19:58
FROGGS jnthn: is there a way to override a symbol like Any just within a block?
jnthn: like: { use v6; my $a; "$a"; { use v5; "$a"; { use v6; "$a" } } } # warning in the v6 blocks about Any in Str context, but not in the v5 block
I already have my own Any in a v5 block if the variable gets declared there 19:59
lizmat if warnings were enabled in the v5 block, you would get warnings there as well
FROGGS so my question is like: can I have another symbol lookup within a given v5 block?
lizmat: yes, true, is just an example 20:00
lizmat so do you want to stop the warnings in P6, or add the warnings in P5 ?
FROGGS it is not about the warnings, it is about the behaviour at all, like: -"42foo" 20:01
lizmat ah, ok, then I'll shut up :-)
FROGGS this dies in v6 land, but not in v5
so, I want to have a Perl5::Any in v5 which is used instead of Any 20:02
but if a v6 block is inside my v5 block, it should use Any again
like doing an indirect symbol lookup for the Type :/ 20:03
lizmat gotcha
tadzik: I'm in a loop :-( gist.github.com/lizmat/5608798 20:04
afaics it's complaining about something not being in the path, when it is
FROGGS hmmm, the type-lookup should behave more like a dynamic variable 20:06
damn, is that possible at all?
20:06 tgt left
timotimo jnthn: am i correctly assuming that in order to make the ENTER/FIRST code work i'll have to wrap the Block that comes in throught the phaser to add a binding operation to it? otherwise i'm not sure how to do it properly :| 20:06
20:08 chrisdev left
FROGGS timotimo: are you talking about this? method statement_prefix:sym<ENTER>($/) { make $*W.add_phaser($/, 'ENTER', ($<blorst>.ast)<code_object>); } 20:08
timotimo yes, something around that piece
i was mostly staring at the actual add_phaser method in world, though 20:09
FROGGS what are you going to do?
didnt catch your problem
timotimo i know approximately how to emit code that retrieves the stored value, but i do not know how to add the piece of code to the phaser that will store the value in the first place
ENTER and FIRST are currently not allowed in expressions, only as statements
well, they are allowed, but they will always return Nil
FROGGS ahh 20:10
you changed the grammar already?
timotimo no 20:11
i don't really see why i'd need that?
FROGGS ahh, you probably dont have to 20:12
timotimo i'll play a bit of starcraft with a friend before going back to that. if you happen to have an epiphany, i wouldn't mind if you implemented it first ;)
FROGGS will give it a try now :o) 20:13
r: say FIRST 1
camelia rakudo 9c5650: OUTPUT«Nil␤»
FROGGS r: say BEGIN 1 20:14
camelia rakudo 9c5650: OUTPUT«1␤»
timotimo there's a few hints from jnthn in the backscroll that you probably should have a quick look at
FROGGS thx 20:15
ahh, yes 20:16
sounds good
r: say START 1 20:17
camelia rakudo 9c5650: OUTPUT«1␤»
pmurias FROGGS: re Any being looked up differently in your example { use v6; my $a; "$a"; { use v5; "$a"; { use v6; "$a" } } }, where is Any looked up in the v5 block? 20:18
p6eval: my $a;say "$a";
FROGGS pmurias: $a declared in v6 is Any 20:19
and Any.Str should behave differently (at least when warnings are turned off in v5)
pmurias perl6: my $a;say "$a" 20:20
camelia rakudo 9c5650: OUTPUT«use of uninitialized value of type Any in string context in block at /tmp/95uAALhfp9:1␤␤␤»
..niecza v24-51-g009f999: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/lib/CORE.setting line 1355 (warn @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 266 (Mu.Str @ 15) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/RIEq5Pd5Pe line 1 (mainline @ …
pmurias FROGGS: what I suppose we need to make that work is support for "use lax" in rakudo 20:21
lizmat well, maybe… but perhaps this can be fixed ad-hoc by providing a different Any.Str ? or is that exactly the issue? 20:24
FROGGS pmurias: if this would be the only issue I'd say yes, let's change this bit of rakudo 20:25
but think of: { use v5; -"42foo"; { use v6; -"42foo" } } # the v5 one will live while the v6 one will die 20:26
and there are so many differences
... between v6 and v 20:27
5
I cant turn rakudo in a perl5-only interpreter :o)
pmurias we need to have a Perl5 setting
FROGGS jnthn: told me if v5 had its own setting, then you cant use variables from outer scopes 20:29
and this makes v5 a bit useless IMO
pmurias yes
unless we do the lookup in a hackish way
20:29 SamuraiJack joined
lizmat is there a way to quickly determine if a value is a scalar (Int,Numeric,Rational,Str,etc) or not? 20:29
FROGGS Str.Numeric does check what it contains and gives you the proper container 20:31
r: say "1".WHAT; say "1e2".WHAT
camelia rakudo 9c5650: OUTPUT«(Str)␤(Str)␤»
FROGGS r: say "1".Numeric.WHAT; say "1e2".Numeric.WHAT
camelia rakudo 9c5650: OUTPUT«(Int)␤(Num)␤»
lizmat FROGGS++
masak r: say "1".Numeric ~~ Int; say "1e2".Numeric ~~ Num 20:33
camelia rakudo 9c5650: OUTPUT«True␤True␤»
pmurias FROGGS: that is while we would be looking up thing in Perl5 mode when we lookup something from the Perl 6 setting we would instead look it up from the Perl 5 one
masak r: say "1".Numeric ~~ Num; say "1e2".Numeric ~~ Int
camelia rakudo 9c5650: OUTPUT«False␤False␤»
pmurias FROGGS: I think that requires extending QAST
FROGGS :/
tadzik lizmat: hmm 20:34
FROGGS hmmm, if I could dispatch "$a" to another method (P5Str) instead of .Str, then I just would need to mixin other methods 20:35
tadzik lizmat: I'll merge panda2 first, so I don't solve the same problem twice :)
lizmat tadzik: maybe something to look at at the PLPW ?
I'm not in a hurry
tadzik lizmat: that too :) 20:36
some at PLPW, some at YAPC probably
dalek nda: 2857063 | tadzik++ | / (32 files):
WIP
20:38
nda: 092e18d | tadzik++ | / (14 files):
After blood, sweat and tears: panda2

Hopefully unbreak submodules
20:38 dalek left
tadzik hah 20:38
20:39 dalek joined, ChanServ sets mode: +v dalek
lizmat want me to pull and retry? 20:39
tadzik: want me to pull and retry? 20:40
tadzik lizmat: no :( I seem to have broken panda 20:41
submodules
lizmat will wait with pulling, then 20:42
20:42 chrisdev joined
tadzik that should do it
ingy: you can try now
er, lizmat ^
lizmat will do
then just run the bootstrap.pl again? 20:45
tadzik yes 20:46
nothing else should be needed
20:46 pmurias left
lizmat a working rakudo, perhaps :-) waiting for a make to finish 20:47
ingy people always get /me and lizmat mixed up
20:50 SamuraiJack__ left
lizmat tadzik: I've updated the gist gist.github.com/lizmat/5608798 20:51
maybe I should start from scratch?
FROGGS r: for ^2 { say NEXT 1 }
camelia rakudo 9c5650: OUTPUT«Nil␤Nil␤»
lizmat is trying to fix List.gist so that "my @a=Any; say @a" doesn't warn 20:52
20:53 SamuraiJack left 20:54 Timbus left, Timbus joined 20:56 rindolf left
tadzik lizmat: whoa, what's that 21:00
lizmat no idea
perhaps this has to do with all of my patches already been applied :-)
tadzik very odd
lizmat can I do a make distclean? 21:01
tadzik lizmat: does that help if you clean %*CUSTOM_LIB<site> an dthen bootstrap?
masak writes his first 'gather given open($file)' ever
tadzik in panda? Not quite
you can git-clean -fdx if you have no uncommited changes
masak "get_attr_str() not implemented in class 'Coroutine'" :( 21:02
bummer.
lizmat tadzik: Removing .work/ (nl) fatal: Not a git repository: .work/1368996583_2/ext/File__Tools/../../.git/modules/ext/File__Tools 21:03
masak: I've encountered that one a few times already
FROGGS me too
lizmat masak: this is actually an error in the error reporting, it's a rethrow of the real pb
tadzik ¿que? submodules, how do they work :| 21:04
lizmat: rm -rf .work, try again?
masak lizmat: I see. any known workaround (to get the actual error?)
("don't die in a gather", I guess) 21:05
FROGGS --ll-exception?
lizmat look at the stack trace, there are a few empty lines in there before the rethrow
masak yeah, that helps :)
dalek rl6-roast-data: 9a5bbe2 | coke++ | / (4 files):
today (automated commit)
21:06
21:06 gaussblurinc left
lizmat tadzik: bombed again, cleaning out site, trying again 21:07
tadzik :|
all-fresh bootstrap worked here 21:08
dalek kudo-star-daily: 413ddf9 | coke++ | log/ (5 files):
today (automated commit)
tadzik oh!
or not 21:09
lizmat still bombs, but with a nicer message: please make sure site/bin is in your path (when it is) 21:10
tadzik :|
I added 'git submodule init; git submodule update' to bootstrap.pl
but it doesn't seem to do anything. when I run it manually, then it runs
lizmat is not sure how she can help 21:11
tadzik ooooh 21:13
1) it's shell, not run. Run doesn't seem to do anything 21:14
2) it needs to be BEGIN time
dalek nda: 4607cd1 | tadzik++ | bootstrap.pl:
Fix bootstrap.pl, again
21:15
tadzik lizmat: hopefully it works now
lizmat pulled and running again 21:16
tadzik crosses fingers 21:17
21:17 tgt joined
lizmat alas….the first step took a lot longer, presumably because it was talking to github 21:18
tadzik yeah
it means it worked :)
lizmat updated gist gist.github.com/lizmat/5608798 21:19
tadzik /o\ 21:20
lizmat: is there a chance that it's due to your rakudo moduleloader patches? 21:21
lizmat I'll take them out if you're worried about that and test again
tadzik that's the only clue I have. Thanks
dalek nda: 970fe54 | tadzik++ | bootstrap.pl:
Remove leftover code. No functional changes
21:22
lizmat alas, those changes I actually managed to keep out of my nom 21:23
(the pull requests were dirty, but it was still in a branch only)
so in that respect, my rakudo is clean
21:23 colomon left
tadzik :( 21:24
I have no idea what's happening
lizmat ok, then forget about it now 21:25
tadzik well, I probably broke panda for everyone :)
I can hopefully look at it tomorrows
lizmat maybe other people will not find the pb, then we can look at it at the PLPW
masak rn: sub foo { return "OH HAI" }; class B { has Str $.foo; method greet { say $.foo } }; B.new(:foo(foo)).greet 21:26
camelia rakudo 9c5650, niecza v24-51-g009f999: OUTPUT«OH HAI␤»
masak for a while I got to thinking that there's a shorter way to write that than ':foo(foo)', but I think not, on reflection. 21:27
lizmat instead of :$foo, :&foo ?
short for :foo(foo) ? 21:28
21:28 gaussblurinc joined
tadzik rn: sub foo { return "OH HAI" }; class B { has Str $.foo; method greet { say $.foo } }; B.new(:&foo).greet 21:29
camelia rakudo 9c5650: OUTPUT«Type check failed in assignment to '$!foo'; expected 'Str' but got 'Sub'␤ in block at src/gen/CORE.setting:770␤ in method BUILDALL at src/gen/CORE.setting:753␤ in method bless at src/gen/CORE.setting:743␤ in method new at src/gen/CORE.setting:728␤ in method n…
..niecza v24-51-g009f999: OUTPUT«sub foo(Any \$_) { ... }␤»
masak lizmat: nope, that passes the Sub instead of calling it. 21:30
lizmat: it's the result of the sub I want to pass. and that's why I no longer think there's a sugar for it.
lizmat it *almost* does what you want:
r: sub foo { say "hi" }; say (:&foo).perl
camelia rakudo 9c5650: OUTPUT«"foo" => sub foo() { ... }␤»
lizmat r: sub foo { say "hi" }; say (:->foo).perl # :-> perhaps? 21:32
camelia rakudo 9c5650: OUTPUT«===SORRY!===␤Bogus statement␤at /tmp/a9jjVORCdO:1␤------> sub foo { say "hi" }; say (⏏:->foo).perl # :-> perhaps?␤ expecting any of:␤ argument list␤ prefix or term␤ prefix or meta-prefix␤ parenthe…
jnthn r: use MONKEY_TYPING; augment class Pair { method postcircumfix:<( )>(|) { self.key => self.value().() } }; sub foo { say "hi" }; say (:&foo()).perl 21:34
camelia rakudo 9c5650: OUTPUT«hi␤"foo" => Bool::True␤»
jnthn :P
[Coke] rakudo failures: S32-hash/delete-adverb.t (Wstat: 0 Tests: 88 Failed: 3) Failed tests: 16, 34, 48
lizmat [Coke]: probably me again, lemme check 21:35
:p:delete , the delete is triggered, but the :p not 21:37
21:38 gaussblurinc left 21:39 gaussblurinc joined
lizmat (building a new rakudo) 21:42
dalek ast: 552c0ba | (Elizabeth Mattijsen)++ | S32-hash/delete-adverb.t:
Fudging some more :delete:p tests

They broke differently than expected.
21:48
21:52 adu left 21:54 [particle] left 21:56 kurahaupo joined 21:58 ifim`` left
lizmat jnthn: wrt to (:&foo()), you'd maybe also want to pass parameters there? 22:00
jnthn lizmat: You could fiddle my hack to do that too :) 22:01
lizmat and also: was that serious enough for me to want to create a pull request for that ?
22:01 spider-mario left 22:03 lustlife left
jnthn lizmat: No, I don't really thing that should go into the language :) 22:04
For one because it doesn't actually Do The Right Thing with regards to its behavior in a parameter list.
lizmat fwiw, the syntax feels logical to me
jnthn If it's gonna go into the language proper it needs to go in deeper than that. 22:05
lizmat the way it would be solved, would be less… hmmm….
jnthn I'd guess getting grammar/action support.
It may not be hard to do.
lizmat ok
jnthn Just comes down to language design really :)
So, it's a TimToady++ call if we want it :) 22:06
lizmat but if it would be part of the language design, would this approach be the way to do it?
jnthn "this approach" as in the syntax, or as in my hack to make it pretend to work? :) 22:07
lizmat the hack 22:08
jnthn No, I don't think it should be done like that.
lizmat ok, just checking...
jnthn foo(:&bar) # this actually passes a named arg
FROGGS augmenting is just for testing basically
jnthn My hack would not do so.
lizmat and trying to understand things
jnthn It's not just that. If it's going to actually work as a named arg it needs language support. 22:09
masak rn: my $x, $y = 1, 2;
camelia niecza v24-51-g009f999: OUTPUT«===SORRY!===␤␤Variable $y is not predeclared (declarators are tighter than comma, so maybe your 'my' signature needs parens?) at /tmp/leVG36VKkG line 1:␤------> my $x, ⏏$y = 1, 2;␤␤Potential difficulties:␤ $x is declar…
..rakudo 9c5650: OUTPUT«===SORRY!===␤Variable '$y' is not declared␤at /tmp/lR5HOXq02u:1␤------> my $x, $y⏏ = 1, 2;␤ expecting any of:␤ postfix␤»
masak would love to see a more awesome error in rakudo here, just like in Niecza
lizmat rn: our $x, $y = 1, 2; 22:10
camelia rakudo 9c5650: OUTPUT«===SORRY!===␤Variable '$y' is not declared␤at /tmp/eY8A208dRO:1␤------> our $x, $y⏏ = 1, 2;␤ expecting any of:␤ postfix␤»
..niecza v24-51-g009f999: OUTPUT«===SORRY!===␤␤Variable $y is not predeclared (declarators are tighter than comma, so maybe your 'our' signature needs parens?) at /tmp/JnE8P0_9tL line 1:␤------> our $x, ⏏$y = 1, 2;␤␤Unhandled exception: Check failed␤␤ …
lizmat it actually gets the my/our right :-) 22:11
FROGGS timotimo: NYW (not yet working): gist.github.com/FROGGS/0b7ba3f5aa3620a1d932 22:13
timotimo: but the ast shows that an $INIT_1 is declared
timotimo FROGGS: jnthn noted that it shouldn't be lexical, so that things don't explode when recursing etc, is that a concern? 22:23
jnthn It can be a local, not a lexical. 22:24
Then it won't pollute things.
s/can/should/
masak "local" is a special case of "lexical".
where you don't have to jump up scopes to find stuff. 22:25
jnthn Well, where it's not visible to nestd scopes.
And will never live beyond the current invocation record. Or at least, need not.
masak *nod* 22:27
so, it's a special case which an optimizer (or a clever enough compiler) can find. :)
jnthn Yes, we likely need to start being quite aggressive about that particular optimization. 22:28
timotimo like if a block has nothing in it?
no other scopes, i mean
jnthn Yeah. Well, closure-like scopes. 22:31
FROGGS but there must be another thinko if it isnt working as a lexical... 22:32
22:33 gaussblurinc left
lizmat r: my %h= ("a",1).hash(Any) 22:43
camelia rakudo 9c5650: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in method hash at src/gen/CORE.setting:1347␤ in block at /tmp/Vvpadii8DW:1␤␤»
lizmat would that make sense to create typed hashes on the fly ?
masak lizmat: I think I'd rather see a named parameter... .hash(:of(Any)) 22:58
lizmat: and it should maybe work for .Hash and Hash.new as well.
lizmat no, that's not what I meant… not the restriction on values, but the restriction on keys, aka a typed hash
masak oh, right. 22:59
lizmat but your point is taken.. :-)
masak we don't have a corresponding word to 'of' to talk about keys, do we?
lizmat what's the difference between .hash and .Hash
jnthn Or a coercer... .Hash[Int, Any]
sleep...'night 23:00
lizmat no, that part seems underspecced, and underdeveloped :-)
FROGGS night
masak lizmat: I don't know -- I sometimes find all those methods confusing.
lizmat goodnight jnthn!
masak lizmat: I know with .list and .List there are subtle differences in itemization.
lizmat ok, will check that
masak lizmat: there used to be a method .true which boolified things, so it was the lower-case method corresponding to .Bool -- but nowadays it's called .so and has an opposite .not 23:01
'night, #perl6 23:02
lizmat night masak!
23:03 tgt left
lizmat there is no way to roundtrip typed hashes: 23:03
r: my %h{Any}; say %h.WHAT; my %i= eval %h.perl; say %i.WHAT # not the same
camelia rakudo 9c5650: OUTPUT«(Hash+{TypedHash})␤(Hash)␤»
23:03 tgt joined
dalek kudo/nom: 849f4f6 | (Brent Laabs)++ | src/core/IO.pm:
fix thinko in dir(), bug found by dagurval++
23:16
kudo/nom: 0c14997 | (Brent Laabs)++ | src/core/IO.pm:
Merge pull request #153 from labster/nom

fix thinko in dir(), bug found by dagurval++
23:26 SHODAN left 23:30 Shozan joined, arlinius left 23:32 chrisdev left 23:33 raiph left 23:37 Shozan left 23:41 Shozan joined
dalek ast: 4cb3a59 | (Brent Laabs)++ | S32-io/dir.t:
unfudge rakudo dir.t, add more dir() tests
23:51
23:53 sqirrel left 23:55 arlinius joined