»ö« 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:03
cognominal left,
cognominal joined
00:05
shinobicl joined
00:06
angelolicastro joined,
flussence_ is now known as flussence
00:12
envi_ joined
00:17
replore joined
00:18
tokuhirom joined
00:21
shinobicl left
00:24
pun joined
00:26
sivoais left
00:27
sisar left
00:29
takesako left,
sivoais joined
00:30
takesako joined,
wolfman2000 joined
00:34
spider-mario left
00:35
raiph left,
tyatpi left
00:36
lestrrat left
00:37
lestrrat joined,
fgomez left
|
|||
dalek | rl6-bench: b6321da | (Geoffrey Broadwell)++ | bench: Add some more metadata (language, compiler, and VM) for each compiler entry |
00:49 | |
rl6-bench: 6546c15 | (Geoffrey Broadwell)++ | bench: Display metadata for each compiler in summary table; mild refactoring of table display logic |
|||
rl6-bench: b3c3bad | (Geoffrey Broadwell)++ | bench: Rakudo can compile NQP too. Well, mostly. |
|||
rl6-bench: d5629e5 | (Geoffrey Broadwell)++ | README: Update README with current tested compilers list |
|||
00:51
immortal left
00:52
erkan joined
00:53
pun left
00:59
fgomez joined
01:03
scott_ joined,
scott_ is now known as Guest96894
01:06
fgomez left,
fgomez joined
01:25
pernatiy joined
|
|||
colomon | n: class Animal does NonExistentRole { }; | 01:28 | |
p6eval | niecza v16-23-gaa61ed5: OUTPUT«===SORRY!===Unable to parse class definition at /tmp/MgSoDbpbRI line 1:------> class Animal ⏏does NonExistentRole { };Parse failed» | ||
colomon | n: class Animal does NonExistentRole { ... }; | 01:29 | |
p6eval | niecza v16-23-gaa61ed5: OUTPUT«===SORRY!===Unable to parse class definition at /tmp/2FQfgQNXV_ line 1:------> class Animal ⏏does NonExistentRole { ... };Parse failed» | ||
colomon | n: class Animal does Numeric { ... } | 01:30 | |
p6eval | niecza v16-23-gaa61ed5: OUTPUT«===SORRY!===Package was stubbed but not defined at /tmp/spVDlLCj_L line 1:------> class⏏ Animal does Numeric { ... }Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1366 (die @… | ||
colomon | n: class Animal does Numeric { method a() { }; } | ||
p6eval | niecza v16-23-gaa61ed5: ( no output ) | ||
colomon | std: class Animal does NonExistentRole { ... }; | ||
p6eval | std fab64fc: OUTPUT«===SORRY!===Invalid role name at /tmp/xE4NnOf6BH line 1:------> class Animal does ⏏NonExistentRole { ... }; expecting typenameParse failedFAILED 00:00 40m» | ||
colomon | n: class AClass; class BClass does AClass { } | 01:34 | |
p6eval | niecza v16-23-gaa61ed5: OUTPUT«===SORRY!===Cannot compose a type of category class (AClass) at /tmp/Zu5oxlL9BZ line 1 (EOF):------> ass AClass; class BClass does AClass { }⏏<EOL>Unhandled exception: Check failed at /home/p6eval/niecza/boot/li… | ||
dalek | ast: 2b9944e | (Solomon Foster)++ | S14-roles/basic.t: Change the second of the duplicate failed class definitions to a different name, because Niecza remembered the first failed attempt, and on the second try complained about that instead of generating the errors the tests were looking for. |
01:38 | |
ast: b2c8ad2 | (Solomon Foster)++ | S04-declarations/state.t: Additional fudging for Niecza. |
|||
01:44
tyatpi joined
|
|||
[Coke] | sorear, colomon: IMO, if you're going to change the behavior later, I don't see the point in closing the ticket now. | 01:50 | |
01:51
cognominal left
01:52
cognominal joined
|
|||
TimToady | I think LTA is a bug, but I'm known to be insane that way... | 01:54 | |
01:59
angelolicastro left,
Amphy joined
02:08
whiteknight left
02:10
noam left,
noam_ joined
02:11
Amphy left
02:12
jaldhar joined
02:17
tokuhirom left
02:20
ajs_work left
02:24
baest joined
02:31
vlixes joined
02:36
bjarne left
02:43
lestrrat left
02:44
lestrrat joined
02:53
baest left
02:55
orafu left
02:57
orafu joined
02:58
baest joined
|
|||
dalek | rl6-bench: 8c1f315 | (Geoffrey Broadwell)++ | nqp/rc-forest-fire: NQP rc-forest-fire much closer now; compiles and runs, but forest fires don't spread properly |
03:00 | |
03:22
alester_ joined
03:23
raiph joined
|
|||
raiph | . | 03:27 | |
r: say [+] (1, { (* + 1) * 2 } ... *)[^5] # am i on the right track? | 03:28 | ||
p6eval | rakudo b64c1e: OUTPUT«Cannot call 'Numeric'; none of these signatures match::(Mu:U \$v, Mu *%_) in method Numeric at src/gen/CORE.setting:648 in sub infix:<+> at src/gen/CORE.setting:2329 in sub <anon> at src/gen/CORE.setting:10624 in block <anon> at /tmp/SR6Fvan1kW:1»… | ||
sorear | 。 | ||
raiph | p6: say [+] (1, { (* + 1) * 2 } ... *)[^5] # am i on the right track? | ||
p6eval | niecza v16-23-gaa61ed5: OUTPUT«Unhandled exception: Cannot use value like WhateverCode as a number at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 261 (Any.Numeric @ 5)  at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.se… | ||
..pugs: OUTPUT«*** unknown parse error at /tmp/eFrtI7aVkv line 1, column 35» | |||
..rakudo b64c1e: OUTPUT«Cannot call 'Numeric'; none of these signatures match::(Mu:U \$v, Mu *%_) in method Numeric at src/gen/CORE.setting:648 in sub infix:<+> at src/gen/CORE.setting:2329 in sub <anon> at src/gen/CORE.setting:10624 in block <anon> at /tmp/cggVmb_H2t:1»… | |||
sorear | no, that's not how you use Whatever stars. | ||
Ditch the braces. | |||
raiph | kthx | 03:29 | |
p6: say [+] (1, (* + 1) * 2 ... *)[^5] # am i on the right track? | 03:30 | ||
p6eval | pugs: OUTPUT«*** unknown parse error at /tmp/k4YDLrEToE line 1, column 31» | ||
..rakudo b64c1e, niecza v16-23-gaa61ed5: OUTPUT«83» | |||
raiph | now time to backlog # excited | 03:31 | |
sorear | raiph: why? | ||
raiph | irclog.perlgeek.de/perl6/2012-04-23#i_5481981 | 03:32 | |
d'oh. but, i'm still fairly happy. at least i instinctively reached for the sequence (?) syntax | 03:39 | ||
the [+] was overthinko + nochecko | 03:40 | ||
i'm still slightly surprised by { * ...... } being wrong, and ( * ...... ) being ok, but i'm sure i'll figger that out in a mo when i read docs | 03:43 | ||
03:51
leprevost joined
|
|||
geekosaur | * already creates a closure, using braces makes a closure containing a closure | 03:51 | |
03:52
REPLeffect joined
04:05
sftp left
04:06
wolfman2000 left
04:14
thou left
04:21
cognominal left
04:23
cognominal joined
04:25
envi_ left
04:40
alester_ left
04:41
skids left
04:45
Kannan joined,
Kannan left
|
|||
dalek | rl6-bench: d67ab8c | (Geoffrey Broadwell)++ | nqp/rc-forest-fire: Fix NQP rc-forest-fire fire spreading bug |
04:49 | |
rl6-bench: 6cdbd06 | (Geoffrey Broadwell)++ | bench: Only display enabled compilers in summary table |
|||
04:59
geistteufel left
05:05
geistteufel joined
05:18
spaceships left
05:19
birdwindupbird joined
|
|||
moritz | phenny: tells arnsholt in gist.github.com/2476861 the return value of sqlite3_open indicates success, but the connection handle remains a null pointer. sqlite.org/c3ref/open.html has the documentation. Any idea what could be wrong? | 05:45 | |
phenny: tell arnsholt oh, and sqlite creates the file, so I guess the problem is really passing the db handle back to the caller | |||
phenny | moritz: I'll pass that on when arnsholt is around. | ||
moritz | phenny: tell arnsholt in gist.github.com/2476861 the return value of sqlite3_open indicates success, but the connection handle remains a null pointer. sqlite.org/c3ref/open.html has the documentation. Any idea what could be wrong? | 05:46 | |
phenny | moritz: I'll pass that on when arnsholt is around. | ||
moritz | spelling helps :-) | ||
05:47
tyatpi left
05:48
REPLeffect left
05:55
kaleem joined
06:22
wtw joined,
fhelmberger joined
|
|||
frettled | good morning or something | 06:26 | |
sorear | good frettled, #perl6 | ||
moritz | good *, * | 06:28 | |
06:45
replore left
06:48
kresike joined
|
|||
dalek | rl6-bench: 879091e | (Geoffrey Broadwell)++ | bench: Fix paste-o |
06:49 | |
rl6-bench: 9ab5d37 | (Geoffrey Broadwell)++ | bench: Turn off perlito6.js/d8 until compiler hang is fixed |
|||
07:13
raiph left
07:38
jaffa4 joined
|
|||
jaffa4 | hi | 07:38 | |
sorear | hi jaffa4 | 07:39 | |
07:40
vlixes left
|
|||
jaffa4 | sorearL I would like to capture repeated capture in a array in a grammar. Is that possible in niecza? | 07:40 | |
sorear | automatic. | ||
jaffa4 | sorear: I have tried this @<bracket1>=['(' <.ws>]* in I cannot see the matched (.... | 07:41 | |
sorear | repeated captures ALWAYS go into arrays | ||
jaffa4 | when I print $<bracket1>.list.elems... I get 0. | ||
sorear | niecza: say "( ( ( " ~~ / @<bracket1>=['(' <.ws>]* / | 07:42 | |
p6eval | niecza v16-23-gaa61ed5: OUTPUT«#<match from(0) to(6) text(( ( ( ) pos([].list) named({"bracket1" => #<match from(0) to(6) text(( ( ( ) pos([].list) named({}.hash)>}.hash)>» | ||
sorear | Your problem is that you put the quantifier inside the match | ||
You don't *have* a repeated capture there | |||
jaffa4 | niecza: say "( ( ( " ~~ / @<bracket1>=[['(' <.ws>]*] / | 07:44 | |
p6eval | niecza v16-23-gaa61ed5: OUTPUT«#<match from(0) to(6) text(( ( ( ) pos([].list) named({"bracket1" => #<match from(0) to(6) text(( ( ( ) pos([].list) named({}.hash)>}.hash)>» | ||
sorear | niecza: say "( ( ( " ~~ / [@<bracket1>=['(' <.ws>]]* / | ||
p6eval | niecza v16-23-gaa61ed5: OUTPUT«#<match from(0) to(6) text(( ( ( ) pos([].list) named({"bracket1" => (#<match from(0) to(2) text(( ) pos([].list) named({}.hash)>, #<match from(2) to(4) text(( ) pos([].list) named({}.hash)>, #<match from(4) to(6) text(( ) pos([].list) named({}.hash)>).lis… | ||
jaffa4 | finally | 07:45 | |
that was not obvious, you know | |||
sorear | not my fault | ||
07:46
brrt joined
|
|||
sorear | I think the syntax you tried should be outlawed, nobody can understand it so nobody should be allowed to write it | 07:46 | |
but it's not my call | |||
sorear leaves before he gets any grumpier | 07:47 | ||
jaffa4 | Why would you get grumpy? | ||
sorear: in overall, the language is going to be ok , I guess | 07:49 | ||
sorear | from my perspective, you seem to be making a habit of expecting niecza to read your mind and complaining when it doesn't | 07:51 | |
frettled | That little piece of code made my eyes water. | ||
sorear | I don't have very much free time currently and I can't make major improvements to anything | ||
jaffa4 | not niecza, DWIM? | ||
sorear | I'm starting to regret being in #perl6 at all | ||
jaffa4 | perl 6 | ||
not niecza, perl 6. | |||
moritz | jaffa4: you seem to have a talent for phrasing things negatively and only pointing out errors (which, often enough, are your own). That's a good reason for people to get grumpy | ||
jaffa4 | my own? This last example was not logical | 07:52 | |
moritz | jaffa4: I'm not talking about the last example, I'm talking about your communcation in here in general | ||
jaffa4 | Give examples, in most cases, people misunderstand me. | 07:54 | |
moritz | jaffa4: yes. And communication is always two-ways. If people misunderstand you all the time, that might be related to *your* way of communicating, not just ours | ||
jaffa4 | in most cases such as yours, people misunderstand me. | 07:55 | |
not always. | |||
It depends on who I am communicating with | |||
moritz | and what do you learn from that? | ||
jaffa4 | bad luck | ||
moritz | that's the wrong conclusion | 07:56 | |
you could investigate different ways to phrase things | |||
for example | |||
you could start to talk not only about negative things | |||
showcase some neat examples that work, for example | 07:57 | ||
jaffa4 | let me quote myself: in overall, the language is going to be ok , I guess | ||
moritz | and that's not positive | ||
that's just barely not negative | |||
jaffa4: do you see where I'm getting to? | 07:58 | ||
07:59
agentzh joined
08:02
|newbie| joined,
jaffa4 left
|
|||
|newbie| | moritz, sorear : you know what projection is in psychology | 08:02 | |
08:02
|newbie| is now known as jaffa4
|
|||
moritz | |newbie|: I do | 08:02 | |
jaffa4 | when you think somebody says something, in reality, you think that internally... | 08:03 | |
moritz | jaffa4: I have a proposal. Go through a few pages of irclog.perlgeek.de/search.pl?channe...fa4&q= and see count the number of lines that are negative (ie about problems with something), neutral or positive (actively praising or appreciating something). Tell us the counts. Then I tell you if I have been projecting | 08:04 | |
and with "negative" I also mean negated questions | 08:05 | ||
jaffa4 | moritz: I come here to solve some of the problems I have spent too much time.. I use this channel for problem solving.. Of course , you will count a high "negative" remark. | 08:06 | |
moritz | jaffa4: and yet other people manage to do just that without getting such a negative connotation | 08:07 | |
arnsholt scrollbacks a bit | |||
phenny | arnsholt: 05:45Z <moritz> tell arnsholt oh, and sqlite creates the file, so I guess the problem is really passing the db handle back to the caller | ||
arnsholt: 05:46Z <moritz> tell arnsholt in gist.github.com/2476861 the return value of sqlite3_open indicates success, but the connection handle remains a null pointer. sqlite.org/c3ref/open.html has the documentation. Any idea what could be wrong? | |||
moritz | arnsholt: read those two messages in reverse order, I accidentally .reverse()d them :-) | 08:08 | |
arnsholt | Right. They make more sense that way =D | ||
I'll have a look at it in a bit. Sounds odd | |||
08:10
ashleydev joined
08:11
sunnavy joined
|
|||
moritz | general question: S19 says that single-letter options and their arguments need to delimited by whitespace | 08:13 | |
ie -Ilib needs to become -I lib | |||
somehow that has never seemed to take off. Should we remove that clause? | 08:14 | ||
I'm asking because colomon++ has submitted a bug about -Ilib being ignored in rakudo, and I'd like to know whether to make it work | |||
08:14
domidumont1 left
|
|||
moritz | and the topic has come up during the Oslo hackathon too | 08:15 | |
08:16
domidumont joined
|
|||
sorear | fwiw, I am a S19 skeptic on many of these points | 08:17 | |
the Perl 6 interpreter will be invoked by people who are not Perl 6 programmers | |||
so it needs to respect POLS from the POV of a generic Unix user | 08:18 | ||
moritz | agreed | ||
frettled | yup | ||
sorear | getopt_long and XtInitialize is already one option parser too many | ||
08:19
betterworld left
|
|||
frettled | Also, for (annoying) backwards compatibility with Perl 5, perhaps there should be a -E, which essentially does the same as -e. | 08:19 | |
(I'm a little pissed off at the Perl 5 guys for inventing that particular crud) | 08:20 | ||
moritz | +0 | ||
sorear | -0 | ||
moritz | I'd say we wait a year or two and see if -E usage takes off in the p5 world | ||
sorear | n: say (-0).perl | 08:21 | |
p6eval | niecza v16-23-gaa61ed5: OUTPUT«0» | ||
sorear | n: say (-0e0).perl | ||
p6eval | niecza v16-23-gaa61ed5: OUTPUT«0e0» | ||
frettled | It already has «taken off». | ||
frettled knows several people who regularly use -E instead of -e, because they do «modern» perl on the command line. | |||
Of course, that's anecdata. | |||
moritz | yes, I use it too. But it doesn't seem to be prevalent in online discussions about perl | 08:22 | |
mikec hadn't heard of it | |||
sorear | mikec, I do not beleive I have welcomed you yet, welcome | 08:23 | |
mikec | hey | ||
i've been lurking for a while | 08:24 | ||
08:25
kaleem left
|
|||
frettled | moritz: I think it will take some years before it becomes prevalent. But AFAIK, use has picked up quite a bit. | 08:25 | |
moritz | frettled: maybe the better test is to see if people will complain about the lack of -E in Perl 6 compilers | 08:26 | |
so far I haven't got any such complaints | 08:27 | ||
08:29
kaleem joined
|
|||
frettled | We haven't had many complaints regarding the utter uselessness of -h either, until Marcus noticed this weekend and I half-jokingly said that it was so because he hadn't fixed it yet – so he went and fixed it. | 08:31 | |
I don't think we're quite there that we can take any lack of input from the userbase as indication that there is something amiss. | |||
s/there is something amiss/there is NOT something amiss/ | |||
imarcusthis | I miss -I | ||
I don't quite understand what -E would do in perl6 | 08:32 | ||
moritz | imarcusthis: many people miss -I, which is why I want to fix it | ||
tadzik | good morning | ||
moritz | -E would just be the same as -e | ||
frettled: regarding -E, I'd propose to just wait and see. If it absence annoys people, eventually they will complain | 08:33 | ||
good tadzik, morning | |||
tadzik | -E should just alias s() to say() :P | ||
moritz | ah, and then have fun with s/// vs. s() :-) | ||
frettled | tadzik: heh | 08:34 | |
sorear -> sleep | |||
frettled | moritz: I have no problem with that :) | ||
moritz | OH | 08:43 | |
currently nqp parses -Ilib as -I -l -i -b | 08:44 | ||
though I wonder what all those options do :/ | |||
ah, they don't do anything | |||
it's just that the check that options are declared fails to work for grouped options | |||
08:45
fglock joined
08:48
jaldhar left
08:50
dakkar joined
|
|||
tadzik | it probably expects either -I=lib or --Ilib | 08:53 | |
08:54
betterworld joined
|
|||
moritz | no, -I is simply NYI | 08:54 | |
but there was a bug which made nqp and rakudo silently accept (and ignore) it anyway | 08:55 | ||
I have a local patch which makes it die instead | 08:57 | ||
but I guess we really, really want to allow grouping of options that take arguments, and we really want -I to be implemented too | 08:58 | ||
dalek | p: 58e7359 | moritz++ | src/HLL/CommandLine.pm: for grouped command line options, check if each is allowed |
09:01 | |
moritz | but we need that part of the patch anyway | 09:02 | |
frettled | yup | ||
09:02
cognominal_ joined
09:03
zipf joined
09:05
cognominal left
09:07
zipf left
|
|||
moritz | ok, thinking loud about how to implement -Ilib | 09:08 | |
frettled | I think it's nice to have a space there. | ||
moritz | well, that's the first step | 09:09 | |
tadzik | okay. If there's a single dash but multiple letters, then it probably wants to be -I=lib | ||
same as -MLWP::Simple | |||
that may not play nicely with -ne and so | 09:10 | ||
maybe it's always the matter of upper/lowercase, or maybe I'm thinking too much about "pass this one test, then we'll think" | 09:11 | ||
moritz | well, with the current spec neither -MLWP::Simpler nor -ne is allowed | 09:12 | |
tadzik | so neither is -Ilib, I suppose | ||
moritz | but what I'm thinking about this very moment is where to store the command line options | ||
tadzik: correct | |||
tadzik | and if people clearly want that, and we clearly want that, then it's probably time to change the spec | ||
moritz | but I want to allow at least -I lib for now | ||
correct | 09:13 | ||
09:13
zipf joined
|
|||
frettled | tadzik: short-form + = is against the principle of least surprise, too | 09:14 | |
tadzik | aye | 09:16 | |
tadzik classifies | |||
frettled | But have a look at e.g. ls, which has a fairly decent man page. | 09:18 | |
I think it violates consistency a bit by permitting -T15, -T 15 and --tabsize=15 | 09:19 | ||
Then again, it is sort of intuitive, although you have ls -1 | |||
09:26
xinming_ joined
09:29
xinming left,
envi_ joined
09:33
havenn joined
09:41
lichtkind joined
|
|||
tadzik | the pattern I see here, is that one letter lowercase options do not take arguments, and so can be chained like -pe | 09:44 | |
frettled | tadzik: except when they do take arguments, and cannot be chained | ||
moritz | like -e | ||
tadzik | the uppercase ones do, hence things like -Ilib or -MModule | ||
frettled | The example with "-T" was not coincidental. | ||
tadzik | right | ||
frettled | But for "ls", the pattern you see is correct. | 09:45 | |
(IIRC) | |||
tadzik | hrm | ||
frettled | sed is more perl-like | ||
tadzik | well, we do know whether something takes an argument or not, so this stuff can be figured out | 09:46 | |
frettled | The way I see it, the least surprising behavior would be to be careful about which single-char options take an argument, and ensure that there is internal consistency. | ||
tadzik | so something that does take anargument is followed by an optional whitespace and this argument | 09:47 | |
frettled | yup | ||
And since, as you point out, we know whether or not, that is nearly trivial to handle. | |||
tadzik | should be doable, yes | ||
09:48
ashleyde1 joined
09:49
sunnavy_ joined
|
|||
tadzik | so we're only left with the spec and the principle of least suprise, as you pointed out | 09:49 | |
masak | good practically-noon, #perl6. | ||
frettled | So to sum it up: single-letter options can be clustered any way you like – -chnp, -cpnh – as long as they do not take arguments. | ||
tadzik | good still-morning-for-me, masak | ||
yes | |||
frettled | If they take arguments, they are permitted to do so with optional whitespace after the option. | 09:50 | |
tadzik | if they do, they must go at the very end, so they don't violate the "followed by \s* and the argument" | ||
we could have a Perl 6 grammar for that | 09:51 | ||
in Rakudo's Main.pm we also do, but it serves a bit different purpose | 09:52 | ||
09:52
fgomez left
|
|||
frettled | tadzik: yup | 09:52 | |
tadzik | so, when do we hack? :) | 09:53 | |
masak | in rosettacode.org/wiki/Search_a_list#Perl_6 , why do we implement &find, when there's already .first ? | ||
09:53
bip` joined
|
|||
masak | why not at least define &find in terms of .first? | 09:53 | |
tadzik | if no one does, I'm willing to start a branch today after my classes | ||
09:54
sunnavy left,
ashleydev left,
geistteufel left
|
|||
moritz | tadzik: fwiw I'm currently doing a patch that allows -I lib, consistent with the other command line options we have so far | 09:54 | |
frettled | masak: that code could need some golfing | ||
tadzik | moritz++, great | ||
dalek | blets: 55ac819 | (Herbert Breunung)++ | docs/appendix-a-index.txt: bold menus are less flimsy and better to click on |
09:55 | |
blets: 1d2c1bd | (Herbert Breunung)++ | README.md: more items on: how to help |
|||
frettled | Plus: «Works with: Rakudo Star version 2010.08» | ||
jaffa4 | IS it you who is writing the perl 6 section for rosettacode? | ||
moritz | fwiw find returns the index, .first doesn't | ||
masak | right, but you can do .first on .pairs | 09:56 | |
tadzik | maybe it should return a pair | ||
09:56
machine1 left
|
|||
tadzik | but that's probably not per spec | 09:56 | |
moritz | you could write find as sub find(Mu $needle, *@haystack) { @haystack.keys.first: { @haystack[$_] ~~ $needle } } | ||
masak | jaffa4: RosettaCode is a wiki. many people contribute programs there, including Perl 6 programs. TimToady has written a fair bunch of them. | 09:57 | |
moritz: ooh, yes. that's quite nice. | |||
moritz: kinda like "half a Schwarzian transform" ;) | |||
frettled | jaffa4: as masak says, so for all intents of purposes, you are also one of those who write Perl 6 for rosettacode, if you want. | ||
tadzik | :) | ||
moritz | masak: may half of the Schwartz be with you :-) | 09:58 | |
10:01
havenn left
|
|||
lichtkind | hes fallen to the dark side | 10:02 | |
masak | ;) | 10:03 | |
masak backlogs over the jaffa4-moritz discussion | |||
dalek | blets: 6fc6aa2 | (Herbert Breunung)++ | docs/appendix-g-glossary.txt: added dummies for the terms codepoint and graphemes(unicode experts needed) |
||
blets: 6743897 | (Herbert Breunung)++ | docs/appendix-a-index.txt: minor format fixes + glossary links |
|||
blets: a0aa498 | (Herbert Breunung)++ | docs/appendix-a-index.txt: repair entry of $*KERNEL + usual minor fixes |
|||
10:04
machine1 joined
|
|||
masak | fwiw, I think everything jaffa4 says comes out grumpy/negative because jaffa4 has different communication prerequisites than most of us. | 10:05 | |
jaffa4 cares about Perl 6. it's not always evident from his messages that he means well. | |||
most other people know to throw in a "thank you" or a "I'm sorry" or a "that's not how I see it" to grease the wheels of communication. jaffa4, for reasons that have never become evident, doesn't. | 10:06 | ||
that puts more of the burden of making communication flow productively on those that he talks to on the channel. | 10:07 | ||
it still remains to be seen whether we can find ways to cope with that and plug jaffa4 into the community machinery in such a way that he doesn't introduce sand in the wheels. | 10:08 | ||
I for one would like to live in a world where we can have jaffa4 interacting on the channel, *and* sorear and moritz doesn't burn out from it. | 10:09 | ||
10:10
Guest96894 left
|
|||
flussence scrollbacks | 10:12 | ||
oh. I was wondering when that'd happen... | |||
lichtkind | that does find do? | 10:14 | |
masak | lichtkind: see the rosetta code URL. &find is not a Perl 6 builtin, it's a subroutine defined in the code at that URL. | 10:15 | |
if you already found the subroutine, and you're wondering how it works, let me know. | 10:16 | ||
10:16
zipf left
|
|||
lichtkind | masak: cute i overlooked this array function its not enough documented i think | 10:20 | |
moritz | which one? | 10:21 | |
10:21
pjcj_ left,
pjcj joined
|
|||
masak | lichtkind: .first is in S32, right next to .grep | 10:22 | |
it makes a lot of sense in a lazy-lists world. | |||
lichtkind | masak: i understood the example in this way that there is a list method find beside the IO method find | 10:23 | |
moritz wonders if lichtkind read and understood what masak wrote earlier | 10:25 | ||
arnsholt | moritz: I don't have sqlite3 installed on my work machine (d'oh!), but I think I see a problem | 10:26 | |
It's sqlite3_open(char *, sqlite3 **), but you declare it as (char *, sqlite3 *), essentially | |||
lichtkind | moritz: oritz yes i mean find seems to be a sort of grep but this is still something different than explained in S32 | ||
arnsholt | But I think I should read the docs a bit more before I make a final verdict | 10:27 | |
moritz | arnsholt: erm, I thought that Opaque*Pointer* was a pointer already, so sqlite3* | ||
and wrapping a CArray around it makes it sqlite3** | 10:28 | ||
arnsholt | Oh, right. I'm a marroon | ||
But the issue might be related to the additional indirection sqlite wants. Not sure | 10:29 | ||
moritz | hm, what additional info? | ||
masak | lichtkind: there is no List method .find | 10:30 | |
lichtkind: also, there is no IO method .find | |||
arnsholt | moritz: OH! I know! | ||
10:30
bacek left
|
|||
arnsholt | (I think) | 10:30 | |
10:31
bacek joined,
spider-mario joined
|
|||
arnsholt | When you pass the array off to C, the underlying data get twiddled, but since it's a Perl-managed array (supposedly) we don't catch that | 10:31 | |
We just return the object you stored there in the first place =) | 10:32 | ||
So, yeah. This is a use-case we don't handle yet | |||
Shouldn't be too hard to fix though | |||
moritz | that would be awesome | ||
though a TransparentPointer that return the pointee as an OpaquePointer would also work for me :-) | |||
lichtkind | masak: thy is find in S32 then under "IO::FileSystems" ? | 10:33 | |
why | 10:34 | ||
10:48
daxim joined
10:54
birdwind1pbird joined
|
|||
lichtkind | i was taling about find not first, ok it was just a sub | 10:56 | |
but its still in 32 as io | |||
10:57
GlitchMr joined
|
|||
lichtkind | and "Returns Path objects. Path.Encoding is set to $?ENC unless the $Encoding parameter is passed in (see Path for further discussion of encoding)." can be interpreted in several ways | 10:57 | |
lumi_ | Is it expected that some spectests fail on rakudo without icu? Is icu a prerequisite for rakudo? | 11:07 | |
11:08
LylePerl joined
|
|||
masak | lichtkind: yeah. consider that part of S32 just empty talk. it's still in there because no-one has removed it yet. | 11:09 | |
geekosaur | I don't know if rakudo strictly requires icu but I'm pretty sure the spec requires a level of unicode functionality that needs icu or equivalent | ||
11:09
bacek left
|
|||
lumi_ | geekosaur: I don't think it's unicode functionality that's failing | 11:09 | |
smolder.parrot.org/app/projects/rep...ails/27772 - these are the failures | 11:10 | ||
geekosaur | that seems to fit under the first part of what I said. | 11:13 | |
lichtkind | masak: and i im right $?ENC died too | ||
dalek | ecs: b5e3bef | (Herbert Breunung)++ | S32-setting-library/IO.pod: officially burry find function |
11:14 | |
lumi_ | geekosaur: Looking at the failure, I think it's because Test::Util is using :i in a regex | 11:16 | |
I've installed icu to get better smolders from now on, but I thought I'd bring this up in case this isn't intended | 11:17 | ||
masak | lichtkind: no, $?ENC still seems to be the default for things like .encode | 11:18 | |
lichtkind: and I seem to recall that TimToady doesn't want UTF-8 to be assumed too much -- just the default default | 11:19 | ||
colomon | moritz: note that -I lib doesn't work either, but at least it produces an error message! -Ilib just silently fails. | 11:22 | |
moritz | colomon: yes, github.com/perl6/nqp/commit/58e735918c fixes that (but we don't require that commit yet) | 11:25 | |
colomon: "fixes" in the sense of "dying loudly in both cases" | |||
colomon | definitely would be an improvement. | 11:27 | |
11:28
benabik left
|
|||
colomon | mind you, I think there should be a way to specify that on the command line without using environment variables. | 11:29 | |
moritz | agreed | ||
I'm working on that, but it turns out to be less trivial | |||
11:35
brrt left
11:38
birdwind1pbird left
11:43
grondilu joined,
grondilu left,
grondilu joined
|
|||
grondilu | p6: .say for map &sprintf.assuming("%x"), ^16; | 11:43 | |
p6eval | pugs: OUTPUT«(timeout)» | 11:44 | |
..niecza v16-23-gaa61ed5: OUTPUT«0» | |||
..rakudo b64c1e: OUTPUT«This type cannot unbox to a native integer in method munch at src/gen/CORE.setting:5092 in method reify at src/gen/CORE.setting:4766 in method reify at src/gen/CORE.setting:4678 in method reify at src/gen/CORE.setting:4678 in method gimme at src/gen/CORE.… | |||
grondilu | this used to work fine :( | 11:45 | |
moritz | when? and in which compiler? | ||
I'm a bit surprised it ever worked | |||
grondilu | I don't know exactly. Something like this was in my Digest module. | ||
moritz | because sprintf has a signature of ($format, *@args) | ||
grondilu | so? | ||
"%x" is a format, isn'it? | |||
moritz | yes, but what remains after the .assuming is applied is a signature of (*@args) | 11:46 | |
and .map is sensitive to the arity of the block it operates on | |||
grondilu | I don't give a block I give a function | ||
masak | so .map slurps all of the ^16 | ||
I don't see the problem either. | |||
moritz | well, it's the same as sprintf("%x', ^16) | 11:47 | |
which should complain about excess arguments | |||
masak | r: my &f = &sprintf.assuming("%x"); .say for map &f, ^16 | ||
p6eval | rakudo b64c1e: OUTPUT«This type cannot unbox to a native integer in method munch at src/gen/CORE.setting:5092 in method reify at src/gen/CORE.setting:4766 in method reify at src/gen/CORE.setting:4678 in method reify at src/gen/CORE.setting:4678 in method gimme at src/gen/CORE.… | ||
moritz | grondilu: s/block/callable/ then | ||
grondilu | hang on | ||
moritz | r: sprintf('%x', ^16) | ||
p6eval | rakudo b64c1e: ( no output ) | ||
moritz | r: say sprintf('%x', ^16) | ||
p6eval | rakudo b64c1e: OUTPUT«0» | ||
masak | huh. | 11:48 | |
moritz | it seems to just ignore all the other arguments | ||
masak | r: say sprintf('%x', |^16) | ||
p6eval | rakudo b64c1e: OUTPUT«Method 'FLATTENABLE_LIST' not found for invocant of class 'Range' in block <anon> at /tmp/3pr8Q1r7SW:1» | ||
moritz | the format tells it to print only one number | ||
so that's all it does | |||
masak | right. | ||
there really should be a check there. | |||
moritz | r: say sprintf('%x', |(^16).list) | ||
p6eval | rakudo b64c1e: OUTPUT«0» | ||
masak | for too-many as well as too-few. | ||
moritz | masak: yes, but we can't do that with our current factorinig | 11:49 | |
*factoring | |||
11:49
lestrrat left
|
|||
masak | I suspected that. | 11:49 | |
moritz | it requires a complete rewrite of sprintf | ||
masak | aye. | ||
dalek | ar: bcb1dfb | bbkr++ | / (2 files): Added JSON::RPC client and server. All tests successful on 2012.04 Rakudo release. |
||
ar: 56c614d | moritz++ | / (2 files): Merge pull request #2 from bbkr/master Added JSON::RPC client and server. |
|||
grondilu | but doesn't 'assuming' return a callable that could be given as first argument for map?? | ||
11:50
lestrrat joined
|
|||
moritz | grondilu: assuming just returns a callable with one argument curried | 11:50 | |
now this should work: | |||
r: sub a($a, $b) { sprintf $a, $b }; .say for map &a.assuming('%x'), ^16 | |||
p6eval | rakudo b64c1e: OUTPUT«This type cannot unbox to a native integer in method munch at src/gen/CORE.setting:5092 in method reify at src/gen/CORE.setting:4766 in method reify at src/gen/CORE.setting:4678 in method reify at src/gen/CORE.setting:4678 in method gimme at src/gen/CORE.… | ||
grondilu | ah | ||
There IS something wrong, isn't there? | 11:51 | ||
moritz | r: .say for map -> *@a { @a } , ^16 | ||
p6eval | rakudo b64c1e: OUTPUT«This type cannot unbox to a native integer in method munch at src/gen/CORE.setting:5092 in method reify at src/gen/CORE.setting:4766 in method reify at src/gen/CORE.setting:4678 in method reify at src/gen/CORE.setting:4678 in method gimme at src/gen/CORE.… | ||
moritz | grondilu: yes, there's something wrong | ||
arnsholt | moritz: On further thought, I think it's fairly easy to recompute the Perl 6 objects in an array, but I'm not entirely sure how to best expose it to Perl 6 | ||
moritz | grondilu: and I believe I know what | ||
masak submits rakudobug | |||
moritz | it's getting Inf as the parameter count | 11:52 | |
and tries to unbox that as an integer | |||
arnsholt | Or maybe we'll just want to do it every time a pointer is passed off to C. I think I'll have a word with jnthn about it | ||
moritz | arnsholt: maybe just do it as an .UPDATE method until we have a better idea | ||
grondilu | Are you going to add this in the test suite to avoid degradation in future? | 11:53 | |
Because really: it used to work. | |||
moritz | yes, but it relied on a bug | ||
I know how why it used to work | |||
11:53
benabik joined
|
|||
moritz | "how and why" | 11:54 | |
grondilu | ok | ||
moritz | but when we fix this bug, it won't work the way you want it to work | ||
grondilu | :( | ||
why not?? | |||
moritz | because the arity of the callable that you pass to .map decides how many arguments maps passes to the callable | 11:55 | |
and your takes as many arguments as it wants | |||
but let me propose | |||
r: .say for map *.fmt('%x'), ^16 | |||
p6eval | rakudo b64c1e: OUTPUT«0123456789abcdef» | ||
grondilu | oh that's nice | 11:56 | |
moritz | that works, will continue to work, and is even shorter :-) | ||
grondilu | thanks! | ||
I totally forgot about the fmt method | |||
grondilu happily edits his Digest module :) | 11:57 | ||
hum. hang on | 11:58 | ||
masak | moritz: is it really .arity that's Inf, and not .count? :) | 11:59 | |
grondilu | If it's a matter of arity, why 'sub a($a, $b) { sprintf $a, $b }; .say for map &a.assuming('%x'), ^16' does not work? | ||
moritz | masak: it's .count | 12:00 | |
grondilu: because .assuming doesn't create the correct signature | |||
grondilu: it creates a wrapper with signature (*@pos, *%named), and that leads to wrong introspection | 12:01 | ||
grondilu | ok | ||
masak | b: sub x( *@a ) { "hep!" }; .say for map &x, ^16 | 12:02 | |
p6eval | b 922500: ( no output ) | 12:03 | |
masak | alpha: sub x( *@a ) { "hep!" }; .say for map &x, ^16 | ||
moritz | there's no more alpha on p6eval | ||
masak | ah, ok. | ||
maybe just as well. | 12:06 | ||
I finally realize that I'm no longer an alpha user. :) | |||
I was, perhaps longer than most, after ng landed. | |||
arnsholt | masak: jnthn is off doing dayjobby things for most of today, no? | 12:07 | |
masak | but now I'm a stubborn Beijing holdout instead. and perhaps even those days are over, now that infosophy++ has ported over .changed et al. | ||
arnsholt: yes, he's teaching at a client today. which means offline. | |||
arnsholt | That's what I thought. I'll drop him a not via phenny then | ||
frettled | arnsholt: not a knot? | 12:08 | |
masak .oO( note to language designers: in English, the words "not" and "note" are too close to each other. not good. ) | 12:09 | ||
frettled | It can make a not out of something of note. | ||
arnsholt | phenny: tell jnthn moritz++ has uncovered an interesting use-case I hand't thought of. Sometimes we'll create a complex structure, send it off to C to be twiddled and do something with the resulting structure | 12:10 | |
phenny | arnsholt: I'll pass that on when jnthn is around. | ||
arnsholt | phenny: tell jnthn Except now we won't pick up on that change, since the array is already populated. We need to write barrier, either implicitly after every call, or explicitly from user code, I think | 12:11 | |
phenny | arnsholt: I'll pass that on when jnthn is around. | ||
12:11
leprevost left
12:13
bip` is now known as geistteufel
12:16
bluescreen10 joined
|
|||
lichtkind | masak: i wrote unicode not utf-8 | 12:17 | |
masak | lichtkind: ok. I commented on $*ENC, not Unicode/UTF-8. | 12:18 | |
"Unicode", despite some signs to the contrary, is not an encoding. :) | 12:19 | ||
lichtkind | masak: so there is an $*ENC | ||
i know | |||
masak | I would say there is an $*ENC, yes. | 12:20 | |
but I'm curious why you think it's gone, or going. | |||
lichtkind | masak: because its not in the tablets :) | ||
12:21
sporous left,
sporous joined
|
|||
masak | that seems an odd reason to me. | 12:21 | |
dalek | blets: 0ef08c6 | (Herbert Breunung)++ | docs/appendix-a-index.txt: repair zip entry |
||
lichtkind | masak: i looked really hard when i made the category, is there a %?ENC ? | 12:26 | |
moritz | grep can tell you in a second | ||
or ack :-) | |||
masak | yes. %?ENC exists. | ||
in fact, before I replied earlier, I used ack just to make sure. | |||
lichtkind | its not in feather.perl6.nl/syn/S28.html | 12:27 | |
masak | ok. it probably should be. | ||
daxim | a fine blaag entry, tadzik | ||
masak | lichtkind: are you philosophically opposed to using `grep` or `ack` on the spec dir? | ||
lichtkind | i did it today several times | 12:28 | |
meaning grep | |||
my point was more in adding it to s28 | 12:29 | ||
masak | go right ahead. | ||
forgiveness > permission | 12:30 | ||
12:30
NamelessTee joined
|
|||
lichtkind | ath what btw is $?NC | 12:33 | |
ath what btw is $?NF | |||
i see it nowhere explained just in signatures | |||
masak | S28-special-names.pod | 12:34 | |
266:$?NF -- unicode normalisation form | |||
lichtkind: seems you can get most of your answers here: en.wikipedia.org/wiki/Unicode_equiv...malization | 12:35 | ||
let me know if there is something else you'd like me to Google for you. ;) | |||
masak is just kidding -- he uses Duck Duck Go, of course | 12:36 | ||
moritz | .oO( let me ddg that for you :-) ) |
||
12:37
ab5tract joined
|
|||
lichtkind | sounds like dig | 12:40 | |
digg | |||
* | |||
there seemes to be no $*ENC only $?ENC | |||
masak: i acked that myself :) | 12:41 | ||
masak | aye. | 12:43 | |
[Coke] | can you digg it? | 12:44 | |
masak | I sometimes confuse %-twigil and ?-twigil variables. they're different, but both are related to configuration of different kinds. | ||
the er, *-twigil. | |||
the ?-twigil variables like %?ENC are meant to be read-only at runtime. | 12:45 | ||
dalek | blets: 4998d08 | (Herbert Breunung)++ | docs/appendix- (3 files): adding $?NF and $?ENC |
||
12:47
uniejo joined
|
|||
[Coke] | oh, from backscroll a long time ago: please let's not duplicate perl 5's version number/objects/mess. | 12:47 | |
12:47
brrt joined
|
|||
masak | please be more specific. | 12:48 | |
moritz | what should we do instead? :-) | ||
lichtkind | masak: so in $?NF is a routine? | ||
masak | lichtkind: I don't think so -- what makes you think that? | 12:49 | |
if it contained a routine, it would probably have the & sigil. | |||
lichtkind | masak: that this normalisation is an algorithm | ||
masak | lichtkind: yes, but 'NF' stands for 'normalization *form*', which is not an algorithm. | ||
moritz | $?NF is probably the name of a normalization form | ||
lichtkind | moritz: are you sure? | 12:50 | |
masak | that would be my guess too. | ||
maybe contained in a nice little enumeration or something. | |||
moritz | C, D, KC, KD | ||
see also: perldoc Unicode::Normalize | |||
lichtkind | i ask tim :) | ||
colomon | n: say (3/2).perl | 12:54 | |
p6eval | niecza v16-23-gaa61ed5: OUTPUT«<3/2>» | ||
colomon | r: say (3/2).perl | ||
p6eval | rakudo b64c1e: OUTPUT«3/2» | ||
masak | r: say <3/2>.perl | ||
p6eval | rakudo b64c1e: OUTPUT«"3/2"» | ||
masak | r: say <3/2> | 12:55 | |
p6eval | rakudo b64c1e: OUTPUT«3/2» | ||
masak | r: say 3/2 | ||
p6eval | rakudo b64c1e: OUTPUT«1.5» | ||
masak | huh! :) | ||
why should these last two be different? | |||
oh wait -- because full <> magic isn't implemented yet, I guess. | |||
moritz | because smart < > isn't implemen... right | ||
colomon | r: say <3/2>.WHAT | 12:56 | |
p6eval | rakudo b64c1e: OUTPUT«Str()» | ||
colomon | n: say <3/2>.WHAT | ||
p6eval | niecza v16-23-gaa61ed5: OUTPUT«Rat()» | ||
masak | n: sub foo(Rat $r) { say "OH HAI" }; foo <3/2> | 12:58 | |
p6eval | niecza v16-23-gaa61ed5: OUTPUT«Potential difficulties: $r is declared but not used at /tmp/GrzdqIgRvC line 1:------> sub foo(Rat ⏏$r) { say "OH HAI" }; foo <3/2>OH HAI» | ||
masak | n: sub foo(Rat $) { say "OH HAI" }; foo <3/2> | ||
p6eval | niecza v16-23-gaa61ed5: OUTPUT«OH HAI» | ||
moritz | n: say <3/2>.what | ||
p6eval | niecza v16-23-gaa61ed5: OUTPUT«Unhandled exception: Unable to resolve method what in class Rat at /tmp/gsxhJqpzyw line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 3840 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3841 (module-CORE @ 65)  at /home/p… | ||
moritz | n: say <3/2>.WHAT | ||
p6eval | niecza v16-23-gaa61ed5: OUTPUT«Rat()» | ||
moritz | n: say <3/2> | ||
p6eval | niecza v16-23-gaa61ed5: OUTPUT«1.5» | ||
moritz | I'm pretty sure that's supposed to say 3/2 instead | 12:59 | |
preservation of string forms etc. | |||
masak | n: .say for <the judges were 5/2 in favor> | ||
p6eval | niecza v16-23-gaa61ed5: OUTPUT«thejudgeswere5/2infavor» | ||
masak | n: say <5/2> | ||
p6eval | niecza v16-23-gaa61ed5: OUTPUT«2.5» | ||
masak | huh! | ||
moritz | logic, it's not. | 13:00 | |
n: say <a 5/2>[1].WHAT | |||
p6eval | niecza v16-23-gaa61ed5: OUTPUT«RatStr()» | ||
colomon | doesn't the .... oh | 13:01 | |
huh | |||
13:01
tokuhirom joined
|
|||
tadzik | daxim: thank you, kind sir | 13:02 | |
dalek | blets: 7ae5661 | (Herbert Breunung)++ | docs/appendix-a-index.txt: linking logical ops to glossary |
13:03 | |
moritz | the problem is really the spec saying 0.5.perl needs to return <1/2> | 13:04 | |
masak | that doesn't feel round-trippy to me. | ||
moritz | if niecza returned a RatStr for <1/2>, .perl wouldn't round-trip | ||
masak | <1/2> is not exactly equal to 0.5 | ||
moritz | well, it is in niecza | 13:05 | |
13:05
PacoAir joined
13:10
machine1 left
13:11
grondilu left
13:12
kresike left
13:14
machine1 joined
13:16
noam_ left,
mucker joined
13:20
noam joined
|
|||
dalek | kudo/nom: 11c0ab8 | moritz++ | src/core/ (2 files): be more robust when .count is Inf but does not cover all cases yet |
13:22 | |
ast: caf19ee | moritz++ | S02-types/mixed_multi_dimensional.t: rakudo unfudges |
|||
13:23
skids joined
|
|||
masak | twitter.com/AshBerlin/status/194774960533798913 -- I think this counts as an autopun. | 13:49 | |
maybe. | 13:50 | ||
13:50
kaleem left
|
|||
mucker | o/ #perl | 13:55 | |
colomon | \o | 13:56 | |
arnsholt | \o\ | ||
moritz | /o/ | 13:57 | |
arnsholt | \o/ | ||
frettled | /o\ | ||
masak | (though this is #perl6) :P | 13:58 | |
moritz | |o| | ||
mucker | wer'e still perl though :) | 13:59 | |
colomon | tie fighter! | ||
frettled | <o> | ||
masak | oh, sure. some would even argue that we're *more* Perl than Perl 5, because of the higher version number. | ||
masak hides | |||
frettled | Yes, our version number (rakudo) is at 2012.something! | 14:00 | |
moritz | speaking of that version number | 14:01 | |
mucker | fglock: there ? | ||
moritz | when should we do our rakudo+nqp point releases to base the star release on? | ||
fglock | mucker: hi | ||
phenny | fglock: 23 Apr 23:48Z <japhb> tell fglock See gist.github.com/2474657 -- even if it will be some time before perlito6.js can compile rc-forest-fire, it would be nice to stop it from endlessly looping the same error messages. :-) | ||
mucker | fglock : in src5/lib/Perlito5/Expression.pm and other files, the keyword .. token is used with a diff syntax. How is it possible ?? | 14:02 | |
PerlJam | moritz: now? :) | ||
fglock | "token" is a subroutine that implements a recursive descent parser, it is implemented at Perlito5::Grammar::Regex; it is only used internally by the compiler | 14:04 | |
it is not a keyword, it just looks like one | 14:05 | ||
mucker | it doesn't look like a sub declaration . is it a preprocessor or something ?? github.com/themucker/Perlito/blob/...r/Regex.pm | 14:08 | |
14:11
zhangkaizhao joined
|
|||
PerlJam | mucker: are you asking how "token token" can exist on line 21? | 14:12 | |
mucker | yup | ||
fglock | it is an implementation of a perl 6 grammar; in perlito5 it is used internally to specify some parts of the syntax | ||
14:12
JimmyZ joined
|
|||
colomon just added the ability to write multiple notes on a stem (ie explicit chords) to ABC. :) | 14:12 | ||
fglock | "token token" is possible because the compiler is bootstrapped | ||
it knows how to compile "token" because it already know how to compile token... | 14:13 | ||
masak | colomon++ | 14:14 | |
fglock: there's always something ticklish about describing metacircular loops. | |||
colomon | masak: turns out my strange music performance needs are leading to the need for lots of ABC improvements. :) | ||
masak | like it's playing around very close to the concept of infinity. | ||
colomon: scratching ones own itches FTW. | |||
mucker | fglock: Perlito 5 has a translation backend to Perl5. So I am guessing that's where token gets translated to perl5 | ||
fglock | if you look at the definition of token token, you will see the place where it generates perl5 code: my $source = ... perl code ... | 14:16 | |
this is then compiled to AST, and re-emitted (as perl5 or js) | |||
it is really a "macro" | 14:17 | ||
"token" is recompiled as a named subroutine | |||
named method, actually | |||
this is just a convenience, the compiler could be written without this | 14:18 | ||
masak | masak's first law about macros: everyone wants everything to be a macro. :) | ||
fglock | yes, macros are fun | 14:19 | |
masak | they are! | ||
jaffa4 | I had a strange problem | 14:20 | |
look: if %priorities{@values[*-1][0]}<%priorities{$next_op} | |||
moritz | use spaces around infix operators | ||
it's advice i give to anybody who listens | |||
mucker | fglock: o_0 ... must dig deeper :) | 14:21 | |
moritz | and even to those who don't listen | ||
jaffa4 | I suspected so | ||
So what did the parser think instead? | 14:22 | ||
mucker | fglock: one last question, who compiles, /Perlito5/Grammar/Regex.pm ? Or is it already bootstrapped and we need not worry about that | ||
14:23
wtw left
|
|||
masak | jaffa4: it thought that the < was the start of a literal hash key. | 14:23 | |
jaffa4: like in %hash<foo> | |||
moritz | jaffa4: we've discussed exactly that before, see irclog.perlgeek.de/perl6/2012-04-11#i_5427618 and irclog.perlgeek.de/perl6/2012-04-11#i_5427623 | ||
<moritz> jaffa4: for example a < directly after a term can be parsed as a hash subscript. Unless you put a space before it | |||
jaffa4 | great | 14:24 | |
practice makes perfect. | 14:25 | ||
masak | jaffa4++ # :D | ||
moritz++ # for patience and a good memory | |||
PerlJam | moritz++ especially for patience. | 14:26 | |
There's not enough of that in the world. | |||
moritz | and sometimes there's too much of that in the world. | 14:27 | |
14:27
PacoAir left
|
|||
masak feels stressed out just thinking about all the lack of patience in the world | 14:27 | ||
eiro | hello.world() | ||
masak, any idea about the plan of the perl6 swedish team to join fpw ? | 14:28 | ||
fglock | P::G::Regex is a perl5 file, with a few "token" declarations - so it can be compiled with perlito5 itself; that's what happen when you run: node perlito5.js -I./src5/lib -Cjs src5/util/perlito5.pl > perlito5-new.js | ||
masak | eiro! \o/ | ||
14:29
alvis`` left
|
|||
masak | eiro: as far as I know, jnthn+masak are set to join fpw. we both had our talks accepted, and at least I have confirmed my talk. | 14:29 | |
fglock | eiro: o/ | ||
eiro | (we're talking about gold right now) | ||
masak .oO( au ) | |||
eiro | fglock, \o/ | ||
masak | from an API standpoint, I wouldn't call a noun "hello" and a verb "world", by the way :P | 14:30 | |
fglock | mucker: "token" is there for historical reasons; perlito5 was initially bootstrapped using perl6 (perlito6), and it was then rewritten in perl5; but "token" was nice to have arround | 14:31 | |
around | |||
eiro | fglock, i don't remember about you joining fpw: can this happen ? | ||
mucker | fglock: understood | ||
fglock | eiro: I don't know, it depends on $job (I don't think it will happen) | ||
eiro | masak, sure... but perl6 is so weird it will have a sense. maybe it can be a perl6 idiom.... the perl6 vernoun | ||
14:32
mucker left
|
|||
eiro | fglock, any other perlito contributor to make us dream ? | 14:33 | |
masak, can you tell me about your travel? are you ok to share the room with jnthn ? any chance to make tadzik join us ? | 14:35 | ||
masak | as to that, you'll have to ask tadzik ;) | 14:36 | |
(who is not (yet?) part of the Perl 6 Swedish team) | |||
eiro: I'm ok with sharing a room with jnthn. I don't know much about our travel so far. I'm fine with settling details soonish, though. | 14:37 | ||
eiro | masak, ~ 350€ for both of you is reasonnable ? (it's just an approx) | 14:39 | |
masak | that sounds about right. | 14:40 | |
eiro | ok... i write it for the moment | ||
masak | especially if we book ahead. | ||
fglock | eiro: I'll ask around | ||
flussence | golf time! www.reddit.com/r/perl/comments/spsl...efficient/ | 14:41 | |
eiro | fglock, please do it quickly. the sonner we know, the better your stay will be | ||
masak | flussence: [\+], done. :) | 14:43 | |
flussence | \o/ | ||
masak | it's humbling to remember that we were once all beginners, and would write code like the original poster did. | 14:44 | |
PerlJam | I'm pretty sure I *never* wrote code like that. | 14:45 | |
masak was just waiting for someone to say that :) | 14:46 | ||
PerlJam: well, but generalizing, I think we've all momentarily forgotten that the computer is there to automate tasks for us. | |||
PerlJam | or, more accurately, I started to write it and then quickly became frustrated at the tedium and then started searching for a better way. | ||
But that would have been in BASIC about 30 years ago. | |||
moritz | I asked myself that very question. Yes, I did write rather repetitive code | 14:47 | |
masak | nowadays it seems much of the trick to programming is applying just the right amounts of automation to a problem. | ||
PerlJam | masak: aye, I'll agree with that. | ||
moritz | but no, not quite as bad as the reddit OP | ||
PerlJam | masak: also, the right amount of "engineering" too. | 14:48 | |
brrt | i've written code like that, in basic as a matter of fact | ||
never really got far that way | 14:49 | ||
jaffa4 | r: say "0" ~~ 0 | ||
p6eval | rakudo 11c0ab: OUTPUT«True» | ||
PerlJam | I've got a coworker who can not seem to help himself when it comes to solving problems. He immediately jumps to the generalization and expands the scope to include "normalizing" the design even when it's not warranted | ||
14:50
agentzh left
|
|||
masak | PerlJam: nowadays, such repetition and avoidance of the conveniences of loops is one of the things I find hardest about reviewing code from absolute beginners. the other is not abstracting magic values enough, and spreading them all through the code. | 14:50 | |
TimToady | .oO(he should be a language designer... :) |
||
PerlJam | masak: I wonder if, one day, we'll look at the code we write today in much the same way as we look at the OP's code? Just yesterday I was looking at a nested loop I wrote in Perl 6 and thought, "why the hell did I do that instead of use the xx and X operators?" | 14:51 | |
(then I promptly rewrote the looping to use those ops :) | |||
masak | PerlJam: yes, I think that's inevitable. | ||
TimToady | the new tools are shinier, and sometimes better | 14:52 | |
jaffa4 | xx and X are, they lazily evaluated? | ||
flussence | I really like those metaops, it's like SQL without the COBOL. | ||
TimToady | but sometimes you actually want a hammer | ||
masak | jaffa4: yes. | ||
PerlJam | It's all about what conceptual tools we have in our toolbox I guess. If you don't have the idea of "loops", you write them out long-hand. | ||
If you don't have the idea of the X op, then you write out a loop | |||
14:53
uniejo left
|
|||
JimmyZ | cpanratings.perl.org/user/psaperl | 14:53 | |
masak | PerlJam: I had a mini-realization during the Oslo hackathon, that that's how current modern languages will eventually grow old. there's just no way we can accurately predict our needs 50 or 100 years down the road. eventually the syntax can't keep up with all the new demands. | ||
JimmyZ | I'm sad | 14:54 | |
PerlJam | masak: it's a good thing Perl 6 can adapt ;) | ||
jaffa4 | How can Perl adapt? | ||
PerlJam | jaffa4: it's meta-enough that it can rewire itself. | 14:55 | |
masak | PerlJam: yes, that seems to be one of the goals. we're not there yet in terms of implementations, though. | ||
PerlJam | we'll get there eventually. | 14:56 | |
TimToady | we can see both sides of that mountain, and have already tunnelled most of the way through | ||
moritz | the problem is that much of the syntax rewritability in Perl 6 is new | 14:57 | |
and it might need a few generations to become really good | |||
PerlJam | oddly I was thinking it was kind of like driving towards mountains in the desert southwest US. You've driven for hours and the mountain doesn't look any closer, but it is. And if you keep driving, you'll get there at some point. | ||
TimToady | well, that's one problem; we don't really know what syntax we want for the slang tweaking | 14:58 | |
the other problem is, of course, performance of the parser | |||
masak | PerlJam: sounds like a scene in "Monty Python and the Holy Grail". | ||
mikec | hey, i've been trying the latest MiniDBI::Pg. all the tests pass (woo!) but in my own code, i get a segfault after executing fetchrow some number of times | 14:59 | |
masak | PerlJam: this one: www.youtube.com/watch?v=GJoM7V54T-c | 15:00 | |
mikec | is there something i can try/help with? | 15:01 | |
moritz | mikec: can you please use MiniDBI as of a7cfbbe8f7c3236f496738faf57e629871fead99 and see if it segfaults with that version too? | ||
PerlJam | masak: heh | ||
moritz | mikec: that's the last commit before I switched MiniDBD::Pg to prepared statements | 15:02 | |
mikec | moritz: sure | ||
15:04
uniejo joined
|
|||
masak | PerlJam: I've also heard the argument that strong AI will develop like that. that it will be developed in a long stretch which looks like no progress at all, and then suddenly already developed components will self-reinforce and lead to a sudden result. | 15:06 | |
PerlJam | and skynet will be written in perl 6 | ||
moritz | you mean it isn't already? :-) | 15:07 | |
masak | will have been being written in perl 6 | ||
PerlJam | We could ask Damian ... he does that time-travel thing all the time. | ||
TimToady | only if we get the parser reading Perl 6 as fast as a human does...oh wait, it already does that | ||
flussence reads some of the p5p thread from JimmyZ's link and backs away slowly | |||
(are they always that crazy?) | |||
TimToady | no, sometimes they're crazier...</rimshot> | 15:09 | |
PerlJam | that would be funny if it weren't true. | ||
TimToady | some things can be funny and true too | 15:10 | |
masak | rjbs++ # www.nntp.perl.org/group/perl.perl5....83053.html | ||
PerlJam | that one would be sadly funny then. The laughter would be of despair. | ||
masak | will the Perl 6 community have such email threads too, if/when Perl 6 takes off enough? | 15:11 | |
TimToady | absolutely | ||
masak | yeah. I don't see why not. | ||
moritz | it almost makes me wish for Perl 6 to stay small. Almost. | ||
TimToady | but hopefully also with the sane people keeping the peace as well | 15:12 | |
masak | "It's not what you do, it's what you do after", eh? :) | ||
that's why I ++'ed rjbs. | |||
PerlJam | You can't only ever get just the pleasant parts of an ecosystem | ||
But you can look for signs where not to step | |||
TimToady | .oO(The best of all possible worlds is not the best of all possible worlds, but one of those in the middle.) |
15:13 | |
masak | that's how I feel when I play Go. | 15:14 | |
mikec | moritz: still segfaults. this is a fresh rakudo install so i could have done something wrong, but the tests seem ok | ||
masak | if I ever use a tactic too extremely, it becomes a weakness that the opponent will use against me. | ||
15:15
alvis`` joined
|
|||
moritz | mikec: unlikely; if you did something wrong, you'd get an error while loading the modules | 15:16 | |
15:17
alvis`` left
|
|||
moritz | mikec: can you give me a backtrace please? | 15:17 | |
15:18
spaceships joined
15:19
alvis joined
15:21
araujo left
15:22
araujo joined
15:26
alvis left
15:27
flussence left
|
|||
mikec | moritz: sure, what kind of backtrace? | 15:28 | |
15:28
awwaiid_ is now known as awwaiid
|
|||
TimToady doesn't mix up "not" and "note" nearly as often as he mixes up "not" and "now". | 15:29 | ||
...which does now make me very happy... | |||
masak | :P | 15:30 | |
15:35
fglock left
|
|||
frettled | TimToady: how about know, now? | 15:40 | |
TimToady | that to. | ||
15:41
flussence joined
15:42
thou joined
|
|||
PerlJam | hot not brown cot ? | 15:42 | |
masak wonders if he makes any such mistakes in Esperanto, which has a 1-to-1 letter/sound correspondence | |||
seems I make other kinds of errors instead. | 15:43 | ||
15:43
sftp joined
|
|||
PerlJam | self-knowledge is half the battle | 15:44 | |
15:44
dagelf joined
|
|||
TimToady | flussence: xx and X are lazy, but only on one side (though for different reasons) | 15:44 | |
well, technically, X is lazy on both sides, but if you put an infinite list on the right you'll never find the second value on the left | 15:47 | ||
masak | good thing actual infinities don't exist. :P | ||
TimToady | perl6: .say for 1..* X* 1..* | 15:48 | |
p6eval | niecza v16-23-gaa61ed5: OUTPUT«(timeout)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798 | ||
..rakudo 11c0ab: OUTPUT«(timeout)» | |||
..pugs: OUTPUT«***  Unexpected "1" expecting operator at /tmp/HKYo4Wy2xB line 1, column 18» | |||
masak | PerlJam: I read that as "self-knowledge is half the bottle", and thought you were advocating a booze-based spelling strategy. :) | ||
TimToady | ooh, rakudobug! | 15:49 | |
masak submits it | |||
TimToady | it's evaluating the RHS eagerly | ||
masak | aye. | ||
PerlJam predicts that there will be many (more) bugs of the "insufficient laziness" variety. | 15:50 | ||
masak | TimToady: what's the category for X again? infix_prefix? | ||
TimToady | list_infix | 15:51 | |
though the spec is perhaps misleading when it says "Only the leftmost list may usefully be an infinite list." | |||
$prefix X~ @infinitelist is potentially useful | |||
masak | aye. | 15:52 | |
15:52
goraki joined
|
|||
colomon | +1 | 15:52 | |
15:52
Patterner left,
tokuhirom left
15:53
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
PerlJam | Have you guys seen shelr.tv/ ? | 15:56 | |
masak decommutes | 15:58 | ||
16:00
alvis joined,
thelazydeveloper joined
|
|||
dalek | ecs: ba1bf15 | larry++ | S03-operators.pod: sometimes X like an infinite list on the right |
16:01 | |
16:05
brrt left
16:11
ashleyde1 is now known as ashleydev
16:16
JimmyZ left
16:19
jerome_ joined
|
|||
moritz | mikec: C-level | 16:26 | |
16:46
xinming joined,
Chillance joined
16:49
xinming_ left
16:52
s1n left
16:53
PacoAir joined
|
|||
colomon | TimToady: I think I'd replace "In this last case it's okay to have an infinite list on the right." with "In this last case it's sensible to have an infinite list on the right." It's always okay to have an infinite list on the right, it's just not particularly useful most of the time. | 16:56 | |
16:58
dakkar left
16:59
REPLeffect joined
17:05
s1n joined
17:10
s1n left
|
|||
colomon is wishing acciaccatura where not the correct technical term, because it's a pain to spell | 17:11 | ||
sorear | good * #perl6 | 17:12 | |
17:14
zhangkaizhao left
|
|||
colomon | \o | 17:15 | |
moritz | sorear, colomon o/ | ||
colomon | moritz! | 17:16 | |
moritz | the very same :-) | ||
17:19
birdwindupbird left
|
|||
colomon | sorear: FIRST and LAST don't work yet, right? I just found a handy use case for them in the ABC code. ;) | 17:19 | |
sorear | Right | 17:20 | |
TimToady keeps wishing for a way to specify a subscript before the array subscripted, and wonders if 42.@foo can sanely be made to do that (assuming we de-spec the current speckage of .@foo) | 17:21 | ||
colomon | TimToady: !!!! why? | ||
TimToady | to keep left-to-right flow, and to allow *.@foo | 17:22 | |
currently we must write { @foo[$_] } for that | |||
which is a bit clunky | |||
sorear | I am not opposed | 17:23 | |
colomon | for what it's worth, that makes me frown. | ||
TimToady | and an array is essentially a function | ||
colomon | (the proposed fix, that is, not the problem.) | ||
sorear | to the concept, anyway | ||
17:24
wolfman2000 joined
|
|||
TimToady | more interested in the reversal than the succinctness | 17:24 | |
sorear | I'm pretty sure I've seen lan guages use @foo.42, which makes me think 42.@foo would be confusing | ||
I think J did indexing as 42{@foo, but probably best not to copy that syntax | 17:25 | ||
17:25
s1n joined
|
|||
TimToady | well, maybe not directly confusing, but @foo.@bar might be confusing in a DIHWIDT way | 17:26 | |
colomon | sorear: new to me niecza error: | ||
Unhandled exception: Unable to resolve method from in class | |||
P6+{term:sym<∅>},{infix:sym<∈>},{infix:sym<(elem)>},{infix:sym<∉>},{infix:sym<∋>},{infix:sym<(cont)>},{infix:sym<∌>},{infix:sym<∪>},{infix:sym<(|)>},{infix:sym<∩>},{infix:sym<(&)>},{infix:sym<(-)>},{infix:sym<(^)>},{infix:sym<⊆>},{infix:sym<(<=)>},{infix:sym<⊈>},{infix:sym<⊂>},{infix:sym<(<)>},{infix:sym<⊄>},{infix:sym<⊇>},{infix:sym<(>=)>},{infix:sym<⊉>},{infix:sym<⊃>},{infix:sym<(>)>},{infix:sym<⊅>},{in | |||
m<⊍>},{infix:sym<(.)>},{infix:sym<⊎>},{infix:sym<(+)>} | |||
sorear blinks | 17:27 | ||
location? | |||
moritz | there's a class that all those operators and terms mixed in? | ||
TimToady | 42 from @foo # maybe he's playing with this kind of thing | ||
colomon | at /Users/colomon/tools/niecza/src/STD.pm6 line 3075 (P6.infix:lambda @ 29) | ||
at /Users/colomon/tools/niecza/src/STD.pm6 line 0 (STD.infix @ 3) | |||
at /Users/colomon/tools/niecza/src/STD.pm6 line 3157 (P6.infixish @ 42) | |||
at /Users/colomon/tools/niecza/src/STD.pm6 line 4582 (ANON @ 7) | |||
(etc) | |||
I think this is the code in question: | 17:28 | ||
$lilypond ~= "\\grace \{" ~ | |||
if $element.value.notes == 1 { | |||
sorear | oh, no wonder I never noticed that bug | ||
colomon | obviously an error | ||
sorear | infix:lambda is not called ever when parsing correct code | ||
colomon | sorear: clearly you need to write more incorrect code. ;) | ||
colomon is always glad to be of service that way... | 17:29 | ||
17:30
zhangkaizhao joined
|
|||
sorear | colomon: can you hold on to the testcase for a couple hours? | 17:30 | |
colomon | sorear: I will duplicate it for future reference for you, but I kind of need to fix my bug ASAP. | 17:31 | |
colomon needs to have this score ready for rehearsal at 7 tonight. | |||
17:35
machine1 left
17:36
wolfman2000 left
|
|||
colomon now has grace notes working! | 17:36 | ||
17:36
birdwindupbird joined
|
|||
moritz | \o/ | 17:37 | |
17:38
jaldhar joined
|
|||
masak home | 17:39 | ||
17:40
machine1 joined
17:41
fglock joined
17:47
xinming_ joined
|
|||
dalek | kudo/nom: b1d764d | moritz++ | docs/ChangeLog: update ChangeLog |
17:48 | |
moritz | ok, here's the big question: should the rakudo point release get its own release number and name? | 17:49 | |
17:49
xinming left
|
|||
PerlJam | well, it's going to have it's own number :) | 17:50 | |
but, I don't have a problem with eliding the name | |||
moritz | ... release #51.5 ("Brazos Valley 1.5") | 17:51 | |
benabik | .5 ? | ||
moritz | we already had a release in 2012.04 | ||
we just want to release something with the results of that awesome hackathon | 17:52 | ||
benabik | Ah. | ||
moritz | to be able to base an R* release on it | ||
17:52
zhangkaizhao left
|
|||
pyrimidine | \o/ # Brazos Valley | 17:52 | |
PerlJam | Call it "Brazos Valley Star" :) | ||
[Coke] | don't want to wait a month to cut the next *? | ||
moritz | PerlJam: that will confuse everybody, since it's not the star release :-) | ||
pyrimidine | I happened to go to college there, way back when | 17:53 | |
PerlJam | or "Brazos Valley Oslo" | ||
moritz | [Coke]: no, don't wanna wait, we already skipped the March star release | ||
PerlJam: :-) | |||
PerlJam wonders when we'll start synchronizing the R* releases to linux dist releases. | 17:54 | ||
moritz | PerlJam: of which linux distro? :-) | ||
17:54
pochi joined
|
|||
PerlJam | indeed :) | 17:55 | |
dalek | rl6-bench: f6f5ec2 | (Geoffrey Broadwell)++ | TODO: Add a first cut TODO file |
||
PerlJam | moritz: actually, the real questions is ... how do we sponsor hackathons more often and prior to releases? | ||
[Coke] | ask karen @ TPF for a sixathon hackathon grant? | 17:56 | |
moritz | grant is not enough, we also need an organizer | ||
PerlJam | yep | ||
moritz | the next big meeting will probably be YAPC::EU in Frankfurt | 17:57 | |
[Coke] would volunteer Albany.pm except we don't exist. ;) | |||
who is going to YAPC::NA this year? | |||
aloha, going to YAPC::NA 2012? | |||
aloha, seen me? | |||
aloha | [Coke]: me was last seen in #parrot 247 days 16 hours ago saying "how many messages do I have?". | ||
PerlJam | [Coke]: are you going to YAPC::NA this year? | 18:01 | |
dalek | kudo/nom: e126aa9 | moritz++ | docs/announce/2012.04.1: add early release announcement for a 2012.04.1 point release |
18:03 | |
18:03
sisar joined
|
|||
moritz | feedback welcome | 18:05 | |
18:10
imarcusthis joined
|
|||
dalek | kudo/nom: a83a4ba | moritz++ | docs/announce/2012.04.1: [announce] say thanks to Oslo.pm |
18:12 | |
jnthn | evening, #perl6 | 18:17 | |
phenny | jnthn: 12:10Z <arnsholt> tell jnthn moritz++ has uncovered an interesting use-case I hand't thought of. Sometimes we'll create a complex structure, send it off to C to be twiddled and do something with the resulting structure | ||
jnthn: 12:11Z <arnsholt> tell jnthn Except now we won't pick up on that change, since the array is already populated. We need to write barrier, either implicitly after every call, or explicitly from user code, I think | |||
moritz | \o jnthn | ||
jnthn is exhausted | 18:18 | ||
phenny: tell arnsholt is it more complex that checking the underlying pointer of the child object matches the one in the real struct, and just updating the child object before returning it if so? | 18:20 | ||
phenny | jnthn: I'll pass that on when arnsholt is around. | ||
jnthn | phenny: tell arnsholt s/that/than/ | 18:21 | |
phenny | jnthn: I'll pass that on when arnsholt is around. | ||
jnthn | phenny: also, s/if so/if not/ | ||
...yeah, exhausted indeed :) | |||
18:21
s1n left
|
|||
fglock | reading about google drive - perl in the browser could use the API to simulate a hard disk | 18:25 | |
may be good for perl training some day | |||
18:27
uniejo left
18:38
daxim left,
s1n joined
18:39
cognominal joined
|
|||
arnsholt | jnthn: I acually think we can get away with just setting the child_obj pointer to NULLwhen updated | 18:40 | |
phenny | arnsholt: 18:20Z <jnthn> tell arnsholt is it more complex that checking the underlying pointer of the child object matches the one in the real struct, and just updating the child object before returning it if so? | ||
arnsholt: 18:21Z <jnthn> tell arnsholt s/that/than/ | |||
jnthn | arnsholt: How do we know when it's updated? | 18:41 | |
moritz | r: sub f { 2, :foo<bar> }; say f().perl | ||
p6eval | rakudo e126aa: OUTPUT«(2, "foo" => "bar")» | ||
18:42
ajs joined
|
|||
moritz | r: sub f { return 2, :foo<bar> }; say f().perl | 18:42 | |
p6eval | rakudo e126aa: OUTPUT«(2, "foo" => Mu)» | ||
ajs | Sorry, got boused | ||
bounced | |||
moritz | ok, works without &return | ||
18:42
ajs is now known as Guest19086,
cognominal_ left
|
|||
Guest19086 | hmm... interesting. | 18:42 | |
18:42
Guest19086 is now known as ajs_noreally
|
|||
jnthn | arnsholt: As in, what if C land diddles with the struct later? | 18:43 | |
ajs_noreally | r: say try { die("a") } | ||
p6eval | rakudo e126aa: OUTPUT«a in block <anon> at /tmp/jERwR_AVXh:1» | ||
moritz | it should really return Nil, but currently it returns the exception | ||
ajs_noreally | Ah, OK. I was wondering why this returned Nil: | ||
r: say try { die("a"); CATCH { return "b" } } | 18:44 | ||
p6eval | rakudo e126aa: OUTPUT«Nil» | ||
jnthn | ...which wsa OKer when the Exception was false in boolean context, I guess :) | ||
arnsholt | C fiddling with it later is a good point | ||
moritz | r: return 'b' | ||
p6eval | rakudo e126aa: OUTPUT«Attempt to return outside of any Routine in block <anon> at src/gen/CORE.setting:340 in block <anon> at /tmp/1CxUi9c7lA:1» | ||
moritz | that's what it should do | 18:45 | |
jnthn | uh | ||
moritz | because you're not inside a routine | ||
jnthn | I suspect it does | ||
but then the try catches that exception | |||
maybe | |||
:) | |||
arnsholt | Vut after return it would indeed be a simple matter of checking the pointers for equality | ||
jnthn | arnsholt: Vat if the update comes later, e.g. callback style? | ||
arnsholt | AFAICT at least | ||
Yeah, that one's harder | 18:46 | ||
moritz | jnthn: iirc CATCH shouldn't have anything to do with return | ||
arnsholt | (With apologies for spelling. On phone) | ||
jnthn | moritz: Agree, but the exception thrown when you attempt to return outside of any routine is a normal exception. | ||
moritz | jnthn: oh, right | 18:47 | |
jnthn | I don't think it's doing the right thing overall, mind. | ||
But that's probably why it's doing something odd. | |||
18:47
xinming joined
18:49
LylePerl left
18:50
xinming_ left
|
|||
ajs_noreally | Yeah, that's just me mis-using return... I tried some permutations (assigning to $!, succeed, etc) | 18:51 | |
jnthn -> dinner | |||
ajs_noreally | But if try isn't supposed to have a return value, that solves my problem (perhaps not in the way I wanted ;-) | 18:52 | |
It would have been nice to be able to say "my $foo = try { something_dangerous() }; | |||
Rather than "my $foo; try { $foo = something_dangerous() }" | 18:53 | ||
tadzik | eiro: I'm fine with sharing rooms :) | ||
eiro: that said, I can't tell (yet) if I'll be at FPW | 18:54 | ||
I'd love to, but I can't yet guarantee that I won't have my exams then | |||
ajs_noreally | I suppose it's easy enough to define it myself... | 18:55 | |
18:56
kaare_ joined
|
|||
colomon | huh. Apparently putting a chord in a 2nd ending makes the ABC parser loop forever. :( | 18:57 | |
ajs_noreally | r: sub attempt(&block) { my $ret; try { $ret = &block() }; return $ret; }; my $foo = attempt { die("a") }; say $foo; my $bar = attempt { "b" }; say $bar; | 18:59 | |
p6eval | rakudo e126aa: OUTPUT«Any()b» | ||
18:59
|newbie| joined
|
|||
ajs_noreally | That works | 18:59 | |
18:59
|newbie| left
19:02
s1n left
19:07
fhelmberger left
19:09
fglock left
19:10
ajs_noreally left
|
|||
colomon | n: say "[K:G] [G3/2 D3/2]B,/2 B,3/2[B/2 G/2]" ~~ / '[' <alpha> ':' $<value>=[.*?] ']' /; | 19:13 | |
p6eval | niecza v16-23-gaa61ed5: OUTPUT«#<match from(0) to(5) text([K:G]) pos([].list) named({"alpha" => #<match from(1) to(2) text(K) pos([].list) named({}.hash)>, "value" => #<match from(3) to(4) text(G) pos([].list) named({}.hash)>}.hash)>» | ||
sorear | I'm back for a moment | 19:15 | |
19:16
s1n joined
|
|||
colomon | sorear: the above bit just went completely wrong in the ABC grammar -- did something like .* instead of .*? | 19:17 | |
sorear | colomon: perhaps because of automatic end anchoring? | 19:19 | |
colomon | I don't think that can be it... hmmm. | 19:21 | |
colomon is adding tests directed at this issue. | |||
19:22
icwiener joined
|
|||
lichtkind | is .slice an alias to lol() ? | 19:24 | |
sorear | no, .slice is an obsolete name for .lol | ||
actually it might be .tree now, I can't keep up | 19:25 | ||
lichtkind | :) | ||
so i should remove .slice? | |||
sorear | Probably | ||
masak | yes, .lol used to be spelled .slice | 19:26 | |
dalek | blets: 5079632 | (Herbert Breunung)++ | docs/appendix-a-index.txt: replacing slice in snippets |
19:27 | |
19:28
sergot joined
|
|||
sergot | Hello o/ ! :) | 19:28 | |
moritz | sorear: if you have a list (or parcel) of parcels, .lol returns a LoL. .tree returns a list with itemized arrays or lists init | ||
sorear: at least that's my current understanding :-) | |||
\o sergot | |||
sergot | I'm back at home. I slept the whole day :) | 19:29 | |
tadzik | :) | ||
I'm not suprised | |||
sergot | And... I feel better. :) | ||
moritz | \o/ | ||
masak | sergot! \o/ | ||
tadzik | I'm not used to waking up at 3:30 either | 19:30 | |
good to hear that :) | |||
sergot | \o/ masak ! | ||
:) | |||
masak | sergot: I just want to say -- it was great to meet you. glad you came along to Oslo! | ||
moritz | agreed | ||
19:30
imarcusthis left
19:31
brrt joined
|
|||
sergot | masak: it was nice to meet you too. Unfortunately I couldn't say it in Oslo, didn't know that You go home at Sunday. | 19:31 | |
Thank You for everything guys. :) | |||
dalek | ecs: 621ba5e | (Herbert Breunung)++ | S (3 files): s/.slice/.lol/ |
19:32 | |
moritz | r: say (1, (2, 3), (4, 5)).lol.perl | ||
colomon | sorear: (or anyone...) suggestions on how to build a regex which says "any character but ]"? | ||
p6eval | rakudo a83a4b: OUTPUT«LoL.new(1, $(2, 3), $(4, 5))» | ||
colomon | <-[\]]> ? | ||
moritz | r: say (1, (2, 3), (4, 5)).tree.perl | ||
p6eval | rakudo a83a4b: OUTPUT«(1, [2, 3], [4, 5]).list» | ||
PerlJam | colomon: seems reasonable | ||
colomon | n: say "[K:G] [G3/2 D3/2]B,/2 B,3/2[B/2 G/2]" ~~ / '[' <alpha> ':' $<value>=[<-[\]]>*?] ']' /; | 19:33 | |
p6eval | niecza v16-23-gaa61ed5: OUTPUT«#<match from(0) to(5) text([K:G]) pos([].list) named({"alpha" => #<match from(1) to(2) text(K) pos([].list) named({}.hash)>, "value" => #<match from(3) to(4) text(G) pos([].list) named({}.hash)>}.hash)>» | ||
colomon | n: say ~("[K:G] [G3/2 D3/2]B,/2 B,3/2[B/2 G/2]" ~~ / '[' <alpha> ':' $<value>=[<-[\]]>*?] ']' /;) | ||
p6eval | niecza v16-23-gaa61ed5: OUTPUT«[K:G]» | ||
lichtkind | LoL is a type object? | ||
masak | sergot: yeah, we missed saying good bye. good thing there's IRC, where everyone is in the same room all the time ;) | 19:34 | |
sergot | masak: right! :) | 19:35 | |
tadzik | even when they're not :) | ||
sergot | ;] | ||
So.. I'll blog about Hackathon today! Hope it's not too late. :P | |||
tadzik | blog posts everyday! \o/ | 19:36 | |
19:36
imarcusthis joined
|
|||
[Coke] | PerlJam: it is plausible, but not a lock. | 19:36 | |
(going to yapc) | |||
colomon won't know for another two weeks, probably | 19:37 | ||
sergot | tadzik: i'll have enough time to do this after ... school. :P | ||
I'll end school at 11th May. | |||
19:37
MayDaniel joined
|
|||
sergot | at? :) | 19:38 | |
moritz | on | ||
sergot | moritz++ thanks :) | ||
dalek | ecs: d3ec849 | (Herbert Breunung)++ | S32-setting-library/IO.pod~: dang i have to remove another temp file |
19:39 | |
tadzik | sergot: I just meant that there's a new Oslo hackathon blog post everyday :) | 19:40 | |
sergot | tadzik: oh, sorry. misunderstanding. :) | 19:41 | |
To co ma byc w Niemczech, to YAPSI, tak? | 19:42 | ||
Czy jak to sie nazywalo? :) | |||
sorry. no there | |||
not* | |||
tadzik | haha | ||
dalek | ast: 47bf8e1 | moritz++ | S05-modifier/ignorecase.t: test that :i affects interpolated literals too |
19:43 | |
sergot | :D | ||
masak | phenny: "To co ma byc w Niemczech, to YAPSI, tak? Czy jak to sie nazywalo? :)"? | 19:44 | |
phenny | masak: "What is to be in Germany, it YAPSI , right? Or, as it was called ? :)" (pl to en, translate.google.com) | ||
masak loves it when people confuse those two :) | |||
sergot | I was talking about YAPC, not YAPSI :P | ||
:D | |||
19:45
MayDaniel left
19:46
vlixes joined
|
|||
colomon really, really wishes the grammar debugging tools worked in Niecza. | 19:46 | ||
19:48
xinming_ joined
|
|||
moritz | rakudo: sub foo($x? is rw) { $x = "OH HAI" }; | 19:49 | |
p6eval | rakudo a83a4b: OUTPUT«===SORRY!===Cannot use 'is rw' on an optional parameter» | ||
19:51
bluescreen10 left,
xinming left,
goraki left
19:57
raiph joined
|
|||
masak | r: my ($a is rw) = 5; say $a; $a = 42; say $a | 19:59 | |
p6eval | rakudo a83a4b: OUTPUT«542» | 20:00 | |
colomon | Aha! My problem was caused by putting spaces inside my chords. | ||
masak | r: my ($a is readonly) = 5; say $a; $a = 42; say $a | ||
p6eval | rakudo a83a4b: OUTPUT«542» | ||
masak | colomon: space chords! | ||
colomon | masak: better than space pipers! | ||
masak | lichtkind: what kind of git setup are you using that has you committing temp files into the spec? | 20:01 | |
lichtkind: also, can we help? | |||
masak .oO( there's this nice little thing called the staging area... ) | 20:02 | ||
20:02
fsergot joined,
fsergot left
20:03
bluescreen10 joined
|
|||
colomon | masak: www.amazon.com/Space-Piper-Rare-Air...B000005COD | 20:04 | |
lichtkind | masak: it was in the subdir , i didnt see that i add an ~ file | 20:05 | |
moritz | the solution is pretty easy | ||
don't use 'git add' with a subdir | |||
20:06
GlitchMr left
|
|||
moritz | and also tell your editor not to write backup files next to the original file | 20:06 | |
that's just very bad habits | |||
masak | what moritz said. | ||
doy | also: a global .gitignore that includes *~ | 20:07 | |
masak | I thought merge commits looked bad in the commit history, but they come a pretty distant second to accidental pushing of temp file commits. | ||
lichtkind: do you know about 'git commit --amend'? | |||
lichtkind | moritz: my editor dies that just when you told him i used gedit as a sidekick | ||
masak: whatsthat? | |||
masak | lichtkind: it's in the manual. enjoy. | 20:08 | |
lichtkind | moritz: does that ... :) | ||
colomon thinks he has ABC stable enough to finish the Wedding March | |||
masak | lichtkind: another good habit is to 'git add <stuff>' followed by 'git status' to see what you just did. | 20:09 | |
awwaiid likes his 'git rec' alias | 20:10 | ||
masak | and then, after checking, 'git commit'. | ||
awwaiid: wotsit do? | |||
awwaiid | Acts like hg/darcs record, interactively prompting to accept individual diff chunks and then stage/committing (or abandoning) in a single step. thelackthereof.org/docs/dotfiles/.gitconfig | 20:12 | |
PerlJam | awwaiid: isn't that just "git add -p" ? | ||
awwaiid | keeps me from committing things that I didn't mean to commit. doesn't actually help with newly added files though I guess | ||
PerlJam, it is git add -p, plus some stuff that will trash it if you abort | 20:13 | ||
oh, and it does the git commit too | |||
as with many things for the git construction kit, probably just personal taste :) | 20:14 | ||
PerlJam | aye | ||
masak | sounds kinda neat. | 20:15 | |
PerlJam | git is neat :) | ||
it's the swiss army chainsaw of revision control systems ;) | |||
masak | it is, isn't it? | 20:16 | |
there's some funny resonance between Perl and git. | |||
they're "alike", even across technologies. | |||
PerlJam | yep. It's one of the reason I use git, in fact. | ||
awwaiid | masak, see my above gitconfig to give git rec a whirl, and if you like it let me know :) | ||
masak | which, of course, is why Python people prefer Mercurial :P | ||
awwaiid: will do. | |||
PerlJam | I looked at bzr, hg, and git. git just fit my brain and felt like it had the perl-nature | ||
masak | git has the Unix nature, too. | 20:17 | |
dalek | blets: 8c94989 | (Herbert Breunung)++ | docs/appendix- (2 files): added useful crosslinks for minmax and s/// |
20:23 | |
20:23
envi_ left
|
|||
dalek | blets: 32cc840 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt: put links of special vars in right case |
20:29 | |
20:33
birdwindupbird left
|
|||
dalek | blets: 0f9a363 | (Herbert Breunung)++ | docs/appendix-a-index.txt: polish entries for note and warn |
20:34 | |
colomon | "YAPC::NA 2012 is officially sold out!" -- guess I'm not going this year after all | 20:39 | |
masak | Perl, alive and kicking, and more sold out than ever! | 20:45 | |
dalek | blets: 63617b7 | (Herbert Breunung)++ | docs/appendix-a-index.txt: polish entires for "words" "Whatever" and "trans" |
20:46 | |
20:50
leprevost joined
|
|||
masak | r: class A {}; class B { has A $.a }; say A.new(:b(B.new)); say A.new(:b(42)) | 20:51 | |
p6eval | rakudo a83a4b: OUTPUT«A.new()A.new()» | ||
masak | hm, no attribute type checking yet. | ||
doy | isn't that backwards | 20:52 | |
masak | oh, yes. | 20:53 | |
r: class A {}; class B { has A $.a }; say B.new(:a(A.new)); say B.new(:a(42)) | |||
p6eval | rakudo a83a4b: OUTPUT«B.new(a => A.new())Type check failed in assignment to '$!a'; expected 'A' but got 'Int' in block <anon> at src/gen/CORE.setting:598 in method BUILDALL at src/gen/CORE.setting:582 in method bless at src/gen/CORE.setting:572 in method new at src/gen/CORE.set… | ||
masak | oh! | ||
jnthn++ | |||
:) | |||
21:01
kaare_ left
|
|||
masak | r: say &infix:<+> | 21:08 | |
p6eval | rakudo a83a4b: OUTPUT«sub infix:<+>($a?, $b?) { ... }» | ||
masak | r: say &[+] | ||
p6eval | rakudo a83a4b: OUTPUT«sub infix:<+>($a?, $b?) { ... }» | ||
masak | r: multi &[+]($a, $b) { say "OH HAI" } | ||
p6eval | rakudo a83a4b: OUTPUT«===SORRY!===The () shape syntax in routine declarations is reserved (maybe use :() to declare a longname?)at /tmp/5RS8HCRppK:1» | ||
icwiener | Hi, is there something like basename yet in Rakudo? When searching for it I only get Perl5 code and quite some pages which, although shown in the text example of the search hit, do not contain the word basename. | 21:10 | |
(I still have to figure out what the most promising way to find info about language feature is.) | 21:12 | ||
masak | r: say IO.^methods | ||
p6eval | rakudo a83a4b: OUTPUT«» | ||
masak | icwiener: if it's spec'd, it will be found in S16 or S32. | 21:13 | |
benabik | I don't see basename in the tables. | ||
*tablets | |||
icwiener | Oh, "^methods" is nice. | ||
I will have a look at S16 and S32 and do it manually if I have to. :) | 21:14 | ||
lichtkind | benabik: what is basename? | 21:15 | |
icwiener | Thanks so far. :) | ||
lichtkind | benabik: would you add it? | ||
benabik | lichtkind: It may not exist in P6. Looks like it was a module in P5. | 21:16 | |
21:18
skids left
|
|||
icwiener | File::basename | 21:19 | |
21:19
donaldh joined
|
|||
icwiener | In Perl5 | 21:19 | |
Make "Foo" out of "/path/tp/Foo.txt". | |||
*Made | |||
21:19
betterworld left
21:22
cognominal left
21:23
goraki joined,
cognominal joined
21:25
betterworld joined,
ggoebel__ left
21:26
ggoebel__ joined,
brrt left
21:27
goraki left
|
|||
lichtkind | icwiener: thanks but sounds to me as a method for the path object | 21:27 | |
icwiener | lichtkind: Oh, I agree. :) | 21:30 | |
21:35
bruges_ left
21:36
icwiener left,
icwiener joined
21:37
bruges joined
|
|||
lichtkind | what you would prefer: if linkung to a term and the term glues on top of page or is bit more down but the previous entry is visible too? | 21:45 | |
masak: any preference? | 21:46 | ||
icwiener: any opinion? | 21:47 | ||
21:47
lestrrat left
|
|||
icwiener | lichtkind: I do not understand the question. Might I have missed something during my reconnect? | 21:48 | |
21:48
lestrrat joined
|
|||
lichtkind | icwiener: i just had the thought it would be nicer when the item you jump to isnt glued to the top border of the page | 21:49 | |
but it might confuse some if previous entry is visible too | |||
icwiener | lichtkind: You mean on perlcabal.org/syn? | 21:50 | |
lichtkind | icwiener: no on tablets.perl6.org/appendix-a-index.html#w | ||
icwiener | I think since it is the browser who does it it is 1) hard to change nicely and 2) confusing if one site does it differently than other sites. | 21:51 | |
masak | ok, I wrote a solver for the boy-with-apples problem: gist.github.com/2484152 | 21:53 | |
I'm very pleased with the solution. | |||
lichtkind | icwiener: thnk you | 21:56 | |
happy masak :) | 21:59 | ||
21:59
alester left
|
|||
dalek | blets: 79add42 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt: added links to index and glossary |
22:08 | |
blets: 0b4206e | (Herbert Breunung)++ | docs/appendix- (3 files): remove depreciated \b and \B and tidy up relatives |
|||
22:09
jaffa4 left
22:16
PacoAir left
|
|||
masak | 'night, #perl6 | 22:32 | |
colomon | o\ | ||
lichtkind | masak: o/ | 22:34 | |
22:39
ab5tract left
22:47
havenn joined
|
|||
[Coke] | moritz: you don't need to have lichtkind change his entire dev setup. all he needs is a global .gitignore | 22:47 | |
lichtkind | [Coke]: yes as i have it in my other projects :) | ||
[Coke] | lichtkind: you can have a .gitignore that is global, not just per project. | 22:48 | |
lichtkind | i read this page but could anyone explain me please what this $?NF is for ? | ||
22:49
japhb_ joined
|
|||
lichtkind | [Coke]: you mean a .gitignore on ~ | 22:49 | |
[Coke] | lichtkind: aye. | ||
lichtkind: $?NF: is this not sufficient? "coke@feather:~/sandbox/specs$ ack -Q '$?NF' | |||
" | |||
japhb_ | Who owns (or at least knows how to set up) dalek? I'm considering setting it up at $day_job .... | 22:50 | |
[Coke] | (grepping through roast?) | ||
lichtkind | [Coke]: i just dunno what it does | ||
[Coke]: done | |||
22:55
donaldh left
22:56
Chillance left
23:02
skids joined
23:03
fhelmberger joined
|
|||
diakopter | japhb_: dalek itself just tails a file and outputs text from it. another service sorear wrote listens for post-commit hook posts from github | 23:03 | |
japhb_ | diakopter, OK, fair enough. Where do I find all the pieces, so I can try to put them together? :-) | 23:05 | |
diakopter | hrm | 23:06 | |
pmichaud | the last commit to the 2012.04.1 release notes looks funny to me | ||
diakopter | japhb_: well, you won't be able to put them together, unless you're able to add additional post-commit hooks to all those projects on github | ||
japhb_ | diakopter, I'm actually wanting dalek (or a dalek-like bot) to run against our $day_job repos (a gitolite-managed collection of git repos) | 23:08 | |
diakopter | japhb_: oh. probably best to roll your own. there's enough cruft and specialization in dalek that it wouldn't help you much I think | ||
japhb_ | We were discussing the problem of keeping people aware of changes made in the (dozens) of repos we have, and I went "Wait, I know this one!" | ||
23:09
benabik left,
NamelessTee left
|
|||
japhb_ | diakopter, awww. | 23:09 | |
diakopter | japhb_: you'll need a web service that listens for the hook posts from github, then does whatever you want with them. emails them, builds an rss feed, posts to irc | 23:10 | |
japhb_ | s/github/gitolite/? | ||
diakopter | oh; I don't know what gitolite is | ||
pmichaud | phenny: tell moritz in commit a83a4b the resulting text reads "The Rakudo developers would like to add the organizers from Oslo.pm". That doesn't read quite right to me -- what are we wanting to add them to? ;-) | ||
phenny | pmichaud: I'll pass that on when moritz is around. | ||
diakopter | japhb_: I don't know if gitolite would support pushing those notifications like github does | 23:11 | |
23:12
drbean left
|
|||
japhb_ | diakopter, It's a git server wrapper that manages ssh keys, creating new repos, setting (and enforcing) ACLs on repos and branches, etc. Works well at the "small enough to understand, just big enough to keep a set of work repos sanely manageable" level. | 23:12 | |
It does support post-commit hooks ... I'll see what I can find, thanks diakopter. | 23:13 | ||
dalek | kudo/nom: 7334a53 | pmichaud++ | docs/ChangeLog: Typo fix; replace "infix cmp" with "&infix:<cmp>". |
23:15 | |
23:16
drbean joined,
LylePerl joined
23:18
mtk left
23:21
zb left
23:23
zb joined
23:29
icwiener left
|
|||
[Coke] | lichtkind: from those docs: $?NF is unicode normalisation form. Str.codes and .bytes each have an $nf argument that defaults to it. | 23:31 | |
(and .encode) | |||
(and Containers.decode) | 23:32 | ||
I don't see the valid values documented anywhere, but unicode.org/faq/normalization.html makes me think that "NFC", "NFKC", "NFD", and "NFKD" are valid examples. | 23:33 | ||
r: say $?NF | 23:34 | ||
p6eval | rakudo a83a4b: OUTPUT«===SORRY!===Variable $?NF is not declaredat /tmp/v_Cg_jpnby:1» | ||
23:39
jaldhar left
|
|||
[Coke] | p6: say $?NF | 23:40 | |
p6eval | pugs: OUTPUT«*** Undeclared variable: ("$?NF",MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = <Scalar:0xf6ee4a61>, pe_flags = MkEntryFlags {ef_isContext = True}, pe_store = <ref:0xf6ee6325>}),("@_",PELexical {pe_type = (mkType "Array"), pe_proto = <Array:0xf6e… | ||
..niecza v16-23-gaa61ed5: OUTPUT«Any()» | |||
..rakudo a83a4b: OUTPUT«===SORRY!===Variable $?NF is not declaredat /tmp/btLTYpgYZ6:1» | |||
dalek | blets: 4fd758a | (Herbert Breunung)++ | docs/tablet-2-basic-syntax.txt: add documenting comments and linking it |
23:53 | |
blets: 08feb85 | (Herbert Breunung)++ | docs/appendix- (2 files): links to autogenerated toc headings are lowercase |
|||
23:55
lestrrat left
23:56
lestrrat joined
23:57
fgomez joined
|