»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:08 stkowski left 00:10 cdarroch left 00:20 Alias_ left
sorear does nobody here understand mail etiquette? :/ 00:33
sjohnson which part in particular? 00:35
sorear I have a reply to a thread 00:36
But the reply has broader scope than the thread
I want to send it to a different list
Should I break the thread? Should I crosspost it?
TimToady just break the thread, and maybe leave a short note in the other place 00:37
sjohnson just include the relevant info from the first thread, and start a new one
TimToady he wants to change mailing lists too
sorear ok.
00:41 gdey_ left
sorear ok, I have just posted to p6l 00:41
sjohnson hows TimToady 00:42
00:42 gdey_ joined 00:44 porter235 joined 00:47 Chillance left 00:48 porter235 left 00:51 icwiener left 00:54 coldhead left 00:56 coldhead joined
sorear is playing "strip 1000s of lines out of STD to locate a bug in the compiler" 01:02
01:03 rgegregre joined, rgegregre left 01:05 plobsing left
sorear it seems as though #`「」 is slower than just commenting out every line with # 01:06
TimToady unicode issue maybe 01:08
TheMartianGeek You know something I just thought of? 01:09
Is there any plan for Perl 6 to have multi-line comments? 01:10
01:10 plobsing joined 01:11 woosley joined
sjohnson TheMartianGeek: yes 01:13
already done
#<...> i think
TimToady that is precisely what sorear++ was referring to 01:14
TheMartianGeek Yeah, his commentis what reminded me.
TimToady sjohnson: but requires a ` these days
TheMartianGeek *comment is
Util TheMartianGeek: perlcabal.org/syn/S02.html#Whitespa...d_Comments 01:15
TimToady bbl &
sjohnson oh.. backtick... oopsies
01:16 plobsing left 01:20 jevin left
sorear aha 01:20
niecza isn't currently ignoring module-name adverbs correctly 01:21
01:22 stephenlb left, stephenlb joined 01:26 kunwon1 left
dalek ecza: 8d802f6 | sorear++ | src/niecza:
Fix adverb stripping for STD:...
01:36
01:37 mtk left 01:40 GinoMan joined 01:46 mtk joined
sorear hello GinoMan 01:47
jasonmay fellow cplugger? 01:48
GinoMan hello Sorear 01:51
yes
brb.. 01:52
sorear jasonmay: what's a cplugger?
jasonmay sorear: cplug.net/wp/
sorear also, how long have you been here? :)
jasonmay no idea! 01:53
sorear ah.
jasonmay I haven't been to a meetup in months, I just see GinoMan pop into the irc chnnel every once in a while 01:54
01:58 stephenlb left 01:59 whiteknight left 02:00 noganex_ joined 02:01 plobsing joined 02:02 noganex left
sorear jasonmay: I just think I rememeber the nick... was he from ih? 02:06
02:11 jferrero left, TheMartianGeek left 02:12 __rnddim__ is now known as lue
GinoMan it's ok, neither have I 02:16
Jasonmay: did you see the one about Grub2/
?*
02:18 Tedd1 left 02:21 lichtkind joined 02:22 lichtkind left
jasonmay sorear: not sure 02:30
GinoMan: I didn't. I'm hoping I can talk about my termcast project one of these meetups :)
GinoMan I was the speaker for the grub2 meeting, that's why I asked 02:32
what's termcast? 02:34
dalek ecza: ddcccac | sorear++ | lib/Kernel.cs:
Fix Match.[0] dying
02:38
ecza: 82bb637 | sorear++ | / (2 files):
Update bootstrap to one built against the 2.0 runtime
sorear takadonet: ping
jasonmay GinoMan: broadcast your terminal across the internet 02:39
for demos, pairing, etc. working on a telnet version and web version
sorear doesn't have anything interesting to demo atm :/ 02:42
02:45 porter235 joined
GinoMan ahhh 02:47
screen as an example?
02:49 porter235 left 02:50 mberends joined
sorear GinoMan: ? 02:52
GinoMan a late friend of mine from PLUG used it to show me how to set up kde4 while it was still in beta 02:53
sorear so you don't need a demo? 02:55
GinoMan of termcast 02:56
?
sorear yes 02:57
PerlJam pmichaud++ (his answer to sorear is almost exactly the one I was going to type :) 03:02
sorear: the only difference between pmichaud's version of "forgiveness over permission" and mine is that I would discuss it a bit on #perl6 first (maybe try to get a feel for TimToady), but ultimately change the spec if that's what you think is needed and you don't have any feedback about it 03:05
03:07 dsp_ left 03:12 takadonet1 joined, dsp_ joined
takadonet1 sorear: i been summoned 03:12
sup?
building now 03:15
03:19 fisted_ is now known as fisted 03:21 nymacro joined
sorear takadonet1: just going to tell you that the build issues seem to be resolved. 03:26
takadonet1 sorear: thx 03:27
build nice on my machine :)
sorear o/s?
takadonet1 ubuntu
03:30 entel left 03:32 jaldhar joined 03:36 TheMartianGeek joined
sorear hello TheMartianGeek 03:43
03:45 TheMartianGeek left
TimToady oh the subject in question, I've been trying to limit prefix ops to the ones normally seen as unaries in math, or that are basic functors like "temp"; sleep doesn't seem to rate that level of universality 03:55
03:56 satyavvd joined
dalek ecza: fc0955e | sorear++ | t/spectest.data:
Remove test which only passed by accident.
04:05
ecza: 55abf9d | sorear++ | TODO:
Add TODO items for features used by Yapsi
04:06 agentzh joined, jevin joined
lue Hello World o/ I came by just to say that Doctor Who airs 23 April! 04:08
sorear topic?
diakopter lue topic :) 04:09
04:15 takadonet1 left
lue I admit it's OT, I just wanted to share :) . 04:17
coldhead doctor who is more on-topic than that weird harry potter fanfic 04:20
04:20 ponbiki left
coldhead doctor who probably uses perl6 04:20
PerlJam Larry Wall is Dr Who
04:22 ponbiki joined
lue Well, it suddenly becomes way more on-topic if I mention masak's program tardis . But I won't mention it. 04:32
04:32 [particle]1 left 04:36 [particle] joined 04:38 donri left 04:40 sftp left 04:46 [particle]1 joined 04:47 [particle] left 05:15 Holy_Cow joined
mberends tardis has never been mentioned in #perl6, if you use a tardis to go back to before it was ever mentioned 05:17
05:18 Holy_Cow left 05:21 _twitch joined, benabik left 05:31 kaare_ joined 05:33 GinoMan is now known as GinoAFK 05:35 orafu left, arnsholt left 05:37 snearch joined 05:39 arnsholt joined 05:57 GinoAFK left 06:03 petdance left
moritz_ good morning 06:04
06:07 zorgnax joined 06:24 zorgnax left 06:26 kst` joined
sorear hi moritz_ 06:27
06:27 kst left 06:29 xinming_ joined
dalek albot: de1a65e | sorear++ | build-scripts/rebuild-niecza.sh:
For niecza build, also pre-build bundled libraries.
06:30
sorear niecza: use Threads; my $p = ::Threads::ObjectPipe.new; ::Threads::Thread.new({ $p.put($_) for ^* }); loop { say $p.get } 06:31
p6eval niecza v3-65-g55abf9d: OUTPUT«(timeout)tance>␤»
06:32 xinming left
mberends \o moritz_ 06:32
sorear niecza: use Threads; my $p = ::Threads::ObjectPipe.new; ::Threads::Thread.new({ $p.put($_) for 0..* }); loop { say $p.get } 06:33
p6eval niecza v3-65-g55abf9d:
..OUTPUT«(timeout)␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤43␤44␤45␤46␤47␤48␤49␤50␤51␤52␤53␤54␤55␤56␤57␤58␤59␤60␤61␤62␤63␤64␤65␤66␤67␤68␤69␤70␤71␤72␤73␤74␤75␤76␤77␤78␤79␤80␤81␤82␤83␤84␤85␤86␤8
sorear moritz_: was it you who wanted object pipes? 06:34
TimToady as if there were only one person who ever wanted object pipes... 06:39
06:39 Khisanth joined
moritz_ sorear: yes 06:40
TimToady (object pipes is why we have feed operators in the first place...)
sorear TimToady: who invented perl6 object pipes? 06:42
TimToady bows 06:43
sorear ah.
unrelated: how should 'our proto sub' work?
TimToady they've been in the design for man years...
well, poorly... :) 06:44
sorear suppose A.pm defines our proto sub GLOBAL::foo ...
and B.pm defines our sub GLOBAL::foo ...
does it matter whether use A or use B comes first? 06:45
TimToady I think the linker should probably refuse to unify those two names
sorear I still have only a tenuous understanding of our-linkage
I get the feeling that the linking process should be order independant 06:46
TimToady that would be nice
sorear stash merging should be associative and commutative
TimToady different modules will have different subsets of GLOBAL, and these have to be merged somehow, so I'm in favor of order-less-ness if we can do it 06:47
sorear I guess it would be possible to say "multi may only be omitted if the proto is visible at BEGIN time"
TimToady like role composition, better to blow up than to leave a semantic timebomb in there
sorear right now the biggest semantic rough spot I have is with the import/export system 06:48
TimToady well, sure, but it the omission of 'multi' would merely be erroneous
sorear class Foo is export { } wants Foo:: to show up in three places
TimToady: well, if you omit multi and there's no visible proto, you get an only sub, and the linker will refuse to unify an only with a proto 06:49
06:49 wtw joined
TimToady well, we'll catch what we can, and leave the rest for St Erroneus 06:49
sorear out 06:53
moritz_
.oO( gotta catch 'em all! )
06:57
07:01 mberends left 07:11 noganex_ is now known as noganex 07:12 Mowah joined 07:24 gdey_ left 07:27 cjk101010 joined 07:28 gdey_ joined 07:29 fhelmberger joined 07:31 jaldhar left, jaldhar joined 07:41 [particle]1 left 07:59 justatheory left 08:04 cjk101010 left 08:11 cjk101010 joined 08:17 shi joined 08:23 masak joined
masak g'day, zebs. 08:23
jmm_ hi ! 08:24
sjohnson hello 08:25
hi masak, long time no see
masak sjohnson: $dayjob is eating my tuits lately. 08:26
sjohnson doesn't understand "tuits"
tuition fees? :<
masak you know when you say "I'll get around to it"?
sjohnson ahh yeah
i got a whole text file of those 08:27
masak well, when you get around to it, you get... a round tuit. :P
sjohnson heh
ive been doing a lot of p5 lately
masak me too.
sjohnson starting to realize perl 5 is more advanced than i thought... even though i thought it was advanced before
masak exactly :)
it's a fine language.
sjohnson it's like peeling an orange, as some eastern religions say
err, peeling an onion i mean 08:28
masak :P
you're funny :)
sjohnson i guess that's why mr wall said "state of the onion"
probably not, but i can see the parallel!
masak also, because Perl can make you cry...? ;)
sjohnson haha that too!
masak I consider Perl 5 to be a really solid consolation prize while we're building Perl 6. 08:31
with Moose, that's even truer.
sjohnson: did you see the Yapsi release last week? 08:34
sjohnson admittedly, i haven't been checking out much p6 development, mostly cause i keep forgetting how to code in it. *whips himself* 08:35
masak aww. 08:36
yeah, like with every language you have to keep it fresh in mind.
sjohnson i do keep it in mind though... mostly cause p6 has some severe improvements to simple things i want to see in Perl, namely: being able to do p5's qx//; in list context.
even though p5's depth is far greater than my puny mind can fathom, forgetting to have a qx// version of system() in p5 is a huge mistake IMO 08:37
but i think p6 solves this
masak &run (the new name for &system) has been criticized lately.
I think it was Tene who didn't like it. 08:38
I didn't understand the exact nature of the suggested improvement, though.
Tene masak: it's asking for shell injection and quoting errors. 08:46
masak right. that's the problem specification. 08:47
I got that part.
but I can't turn that into a spec change :/
08:49 marietta joined, shi left 08:51 amkrankruleuen left 08:52 marietta left 08:54 marietta joined 09:04 Mowah left
masak in SQL, prepare_statement helps avoid injection and quoting errors. I can't imagine a similar construct being useful/desirable for shell commands. 09:06
especially since the balance is very much tilted to the side of ease-of-use.
09:08 amkrankruleuen joined 09:14 marcio_ferreira left 09:17 woosley left 09:22 Axius joined
sjohnson Tene: do you agree with me? or have i missed the big picture 09:23
09:25 mtk left 09:27 orafu joined 09:31 shi joined 09:33 mtk joined 09:34 masak left 09:43 snearch left 09:55 tzhs joined 09:57 dakkar joined 09:58 Axius left 09:59 Axius joined
sjohnson well, likes i have! night night 09:59
jnthn morning, #perl6 10:00
10:01 Chillance joined
moritz_ morning jnthn 10:02
tadzik morning @all
10:06 tzhs left 10:13 domidumont left 10:20 orafu left 10:23 nymacro left 10:25 Axius left, nymacro joined 10:30 cosimo left 10:34 cpk joined
cpk hi there 10:35
sorear : your fix for mono 2.0 seems to fix my issue with .net 4 on windows
10:36 Bo3Bo3 joined
moritz_ \o/ 10:36
10:36 Bo3Bo3 left
cpk sorear: i can now run niecza, but it seems to have parsing issues 10:36
i tried your rpg example
Tene phenny: tell masak to look at perldoc -f system. You need to accept a *list*, not a string. If you want ease of use, we already have nice list quoting semantics you can use. If you really do want interpretation by a shell, call that specifically, or have a separate function for it
phenny Tene: I'll pass that on when masak is around.
cpk here is the error 10:37
←===←SORRY!←===← Any()Strange text after block (missing comma, semicolon, comment marker?) at .\rpg.pl line 11: ←--> ←}←?← Parse failed
Tene phenny: tell masak that if you accept a list, then there are no quoting concerns whatsoever, and you avoid a shell exec at the same time. So much easier to deal with. You also don't have to be aware at all of the quoting behaviour of the shell, be aware of variation between OS, etc. 10:38
phenny Tene: I'll pass that on when masak is around.
cpk sorear: same issue with a simple hello sub 10:39
niecza: sub hello() { say "hello"; } hello();
p6eval niecza v3-65-g55abf9d: OUTPUT«===SORRY!===␤␤Any()Strange text after block (missing comma, semicolon, comment marker?) at /tmp/NyPB_gB5Ot line 1:␤------> sub hello() { say "hello"; }⏏ hello();␤␤Parse failed␤␤»
moritz_ spectests are totally broken too 10:40
cpk moritz_: ok
moritz_: something stupid maybe
Tene phenny: ask masak if that helps enough, and tell him that I'd be glad to continue in whatever depth he'd like.
phenny Tene: I'll pass that on when masak is around.
Tene phenny: thanks. 10:41
cpk moritz_: talk to you later, bye
10:41 cpk left
moritz_ Tene: I agree, and I don't like p5's behaviour 10:41
where the first argument to system is shell-interpreted in the absence of more list items 10:42
maybe run($command, @args) and run($expr, :shell)?
Juerd I think the default should really be to use the shell 10:43
Don't forget that perl's popularity is in part because of the powerful oneliners you can write with it.
10:44 orafu joined, domidumont joined
Juerd I'd even argue for different identifiers: shell($s) versus run($c, @a) 10:44
moritz_ +1 to different routine names 10:45
10:45 daxim joined, tzhs joined
Tene Juerd: Yes, exactly. 10:46
although I'd name the former something like &please-inject-me-harder
moritz_ security-hole-shell($expr) 10:47
Tene phenny: tell masak that I also dislike the special one-arg case of &system, especially the overloading. If we do keep a wrapper for invoking the shell, it needs its own (preferrably-dehuffmanized) name. 10:48
phenny Tene: I'll pass that on when masak is around.
moritz_ I don't actually think it must be dehuffamized 10:49
Tene moritz_: Sure. I certainly don't want to push hard on that point specifically.
Juerd Tene: For huffmanization I'd suggest &ouch 10:50
That's just as short as &shell :)
Tene moritz_: there are some notable questions there, though. Which shell does it use? sh? bash? user's login shell? something based on the OS? What does it do on windows? How do you specify a different shell?
If we're keeping a "shell exec" function, those need to be answered, at least. 10:51
moritz_ the "default system shell", whatever that is
Tene Juerd: IMO, run('bash', '-c', ...); is not that long to type if you want that.
moritz_ (cmd on windows, /bin/sh on unix)
Juerd Tene: But it is.
Tene Juerd: I don't follow. Can you explain further? 10:52
Juerd Tene: It is long, and hinders quick and dirty oneliners.
moritz_ S29 is very confusing 10:53
Tene Juerd: you mean, things you run from the shell? Where you could just use the actual shell itself? ;)
Juerd: That disagrees with my experience, fwiw.
Juerd Tene: Yes. It's useful to do a perl -e' ... system(...) ...'
10:53 ab5tract joined
Tene Juerd: I've done that plenty of times, and every time it's been the list form of system. 10:54
Juerd Well, good for you
I'm used to those complex tasks that are very hard to express without shell syntax
Tene Juerd: I'm not trying to tell you that you're wrong, as I'm not confident whatsoever that my experiences are universal.
moritz_ finds both list form and shell form useful 10:55
Tene Juerd: I'm hoping to understand where your experiences differ from mine.
moritz_ std: multi run( ; Str $command,) { }
p6eval std 4608239: OUTPUT«===SORRY!===␤Malformed parameter at /tmp/7nQLloyOVB line 1:␤------> multi run( ⏏; Str $command,) { }␤ expecting any of:␤ name␤ parameter␤ signature␤Parse failed␤FAILED 00:01 120m␤»
moritz_ wtf is that ; doing in S29?
Juerd system "tar cz $dir 2>/tmp/$logname | sudo -u $localuser ssh $remoteuser\@$remotehost 'do something'" 10:56
Good luck trying that with the list syntax.
And even if the same thing were really easy to do with Perl syntax, I'd still use the shell line because I've already learned that one and don't want to learn another syntax. (This is also why I don't use SQL::Abstract that much.) 10:57
Tene Hmm. Okay. For things like, I've always used abstractions from the shell, I guess. I think I understand better now. 11:06
jnthn moritz_: It's some (conjectured, not even spec'd, iirc) multi syntax.
Tene I *do* think that run() or whatever needs to work well with pipelines, though.
sorry, feed operators 11:07
dalek ecs: 53821ac | moritz++ | S29-functions.pod:
[S29] reworked external command execution

after discussions with Tene++ and Juerd++ I am convinced that it is best to separate run() and shell(), where the former roughly corresponds to p5s system(LIST), and the latter to system(SHELL_EXPR).
Also removed some outdated note, and added conjecture about :$cwd
Tene run(<tar cz>, $dir) ==> run(<sudo -u>, $username, $cmd);
moritz_ for your considerationi.
daxim good that "run" is shorter than "shell" 11:08
Juerd And shell is shorter than system. Win!
daxim hi5
moritz_ it seems people like my change. \o/ 11:09
Tene: the problem with run() and feeds is that running a shell results in two output streams 11:10
so we have no elegant way to work with both of them 11:11
Tene moritz_: you may notice that as specced, I just fed the return code from the command into the next command.
so, that's not the only problem.
moritz_ yes, I know
currently you'd need to add :bg
but it's one of the reasons I've decided not to go with an even more radical change for now 11:12
Tene moritz_: you may want to add a :shell arg to &shell, perhaps
moritz_ Tene: or you might :-). I didn't see much value, because if you select another shell explicitly, you can just as well do run('bash', '-c', ...) 11:13
Tene moritz_: Sure, that's what I'd do, but my intuitions aren't necessarily that useful here. :) 11:14
moritz_ Tene: and you'd force the runtime to know about more shells, or assume default behaviour ('-c' for example), and I don't like that
colomon rakudo: say <a c g t>.roll(200) 11:16
p6eval rakudo a38d45: OUTPUT«tttgtccctggccacgacgttctactatatgttaatgaaacgtaaggaattgcgttggccaagaaacgtccttttcacagatacccgtcgtacctgattaccgctgtagggcgctttttccggctggggcgcgcgtgtctgttggccgggccctacgtaggcctataacggaaagatttgtaccaaattctactacgagg␤»
moritz_ colomon: more benchmarks?
colomon yup. 11:17
want to see whether your code's advantage with the "DNA" test holds up as things get longer. :)
moritz_ colomon: you are admirably thorough in your investigations 11:18
11:18 Bzek joined 11:19 lateau joined 11:27 Alias joined
colomon moritz_: so far, my version has a crushing advantage in longer text tests, but yours edges it out in the DNA tests. 11:32
11:32 plobsing left
moritz_ presumably due to the small character set 11:33
11:35 plobsing joined, ab5tract left 11:36 ab5tract joined 11:37 icwiener joined 12:25 sftp joined 12:32 kvakvs joined 12:33 marietta_ joined 12:34 marietta left, marietta_ is now known as marietta 12:45 _twitch left
takadonet morning all 13:02
13:04 coldhead left 13:11 woosley joined 13:19 agentzh left 13:22 MayDaniel joined
[Coke] Hio. 13:26
moritz_ \o 13:27
colomon o/ 13:31
13:33 huf left
colomon phenny: tell mberends Do you want me to post the results for your p5 program? It's a cool idea, but actual performance is pretty dire, I fear... 13:36
phenny colomon: I'll pass that on when mberends is around.
13:44 GinoMan joined 13:45 mberends joined
mberends \o 13:46
phenny mberends: 13:36Z <colomon> tell mberends Do you want me to post the results for your p5 program? It's a cool idea, but actual performance is pretty dire, I fear...
mberends colomon: no objection to posting, as long as you separate it somehow from the coding contest. I blame the dire performance on the implementation problems (workman, tools... ;) 13:49
13:49 satyavvd left, GinoMan left
mberends (of course I cannot resist doing a C version for comparison, may finish that later today) 13:51
13:56 p3n left
tadzik so, run() semantics are now an LHF? :) 13:57
moritz_ moreorless 14:00
tadzik oh, :$cwd feels so rightish
or rather useful, at least I find it so
moritz_ that's why I included it :-) 14:01
tadzik I have lotsa < indir "foo", { system("blah") }; >
s/system/run/
moritz_ I just looked into regexes remembering their source string 14:03
seems nontrivial
there are only a couple of calls to Regex::P6Regex::Actions::buildsub()
where i could just provide a portion of the source code
but that thing constructs a PAST::Block
and I don't know how to make that emit a code object with an additional data attribute 14:04
14:08 kvakvs left, [particle] joined 14:11 plainhao joined 14:14 kvakvs joined 14:21 masak joined
masak \o/ 14:21
phenny masak: 10:36Z <Tene> tell masak to look at perldoc -f system. You need to accept a *list*, not a string. If you want ease of use, we already have nice list quoting semantics you can use. If you really do want interpretation by a shell, call that specifically, or have a separate function for it
masak: 10:38Z <Tene> tell masak that if you accept a list, then there are no quoting concerns whatsoever, and you avoid a shell exec at the same time. So much easier to deal with. You also don't have to be aware at all of the quoting behaviour of the shell, be aware of variation between OS, etc.
masak: 10:40Z <Tene> ask masak if that helps enough, and tell him that I'd be glad to continue in whatever depth he'd like.
masak: 10:48Z <Tene> tell masak that I also dislike the special one-arg case of &system, especially the overloading. If we do keep a wrapper for invoking the shell, it needs its own (preferrably-dehuffmanized) name.
masak moritz_++ # spec change
moritz_ thanks
masak haven't read it yet, but the summary looks promising.
Tene++ Juerd++ # creating discussion that lead to the spec change 14:22
tadzik hah, just got my T-shirt from Google :) Sent for some guy named "So?nierz" 14:23
moritz_ :-)
I got mine yesterday
14:23 _twitch joined
masak tadzik: now that I can parse your last name, I don't find it particularly difficult to pronounce. 14:23
tadzik: but then again, I'm used to the "rz" sound from other languages. 14:24
xinming_ Is there a way to use perl 6 it self as a template system?
14:24 spq joined
masak xinming_: yes. 14:24
xinming_: could you be more specific?
moritz_ masak: correct answer :-)
xinming_ Or wether there is a template system for perl 6 already. :-)
masak: I mean like Template::Toolkit 14:25
masak xinming_: I recommend looking at Hitomi in the Web.pm repository.
xinming_: it's my best bet for a templating system.
xinming_ masak: thanks
moritz_ xinming_: does it need to be as broken as Template::Toolkit?
xinming_ perl 6 has really a big progress.
masak aye.
tadzik masak: it was a nice experience to see you guys fighting the Polish pronounciation. I was especially impressed with your morale against "tadzik" :)
xinming_ I just try to use perl 6 to write some simple script, For learning perl 6 while getting something done. :-) 14:26
masak tadzik: my "morale against 'tadzik'"?
tadzik: was that really me?
tadzik erm, I mean the willpower to say this :) I thought you will default to "Ted" :) 14:27
moritz_ rakudo: my $mess = -> |$/ { "My $0 has $1" }; say $mess('dog', 'fleas')
p6eval rakudo a38d45: OUTPUT«My dog has fleas␤»
14:27 gimix left
masak tadzik: oh! 14:28
moritz_ rakudo: my $mess = -> |$/ { "My $<who> has $<what>" }; say $mess(:who<dog>, :what<fleas>)
masak tadzik: for some reason, I keep using people's nicks as primary keys in the db of my brain.
p6eval rakudo a38d45: OUTPUT«My dog has fleas␤»
masak moritz_: :)
tadzik masak: hah. I thought everyone will be calling you "masak" :)
moritz_ just rehearsing some ideas by TimToady++
xinming_ masak: github.com/masak/web.git <-- Is this reop what you mean?
masak xinming_: yes. 14:29
xinming_ thanks
moritz_ tried real hard to call masak "Carl" IRL
xinming_ damn, too much things to learn.
masak moritz_: so does mberends.
tadzik moritz_: same here. I even succeeded once or twice
moritz_ and "jnthn" is a bit hard to pronounce :-)
xinming_ masak: Is it a framework?
masak moritz_: I don't mind being called either "Carl" or "masak" AFK.
moritz_: here on #perl6 I vastly prefer "masak".
xinming_ or it's just pieces of code for fun?
masak xinming_: Web.pm? it's something like a collection of webby things. 14:30
tadzik mberends copes well with this. I remember when I was talking to him on the airport waiting for you two, he was using the "Carl" form, and I thought "oh man, I'll have to get used to not call him „masak”" :)
xinming_ masak: Why do you call it web.pm? >_<
masak xinming_: old habit.
xinming_ hm, Ok, thanks, Seems got it.
It seems the Web.pm will be the future catalyst. :-) 14:32
moritz_ doubts that
masak something like that was once the idea. 14:33
mberends it would seem puerile to call people by their nicks IRL
masak but we never got to the Catalyst part.
moritz_ to me it seems a bunch of mostly rotting modules
masak mberends: maybe it's your grown-up perspective that makes it seem puerile. :)
tadzik :D
masak mberends: to me it seems like an elevation of someone's online identity.
mberends that's why I don' t say 'Kolomon'
moritz_ mberends: I wouldn't mind, depending on how you pronounce the _ :-) 14:34
masak mberends: I noticed.
jnthn
.oO( gee, I hope I didn't call mberends "mberends" during the last week :) )
masak moritz_: :P
jnthn: that would have been highly mberendsing...
jnthn :P
tadzik mbrarassing :)
moritz_ mberends: I thought so too, but I've realized that in Perl 6 land, my nick is my real name (just not my legal name)
xinming_ @_@ Even - is valid variable names. >_<
mberends moritzshhhhhh 14:35
moritz_ xinming_: in Makefiles maybe :-)
arnsholt xinming_: the - is superior to _ if you ask me =)
(But in Perl 6 they're not entirely interchangeable, mind)
moritz_ rakudo: say 5 - 3 14:36
p6eval rakudo a38d45: OUTPUT«2␤»
moritz_ rakudo: say 5 _ 3
p6eval rakudo a38d45: OUTPUT«===SORRY!===␤Confused at line 22, near "say 5 _ 3"␤»
moritz_ :-)
xinming_ rakudo: my $hello-world = "hello" $hello-world.say;
p6eval rakudo a38d45: OUTPUT«===SORRY!===␤Confused at line 22, near "my $hello-"␤»
xinming_ rakudo: my $hello-world = "hello"; $hello-world.say;
p6eval rakudo a38d45: OUTPUT«hello␤» 14:37
xinming_ I mean the - in variable name, Not as variable
rakudo: my $hello- = "hello"; $hello-.say;
p6eval rakudo a38d45: OUTPUT«===SORRY!===␤Confused at line 22, near "my $hello-"␤»
xinming_ people from perl 5 needs to think when to use $abc-xyz vs $abc_xyz :-) 14:38
takadonet rakudo: my @a = (0) x 5; @a.perl.say 14:39
p6eval rakudo a38d45: OUTPUT«["00000"]␤»
takadonet I know it seems stupid why I want this but... is there a simple way to have 5 elems instead of all in one? 14:40
moritz_ takadonet: infix:<xx>
takadonet ... 14:41
xinming_ rakudo: my @a = ((0)) x 5; @a.perl.say;
p6eval rakudo a38d45: OUTPUT«["00000"]␤»
takadonet moritz_: thx
moritz_ it's not stupid to want it, just stupid to expect it to work the p5 way :-)
takadonet well convering p5 to p6
converting*
moritz_ rakudo: say (0 xx 5).perl
p6eval rakudo a38d45: OUTPUT«(0, 0, 0, 0, 0)␤»
takadonet after all the test pass, change it to p6ism ways of doing things
moritz_ Perl 6 tries to remove that kind of context magic
just like reverse() doesn't do the dual function of reversing strings and lists anymore 14:42
14:42 mikehh left
takadonet .flip right? 14:42
14:42 plainhao left
moritz_ right 14:42
and .invert for hashes
masak and prefix:<-> for numbers :P 14:43
14:43 plainhao joined
moritz_ the curious case of prefix - in perl 5 ... :-) 14:43
I think we discussed that previously :-)
masak aye. 14:44
I mentioned that strange behaviour at the Amsterdam.pm meeting, and they questioned the truth of it. Perl 5 programmers rejecting the strangeness of their own operators! :P
moritz_ :-) 14:45
dalek ast: e50ee94 | moritz++ | S0 (2 files):
small rakudo unfudges
14:46
masak or was it prefix:<+> we talked about? don't recall.
moritz_ prefix + is a pretty simple noop in p5 14:47
masak I use it mostly inside hash indexes.
$my_hash{+shift} 14:48
moritz_ print +($a + $b)/2
masak ah. nice one :)
moritz_ both cases that aren't needed in p6
masak right. those two plaster over p5 parsing oddities.
oh btw. I did some research for a blog post about -n and -p. I went to the Perl 5 sources to check how -n and -p are handled. 14:49
I found it, in toke.c
and... yuck :)
moritz_ wow.
masak stand by for blog post.
jnthn masak: You mean it's not nicely done by playing with AST? :) 14:50
masak probably tonight, after I try to rebound from colomon's invalidation of my statistics :)
jnthn: surprisingly, no!
jnthn :P
masak jnthn: that's why }{ works 14:51
jnthn oh my...
:)
masak so my blog post will probably be called "You bastards, you killed the Eskimos!"
moritz_ would have thought it was just string concatenation prior to passing it to toke.c
14:52 envi joined
masak I didn't look long enough to understand why toke.c does it. 14:52
takadonet rakudo: my $x = 0 xx 5 ; $x.[0] = -1
p6eval rakudo a38d45: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/pOJZsSIPXc␤»
takadonet ??
moritz_ takadonet: xx creates a list
takadonet: and a list is read-only
takadonet: what would you expect?
takadonet that would work :) 14:53
need to make a list and modify it....
moritz_ well, then you need to make an array
takadonet ya
moritz_ you know how to do that
takadonet stupid p5 code!
moritz_ do it better :-) 14:54
you can't sensibly assign a list to a scalar in p5 anyway
takadonet it does in this code...
moritz_ then it'll just contain the last item, or so
takadonet but I have no idea how old it is
it seems to contain an array ref in the p5 version 14:55
moritz_ which is quite different from a list. 14:56
takadonet ya
15:04 shi left
colomon masak: more detailed invalidation forthcoming. ;) 15:04
masak yay 15:05
(outsourcing p5 benchmarking)++
colomon++
moritz_ colomon: stop that, you're delaying the final winning decision :-)
masak not really, I think. 15:06
colomon I'm just waiting for the current round of benchmarks to end.
bbkr_ rakudo: sub foo; # looks bad, this should be parse error, not attempt to call foo. 15:12
p6eval rakudo a38d45: OUTPUT«Could not find sub &foo␤ in main program body at line 22:/tmp/c10WrR9Dod␤»
moritz_ bbkr_: long known
jnthn std: sub foo;
p6eval std 4608239: OUTPUT«===SORRY!===␤Malformed block at /tmp/89UskaNhFr line 1:␤------> sub foo⏏;␤ expecting any of:␤ new name to be defined␤ routine_def␤ trait␤Parse failed␤FAILED 00:01 117m␤»
moritz_ bbkr_: oh wait, I misparsed :-) 15:13
std: sub(foo())
p6eval std 4608239: OUTPUT«===SORRY!===␤Undeclared routines:␤ 'foo' used at line 1␤ 'sub' used at line 1␤Check failed␤FAILED 00:01 118m␤»
bbkr_ so it is bug or not? I don't understand the difference between "sub foo" and sub(foo()) in STD. 15:18
moritz_ the parenthesis :-)
yes, bug 15:19
15:19 hanekomu joined
bbkr_ in STD (because parenthesized syntax behaves differently) or in rakudo? 15:19
moritz_ rakudo has the bug 15:21
bbkr_ reports, thanks
15:24 satyavvd joined
sorear good * #perl6 15:25
15:27 Holy_Cow joined
bbkr_ today I did presentation about writing programming languages in my company. I used Perl6 Grammars+Actions to demonstrate how to write very simple language interpreter under 20 minutes. there were PHP and Ruby folks mostly there and jealousy on their faces... :P 15:29
15:31 cjk101010 left
masak *, sorear. 15:33
bbkr_++ # \o/
bbkr_: grammars and actions really expose the core strength of Perl 6.
colomon ooo, moritz_, looks like your code is coming out well in this benchmark, too. :) 15:35
moritz_ colomon: it wasn't too bad in most of your benchmarks so far
colomon moritz_: I have one benchmark, not yet blogged, where my code crushes it. ;) 15:37
15:37 woosley left
colomon but in the four symbol "DNA" tests, your code does very, very well. 15:37
moritz_ colomon: no surprise really. Algorithmically it has a very non-optimal worst case run time 15:38
15:40 wtw left
takadonet colomon: you should try protein :) 15:41
sorear niecza: sub foo; 15:44
p6eval niecza v3-65-g55abf9d: OUTPUT«===SORRY!===␤␤Any()Malformed block at /tmp/kDLj_8WsO8 line 1:␤------> sub foo⏏;␤␤Parse failed␤␤»
sorear moritz_: spectests? broken?
"they work fine for me"
colomon moritz_: okay, my code did finally beat yours on the DNA case (two strings length 200), 40 seconds to 64. Still, considering how much simpler and more elegant your code is than mine, it's probably a moral victory for yours. 15:45
15:45 JimmyZ joined
masak heh. I used the term "moral victory" for the opposite type of victory -- when the code algorithmically is O(N) 15:46
moritz_ sorear: gist.github.com/864305 that's how they all look 15:47
niecza: say 1
p6eval niecza v3-65-g55abf9d: OUTPUT«1␤»
moritz_ niecza: use Test; plan 1; ok 1, 'YA REALLY'; 15:48
p6eval niecza v3-65-g55abf9d: OUTPUT«1..1␤ok 1 - YA REALLY␤»
moritz_ 'use Test;' blows up on my machine
sorear moritz_: ah... rm obj/Test.*
15:48 donri joined
sorear that error message is the backend whining that your existing Test.nam doesn't have variable type annotations 15:49
sorear needs a saner way to handle incompatible changes to the nam format
moritz_ sorear: yes, works
15:50 Mowah joined 15:56 mberends left 15:59 synple joined 16:01 justatheory joined 16:05 tzhs left
tadzik wklej.org/id/490185/ -- book brainstorming ideas from the NLPW hackathon 16:06
masak tadzik++ 16:07
gist.github.com/864350 # future-proof paste of same
would hate for those to get lost... 16:08
tadzik worry not, I can even commit them
16:08 szabgab_ is now known as szabgab
flussence Is that for github.com/perl6/book.git ? 16:08
masak aye 16:09
tadzik: please do.
moritz_ I've written about MAIN subs for my blog and for the advent calendar. I'm sure I can do it a third time too :-)
masak :) 16:10
16:10 synple left
tadzik hey, I want to write something too :) 16:10
As soon as I figure out how to compile this beast
moritz_ you don't need to compile it to write :-) 16:11
* Modules, packages, classes
I don't even know how packages and modules differ
so I'd have a hard time writing about it :-)
jnthn I'm not sure if anyone knows that. :) 16:12
masak see S10 and S11, I guess... 16:13
dalek ok: 20fa3fa | tadzik++ | src/classes-and-objects.pod:
Don't use commas in angle brackets. Fixes GH-48
jnthn Ohter than "omg is this Perl 5?!" detection
moritz_ masak: looking at S10 and S11, I have to agree with jnthn
tadzik hmm, that should be "Closes for Github to notice"
masak "As in Perl 5, a module is just a kind of package. Unlike in Perl 5, modules and classes are declared with separate keywords, but they're still just packages with extra behaviors."
tadzik s/ for/" for/;s/"$//
masak modules are packages plus exporting and versioning? 16:14
jnthn Every time I suggest a behavior that a mdoule could have in addition to a package, it seems to make packages seem kinda useless
tadzik oh, it noticed. github++
dalek ok: 075458c | tadzik++ | book-ideas:
Add some ideas to write about
16:14 Patterner left
colomon loliblogupdated: justrakudoit.wordpress.com/2011/03/...masaks-p5/ 16:15
moritz_ tadzik++
16:15 risou joined
tadzik oh, I should have blug 16:16
16:17 synple joined 16:18 synple left 16:19 Psyche^ joined, Psyche^ is now known as Patterner 16:21 plainhao left, plainhao joined 16:22 Trashlord left 16:31 kst` left 16:35 nymacro left 16:36 kst joined 16:39 kvakvs left, nymacro joined, xinming_ is now known as xinming 16:41 jmm_ is now known as jww 16:45 _buno_ joined 16:51 fhelmberger left 16:54 hercynium joined
dalek ok: a9d478b | moritz++ | / (2 files):
[subs] first shot at MAIN
16:55
moritz_ somebody can still take 'multi MAIN' 16:56
16:56 fhelmberger joined, fhelmberger left
tadzik still fighting with building 16:57
but I think/hope I found the problem 16:58
17:02 satyavvd left
masak you should accept buildings for what they are rather than fight them. look what happened to Mr. Quixote. 17:03
moritz_ he's dead. And so is everybody from his time. D'oh.
moritz_ decommutes after this piece of wisdom 17:04
17:12 _twitch left, mtk left
masak "git gets easier once you get the basic idea that branches are homeomorphic endofunctors mapping submanifolds of a Hilbert space." -- twitter.com/tabqwerty/status/45611899953491968 17:15
are they? I'm curious, and I don't grok all the big words.
seems all the big words refer to (continuous) topology... not sure I see the analogy. 17:18
17:20 mtk joined
[particle] a hilbert space is a cartesian space of infinite dimension 17:24
think of each file in git as a dimension
each new revision of that file is a step away from the origin on that dimension 17:25
arnsholt masak: That's along the lines of "A monad is an endofunctor in the cactegory of monoids. What's the problem?"
Trolling for academics, essentially =)
[particle] a manifold is a subset of that infinite hilbert space. 17:26
basically, the number of dimensions represented by each object in the git space
homeomorphic means that two objects, if squished in the right directions without changing the number of voids in their shape, can be transformed into each other 17:27
a disc and a square can be squished into each other, for example 17:28
17:29 jaldhar left
masak arnsholt: right, but the monad one seems more direct to me. 17:30
[particle] endofunctors are mapping functions.
17:30 pjcj left
masak [particle]: with you so far. how does homeomorphic squishing apply to branches? 17:30
[particle] ok...
17:30 plainhao left
[particle] if your branch point in the git tree is thought of as a point in space 17:31
this part is hard for me to describe clearly.... 17:33
17:33 ymasory left
[particle] ok, use that branch point as a local origin for a new space (submanifold) 17:33
masak up until now, I was perfectly fine with the idea that in git, branches are basically just named leaf nodes of the big commit DAG.
17:34 pjcj joined
[particle] yes, then you make changes to each branch, separately 17:34
masak right.
[particle] with the branch point being a local origin, you can create a function to map you from one frame of reference to another
masak which corresponds to applying separate endofunctors, I presume.
right. 17:35
[particle] that's the endofunctors
17:35 pjcj left
masak like rotations, translations etc, only higher-dimensional. 17:35
[particle] exactly
they map you, homeomorphically (since the overall space hasn't changed)
masak and commutative endofunctors correspond to the lack of conflicts? 17:36
[particle] from one view of reality to another
17:36 pjcj joined
[particle] yes! 17:36
[Coke] "monad one seems more direct to me" ... wow.
[particle] i'm with [Coke] on that one :) 17:37
flussence
.oO( I have no idea what any of this means, but I can understand how git works all the same... )
[particle] ignorance is bliss
masak [Coke]: it's not that I'm unfamiliar with the terms. I just haven't seen them applied to git before.
moritz_ likes the DAG better, but can follow the Hilbert space thing too
[Coke] [particle]: That line always reminds of the matrix, now. 17:38
oh, I think they're both equally useless esoteric.
*uselessly
[particle] the git api is full of esoterica. wow, i love git so much that i hate it. 17:39
masak [particle]: it still seems to me that the "Hilbert space" of a git repository would be discrete rather than continuous. but maybe that's not a big problem.
[particle] it is discrete
masak [particle]: anyway, thanks for taking the time to explain.
arnsholt Discrete spaces can be embedded in continuous ones, no? 17:40
masak as long as the endofunctors preserve the discreteness, it should work...
[particle] the git space is a submanifold of a hilbert space
masak ah, right.
now *that's* scary to visualize!
moritz_ it's just a discrete raster in a continuous space 17:41
[particle] oh, yeah, *that's* the scary part.
masak "You can code all you want, but you can never code yourself out of *this* submanifold of Hilbert space."
[particle] :D
moritz_ if you've ever seen a lattice, that's a good visualization (but apply it to infinitely many dimensions)
masak ooooaaaargh
17:43 sow joined
masak [Coke]: with monads, I spent some significant time collecting monad tutorials. so I've heard most explanations of them by now. 17:43
monads are space suits. monads are burritos. you could have invented monads, and probably have.
17:43 sow left
masak monads are endofunctors in the category of monoids. that's OK, just look up the terms "endofunctor", "category" and "monoid", digest the sentence and nod :) 17:44
moritz_ you see Hilbert spaces all the time, if you happen to look at the QM explanations of what you see :-) 17:45
jnthn still remembers the first talk he ever went to that tried to explain monads
But that's mostly thanks to the title
"Kick in the monads"
masak jnthn: I can see you being attracted by a talk with a pun in the title :P
17:45 _buno_ left 17:46 JimmyZ left
jnthn The funniest bit was the speaker trying to politely explain to pun to those in the audience who didn't understand its origin. :) 17:47
s:2nd/to/the/
masak heh :)
17:47 gdey- joined
masak nowadays, I'd explain monads like this: Haskell tends not to want to commit on the exact sequence operations (possible thanks to referential transparency, and desirable for various optimization cases). but sometimes you do need the sequencing, and monads provide that. they also happen to fill other similar roles. 17:49
[Coke] *blank stare* 17:50
masak IO and List are good examples of ordering monads. Maybe and Either are more structural in nature.
er, s/sequence operations/sequence of operations/ 17:51
17:51 envi left
masak think of the lazy evaluation in Perl 6, but more or less pervasive in the whole language. 17:51
17:52 gdey_ left 17:53 alester left, justatheory left 17:54 justatheory joined 17:57 PZt joined 17:58 justatheory left 17:59 dakkar left 18:00 cdarroch joined, cdarroch left, cdarroch joined, mkramer1 joined 18:03 mj41 joined 18:14 noganex_ joined 18:16 risou left 18:18 noganex left 18:24 benabik joined
Tene masak: Do you now feel comfortable with your understanding of my opinions about process invocation functions? 18:27
tadzik yay, I managed to build The Book 18:30
18:33 Rotwang joined 18:34 alester joined 18:36 masak left 18:42 hanekomu left 18:45 nadim left 18:46 ymasory joined 18:50 Bzek left, plainhao joined 18:51 masak joined 18:52 nadim joined 18:59 benabik left 19:02 jeteve_ joined
masak Tene: yes. and I like the spec changes it caused. 19:03
19:11 mberends joined
mberends
.oO( learning JVM bytecode assembler for 6model/java is no picnic )
19:13
.oO( how did jnthn trick me into doing this? )
19:14
pivo. the answer is in the pivo. 19:15
aka weissbier tonight ;-) 19:17
jnthn \o/ 19:18
mberends++ # being pivo-trickable ;) 19:19
mberends I can resist anything but temptation ;)
19:20 benabik joined 19:22 wooden left 19:26 Mowah left 19:30 impious joined, impious left 19:36 daxim left 19:38 Hackbinary left, cpk joined
cpk sorear: hi 19:39
19:44 synple joined 19:45 synple left 19:47 nadim left 19:48 ddima left
TimToady niecza: sub hello() { say "hello"; } hello(); 19:50
p6eval niecza v3-65-g55abf9d: OUTPUT«===SORRY!===␤␤Any()Strange text after block (missing comma, semicolon, comment marker?) at /tmp/oHrKZytRQu line 1:␤------> sub hello() { say "hello"; }⏏ hello();␤␤Parse failed␤␤»
sjohnson :)
TimToady cpk: note this error is correct
you're missing a semicolon right where it indicates
cpk TimToady: what is the right syntax ? 19:52
TimToady to install the missing semicolon, of course
niecza: sub hello() { say "hello"; }; hello();
p6eval niecza v3-65-g55abf9d: OUTPUT«hello␤»
cpk TimToady: ok
TimToady: my mistake... 19:53
TimToady Perl 6 does not distinguish built-in blocks from user-defined
any block in mid-line has to have ; to continue on the same line
cpk TimToady: like closure i guess 19:54
masak std: if { 2 + 2 == 4 } { say "OH HAI" }
p6eval std 4608239: OUTPUT«ok 00:01 120m␤»
TimToady and any block at the end of the line terminates the statement without ;
masak ;)
(there are exceptions in the midst of special forms)
TimToady yes, well, that's the only place we allow ttiar
jnthn rakudo: if { 2 + 2 == 4 } { say "OH HAI" } 19:55
p6eval rakudo a38d45: OUTPUT«OH HAI␤»
jnthn heh :)
It works too
TimToady in that case { is really a terminator
jnthn ;)
masak rakudo: if { 2 + 2 == 5 } { say "OH HAI" }
p6eval rakudo a38d45: OUTPUT«OH HAI␤»
masak :P
cpk rakudo: sub hello() { say "hello"; } hello();
p6eval rakudo a38d45: OUTPUT«===SORRY!===␤Confused at line 22, near "sub hello("␤»
cpk std: sub hello() { say "hello"; } hello();
p6eval std 4608239: OUTPUT«===SORRY!===␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/43SkvM3qWb line 1:␤------> sub hello() { say "hello"; }⏏ hello();␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement
..modifier loop␤Pars…
jnthn rakudo: sub hello() { say "hello"; }; hello();
p6eval rakudo a38d45: OUTPUT«hello␤»
masak sorear: why does your error message has an 'Any()' before it? 19:56
sjohnson New Directions in Perl Obfuscation
jnthn Rakudo could learn a little about error reporting :)
masak niecza: sub hello() { say "hello"; } hello();
p6eval niecza v3-65-g55abf9d: OUTPUT«===SORRY!===␤␤Any()Strange text after block (missing comma, semicolon, comment marker?) at /tmp/OqguAckliG line 1:␤------> sub hello() { say "hello"; }⏏ hello();␤␤Parse failed␤␤»
masak sorear: "Any()Strange"...
cpk rakudo error reporting is also confusing...
masak it's better than Yapsi's :) 19:57
cpk yapsi: sub hello() { say "hello"; } hello();
p6eval yapsi: OUTPUT«===SORRY!===␤Unable to find module 'Yapsi' in the @*INC directories.␤(@*INC contains:␤ lib␤ /home/p6eval/.perl6/lib␤ /home/p6eval//p2/lib/parrot/3.1.0-devel/languages/perl6/lib␤ .)␤»
19:58 justatheory joined
TimToady the error seems a bit...generic... 19:58
jnthn yapsi: use Yapsi;
p6eval yapsi: OUTPUT«===SORRY!===␤Unable to find module 'Yapsi' in the @*INC directories.␤(@*INC contains:␤ lib␤ /home/p6eval/.perl6/lib␤ /home/p6eval//p2/lib/parrot/3.1.0-devel/languages/perl6/lib␤ .)␤»
masak :/
cpk jnthn: thanks
masak usually it says "Could not parse"... 19:59
cpk jnthn: oups
jnthn: didn't see the yapsi error
jnthn cpk: Yeah, I think the Yapsi evalbot bits are busted 20:00
masak aye. 20:01
I don't know what I should do to fix it. 20:02
20:03 benabik left 20:07 nymacro left 20:08 mkramer1 left 20:10 shi joined, shi left
cpk adding some semicolons to the rcrpg example remove "Strange text" errors 20:10
20:11 shi joined, nadim joined 20:12 shi left
cpk however now i have: Potential difficulties: &parser is declared but not used at D:\Aline\Bureau\niecza-3.02\rpg_raw.pl line 81: ←--> ← sub parser←?←(*@bits) { 20:12
20:12 shi joined 20:13 shi left
cpk sorear: other point niecza loads faster on my win32 PC and uses few memory (30Mo) 20:13
sorear: but on my win64 pc it starts by loading arround 300 Mo 20:14
20:17 synple joined 20:19 synple left 20:24 ab5tract left, synple joined, ab5tract joined 20:25 wallberg joined 20:26 synple left, benabik joined 20:29 shi joined 20:30 shi left 20:31 shi joined 20:36 sji joined, shi left, sji left 20:37 sji joined 20:38 sji left, sji joined 20:39 sji left 20:40 sji joined 20:42 sji left 20:43 sji joined 20:44 sji left, sji joined
masak sji: hey. please stop that. 20:45
20:45 sji left
masak :( 20:45
20:46 sji joined, plobsing left, sji left
cpk bye guys 20:46
masak cpk: \o
20:46 cpk left 20:47 GinoMan joined
tadzik masak: well, that's basically stupidness of all the irc clients on earth 20:47
20:47 sji joined
tadzik I always think events like this should be printed to a separate buffer, having 2 or 3 lines 20:47
masak nice idea. 20:48
tadzik no client has that
masak maybe I should just hide join/leave messages...
20:48 sji left
tadzik I remember asking #irssi guys about this some time ago, and they said "you can do this if you learn irssi windows and buffers well enough" 20:49
masak tadzik: same goes for ERC, I guess.
20:49 sji joined, sji left
tadzik probably. Of for any other client. But still, I'd like to have this, not to spend hours learning some client and implementing this 20:49
masak g'ah! /ignore doesn't seem to hide join/leave messages :) 20:50
tadzik :>
doesn't it?
20:50 M_o_C joined
masak not for me. 20:50
tadzik seen sji
aloha sji was last seen in #perl6 55 seconds ago joining the channel.
tadzik oh thanks, that was so helpful
[Coke] I didn't see any of that. I must have figured out the irssi incantations ages ago. 20:52
sbp X-Chat has a "conference mode" which hides all joins and parts
I've never used it, perhaps except to test it or by accident
[Coke] ignores = ( { level = "JOINS QUITS"; } );
tadzik ignoring is easy 20:54
OTOH, being online on irc means absolutely nothing these days
everyone idles anyway
and when they come to chat, they usually say hello 20:55
sbp hello
tadzik oh, hello
sbp what is the most significant development in perl6 from the previous week? 20:56
tadzik oh, weechat has something like smart-filter: "keep join/part/quit from users who spoke recently"
mberends sbp: rakudo is now -p -n complete 20:57
or -n -p complete
tadzik nqp can serialize objects now, can't it?
the ctmo branch 20:58
jnthn tadzik: Ground work for that
sbp reviews github.com/rakudo/rakudo/commit/7f...9b2083334d
jnthn tadzik: Much more significant is the compile-time meta-object stuff in itself 20:59
20:59 hanekomu joined
sbp and -p = -np, I see 20:59
charming
masak :) 21:01
I hope to write a blog post on it, and on Perl 5's -n and -p "handling".
sbp a fable, about an ultimate truth! 21:03
I was at a meeting of Web Architecture wonks many years ago, in a pub in Bristol
and I asked them, what processor do you use for XSLT?
21:03 cjk101010 joined
sbp there were many choices at the time, and it seemed to me that certain choices were used for certain tasks, such as xsltproc for use in CGI 21:04
I went around the table, asking what people used
"saxon" "saxon" "saxon..." "saxon!" "yep, saxon"
masak huh.
sbp no matter what the truth and motivation of the one-spec, many-implementations nature of perl6, I think that de facto the same situation will arise. predicting that might be as difficult as my prediction with xsltproc, though 21:05
(a few years ago, one would have said pugs. where are you now, pugs!)
21:05 ymasory left
masak sbp: Pugs had a bus number error. 21:05
sbp it took the number 32 and ended up in Leightonstone? 21:06
TimToady pugs: say 'howdy doo!'
p6eval pugs: OUTPUT«howdy doo!␤»
masak sbp: you might very well be right about one implementation being the predominant one. in fact, that's already the case at this "early" stage.
sbp: but the fact is that already, different implementations help drive different parts of the spec.
even small implementations that never gained critical mass have helped the spec forward. 21:07
(I'm thinking of SMOP, for example)
TimToady I don't suppose you implemented -n and -p according to spec...
sbp I think what I'm saying is, there might be a nice presentational middle road between "one specs, many implementations" and "the nexus starts here". people need to feel assured, but the bright and tangible perl6 philosophy needs to seep out to people all the same
masak TimToady: nope.
TimToady: it was a "let's get this now rather than wait for the ability to do it right" kind of patch. 21:08
TimToady
.oO(that way lies sadness...)
jnthn Plus it's done as an AST-level fixup, so I'm quite comfortable with the way it was done.
masak TimToady: feel free to revert the patch. in the meantime, I'll definitely be running a Rakudo with -n and -p available. 21:09
TimToady I'll wager the inside of the loop isn't the UNIT:: lexical scope :)
sbp fork, fork, fork!
masak are you really arguing for us to do things right on the first iteration? :) 21:10
jnthn You say that as if anyone's going to notice :P
sbp and so it started, the NPists and the True NPists took the first shots
masak :D
sbp they may call the NPists roundheaded in their stubborn ways, but the True NPists sure are cavalier with their "truth" 21:11
jnthn rakudo: sub foo() { 42 }; say UNIT::foo() # this is why nobody will notice :P
p6eval rakudo a38d45: OUTPUT«Can not find sub UNIT::foo␤ in main program body at line 1␤»
tadzik yay, got a bugreport for PIes
masak std: sub foo() { 42 }; say UNIT::foo() 21:12
p6eval std 4608239: OUTPUT«ok 00:01 120m␤»
masak std: sub foo() { 42 }; say UNIT::UNIT::foo()
p6eval std 4608239: OUTPUT«===SORRY!===␤Undeclared name:␤ 'UNIT::UNIT::foo' used at line 1␤Check failed␤FAILED 00:01 120m␤»
sbp niecza: sub foo() { 42 }; say UNIT::foo()
p6eval niecza v3-65-g55abf9d: OUTPUT«===SORRY!===␤␤Unsupported form of term:name at /tmp/UFZGc6Hm9Q line 1 (EOF):␤------> sub foo() { 42 }; say UNIT::foo()⏏<EOL>␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 387 (CORE die @ 2)␤
.. at /home/p6…
TimToady hmm 21:13
niecza: sub foo() { 42 }; say &UNIT::foo()
p6eval niecza v3-65-g55abf9d: OUTPUT«Unhandled exception: Unable to resolve method INVOKE in class Any␤ at /tmp/oPHyivdoj9 line 1 (MAIN mainline @ 1)␤ at /home/p6eval/niecza/lib/CORE.setting line 1261 (CORE C524_ANON @ 2)␤ at /home/p6eval/niecza/lib/CORE.setting line 1262 (CORE module-CORE @ 39)␤ at
../home/p6eval/n…
TimToady niecza: sub foo() { 42 }; say &FOO::foo()
p6eval niecza v3-65-g55abf9d: OUTPUT«Unhandled exception: Unable to resolve method INVOKE in class Any␤ at /tmp/QqetJiLgad line 1 (MAIN mainline @ 1)␤ at /home/p6eval/niecza/lib/CORE.setting line 1261 (CORE C524_ANON @ 2)␤ at /home/p6eval/niecza/lib/CORE.setting line 1262 (CORE module-CORE @ 39)␤ at
../home/p6eval/n…
TimToady niecza: sub UNIT::foo() { 42 }; say UNIT::foo() 21:14
p6eval niecza v3-65-g55abf9d: OUTPUT«===SORRY!===␤␤Defining a non-our sub with a package-qualified name makes no sense at /tmp/5O88BckEdO line 1:␤------> sub UNIT::foo() { 42 }⏏; say UNIT::foo()␤␤Unsupported form of term:name at /tmp/5O88BckEdO line 1 (EOF):␤------>
..sub UNIT::…
TimToady :)
niecza: sub foo() { 42 }; say MY::foo()
sbp (and, Package subs NYI)
p6eval niecza v3-65-g55abf9d: OUTPUT«===SORRY!===␤␤Unsupported form of term:name at /tmp/LORiO_QssE line 1 (EOF):␤------> sub foo() { 42 }; say MY::foo()⏏<EOL>␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 387 (CORE die @ 2)␤
..at /home/p6ev…
21:15 plobsing joined
TimToady ah, well, all in good time 21:16
21:18 synple joined
jnthn At least nqp believes in lexical settings now :) 21:19
TimToady not carping about all the good progress :) 21:20
masak no Carp;
jnthn std: { our sub foo() { ... } }; foo() 21:21
p6eval std 4608239: OUTPUT«ok 00:01 120m␤»
jnthn 6model: { our sub foo() { ... } }; foo()
nqpclr: { our sub foo() { ... } }; foo()
hmm, dunno if we have evalbot for that... :)
masak anyway, std says it's OK. 21:22
21:22 flussence joined
TimToady hmm, seems a bit suspect 21:23
masak why?
jnthn TimToady: Yes, this came up before.
TimToady well, it can't be using the lexical alias
jnthn TimToady: I mentioned it to masak++ while we were in NL and he wanted to know why. ;) 21:24
TimToady and I'm of two minds about whether bare sub calls should look in the package at all
jnthn I had trouble with it in nqpclr and removed the test. It worked on nqp on Parrot just out of the way Parort's sub lookup works.
So I fear it works more "accidentally" rather than out of any deeper intent. 21:25
masak TimToady: the thing I see being at risk here is the closure-in-immediate-block idiom. not sure it's worth distorting the language over, but it does feel quite natural, at least from a Perl 5 viewpoint.
TimToady the fact that it works in std might be a fossil of when we had failover from lexical scopes to packages 21:26
I'll need to glare at the code to see what it's thinking
masak std: package A { { our $f }; say $f } 21:27
p6eval std 4608239: OUTPUT«Potential difficulties:␤ $f is declared but not used at /tmp/ZLmJUH2cuS line 1:␤------> package A { { our $f⏏ }; say $f }␤ok 00:01 120m␤»
TimToady S06:454 pretty much prohibits it from working
masak std: package A { { our $f }; $f = 42 }
p6eval std 4608239: OUTPUT«Potential difficulties:␤ $f is declared but not used at /tmp/i5WaL3s06Y line 1:␤------> package A { { our $f⏏ }; $f = 42 }␤ok 00:01 121m␤»
masak std: package A { { our $f }; $f = 42; say $f }
p6eval std 4608239: OUTPUT«Potential difficulties:␤ $f is declared but not used at /tmp/OCdtDlzs5n line 1:␤------> package A { { our $f⏏ }; $f = 42; say $f }␤ok 00:01 122m␤»
masak seems there's a failover, yes.
TimToady on variables, yes, but not on function calls 21:28
masak what's the difference?
masak thought foo() was just &foo()
TimToady don't want mutable candidate lists
not without explicit CANDOish declaration 21:29
21:29 mtk left
masak doesn't understand 21:29
does it have to do with rebinding of &foo ?
TimToady &foo finds the immutable list as well
it's one of the reasons for the recent MMD redesign, to make sure there's an appropriate &foo there as a dispatcher 21:30
21:30 mtk joined
masak so... what's the difference between variables and function calls? 21:31
TimToady we don't do multi-variables hoping to optimize them at compile time
you can't do any compile-time reasoning about a multi call that is over an unknown set of candidates 21:32
sjohnson TimToady: am i correct to say that p6's feature of letting you do case-insensitive greps or not without an if statement is not present in p5?
greps -> regexes*
TimToady no
/foo/i is case insensitive in P5 21:33
sjohnson but if you do: if ($flag_case_insensitive) { /foo/i } else { /foo/ }
i believe perl6 addresses this one... perhaps it's been addressed 10 years ago though and i'm missing something. 21:34
TimToady well, there's always eval :)
sjohnson puts his dunce cap back on
i'll suck it up and figure out the eval hint, thanks 21:35
TimToady but yeah, p5 has to compile it both ways somehow
s/both ways/either way/
sjohnson i have actually gotten around it with a cludge.. though i think it broke later on, though i did have it working...
s/cow/pig/$insensitive_var
where that var was 'i'
TimToady or nothin
sjohnson yep
but i felt guilty after doing that. 21:36
TimToady you should
sjohnson haha
flussence wait... what's the p6 equivalent of this you're talking about?
TimToady :i($whatever)
flussence oh
masak ooh
sjohnson this is a blessing to all of mankind
flussence (I wasn't sure if that actually worked or not)
TimToady I doubt it does :)
sjohnson is there also a flag for a \Q / quotemeta?
TimToady there is no \Q anymore 21:37
masak sjohnson: no, there's a whole rethink instead.
sjohnson sounds like i need to 'rethink' perl6 too
flussence I think that's written <"$var"> or somesuch now
TimToady regexes aren't strings anymore, and don't interpolate like strings
sjohnson scratches head
masak sjohnson: have you read Apocalypse 5?
TimToady /$foo/ already behaves like $foo is in a quotemeta
masak sjohnson: now might be a good time. 21:38
sjohnson TimToady: what if one wanted to so a substitution of grep's equivalent of --fixed-strings ?
ok
flussence grep($fixed-string) I'd imagine
sjohnson looks like mr Toady has answered my question already
masak sjohnson: it's a good read, and explains many of these things.
flussence split() works for strings already
TimToady /@foo/ is defined to match multiple fixed strings
flussence (grep? I probably meant comb)
sjohnson i'm excited for this technology
this is going to alleviate much headaches 21:39
masak many of us are :)
excited, I mean. not headaches.
sjohnson correct me if i'm wrong, but i believe p6 also addresses the qx// in a @LIST context instead of a giant string which needs escaping
sjohnson crosses fingers
i'm hoping i didnt have a dream about this. 21:40
masak sjohnson: not sure what you mean. qx// works in list context, AFAIK.
sjohnson in p5 or p6? 21:41
in p5 i'm quite sure it's an interpolated-string
this causes much grief in p5 for me. and i think cludging a solution in CPAN is the only way to get around this. i hope i'm wrong about that, too. 21:42
masak right. I don't think I see your use case.
there might be one, but you're describing suffering with which I am not acquainted. 21:43
sjohnson well, system(@LIST) will escape all your args for you, unlike system("some ugly bash command");
masak ok.
sjohnson if a clone function named shelloutput(@LIST) which returned the output instead of the errorlevel but had the same parameters.. the world would be a better place 21:44
masak oh! you're talking about preparing a quotemeta string with alternatives for a regex?
sjohnson (function name obviously might need more thanking)
thinknig
no, mostly dealing with system commands that have huge ugly filenames that require escaping.
so far, the only viable solution is busting out CPAN and using String::ShellQuote to get around this. 21:45
TimToady: was the reason for this not existing in p5 because it's a lot harder than I think it is?
or maybe just not needed?
21:46 alester left
TimToady S29:558 speculates a "rungather" function 21:46
masak o.O 21:47
I'd gnrather not it have that name... :P
flussence
.oO( let's just define these things in terms of syntactic sugar around a Proc object that can do everything... )
TimToady sjohnson: it can be done in P5 with open(PIPE, '-|') || exec @foo; or some such
sjohnson TimToady: *writing down advice*. maybe i can argue p5p to have rungather in p5 21:48
imagine the headaches disappearing like mirages for me
masak std: run gather { take 1; take 2 }
sjohnson and others
p6eval std 4608239: OUTPUT«ok 00:01 120m␤»
sjohnson oh joyous day
TimToady well, p5 doesn't have gather, so run-gather is maybe problematic
21:49 marietta left
sjohnson rubs chin 21:49
ill ask on p5p. hopefully i won't get yelled at
TimToady you'll get yelled at :)
anyway, p5 has readpipe() 21:50
unfortunately it doesn't grok lists 21:53
it could be taught to though
21:53 plainhao left, synple left 21:54 ab5tract left
masak --> bed 21:55
21:55 hercynium left
masak 'night, #perl6. 21:55
flussence o/
21:55 masak left
flussence is there any language in existence (besides sh) that can handle file descriptors beyond stdin/out/err in a sane way? 21:56
21:56 lichtkind joined
TimToady um, C? 21:56
flussence I'd argue that using C as a glue language is the path to insanity, but *. :) 21:58
sjohnson LOLCODE 21:59
22:02 Holy_Cow left
sjohnson looks like i might be in luck 22:04
for my idea
22:08 mkramer joined
flussence :( I just spent 10 minutes trying to find IO stuff on the lolcode wiki... 22:11
moritz_ flussence: perl 5? 22:12
depending on your definition of "sane"; really 22:13
flussence tbh, I'm not sure myself what "sane" is with multiple IO streams 22:14
22:33 ilogger2 joined, ChanServ sets mode: +v ilogger2, literal joined 22:34 mathw joined
flussence (and then I realise that this is SQL and there's probably someone insane enough to write a stored proc that does exactly this sort of filehandle-munging through bind params...) 22:35
22:36 synple joined 22:37 Gothmog_ joined 23:08 flussence_ joined 23:18 perplexa joined 23:28 Trashlord joined 23:48 risou joined 23:52 kst joined, plobsing joined 23:54 synple left 23:58 araujo joined, fisted joined