»ö« 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)5678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868 | |||
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 signatureParse failedFAILED 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 traitParse failedFAILED 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 1Check failedFAILED 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..1ok 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 loopPars… | |||
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 1Check failedFAILED 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
|