»ö« 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. |
|||
skids | I do like the new half brackets, but they don't seem to be in default compose keymaps, unfortunately. | 00:01 | |
pmichaud | well, hopefully the defaults will change with worldwide adoption of perl 6. :-) | 00:02 | |
also, my font doesn't seem to display half brackets | |||
dalek | kudo/nom: 690d774 | pmichaud++ | src/core/ (2 files): Refactor prefix:<|> flattening for Ranges and other types. |
00:03 | |
sirrobert | I'm learning to write grammars, but having a wierd problem. (I think there's something I don't get about newlines or something). | 00:07 | |
gist.github.com/2980628 | |||
pmichaud | \s* doesn't really make sense in a rule | 00:08 | |
sirrobert | ok... | ||
pmichaud | since whitespaces in the rule already implies \s* | 00:09 | |
sirrobert | I can't get it to ignore the first part of a slurped file | ||
pmichaud | inside of method verb($/), you might want 'eq' instead of '==' | ||
sirrobert | oh, yeah | ||
Still, adding a blank line at the top of the file breaks it | 00:10 | ||
even with the \s* removed | |||
pmichaud | looking | ||
sirrobert | (cleaned up the gist by replacing == with 'eq' and removed the \s* in all places. Same problem) | 00:12 | |
pmichaud | ah, it's the ^ that's an issue. | 00:13 | |
it's somewhat of a rakudobug; the whitespace before the ^ is eating up the newline before testing for "start of string", and with 'rule' there's no backtracking. | 00:14 | ||
sirrobert | ok! | ||
pmichaud | I think a recentish spec change causes leading whitespace before a ^ to be ignored... but rakudo doesn't implement that. | ||
sirrobert | glad it's not me =) | ||
pmichaud | so, eliminate the space before the ^ and maybe it will work. | ||
or, switch TOP to be a 'token' instead of a 'rule' | 00:15 | ||
sirrobert | ok, great. | ||
should I file a bug on this somewhere? | |||
00:15
cj joined
|
|||
pmichaud | message to [email@hidden.address] would be helpful, yes. | 00:15 | |
you can just copy/paste this discussion into the bug report | 00:16 | ||
sirrobert | (and, thanks a lot =) I spent several hours trying to figure out what I was missing =) | ||
ok | |||
pmichaud | glad to help, sorry you lost the hours :) | ||
sirrobert | It was a net gain -- I learned all about grammars, which was the goal =) | 00:17 | |
pmichaud | sirrobert++ | ||
afk for a while | 00:20 | ||
sirrobert | ditto | ||
00:33
telex left
01:01
adu joined
01:06
xinming_ joined
01:09
xinming left
01:12
tokuhirom joined,
thou joined
01:13
thou left
02:07
xdbr left
02:23
orafu left
02:24
orafu joined
02:30
BaggioKwok joined
02:38
adu left
03:04
leprevost joined
03:39
BaggioKwok left,
_jaldhar left,
_jaldhar joined
03:55
BaggioKwok joined
04:02
BaggioKwok left
04:08
_jaldhar left,
_jaldhar joined
04:10
Chillance left
04:32
_jaldhar left,
_jaldhar joined
04:44
leprevost left,
adu joined
04:49
kaare_ joined
05:17
thou joined
05:35
adu left
05:37
_jaldhar left
05:38
_jaldhar joined
05:39
_jaldhar left,
_jaldhar joined
05:50
_jaldhar left
05:51
_jaldhar joined
06:07
GlitchMr joined
06:14
mucker joined
06:28
_jaldhar left
06:29
_jaldhar joined
06:32
_jaldhar left
06:44
sisar left
07:15
sivoais left
07:17
birdwindupbird joined
07:19
birdwindupbird left
07:20
sisar joined
07:23
sivoais joined
07:24
birdwindupbird joined,
dbr joined
07:31
birdwindupbird left
07:37
mucker left
07:57
thou left
07:59
BaggioKwok joined
|
|||
moritz | \o | 08:13 | |
Woodi | hallo today :) | 08:18 | |
I have problem with trust to PP6 modules... *usually* they are very short and I don't realy know is it sign of Perl6 greatness or modules have just minimal functionality... | 08:20 | ||
just *impression*... | |||
Woodi just noticed that "Perl6" do not look alien-ish now to him :) | 08:22 | ||
08:23
BaggioKwok left
|
|||
moritz | well, often the features of perl 6 modules are rather limited | 08:26 | |
I guess the important question is "do they do what you want?" | 08:27 | ||
08:29
mustapha left
|
|||
Woodi | I was just talking about impresion when just skimming throught modules library on github. Names sound great, .pm after .pm are so short usually. Probably I would like to see something like '#sub feature_name { } # TODO' or maybe some info in README what concretly is missing | 08:36 | |
08:37
kaare_ left
|
|||
Woodi | just talking about *fast* impressions, hopes, expectations and wishes :) | 08:37 | |
08:37
brrt joined
|
|||
sisar | moritz: fwiw, the NQP rebuilding issue I was having yesterday, it went away. I'm not sure how, but I did this: manually deleted /rakudo/install/bin/nqp & then '--gen-parrot'. | 08:38 | |
Woodi | I keep Perl6 files in /opt/perl6 and when installing new version I usually just rm -r * there... and /opt/perl6 is chown to normal user so I do not need 'su root' for installation | 08:41 | |
08:42
pupoque_ joined
|
|||
Woodi | hmm, I probabyly lied... now I have everything installed to chowned /aux/graft and then 'grafted' to /opt, which is user-chowned... | 08:42 | |
08:43
pupoque_ is now known as Gesh
|
|||
Woodi | -Gesh-: hallo :) | 08:43 | |
Gesh | hi ^) | ||
Woodi | I like your confession yesterday about no idea why you like Perl :) I have the same, no idea why :) | 08:44 | |
Gesh | I'm not an experienced Perl hacker, I just know some essentials. And I even don't know Perl well enough to compare it with other languages. It was some kind of the beginners judgement | 08:47 | |
Now i'm trying to figure out a distro with latest rakudo. There is 2011.07 in Ubuntu | 08:48 | ||
Woodi | I am anti-expert too :) and probably it this likines is just state of mind :) | ||
Gesh | Maybe ^) | 08:49 | |
Woodi | and why my irc client says I am 37 days away ? | ||
sisar | moritz: can you invite me to perl6advent.wordpress.com ? I'd like to fix a broken link. | 08:52 | |
ok, moritz is away, can anyone else invite me ? | 08:53 | ||
08:56
plobsing left
|
|||
sisar afk | 08:56 | ||
masak | good morning, sweethearts. | 08:58 | |
tadzik | hello masak | ||
08:58
sergot joined
|
|||
sergot | hi o/ | 08:58 | |
masak | this is another wonderful day when we bring Perl 6 closer to widespread adoption. | 09:01 | |
sisar | masak, tadzik maybe you can send me an invite to perl6advent ? #see backlog | 09:02 | |
masak | my goal for the day is to get the p6cc/t5 blog post out the door. it's gonna be pretty great. | ||
sisar: I'll see what I can do. | |||
fix'd. | 09:07 | ||
masak breaks the night's fast | |||
09:18
birdwindupbird joined
|
|||
moritz | r: say (^5).bounds.perl | 09:19 | |
p6eval | rakudo 690d77: OUTPUT«(0, 5)» | ||
dalek | c: 300a79e | moritz++ | lib/Range.pod: [Range] add signatures; method bounds |
09:20 | |
masak | diakopter: rt.perl.org/rt3/Ticket/Display.html?id=67124 looks like it presupposes an old embedded-comments syntax. mind if I just reject the ticket? | 09:25 | |
sisar | um, when we have to display some code on a webpage, which is preffered: <pre>, <code> or a <code> inside a <pre> ? | 09:27 | |
tadzik | I have no eye deer :) | ||
masak | Gesh: 2011.07 is a good one, but there have been *lots* of improvements in the past half-year. if you want to benefit from those, I suggest you grab the latest release. building from the .tar.gz is quite easy. | 09:28 | |
sisar: for some reason, I've standardized on <pre><code>...</code></pre> in my blog posts. | |||
I no longer remember exactly why. some of the time I get away with just Markdown's four-space indent, but that isn't enough when I want formatting and links in there. | 09:29 | ||
sisar | masak: ok, i'll copy you, for some reason :p | ||
masak | and so the cargo-culting continues... :) | ||
09:31
sergot left
|
|||
masak | shoppe & | 09:33 | |
moritz | nr: say <a b>.succ | 09:35 | |
p6eval | niecza v18-7-ga660099: OUTPUT«Unhandled exception: cannot increment a value of type Parcel at /home/p6eval/niecza/lib/CORE.setting line 1402 (die @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 272 (Mu.succ @ 9)  at /tmp/UOiWmuAIne line 1 (mainline @ 3)  at /home/p6eval/niecz… | ||
..rakudo 690d77: OUTPUT«No such method 'succ' for invocant of type 'Parcel' in block <anon> at /tmp/SBaxYvI9vM:1» | |||
moritz | where does succ come from? Numeric? and then another one in Str? | ||
or is there a common role or class? | 09:36 | ||
09:40
telex joined
|
|||
sisar | this line: "#!/usr/bin/env perl6 use vcalling native perl6advent6; use NativeCall;" from perl6advent.wordpress.com/2010/12/1...om-perl-6/ looks wrong. | 09:44 | |
what is 'vcalling native perl6advent6" ? | |||
moritz | looks like copy&paste gone wrong | 09:46 | |
somebody wrote 'use v6'; | |||
and copied something between the v and 6 | |||
sisar | moritz: aha ! nice catch. I'll fix that. | ||
moritz | nr: say 'ab cd'.succ | 09:47 | |
p6eval | rakudo 690d77, niecza v18-7-ga660099: OUTPUT«ab ce» | ||
sisar | and this first part ""#!/usr/bin/env perl6", is this correct ? | ||
dalek | c: 2baa240 | jnthn++ | lib/Code.pod: Start documenting Code. |
||
09:48
sergot joined
|
|||
moritz | sisar: yes | 09:48 | |
\o/ contributions to doc! | |||
jnthn++ | |||
jnthn | Well, dunno if they're any good. :) | ||
It's my first commit there, lemme know if I did anything rong. :) | |||
I looked at Any.pod and tried to follow the style. | |||
moritz | looks good | 09:49 | |
jnthn | \o/ | ||
moritz | you could be a bit more specific about the return types in the signatures | ||
but that's not a must | |||
jnthn | What's the standard way to do that? | ||
09:50
spider-mario joined
|
|||
moritz | method arity(Code:D:) returns Int:D | 09:50 | |
jnthn | Nothing in Any did, afaict... | ||
moritz | List.pod has some examples | ||
well, most stuff in Any can return Any, so it's a bit pointless to add Any as annotations :-) | |||
jnthn | Well, apart from any/all/one return Junction. | 09:51 | |
moritz | nr: say 'zz'.succ | ||
p6eval | rakudo 690d77, niecza v18-7-ga660099: OUTPUT«aaa» | ||
dalek | c: f4e26e1 | jnthn++ | lib/Code.pod: Add some return type documentation; moritz++ for noting it was missing. |
09:52 | |
moritz | jnthn++ | ||
sisar | phenny: tell flussence, i formatted the code snippets on perl6advent.wordpress.com/2010/12/1...m-perl-6/, can you check if I did not inadvertently broke something. | 09:53 | |
phenny | sisar: I'll pass that on when flussence is around. | ||
moritz | nr: say 'ɑ'.succ | ||
p6eval | rakudo 690d77: OUTPUT«ɑ» | ||
..niecza v18-7-ga660099: OUTPUT«WTF» | |||
moritz | lol | ||
nr: say 'a9'.succ | 09:54 | ||
p6eval | rakudo 690d77, niecza v18-7-ga660099: OUTPUT«b0» | ||
moritz | .u ɑ | 09:56 | |
phenny | U+0251 LATIN SMALL LETTER ALPHA (ɑ) | ||
jnthn | moritz: We'll ship these docs in R*? | ||
moritz | nr: say 'α'.succ | ||
p6eval | rakudo 690d77, niecza v18-7-ga660099: OUTPUT«β» | ||
moritz | jnthn: sure | ||
jnthn | \o/ | ||
moritz | jnthn: speaking of which, does p6doc work on windows? | ||
sisar | arrgh, wordpress breaks code formatting:/ Write something like <pre><code>...</code></pre> in the 'HTML' view, then change to 'Visual' and see wordpress throw away your indentations and newlines mercilessly :| | 09:58 | |
jnthn | moritz: Not quite :( | ||
C:\consulting\perl6\doc>perl6 bin/p6doc | |||
What documentation do you want to read? | |||
C:\consulting\perl6\doc>perl6 bin\p6doc Str.split | 09:59 | ||
Cannot locate Str in any of the following paths: | |||
moritz | sisar: wordpress also mangles newlines | ||
jnthn | ...and a list of paths... | ||
moritz | :( | ||
sisar | moritz: aye | ||
moritz | jnthn: does $*PROGRAM_NAME contain backslashes or slashes on windows? | ||
jnthn | moritz: perl6doc -Ilib bin/p6doc Str | 10:00 | |
That does something else | |||
10:00
Gesh left,
pupoque left
|
|||
jnthn | 'less' is not recognized as an internal or external command, | 10:00 | |
operable program or batch file. | |||
moritz | jnthn: then it gets one step further | ||
jnthn | moritz: If I s/less/more then it shows docs \o/ | ||
Needs the -Ilib though. | |||
moritz | jnthn: it tries to run perl6 --doc $somefile | less | 10:01 | |
jnthn | moritz: Is there a reason for using less instead of more? | ||
Aren't they more or less the same? | |||
moritz | r: say $*OS | ||
p6eval | rakudo 690d77: OUTPUT«linux» | ||
jnthn | Apart from more works on more platforms? :) | ||
moritz | jnthn: less allows scrolling up and down, more only down | ||
jnthn | ah | ||
moritz | jnthn: what does $*OS report on your platform? | 10:02 | |
jnthn | MSWin32 | ||
moritz | jnthn: please try again | 10:04 | |
dalek | c: 5c333a0 | moritz++ | bin/p6doc: try some win32 fixes |
10:05 | |
c: 88a038a | moritz++ | lib/Str.pod: some Str.succ description |
|||
moritz | nr: say 'b0'.pred | ||
p6eval | rakudo 690d77, niecza v18-7-ga660099: OUTPUT«a9» | ||
moritz | nr: say 'a0'.pred | ||
p6eval | niecza v18-7-ga660099: OUTPUT«Unhandled exception: Magical string decrement underflowed at <unknown> line 0 (KERNEL Str.pred @ 1)  at /tmp/bcA4V70c1z line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3917 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line… | ||
..rakudo 690d77: OUTPUT«Decrement out of range in method gist at src/gen/CORE.setting:9461 in sub say at src/gen/CORE.setting:6988 in block <anon> at /tmp/dplrOIGp1g:1» | |||
moritz | nr: say 'img002.png'.pred | 10:07 | |
p6eval | rakudo 690d77, niecza v18-7-ga660099: OUTPUT«img001.png» | ||
dalek | c: 4bfc101 | moritz++ | lib/Str.pod: [Str] method pred |
10:08 | |
10:08
vmspb joined
|
|||
jnthn | moritz: oops | 10:09 | |
===SORRY!=== | |||
Malformed initializer | |||
at bin/p6doc:48 | |||
moritz | dammit | ||
I should compile before committing :( | |||
jnthn | ah, I see it | ||
moritz | missing closing quote | 10:10 | |
dalek | c: 055e79f | jnthn++ | bin/p6doc: Fix compile-o. Works nicely on Windows now. |
||
moritz | \o/ | ||
jnthn | Doesn't need -Ilib any more either | ||
moritz | I hoped so | 10:11 | |
10:14
kaare_ joined
10:16
brrt left,
JimmyZ joined
|
|||
sisar | moritz: en.support.wordpress.com/code/posti...rce-code/. I tried it and it works. | 10:16 | |
moritz | sergot: I like your patch to &dir, but I'd prefer not to run a regex for every dir entry | 10:17 | |
10:18
Kresike joined
|
|||
sergot | moritz: so maybe delete / from $path? | 10:18 | |
moritz | sergot: regexes are pretty expensive in rakudo. If you use .substr(*-1) eq '/' instead of the regex match, I'll apply it | ||
Kresike | hello all you happy perl6 people | ||
sergot | moritz: Ok, I'll change it. :) | ||
moritz | \o Kresike, today with upper case first letter :-) | ||
sergot | Kresike: hi ! | ||
Kresike | moritz, sergot o/ | 10:19 | |
Kresike connected from his home workstation | |||
10:19
Kresike is now known as kresike
|
|||
kresike | there | 10:19 | |
moritz | \o lc 'Kresike' # :-) | 10:20 | |
huf | i always try to guess nationality by nick | 10:21 | |
this time, i succeeded | |||
(mostly, i fail) | |||
moritz would have guessed "French" for pmichaud :-) | 10:24 | ||
kresike | huf, my regular nickname is crash, but that's taken here on freenode | 10:25 | |
masak | moritz: there was a long stretch during 2008 when I pinned pmichaud as French without thinking. (and I marveled a little at his flawless English) | 10:26 | |
huf | oh, crash, kres, i get it | 10:27 | |
kresike | masak, I can't quite guess your nationality, but I see that your english is perfect, and still by name I don't think that's your native language | 10:29 | |
jnthn | masak's English is too perfect to be a native speaker. :D | 10:30 | |
huf | does he at least have an accent or is he a perfect god? | 10:31 | |
jnthn | Not much in the way of accent either. :-) | 10:32 | |
huf | dammit, some slight flaw would've made him more human | ||
kresike | hmmm, that godness explains the towel on his head :) | 10:34 | |
though I have seen nicer cronws ... | |||
masak | I'd say my accent ever-so-slightly betrays my actual nationality. also, my pronunciation is a mix of BE and US. | 10:39 | |
my last name makes people think I'm German, most of the time. | |||
10:46
MayDaniel joined
|
|||
masak | kresike: that towel was once lost in battle. I fought my way through indescribable difficulties to gain it back. that's why I look slightly annoyed on that photo. | 10:49 | |
10:50
PacoAir joined
|
|||
kresike | masak, Did you use weapons in that battle, or just words ? In the latter case, I think no one had any chance :) | 10:52 | |
moritz | ... and since then, masak carries the title Fierce Warrier of the Towel | ||
masak | it was a battle of mostly words. some silent stares were involved, too. | 10:53 | |
moritz hopes people have seen github.com/mattdiamond/fuckitjs | 11:02 | ||
masak | moritz: looks like an odd joke with lots of swearing in it. | 11:07 | |
jnthn | I don't think there's any swearing besides fuck. | 11:12 | |
Which is just the library name :P | |||
masak | "Fuck it, use FuckIt.NoConflict." | 11:13 | |
jnthn | oh no, the source ther's a //@TODO: give a .. :) | ||
I actually learned something I didn't know about jQuery from the source too :P | 11:15 | ||
sisar | jnthn: though a bit old, but jut for you: www.phoronix.com/scan.php?page=news...px=MTEwMDA | 11:17 | |
*just | |||
*just right | |||
jnthn | wtf, how are you meant to write good code with Bud Light... | 11:19 | |
Garbage In, Garbage Out... | |||
sisar | *lol* | 11:20 | |
11:21
whiteknight joined,
whiteknight is now known as Guest78621
|
|||
moritz | masak: yes, just the right kind of odd joke for me | 11:34 | |
vmspb | Hello | 11:40 | |
kresike | yay, installed rakudo by hand, and it's running the spectests | ||
vmspb | How to get $PERL_VERSION_MAJOR (5 or 6), what would this could work in Perl5 and Perl6? | ||
p5 & p6: if ($PERL_VERSION_MAJOR >= 6) {say 'eval $p6code'} else {say 'eval $p5code'} | |||
p5: if ($^V >= 6) {say 'eval $p6code'} else {say 'eval $p5code'} | 11:41 | ||
p6: if ($?PERL.version >= 6) {say 'eval $p6code'} else {say 'eval $p5code'} | |||
p6eval | rakudo 690d77: OUTPUT«===SORRY!===Variable $?PERL is not declaredat /tmp/aV8T9_vWTY:1» | ||
..niecza v18-7-ga660099: OUTPUT«Unhandled exception: Unable to resolve method version in type Hash at /tmp/X0wBAdM1NP line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3917 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3918 (module-CORE @ 562)  at /hom… | |||
11:42
frankat joined
11:43
frankat left
|
|||
moritz | p6: if (':2<1>' == 1 ) { print "Perl 6" } else { print "Perl 5" } | 11:44 | |
p6eval | rakudo 690d77, niecza v18-7-ga660099: OUTPUT«Perl 6» | ||
moritz | eval: if (':2<1>' == 1 ) { print "Perl 6" } else { print "Perl 5" } | ||
buubot_backup | moritz: Perl 51 | ||
moritz | (the 1 is just the return value from the print) | ||
11:44
linus joined
|
|||
masak | checking $/ should also work. | 11:54 | |
moritz | eval: 5 if $/; | 11:55 | |
buubot_backup | moritz: 5 | ||
moritz | p6eval: say 6 if $/ | ||
p6: say 6 if $/ | |||
p6eval | rakudo 690d77, niecza v18-7-ga660099: ( no output ) | ||
moritz | p6: say 6 unless $/ | ||
p6eval | rakudo 690d77, niecza v18-7-ga660099: OUTPUT«6» | 11:56 | |
moritz | masak++ | ||
sergot | moritz: I changed what you said, but I've a question... There could be '/' and '\', it depends on what system we use, right? Should I take this into account? | 12:00 | |
moritz | sergot: since it's just a cosmetic feature, I'm fine with it only considering / | 12:01 | |
sergot | Great. :) | ||
12:02
vmspb left
12:05
MayDaniel left
12:06
linus left
12:11
brrt joined
12:13
leprevost joined
12:17
MayDaniel joined
|
|||
spider-mario | .u ο | 12:46 | |
phenny | U+03BF GREEK SMALL LETTER OMICRON (ο) | ||
masak idly wonders why Unicode has stopped working for him in feather/screen | 12:50 | ||
moritz | masak: I've upgraded screen on feather | 12:51 | |
masak: maybe you need to restart your instance of it | |||
masak | aye. | 12:58 | |
in fact, it was after my last session disappeared that things look wrong. | 12:59 | ||
13:09
tokuhirom left,
Patterner left
13:10
Psyche^ joined,
Psyche^ is now known as Patterner
13:11
tokuhirom joined
|
|||
spider-mario | .u μ | 13:11 | |
phenny | U+03BC GREEK SMALL LETTER MU (μ) | ||
spider-mario | .u µ | ||
phenny | U+00B5 MICRO SIGN (µ) | ||
spider-mario | oh. | ||
13:12
erkan left
|
|||
masak | spider-mario: Unicode does one glyph per intended use, and the micro sign is used in contexts different from the greek letter that looks the same. | 13:13 | |
great for obfuscations, though. | |||
spider-mario | I see, thanks for the clarification | 13:14 | |
pmichaud | good morning, #perl6 | 13:16 | |
13:17
jimmy1980 joined
|
|||
jnthn | hi, pmichaud | 13:18 | |
moritz | good am, pm | 13:19 | |
13:22
Chillance joined
13:26
tokuhirom left
|
|||
pmichaud | oh, I should probably restart my screen session also. | 13:26 | |
doing that now -- bbiab | |||
13:26
pmichaud left
13:27
pmichaud joined
13:32
mikemol left
|
|||
masak | pmichaud! \o/ | 13:36 | |
dalek | kudo/nom: d90f671 | moritz++ | docs/release_guide.pod: [release_guide] remove SVNisms |
13:38 | |
c: e1f3193 | pmichaud++ | lib/Any.pod: Punctuation fixes. |
13:45 | ||
kudo/nom: 4b2c1fe | moritz++ | docs/release_guide.pod: [release_guide] remove redundancy with nqp's release guide Also split bumping of VERSION and NQP_REVISION into separate steps |
13:46 | ||
sisar | .u xB5 | 13:53 | |
phenny | UnicodeDecodeError: 'utf8' codec can't decode byte 0xb5 in position 0: unexpected code byte (file "/usr/lib/python2.6/encodings/utf_8.py", line 16, in decode) | ||
sisar | huh ? | ||
moritz | .u µ | 13:54 | |
phenny | U+00B5 MICRO SIGN (µ) | ||
moritz | sisar: I guess yours was latin-1, not UTF-8 | ||
sisar | hmm, i just copy pasted spider-mario's code. Maybe XChat's clipboard changes things when you copy.. | 13:56 | |
... and pate back | |||
*paste | |||
suppose I type like this: Ctrl+Shift+u then 00b5 (on Ubuntu), then it should give the correct output. But phenny still gives me the Unicode DecodeError. Why ? | 14:01 | ||
dalek | c: a759831 | pmichaud++ | lib/ (4 files): Some more minor cleanups. |
14:02 | |
moritz | pmichaud++ | 14:09 | |
cognominal | is there a converse of &slurp, say &spit? | 14:11 | |
moritz | no | 14:12 | |
pmichaud | cognominal: we could never come up with a good word for the opposite of &slurp. Although &spit isn't too bad :-) | ||
moritz | every name we've come up with so far is at least a bit ugly | ||
masak | ooh, &spit | ||
moritz | we've had that one suggested years ago too | ||
masak | aye. | ||
but it's at least much less disgusting than some of the other alternatives. | 14:13 | ||
flussence | dunno, I think &spill sounds nice | ||
phenny | flussence: 09:53Z <sisar> tell flussence i formatted the code snippets on perl6advent.wordpress.com/2010/12/1...m-perl-6/, can you check if I did not inadvertently broke something. | ||
masak | ooh, &spill | ||
anyway, need to think hard about failure modes. | |||
what happens if there's already a file there? | |||
pmichaud | &spill is a good choice also. Maybe &fill too, or &pour | ||
masak | ooh, &pour. that's the best so far. | 14:14 | |
pmichaud | &spout | ||
masak | &pour's good partly because it's not a direct opposite. | ||
and you &pour before you &slurp. | |||
cognominal | I like &spout | 14:15 | |
masak | &spout sounds a bit violent. | ||
sisar | &vomit :p | ||
masak | ...and here we go... | 14:16 | |
...again... | |||
maybe &bikeshed captures the full set of subtle meanings. | |||
I dunno, it just feels right to me. | |||
pmichaud | I kind of like &fill and &pour now; since &slurp is grabbing the contents of a container, &fill and &pour are what you do to put something into the container. | 14:17 | |
masak | anyway, I'm volunteering to spec &pour, with a positional taking a file name, and a named :append | ||
sisar | &vacate | ||
pmichaud | masak: +1 from me | ||
flussence | sisar: I don't see any obvious breakage, but that code's already bitrotted quite a bit in the past 18 months to the point where it wasn't working anyway... :( | ||
masak makes it so | |||
pmichaud | although I kind of wish there was a 5-letter analog to &slurp :-) | ||
sisar | flussence: oh, ok. | ||
pmichaud | &flood :-P | 14:18 | |
flussence | (maybe I'll have to do a follow-up article to show all the new changes) | ||
masak | pmichaud: &spurt | ||
sisar | flussence: +1 to that | ||
pmichaud | I could go for &spurt, too. | ||
masak | yeah, it's not bad. | ||
cognominal | I like &spurt | 14:19 | |
masak | it has a strange consistency with &slurp | ||
it will drive the Japanese up the wall :P | |||
cognominal | it is consonnant indeed. | ||
pmichaud | &shoot | ||
masak | and you're vocal about it ;) | ||
no, &spurt it is. | |||
it's time we got one. | 14:20 | ||
cognominal | *consonant, ever | ||
masak | haha, S16 doesn't even mention &slurp, that's how out of touch it is. | ||
masak mods S32/IO | 14:21 | ||
flussence | and if you take out a few letters, it says "put" :) | ||
masak | um... | 14:22 | |
pmichaud | &spray | ||
masak | *sigh* :) | ||
&spurt it is. | |||
S32/IO says for slurp: 'In the case of a directory, it uses "\n" to separate entries.' | |||
when is this ever a good idea? | |||
do the implementations honor this? | |||
can I unspec it in a separate commit? | |||
pmichaud | masak: what should it do instead, ooc? | 14:23 | |
fail? | |||
14:24
MayDaniel left
|
|||
masak | for a directory? yes. | 14:25 | |
pmichaud | spec that, then. | ||
masak | this is a simple function. do one thing, and do it well. | 14:26 | |
if we allow directories, what about directories inside directories? | |||
what about symlinks? | |||
what about mounted drives? | |||
pmichaud | I don't understand how those would affect things, fwiw. | 14:27 | |
but I'm still okay with spec'ing it as "fail" | |||
dalek | c: 688f723 | pmichaud++ | lib/Range.pod: Range.pod: Add reference to sequence operator, punctuation cleanups. |
14:29 | |
c: 591e763 | pmichaud++ | lib/ (2 files): Minor cleanups. |
|||
c: f88567f | pmichaud++ | lib/Str.pod: [Str]: Change some Int -> StrPos, add notes about ucfirst and lcfirst, remove duplicate 'encode' entry. |
|||
c: e421ccc | pmichaud++ | lib/Str.pod: [Str]: Add note about 'length'. |
14:30 | ||
pmichaud | moritz: feel free to remove/refactor my entries for 'length', 'ucfirst', etc. | 14:31 | |
However, I think that we want "p6doc length" or "p6doc ucfirst" to return something useful. | |||
(perhaps "things that don't exist" belong in their own .pod file) | |||
dalek | ecs: 18e2133 | masak++ | S32-setting-library/IO.pod: [S32/IO] spec &spurt |
14:32 | |
c: f491fbb | pmichaud++ | lib/List.pod: Add a note about 'reverse' vs 'flip'. |
14:33 | ||
ecs: b7b1054 | masak++ | S32-setting-library/IO.pod: [S32/IO] make &slurp fail on directories Rather than DWIM in a way I think no-one will much benefit from. |
14:34 | ||
pmichaud | r: say slurp('.'); # curious | ||
p6eval | rakudo 4b2c1f: OUTPUT«Unable to open filehandle from path '.' in method open at src/gen/CORE.setting:7020 in sub open at src/gen/CORE.setting:7241 in sub slurp at src/gen/CORE.setting:7266 in block <anon> at /tmp/z8Vmi1t9BV:1» | ||
masak | heh. | ||
colomon | masak: What does "Unicode" encoding mean? | 14:36 | |
colomon just saw spec changes... | |||
14:38
erkan joined,
erkan left,
erkan joined
|
|||
masak | colomon: oh, I copied that bit from &slurp | 14:42 | |
though if no-one has any objections, I'd rather it say 'UTF-8'. | |||
colomon: oh! | |||
I take that back. | |||
Note that | 14:43 | ||
the "Unicode" encoding implies figuring out which actual UTF is | |||
in use, either from a BOM or other heuristics. If heuristics are | |||
inconclusive, UTF-8 will be assumed. | |||
that's under '=item open' in the same file. | |||
dalek | kudo/nom: 115ab2f | pmichaud++ | docs/release_guide.pod: Move "create release announcement" into step 1. |
14:44 | |
kudo/nom: 5921c70 | pmichaud++ | docs/release_guide.pod: Move the "make sure everything compiles/runs" testing step to _after_ the "update NQP and versions" steps. |
14:46 | ||
colomon | masak: but that's for import, where the data already is in some format or the other. on export, "Unicode" is completely vague | 14:48 | |
masak | colomon: agreed. I'll change it to 'UTF-8'. | 14:49 | |
colomon finally has (at least somewhat) learned how Unicode works, after about six years of doing it haphazardly or outright wrong for $work. | 14:50 | ||
+1 | |||
dalek | ecs: 43780ff | masak++ | S32-setting-library/IO.pod: [S32/IO] "UTF-8" for &spurt, not "Unicode" colomon++ for pointing out that "Unicode" doesn't make much sense here, the way it does for reading (and trying to figure out the exact encoding). |
14:52 | |
pmichaud | I think it should remain "Unicode", fwiw. | ||
masak | feel free to revert. | 14:53 | |
colomon | pmichaud: why? | ||
pmichaud | Yes, I understand colomon's point. However, we use "Unicode" to mean "whatever Unicode format makes the most sense", too. | ||
for some languages/scripts, utf-8 might not be the best output format. | |||
masak | it feels a bit bad to perpetuate the illusion that "Unicode" is an encoding, even if implicitly. | ||
pmichaud | we don't use "Unicode" as an encoding, we use it as a placeholder to mean "whatever unicode-aware encoding makes the most sense" | 14:54 | |
it's dwimmy | |||
colomon | pmichaud: are you proposing that p6 should somehow scan what is being exported and choose the "best" encoding to use? | ||
pmichaud | colomon: I'm repeating something I think I've heard TimToady++ say in the past to the effect that some site installations of Perl might want a default encoding other than utf-8. | 14:55 | |
masak | JIS, for example. | 14:56 | |
oh, we have an $*ENC variable, don't we. | |||
maybe we should just default to that, then. | |||
pmichaud | that makes a huge amount of sense :-) | 14:57 | |
colomon | r: say $*ENC | ||
p6eval | rakudo 4b2c1f: OUTPUT«Dynamic variable $*ENC not found in method gist at src/gen/CORE.setting:9461 in sub say at src/gen/CORE.setting:6988 in block <anon> at /tmp/keoUJhWHNk:1» | ||
masak | ok, I'll change it. | ||
colomon | : say $*ENC | ||
14:57
_jaldhar joined
|
|||
masak | oh, and it's $?ENC | 14:57 | |
colomon | r: say $?ENC | ||
p6eval | rakudo 4b2c1f: OUTPUT«===SORRY!===Variable $?ENC is not declaredat /tmp/jbgpjkPauK:1» | ||
masak | I always assume it's $*ENC, for some reason. | ||
flussence | r: say %*ENV<LC_ALL>.split('.').perl | ||
p6eval | rakudo 4b2c1f: OUTPUT«No such method 'split' for invocant of type 'Any' in block <anon> at /tmp/q8_kPzpZcY:1» | ||
flussence | guess that's of no use... | 14:58 | |
colomon | yeah, using $?ENC seems to make sense | ||
dalek | ecs: fd60e99 | masak++ | S32-setting-library/IO.pod: [S32/IO] on second thought, $?ENC The default encoding of the distribution. This makes a huge amount of sense. |
||
pmichaud | we should start maintaining a list of known dynamic and compile-time variables (e.g., in p6doc if not in the specs) | 15:00 | |
flussence | r: say $?TABSTOP | ||
p6eval | rakudo 4b2c1f: OUTPUT«8» | ||
dalek | c: 783d3a8 | pmichaud++ | README: Typo fix. |
15:01 | |
15:02
spider-mario left
|
|||
dalek | c: 7736027 | pmichaud++ | lib/perlvar.pod: Add perlvar.pod, a (temporary?) place to document magical variables. |
15:12 | |
c: f798f06 | pmichaud++ | lib/perlvar.pod: Add $?ENC (from S32/IO.pod). |
15:15 | ||
sisar | pmichaud: tablets.perl6.org/appendix-b-groupe...-variables | 15:17 | |
pmichaud: and the entry just above that | 15:18 | ||
pmichaud | sisar: cool, feel free to update perlvar.pod with those | 15:20 | |
sisar | i don't get it, why is the documentation so much spilt up? Has anyone thought this through? tablets, wiki, p6doc, spec, masak++'s doc project, etc. | 15:22 | |
pmichaud | "has anyone thought this through?" No. | ||
15:23
plobsing joined
|
|||
masak | sisar: basically, it's a kind of Darwinian search for good documentation. | 15:23 | |
pmichaud | what we have now is a mix of early starts and different targets | ||
sisar | masak: there looks to be more of abandoning the species altogether than evolution | 15:24 | |
pmichaud | rapid evolution, yes. | ||
masak | I'd say lots of people have thought this through. but it's still hard to make complete, comprehensive, clear, useful documentation. | ||
I'd say "many projects" isn't our biggest problem by far. | 15:25 | ||
that said, someone who supervises, organizes and co-ordinates the different efforts would be great. | |||
kresike | How can one document something that is still under heavy development ? | ||
masak | Perl 6 is Mostly Stable at this point. | ||
we're quickly converging on the thing we want. | 15:26 | ||
jnthn | Because much more stays the same than changes these days. | ||
15:26
JimmyZ left
|
|||
jnthn | And the barrier to get changes in is getting higher in many areas. | 15:26 | |
pmichaud | because documentation can be done in conjunction with development; it doesn't have to occur afterwards. :) | ||
jnthn | (Which is a good thing.) | ||
szabgab | and sisar has not even listed my Perl 6 stuff :( | ||
masak | aww. szabgab++ # awesome Perl 6 tutorials | ||
szabgab | I am disapoined :( | 15:27 | |
sisar | sisar-- | ||
masak | aren't they linked from perl6.org? | ||
they should be. | |||
szabgab | they are | ||
pmichaud | yes, they are. | ||
masak | my old u4x shouldn't be, at this point, I think. | ||
szabgab | but wait, I am coming back! | ||
masak | moritz++' effort should be. | ||
as far as I'm concerned, that's the new u4x now. | |||
kresike | what I meant was, that anyone who documents something under development is bound to rewrite at least some of the documentation from time to time because things change | ||
szabgab | I just have to take my son to Taekwondo training... | ||
pmichaud | kresike: rewrite is a part of life. even in p5 the documentation has to be updated/rewritten from time to time | 15:28 | |
masak | kresike: yes, that's one challenge of writing docs. though I don't believe it's an extremely big problem. | ||
kresike | and we all know, how programmers feel about documentation ... it's hard enough doing it the first time | ||
masak | aye. | ||
15:28
JimmyZ joined
|
|||
masak | but what moritz++ has going on gives me hope. | 15:28 | |
pmichaud | same here, which is why I'm focusing some tuits on it :) | ||
masak | we know we want something that we can point to and say: look, documentation! | 15:29 | |
szabgab | pmichaud: I don't want to get it incorrect, have you said that Rakudo is promising backward compbaility to itself? | ||
masak | pmichaud++ | ||
pmichaud | szabgab: I'm commiting that Rakudo will provide a strong deprecation policy for future releases. | ||
szabgab: backwards compatibility to itself... yes, except in cases where we simply cannot do it because of spec conflicts. | 15:30 | ||
kresike | a programmer usually documents something, after about 100 people ask him the same question ... | ||
pmichaud | kresike: I hear what you're saying; I'm not sure what you're proposing (if anything) | ||
szabgab | pmichaud: thanks && back later & | ||
pmichaud | szabgab: in the past we've accepted regressions as a necessary part of developing the current branch. My commitment going forward is that we'll be far less tolerant of regressions than we have been. | 15:31 | |
kresike | pmichaud, mostly the fact, that if you want good documentation, that should not be written by the programmers, and should be properly coordinated (just like some have said before me) | 15:35 | |
pmichaud | kresike: programmers are all we have here, at the moment. | 15:36 | |
kresike: if you know of where we can get some non-programmers to write our docs, I'm all for it. :) | |||
kresike | pmichaud, I'll ask around, but by profession I'm also just a programmer trying to learn perl6 | 15:37 | |
:) | |||
pmichaud | besides, iiuc most of the p5 docs was written by p5 programmers, and that seemed to work out okay :) | ||
15:38
jimmy1980 left
|
|||
pmichaud | anyway, yes, at the moment the documentation efforts are more bazaar-like than cathedral. I'm not sure Perl 6 (the overall community) is ready for a cathedral there yet. | 15:39 | |
15:39
_jaldhar left,
_jaldhar joined
15:41
jimmy1980 joined
|
|||
kresike | pmichaud, I know, I'm trying to learn it, but it's very hard to put the pieces together (std, rakudo, niecza, nqp, parrot, ...) | 15:42 | |
masak | there is a lot, yes. | 15:43 | |
15:43
kurahaupo left
|
|||
masak | the idea is that you learn it piecemeal. | 15:43 | |
moritz | p6: say log10 85 | ||
p6eval | niecza v18-7-ga660099: OUTPUT«1.9294189257142926» | ||
..rakudo 5921c7: OUTPUT«1.92941892571429» | |||
dalek | blets: 5396137 | pmichaud++ | docs/appendix-b-grouped.txt: Documentation fix; $<...> is not a 'twigiled variable'. |
15:44 | |
c: 3a4f4a2 | moritz++ | lib/Numeric.pod: start to talk about Numeric |
15:46 | ||
blets: 72c9ca6 | pmichaud++ | docs/appendix-a-index.txt: Add navigational heading for equals sign. |
15:54 | ||
blets: 5b2c973 | pmichaud++ | docs/appendix-a-index.txt: Convert "angle brackets twigil" to a postcircumfix op. |
|||
15:55
_jaldhar left
15:58
_jaldhar joined
|
|||
dalek | c: 86a9699 | pmichaud++ | lib/Numeric.pod: Typo fix; rephrase .ACCEPTS a bit. |
15:58 | |
16:00
kurahaupo joined
|
|||
dalek | blets: b3cee55 | pmichaud++ | docs/appendix-a-index.txt: Remove "both" from interpretation of infix:<|>. |
16:01 | |
p/toqast: ef4ed30 | jnthn++ | docs/QASTMAP: Start a list of tasks and design issues related to QAST migration. |
16:02 | ||
p/toqast: 46cf8f8 | jnthn++ | src/PAST/NQP.pir: Start getting some more of the 6model primitives into the nqp:: namespace. |
16:03 | ||
nqp/toqast: bc64ed0 | jnthn++ | src/how/NQP (5 files): | |||
nqp/toqast: Use nqp::setwho and nqp::newtype. | |||
16:03
dalek left
|
|||
jnthn | heh :) | 16:03 | |
16:04
dalek joined,
ChanServ sets mode: +v dalek
|
|||
sisar | masak: before abandoning u4x, are you sure nothing can be salvaged from it ? | 16:05 | |
JimmyZ | dalek always leaves from #perl6, but works well in #parrot | ||
16:06
JimmyZ left
|
|||
pmichaud | JimmyZ: different irc servers, likely | 16:06 | |
cognominal | pmichaud: you said you hade made a special stage to display the parse tree. I need it for my codeviewer github.com/cognominal/code-viewer | 16:08 | |
I have some code that generate json from a Match | 16:09 | ||
pmichaud | cognominal: I said I thought a previous version of Rakudo had a special stage to display the parse tree. But I can no longer find it. | ||
cognominal | ok | ||
pmichaud | I also said that I think the parse tree display is broken because of a dumper issue, not necessarily a stage one. | ||
cognominal | and that's github.com/cognominal/codeview | 16:10 | |
code-viewer was a previous attemps | |||
masak | sisar: oh, I'm not going to remove u4x from the face of the earth. I know which things I liked about it, and moritz seems to, too. | 16:12 | |
the one thing I would insist on this time around is to get an HTML view of it all up-and-running ASAP. | 16:13 | ||
and we should start to direct people to it when they have questions. | |||
pmichaud | where is u4x these days, ooc? | ||
sisar | masak: nice to know :-) | ||
sorear | good * #perl6 | 16:14 | |
masak | pmichaud: github.com/perl6/mu/tree/master/docs/u4x | ||
moritz | in fact I stole a bit from u4x | ||
sisar | pmichaud: doc.perl6.org/ | ||
masak | pmichaud: it's actually more of an interface than an implementation. which is why I fully endorse moritz++' effort. | ||
oh right, we did have a bit of content didn't we. | 16:15 | ||
sisar | sorear: o/ | ||
masak | in retrospect I think the dwimminess of the grok tool might be a bit too much. | ||
sisar | sorear: your thoughts on perl6 documentaion ? | ||
masak | but we can probably get pretty close without much trouble. | ||
sorear | sisar: What perl6 documentation? | 16:16 | |
sisar | sorear: :-), see backlog, we've been discussing documentation. | ||
sorear | oh, &spurt is the spec name now? | ||
*mumbles* | 16:17 | ||
OTOH, now I get to claim "increased spec compliance!" for c19 | |||
v19 | |||
sisar: how far back? | |||
dalek | c: 6badc2b | moritz++ | lib/Numeric.pod: [Numeric], exp, roots, Bool |
16:18 | |
sisar | sorear: starts at irclog.perlgeek.de/perl6/2012-06-24#i_5753695 | ||
16:19
brrt left
|
|||
cognominal | which librariy is used by padre for display? | 16:20 | |
I mean for the GUI | 16:21 | ||
sisar | cognominal: i think www.wxwidgets.org/ | 16:23 | |
cognominal | ok | ||
dalek | kudo/nom: 3a0e404 | jnthn++ | docs/ChangeLog: Add a note on meta-object improvement to ChangeLog. |
||
16:26
am0c joined
16:27
_jaldhar left,
_jaldhar joined
16:28
_jaldhar left,
_jaldhar joined
|
|||
moritz | p6: say (3+4i).abs | 16:30 | |
p6eval | rakudo 5921c7, niecza v18-7-ga660099: OUTPUT«5» | ||
16:32
_jaldhar left
|
|||
moritz | p6: say (3+4i).sqrt | 16:32 | |
p6eval | rakudo 5921c7, niecza v18-7-ga660099: OUTPUT«2+1i» | ||
16:32
_jaldhar joined
16:33
_jaldhar left,
_jaldhar joined
|
|||
moritz | p6: say (-4).sqrt | 16:33 | |
p6eval | rakudo 5921c7, niecza v18-7-ga660099: OUTPUT«NaN» | ||
sisar | moritz: rosettacode.org/wiki/Arithmetic/Complex#Perl_6, maybe you can add to it | 16:34 | |
16:34
awwaiid left
|
|||
sisar | p6: say (-4).Complex.sqrt; | 16:34 | |
p6eval | niecza v18-7-ga660099: OUTPUT«1.2246063538223773E-16+2i» | ||
..rakudo 5921c7: OUTPUT«1.22460635382238e-16+2i» | |||
moritz | sisar: I'm focusing on p6doc right now | ||
sisar | moritz: sure :-) | ||
16:35
awwaiid joined
|
|||
dalek | c: a63baba | moritz++ | lib/Numeric.pod: [Numeric] abs, sqrt, conj |
16:37 | |
moritz | p6: say (-10).rand | 16:40 | |
p6eval | niecza v18-7-ga660099: OUTPUT«-9.42198123755957» | ||
..rakudo 5921c7: OUTPUT«-1.20300443451018» | |||
masak .oO( yes, but which one is right? ) | 16:41 | ||
sorear | I wouldn't be opposed to having the spec recommend a specific random number generator for full p6 impls | 16:43 | |
sisar | sorear: +1 | 16:45 | |
moritz | recommendations in the spec are useless | ||
either we spec one, or we require certain features, or we just say "make it good and fast" | 16:46 | ||
sisar | moritz: maybe the spec can describe the mathematical and statistical properties of the random number generator | 16:48 | |
moritz | sisar: that's what I meant with "certain features" | ||
sisar | s/properties of/expectations from | ||
moritz: oh, sorry | |||
szabgab | pmichaud: re: looking for non-programmer: I know a bad programmer, does that count? :) | 16:49 | |
dalek | c: 3271639 | moritz++ | lib/Real.pod: [Real] |
||
pmichaud | szabgab: I think my comment was more rhetorical than anything else. I don't think that good programmers are universally bad at documentation. :-) | ||
although the discussion here inspires me to write something about the "Perl 6 Bazaar" | 16:51 | ||
or make a lightning talk on the subject for yapc::eu | |||
dalek | c: a56b88b | moritz++ | lib/Real.pod: [Real] base |
16:52 | |
moritz | p6: say (1+2i).succ | ||
p6eval | niecza v18-7-ga660099: OUTPUT«2+2i» | ||
..rakudo 5921c7: OUTPUT«No such method 'succ' for invocant of type 'Complex' in block <anon> at /tmp/BJlLUOsXjR:1» | |||
moritz | p6: say Int.succ | 16:53 | |
p6eval | niecza v18-7-ga660099: OUTPUT«1» | ||
..rakudo 5921c7: OUTPUT«Parameter '' requires an instance, but a type object was passed in method succ at src/gen/CORE.setting:2734 in block <anon> at /tmp/OsTx_iExKZ:1» | |||
moritz | niecza++ | ||
niecza: say Int.pred | 16:54 | ||
p6eval | niecza v18-7-ga660099: OUTPUT«-1» | ||
sisar | n: say Int.sqrt; | 16:55 | |
p6eval | niecza v18-7-ga660099: OUTPUT«0» | ||
sergot | How to: sub a($a, @b, %c, *@d) { b(the_same_arglist); } ? :) | 16:56 | |
sorear | b(|callframe.args) | ||
sergot | sorear++ thanks | ||
sorear | or: a(|cap, $a, @b, %c, *@d) { b(|cap) } | ||
or: a(|cap ($a, @b, %c, *@d)) { b(|cap) } | 16:57 | ||
sisar | rn: say ::; #what happens here ? | ||
p6eval | niecza v18-7-ga660099: OUTPUT«PseudoStash.new(...)» | ||
..rakudo 5921c7: OUTPUT«EnumMap.new("\$!", Any, "\$=pod", Array.new(), "!UNIT_MARKER", !UNIT_MARKER, "GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "::?PACKAGE", GLOBAL, "\$_", Any, "\$/", Any, )» | |||
jnthn | Hmm...that really should not say EnumMap. | 16:58 | |
dalek | kudo/toqast: 1891283 | jnthn++ | / (11 files): Add a qperl6 that can be used to gradually do the QAST migration, while still using the normal compiler to build CORE.setting. |
||
pmichaud | I suspect it's being perl6ized | ||
jnthn | pmichaud: No, it is a pseudostash | 16:59 | |
pmichaud | oh, wait, there's a bug in EnumMap.perl | ||
jnthn | r: say ::.WHAT | ||
p6eval | rakudo 5921c7: OUTPUT«PseudoStash()» | ||
jnthn | pmichaud: Yes, that was my quess | ||
*guess | |||
pmichaud | EnumMap.perl has 'EnumMap' hardcoded. | ||
fixing. | 17:01 | ||
jnthn | pmichaud++ | ||
17:02
icwiener joined
|
|||
moritz tries to fix succ and pred | 17:03 | ||
because they succ :-) | 17:04 | ||
pmichaud | I'm not sure that Int.succ should be 1; at least not without a warning. | 17:05 | |
sorear | I am | 17:06 | |
my Int $x; $x++ | |||
pmichaud | that's a product of postfix:<++>, not of .succ | ||
my Int $x; $x += 1; means something special when $x is undefined | |||
sorear | are you trying to tell me ++ is different from .=succ ? | 17:07 | |
pmichaud | yes. | ||
oh, maybe not | |||
looking | |||
r: my Int $x; $x++; say $x; | |||
p6eval | rakudo 5921c7: OUTPUT«1» | ||
pmichaud | "a bare undefined value in a suitable container is allowed to mutate itself into an Int ..." | 17:09 | |
undefined values outside of containers.... not sure they get to mutate. | |||
szabgab | finally, after a long break I posted an article, it is still only a meta-article and not a real one, but here is a question to you | ||
moritz | .succ doesn't mutate | ||
sisar | rn: my Bool $x; say $x++; | ||
p6eval | rakudo 5921c7: OUTPUT«Type check failed in assignment to '$x'; expected 'Bool' but got 'Int' in sub postfix:<++> at src/gen/CORE.setting:1342 in block <anon> at /tmp/8ezIkhOuu9:1» | ||
..niecza v18-7-ga660099: OUTPUT«0» | |||
szabgab | I started to move over all my perl 5 related content to the Perl Maven site | 17:10 | |
what shall I do with the Perl 6 content? | |||
Should I move it to a site called Perl 6 Maven? | |||
or do you have a better name suggestion? | |||
17:10
thou joined
|
|||
pmichaud | moritz: my point is that it's the postfix:<++> that does the mutation, not .succ . | 17:10 | |
Int.succ should probably throw a warning, not simply return 1. | 17:11 | ||
from S03:545: | 17:12 | ||
sorear | pmichaud: what does ++ do if not .=succ? | ||
pmichaud | "Increment/decrement of an undefined Numeric, Cool, or Any variable sets the variable to 0 and then performs the increment/decrement. Hence a postincrement returns 0 the first time: | ||
my $x; say $x++; # 0, not Any | |||
++ does .=succ, but it sets the variable to zero first. | |||
sorear | oh right. niecza's ++ does //= 0 .= succ, I forgot that detail | 17:13 | |
pmichaud | It doesn't mean that .succ magically works on type objects. | ||
sorear | what does this do, and how does it do it? my Num $n; $n++ | ||
17:14
UncleFester6 joined
|
|||
pmichaud | sets $n to zero, then calls $n .= succ | 17:14 | |
sorear | "zero? | ||
17:14
zby_home joined
|
|||
pmichaud | r: my Num $n; $n++; | 17:14 | |
p6eval | rakudo 3a0e40: ( no output ) | ||
pmichaud | r: my Num $n; $n++; say $n; | ||
p6eval | rakudo 3a0e40: OUTPUT«1» | ||
moritz | sorear: 0."{$arg.^name}"() | 17:15 | |
sorear | r: my Num $n; $n++; say $n.WHAT | ||
p6eval | rakudo 3a0e40: OUTPUT«Num()» | ||
sorear | moritz: rakudosource? | ||
moritz | sorear: rakudo simply has a different multi variant for each numeric type | 17:16 | |
UncleFester6 | My build also fails (from scratch) on windows when linking "-o nqp_dyncall_ops.dll". Error prolly: undefined reference to `dcCall_x86_win32_fast'. Config is Vista 32 bit and Strawberry Perl 5.14. Gist is gist.github.com/2984059 | 17:17 | |
17:18
birdwindupbird left
|
|||
sorear | stdcall/ccall issues? | 17:18 | |
pmichaud | jnthn: | 17:20 | |
pmichaud@kiwi:~/p6/rakudo$ ./perl6 | |||
> say :: | |||
PseudoStash.new("\$!", Any, "\$=pod", Array.new(), "!UNIT_MARKER", !UNIT_MARKER, "GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "::?PACKAGE", GLOBAL, "\$_", Any, "\$/", Any, ) | |||
better? | |||
spectesting. | |||
sisar | n: my Bool $x; say $x++; say $x++; #sorear, what happens here ? | 17:21 | |
p6eval | niecza v18-7-ga660099: OUTPUT«0True» | ||
pmichaud | r: my Bool $x; say $x++; say $x++; # curious | 17:22 | |
p6eval | rakudo 3a0e40: OUTPUT«Type check failed in assignment to '$x'; expected 'Bool' but got 'Int' in sub postfix:<++> at src/gen/CORE.setting:1342 in block <anon> at /tmp/TOMk08TrBA:1» | ||
pmichaud | that's a bug. | ||
moritz | should the first one say 0 or False? | ||
pmichaud | False | ||
sorear | sisar: not sure, but I'm certain it's not up to spec. :) | ||
jnthn | pmichaud: Yes, better | 17:23 | |
pmichaud | S03:539 covers postfix:<++> on Bools. | ||
(just before postfix:<++> on Any/Numeric/Cool is described) | |||
dalek | ecza: 95a1946 | sorear++ | / (5 files): s/spew/spurt/g for compatibility with latest spec |
||
kudo/nom: bd0e5c0 | pmichaud++ | src/core/EnumMap.pm: Fix EnumMap.perl to use objects typename instead of hardcoded "EnumMap". |
17:26 | ||
sisar | pmichaud++ #fast bugfixing ! | 17:28 | |
pmichaud: should I file a bug for wrong Bool++ ? or are we gonna see another lightning bugfix ? ;-) | 17:32 | ||
pmichaud: note that the bug only occurs when $x is uninitialized. The spec is silent(?) on incrementing uninitialized Bool variables. | 17:34 | ||
r: my Bool $x; $x = True; $x++ #works | |||
p6eval | rakudo 3a0e40: ( no output ) | ||
sisar | r: my Bool $x; $x = True; say $x++ #works | 17:35 | |
p6eval | rakudo 3a0e40: OUTPUT«True» | ||
pmichaud | sisar: I'm expecting uninitialized Bool to work like uninitialized Numeric | ||
principle of least surprise :) | |||
sisar | pmichaud: aye, I agree. | ||
pmichaud | you can file a bug for Bool++; I'm fixing it now, but we'll want a spectest. | ||
sisar | pmichaud: ok, filing. pmichaud++ | 17:36 | |
masak | sisar++ | ||
sisar | r: my Bool $x; $x = True; say $x--; #another bug | 17:37 | |
p6eval | rakudo 3a0e40: OUTPUT«True» | ||
sisar | pmichaud: fixing ^ too ? | ||
pmichaud | sisar: that looks correct to me :) | ||
r: my Bool $x; $x = True; say --$x; | 17:38 | ||
p6eval | rakudo 3a0e40: OUTPUT«False» | ||
17:38
UncleFester6 left
|
|||
pmichaud | r: my Bool $x; $x = True; say $x--; say $x; | 17:38 | |
sisar | oh ! | ||
p6eval | rakudo 3a0e40: OUTPUT«TrueFalse» | ||
17:38
kikulli joined
17:41
erkan left
|
|||
masak | sisar: remember the semantic difference between prefix:<--> and postfix:<--> | 17:44 | |
sisar | masak: yessir ! :-) | 17:45 | |
sisar almost always forgets that there is even something like post and pre -- | |||
pmichaud | > my Bool $x; say $x++; say $x | 17:46 | |
False | |||
True | |||
spectesting, then committing | |||
sisar | \o/ | ||
bugreport: #113816 | 17:47 | ||
.oO ( my speed of filing a bug report is so much less than pmichaud++'s speed of fixing it !! ) | 17:48 | ||
masak | relly good bug report. sisar++ | ||
really* | |||
sisar | masak: thanks :-) | ||
masak | 11 minutes. not bad for a beginner ;) | ||
I'm down to between 3 and 5 minutes for most reports. if it's short, I can file it in 1 minute. | 17:49 | ||
sisar | masak: well my last bugreport was really crappy, so I spent extra time filing a good one this time. | ||
masak | ok. well, quality matters. | ||
pmichaud | quality is often more important than speed :) | 17:50 | |
masak | they are not in opposition IMO. | ||
speed comes from being familiar with the necessary operations. | |||
pmichaud | yes, but sometimes people sacrifice quality in the name of speed. | 17:51 | |
masak | quality comes from, hm. knowing about the anti-confusion particle. | ||
dalek | kudo/nom: f798fb1 | pmichaud++ | src/core/Bool.pm: Fix pre/post-increment/decrement on undefined Bool containers. sisar++ RT #113816 |
17:52 | |
masak | I have a very hard time sacrificing quality in the name of speed in my work and hobby life. | ||
pmichaud | masak: that's because you're a high-quality person :) | 17:53 | |
diakopter | quality can include speed too, though. | ||
(relatively more) efficiency can be a requirement | 17:54 | ||
software can be low quality for the sole reason of being slow | 17:55 | ||
sisar | masak: can you close the ticket and mark it testneeded ? | ||
diakopter | oh, you weren't talking about software; you were talking about bug reports, oops. | 17:56 | |
diakopter should backlog further | 17:57 | ||
masak | diakopter: with the quality/speed thing I mostly meant software, fwiw. | ||
pmichaud | I'm closing the ticket now. | ||
masak | pmichaud++ | ||
pmichaud | well, I'm marking it testneeded. | ||
also updating the "expected output", and fixing my bugfix to actually give the correct answer. :) | |||
since we all had it wrong :) | 17:58 | ||
my Bool $x; say $x++; say $x # "Bool", "True" | 17:59 | ||
17:59
araujo left
|
|||
pmichaud | I'll go ahead and add the spectests, too. | 18:01 | |
dalek | kudo/toqast: 9914c45 | jnthn++ | src/QPerl6/World.pm: Correct an outdated comment. |
18:02 | |
kudo/toqast: 3b80143 | jnthn++ | src/QPerl6/ (2 files): Tentatively start to change to PAST::Block into QAST::Block; leave a case where things are a little more invovled. Note, breaks everything. :-) |
|||
kudo/toqast: 8a4ca80 | jnthn++ | src/QPerl6/ (2 files): Translate various PAST::Val to their QAST equivalents; again, a few outliers/tricky cases left for now. |
|||
kudo/toqast: d646a75 | jnthn++ | src/QPerl6/ (2 files): PAST::Stmt/PAST::Stmts to QAST::Stmt/QAST::Stmts, apart from one trickier case. |
|||
kudo/toqast: 4dc8dad | jnthn++ | src/QPerl6/ (2 files): Switch .get_ref calls over to using QAST::WVal. |
|||
sisar | rn: say 'a'|'b'; | 18:12 | |
p6eval | rakudo 3a0e40: OUTPUT«any(a, b)» | ||
..niecza v18-9-g95a1946: OUTPUT«any("a", "b")» | |||
sisar | ^ rakudo is missing quotes (cf. Niecza). Is this detail unimportant ? | 18:13 | |
pmichaud | that detail is very important... not sure what happened there. | ||
pmichaud checks Junction.gist | |||
diakopter | free((char*)1) <- breakpoint technique for Visual Studio when invoking from not within the IDE | ||
pmichaud | welll.... hmm | ||
diakopter | "A heap has been corrupted" | 18:14 | |
18:14
benabik left
|
|||
pmichaud | rn: say Int|Num; | 18:14 | |
p6eval | rakudo f798fb: OUTPUT«any(Int(), Num())» | ||
..niecza v18-9-g95a1946: OUTPUT«any(Int, Num)» | |||
pmichaud | rn: say Int | ||
p6eval | rakudo f798fb, niecza v18-9-g95a1946: OUTPUT«Int()» | ||
pmichaud | I think I might be able to argue for Rakudo's behavior. | ||
.gist is not always the same as .perl | 18:15 | ||
18:17
benabik joined,
araujo joined
|
|||
sisar | but a and b would imply subroutines named a and b | 18:17 | |
r: 'a' ~~ any(a,b); | |||
p6eval | rakudo f798fb: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&a' called (line 1)Undefined routine '&b' called (line 1)» | ||
pmichaud | say outputs using .gist | ||
.gist is not always the same as .perl | |||
you aren't expected to be able to eval a .gist and get the same results as before. | 18:18 | ||
sisar | hmm | ||
pmichaud | rn: say ('a'|'b').perl | ||
p6eval | rakudo f798fb, niecza v18-9-g95a1946: OUTPUT«any("a", "b")» | ||
sisar | ok, makes sense | 18:19 | |
pmichaud | I'm not necessarily claiming that rakudo's behavior is correct here; just that it's not obviously wrong either. | ||
diakopter | r: say (/a/|/b/) | 18:20 | |
p6eval | rakudo f798fb: OUTPUT«any(_block1011, _block1021)» | ||
diakopter | n: say (/a/|/b/) | 18:21 | |
p6eval | niecza v18-9-g95a1946: OUTPUT«any(regex ANON(Any \self) { ... }, regex ANON(Any \self) { ... })» | ||
sergot | nom: sub b($a, $b) { say 'b'; }; sub a($p1, $p2) { b(|callframe.args); } | 18:26 | |
p6eval | rakudo f798fb: ( no output ) | ||
sergot | nom: sub b($a, $b) { say 'b'; }; sub a($p1, $p2) { b(|callframe.args); }; a() | 18:27 | |
p6eval | rakudo f798fb: OUTPUT«===SORRY!===CHECK FAILED:Calling 'a' will never work with no arguments (line 1) Expected: :($p1, $p2)» | ||
sergot | nom: sub b($a, $b) { say 'b'; }; sub a($p1, $p2) { b(|callframe.args); }; a(1,2) | ||
p6eval | rakudo f798fb: OUTPUT«No such method 'args' for invocant of type 'CallFrame' in sub a at /tmp/SDYYulPiov:1 in block <anon> at /tmp/SDYYulPiov:1» | ||
sergot | sorear: it doesn't work. :( | ||
tadzik | 'evening | ||
sergot | nom: sub b($a, $b) { say 'b'; }; sub a(|cap($p1, $p2)) { b(|cap); }; a(1,2) | 18:28 | |
p6eval | rakudo f798fb: OUTPUT«===SORRY!===Malformed parameterat /tmp/mapbZUpqx4:1» | ||
jnthn | nom: sub b($a, $b) { say 'b'; }; sub a(|$c, $p1, $p2) { b(|$c); }; a(1,2) | ||
p6eval | rakudo f798fb: OUTPUT«===SORRY!===Cannot put required parameter after variadic parametersat /tmp/gaj_P0yRF_:1» | ||
jnthn | Oh really... | ||
nom: sub b($a, $b) { say 'b'; }; sub a(|$c ($p1, $p2)) { b(|$c); }; a(1,2) | |||
p6eval | rakudo f798fb: OUTPUT«b» | ||
sergot | nom: sub b($a, $b) { say 'b'; }; sub a(|$cap($p1, $p2)) { b(|$cap); }; a(1,2) | 18:29 | |
p6eval | rakudo f798fb: OUTPUT«b» | ||
jnthn | Taking a capture then unpacking it works fine. | ||
pmichaud | looks like callframe.args NYI | ||
jnthn | Yeah | ||
sergot | jnthn++ thanks | ||
:) | |||
jnthn | Feel free to file a TODO ticket on callframe.args. It's LHF, afaik. | ||
sisar | rn: sub a {return 42;}; say a; sub i { return 42; }; say i; | 18:31 | |
p6eval | rakudo f798fb, niecza v18-9-g95a1946: OUTPUT«420+1i» | ||
sisar | ^shouldn't overloading i warn ? | ||
dalek | ast: f18a918 | pmichaud++ | S03-operators/autoincrement.t: Add spectests for bool autoincrement (RT #113816). |
18:33 | |
masak | sisar: no, why? | 18:34 | |
sisar: the setting contains stuff. if you override it by declaring things with the same name, it hides what's in the setting. | 18:35 | ||
it's just like this. | |||
pmichaud | ...does the setting declare 'i' as a term/constant? | ||
masak | r: sub foo { say "outer" }; { sub foo { say "inner" }; foo }; foo | ||
p6eval | rakudo f798fb: OUTPUT«innerouter» | ||
masak | or like this. | ||
r: my $var = "outer"; say $var; { my $var = "inner"; say $var }; say $var | 18:36 | ||
p6eval | rakudo f798fb: OUTPUT«outerinnerouter» | ||
sisar | masak: it hides what's in the setting? so the new i definition should work, right ? | ||
masak | yes. | ||
unless what pmichaud suspects is true, and it's actually a term. | |||
sisar | masak: but it said "0+1i"; | ||
pmichaud | where is 'i' being defined? | ||
masak | then it's intercepted at the parsing level. | ||
pmichaud: at the end of src/core/Complex.pm | 18:37 | ||
it's a constant. | |||
18:37
Gesh joined
|
|||
pmichaud | ah yes, there it is. | 18:37 | |
sisar: so, to get to the new i definition you need i() | |||
18:38
leprevost left
|
|||
masak | oh right, that's the rule. | 18:38 | |
pmichaud++ | |||
pmichaud | consider: | ||
masak | rn: sub a {return 42;}; say a; sub i { return 42; }; say i() | ||
18:38
nebuchadnezzar left
|
|||
p6eval | niecza v18-9-g95a1946: OUTPUT«42Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Complex at /tmp/Jchsv_juQU line 1 (mainline @ 8)  at /home/p6eval/niecza/lib/CORE.setting line 3917 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3918 (module-CORE… | 18:38 | |
..rakudo f798fb: OUTPUT«4242» | |||
masak | sorear: ^ | ||
pmichaud | rn: sub if { say 'if' }; if(1); | ||
p6eval | niecza v18-9-g95a1946: OUTPUT«if» | ||
..rakudo f798fb: OUTPUT«===SORRY!===CHECK FAILED:Calling 'if' will never work with argument types (int) (line 1) Expected: :()» | |||
pmichaud | rn: sub if(*@x) { say 'if' }; if(1); | 18:39 | |
p6eval | rakudo f798fb: OUTPUT«if» | ||
..niecza v18-9-g95a1946: OUTPUT«Potential difficulties: @x is declared but not used at /tmp/xeNJIqdC54 line 1:------> sub if(*⏏@x) { say 'if' }; if(1);if» | |||
sisar | pmichaud: yes, but then the two calls say a and say i() are different, which makes me feel weird | ||
masak | sisar: then don't call it 'i' :P | ||
pmichaud | sisar: barewords aren't always subroutine calls. | ||
sisar | masak: what rakudo should say is "Masak says: don't name a subroutine 'i' :p " :p | 18:40 | |
masak | I wasn't saying that. | 18:41 | |
pmichaud | it's perfectly legal (if confusing) to name a subroutine 'i', you just have to call it as i() | ||
masak | I was saying, if you think it's weird to have to () it, don't do that. | ||
pmichaud | just like it's perfectly legal to name a subroutine 'if', 'for', 'while', 'class', etc. | ||
masak | it's only weird because you created a weird situation for yourself. | ||
18:41
nebuchadnezzar joined
18:43
kikulli left
|
|||
sisar | rn: for 2i .. 10i { .say; } # niecza's error is so good :) | 18:47 | |
p6eval | niecza v18-9-g95a1946: OUTPUT«Unhandled exception: Complex numbers are not arithmetically ordered; use cmp if you want an arbitrary order at /home/p6eval/niecza/lib/CORE.setting line 3259 (infix:<<=>> @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3284 (infix:<cmp> @ 53)  at /… | ||
..rakudo f798fb: ( no output ) | |||
sisar | hmm, rakudo doen't even say anything, I wonder what happened. | 18:48 | |
18:48
GlitchMr left
|
|||
pmichaud | r: say 2i .. 10i; | 18:48 | |
p6eval | rakudo f798fb: OUTPUT«Complex.new(0, 2)..Complex.new(0, 10)» | ||
pmichaud | r: say (2i .. 10i).list; | 18:49 | |
p6eval | rakudo f798fb: OUTPUT«» | ||
Gesh | What is niecza? | ||
pmichaud | say 2i cmp 10i; | ||
masak | Gesh: Rakudo and Niecza are two Perl 6 implementations. | ||
moritz | a perl 6 compiler on the CLR (.NET/Mono) | ||
pmichaud | r: say 2i cmp 10i; | ||
p6eval | rakudo f798fb: OUTPUT«Decrease» | ||
masak | Gesh: Rakudo runs on Parrot, Niecza runs on the CLR. | ||
Gesh | Ah, ok | ||
pmichaud | rakudo thinks that 2i > 10i, so it produces an empty list. | ||
it's probably stringifying. | |||
dalek | kudo/nom: 7d394e2 | moritz++ | src/core/ (3 files): move succ and pred from Real to Numeric |
18:50 | |
masak | Gesh: they're both pretty great. see perl6.org/compilers/features | ||
sisar | what, rakudo compare Complex nos... of right, stringification, phew ! | ||
*oh | |||
pmichaud | r: say @(10i .. 2i); | 18:51 | |
p6eval | rakudo f798fb: OUTPUT«No such method 'succ' for invocant of type 'Complex' in sub postfix:<++> at src/gen/CORE.setting:1341 in method reify at src/gen/CORE.setting:4847 in method reify at src/gen/CORE.setting:4968 in method reify at src/gen/CORE.setting:4968 in method gimme at… | ||
Gesh | masak, why there is no haskell implemented perl6 in the comparison? I heard about one | ||
masak | Gesh: Pugs is implemented in Haskell. | 18:52 | |
Gesh | Yep | ||
masak | p: say "Hiiii!" | ||
p6eval | pugs: OUTPUT«Hiiii!» | ||
Gesh | masak, but it's not there | ||
masak | Gesh: but it's a little old now. | ||
dalek | c: 28057e9 | moritz++ | lib/Numeric.pod: [Numeric] succ, pred |
||
pmichaud | I suspect Pugs isn't listed because it's much less actively developed | ||
masak | so a feature comparison would be a little unfair, because many things are broken. | ||
pmichaud | might be worth adding a note about Pugs to that page, though. | 18:53 | |
masak | [Coke]++ has been working on improving Pugs. I'd like to help, but things further up on the TODO list are blocking my tuits. | ||
pmichaud: +1 | |||
Gesh | i see. | ||
19:00
brrt joined
|
|||
dalek | atures: f5269a2 | pmichaud++ | template.html: Add a link/note about Pugs. (updates/improvements welcomed). |
19:05 | |
sisar | n: (*|'a').WHAT.say; | ||
p6eval | niecza v18-9-g95a1946: ( no output ) | ||
sisar | hm, nieczabug | ||
sorear: Junctions are fully implemented in Niecza ? | 19:06 | ||
sorear | sisar: yes | 19:08 | |
n: say (*|'a').WHAT | |||
p6eval | niecza v18-9-g95a1946: OUTPUT«{ ... }» | ||
sorear | n: say WHAT (*|'a') | ||
p6eval | niecza v18-9-g95a1946: OUTPUT«WhateverCode()» | ||
sorear | hrm | ||
not 100% sure this behavior is correct | |||
sisar | r: (*|'a').WHAT.say; | 19:09 | |
p6eval | rakudo f798fb: OUTPUT«Junction()» | ||
sorear | n; ((*|'a').WHAT.say)(5) | ||
n: ((*|'a').WHAT.say)(5) | |||
p6eval | niecza v18-9-g95a1946: OUTPUT«Junction()» | ||
sisar | well, i'm off to bed now, good night #perl6 | 19:10 | |
sisar zzz... | |||
19:10
brrt left
|
|||
sergot | seen masak | 19:11 | |
masak | sleep well, sisar. dream of effortless comparison of the complex and hypercomplex. | ||
sergot: I'm right here! | |||
sergot | \o/ | ||
great | |||
masak | \o/ | 19:12 | |
sorear | does p6 support hypercomplex numbers yet? | ||
masak | you mean, through a library? | 19:13 | |
19:13
cognominal left
|
|||
masak | I could whip one up, if you want. | 19:13 | |
might be fun. | |||
19:13
cognominal joined
|
|||
sorear | just speaking of 12:11 < masak> sleep well, sisar. dream of effortless comparison of the complex and hypercomplex. | 19:13 | |
not certain what that comparison should do. | 19:14 | ||
the quaternion algebra has an interesting group of (continuous) automorphisms | 19:15 | ||
19:15
brrt joined
19:17
adu joined
|
|||
masak | oh, I've never thought of the group of continuous automorphisms of the quaternions before. what's interesting about it? | 19:19 | |
sorear | it's uncountably big. also, it's isomorphic to the proper rotations of 3-space | 19:20 | |
19:21
vmspb joined
|
|||
masak | oh, right. Euler angles. | 19:21 | |
still haven't grok'd those. | |||
dalek | atures: 911978f | pmichaud++ | template.html: Update the feature comparison page to look more like other If anyone disagrees with this updated layout, feel free to revert. |
19:23 | |
sorear | I don't think Euler angles are relevant here | 19:24 | |
1. preserving addition, together with continuity and the fact that Q is dense, means an automorphism must be a linear map, so is determined entirely by its behavior on 1, i, j, and k | 19:26 | ||
2. 1 is uniquely described by algebraic properties (it is the multiplicative identity), so it is fixed by all automorphisms | 19:27 | ||
masak | the Wikipedia page on Euler angles mentions (unit) quaternions. | ||
19:27
leprevost joined
|
|||
sorear | 3. the relations {i,j,k}^2 = -1 mean that i, j, and k must go into pure imaginary unit quaternions, because those are the only ones that square to -1 | 19:27 | |
masak learns about en.wikipedia.org/wiki/Slerp | 19:28 | ||
sorear | 4. i^j = k means that A(i), A(j), and A(k) must be a right-handed orthonormal basis | ||
masak | hm, yes. | 19:29 | |
19:33
erkan joined,
erkan left,
erkan joined
19:41
plobsing left
|
|||
vmspb | rn: say 'a'|'b' | 19:42 | |
p6eval | rakudo 7d394e: OUTPUT«any(a, b)» | ||
..niecza v18-9-g95a1946: OUTPUT«any("a", "b")» | |||
vmspb | rn: say 'a'|'b, c, d' | ||
p6eval | rakudo 7d394e: OUTPUT«any(a, b, c, d)» | ||
..niecza v18-9-g95a1946: OUTPUT«any("a", "b, c, d")» | |||
pmichaud | &slerp # replacement for &spout? ;-) | 19:43 | |
rearrange the letters and you can get "perls" or "sperl" | 19:44 | ||
sorear | masak: yapsi. YAPC. | ||
masak | sorear: aye. what about it? :) | 19:47 | |
19:49
PacoAir left
|
|||
sorear | masak: just noticed the other day. | 19:50 | |
masak | hehe :) | 19:53 | |
tadzik | yep, that's how I pronounce it :) | ||
although "si" does not turn into "ś" in this particular case | |||
masak | the 'i' in 'yapsi' is short when I say it. the one in 'YAPC' is long. but the difference is slight. | 19:54 | |
sorear | short and long 'i's are allophonic in us english | 19:55 | |
masak | and probably elsewhere, too. | ||
20:24
birdwindupbird joined
20:31
fridim_ joined
20:34
brrt left
20:38
danishman joined,
vmspb left
20:40
brrt joined
20:44
kaare_ left
20:54
icwiener left
21:02
brrt left
21:08
birdwindupbird left
21:21
zby_home left
|
|||
ajs_home | Interesting... on my machine, echo consumes 175k instructions; perl -e 0 consumes 1.6m instructions; perl -MMoose -e 0 consumes 455m instructions and perl6 -e 0 consumes almost exactly 1b instructions | 21:32 | |
The command I used in case anyone else wants to try it: $ valgrind --tool=cachegrind ./perl6 -e 0 2>&1 | grep -P '\bI\s+refs:' | 21:33 | ||
21:34
Moukeddar joined,
Moukeddar left
|
|||
ajs_home | Am I the only one that's kind of sickened at the idea that echo requires 175k instructions? | 21:35 | |
tadzik | GNU | ||
flussence | if you think that's appalling, try /bin/true ;) | ||
tadzik | right :) | ||
sorear | ajs_home: I'm guessing your echo is dynamically linked | ||
ajs_home | True is 97k.... at least it's better... .sigh | 21:36 | |
sorear | glibc needs to be relocated | ||
ajs_home | yeah, it is | ||
adu | ajs_home: would like to optimize perl6? | ||
s/ / you / | |||
flussence | LD_DEBUG=statistics /bin/echo | ||
ajs_home | adu: I've been mostly working outside the core, but as I start to get my hands dirty further in, I'm keeping an eye open | 21:37 | |
flussence | (you *can* fix that startup time using prelink, but that doesn't play nice with some package managers' binary checksumming...) | 21:38 | |
ajs_home | Wow, there's nothing at all in /bin that's statically linked on my box | ||
There was a day that would have been considered obscene | |||
21:38
araujo left
|
|||
sorear | ajs_home: debian? | 21:38 | |
adu | ajs_home: as I see it, there are 3 big parts: runtime library, compilation strategy, and virtual machine | 21:39 | |
21:39
araujo joined
|
|||
flussence | that's why redhat's recent "separate /usr mountpoint is broken" claim is wrong - it's /bin that's broken | 21:39 | |
ajs_home | sorear: yeah, ubuntu, so debian-based | ||
adu | flussence: heh, erroneous error messages, what'll they think of next | 21:40 | |
geekosaur | (so, typical red hat...) | 21:41 | |
adu | ajs_home: of those three, I think the most opportunity for optimization is in compilation strategy | ||
ajs_home | I'd guess you're right, adu | ||
21:42
thou left
21:43
araujo left
|
|||
ajs_home | Another test: ./perl6 -e 'my $n = 0; for 1..10 -> $i { $n+=$i } ; say $n' | 21:48 | |
21:48
danishman left
|
|||
ajs_home | 1.5b instructions | 21:48 | |
up the count to 100 -> 1.5b instructions | |||
up the count to 1000 -> 1.5b instructions | |||
O.o | |||
tadzik | :) | 21:49 | |
ajs_home | OK, I'm doing a floor, but still | ||
it's really 1.531b, 1.534b and 1.580b | |||
side note: valgrind rocks | 21:50 | ||
geekosaur | I imagine the largest chunk of it is spent translating to PIR or something | 21:51 | |
ajs_home | Running perl6 with --leak-check=full is ... voluminous | 21:52 | |
21:52
Gesh left
|
|||
ajs_home | Interesting output, "definitely lost: 19,231 bytes in 1,422 blocks ... possibly lost: 121,216,606 bytes in 50,691 blocks" | 21:52 | |
121MB of "we think we left it in our other pants" | 21:53 | ||
tadzik | I think valgrind's known to get confused upon internal allocation mechanisms | ||
see also: glib | 21:54 | ||
sorear | I think that's called "parrot's garbage collector is seriously weird and confuses valgrind" | ||
21:54
pupoque joined
|
|||
sorear | geekosaur: I imagine the largest chunk of it is spent parsing and reconstructing the serialized setting | 21:55 | |
ajs_home | I suspect that's how it's distinguishing possibly lost vs definitely. Probably something like, "you have a pointer to something on this page" | ||
which could be an internal allocator at work | |||
sorear | valgrind has API calls that you can use to instrument the parrot allocator and avoid definitely lost | ||
good luck getting any such patch accepted | 21:56 | ||
sergot | bye bye ! :) | 21:57 | |
21:57
araujo joined,
araujo left,
araujo joined
|
|||
tadzik | \o | 21:57 | |
21:57
sergot left
|
|||
sorear | o/ araujo | 21:58 | |
ajs_home | Oh interesting... the Parrot garbage collector is marking uninitialized objects as live. That's probably not good | 21:59 | |
sorear | ajs_home: i'd be interested to know what valgrind thinks about niecza's startup time | 22:00 | |
masak | 'night, #perl6 | ||
ajs_home | sorear, it's really easy to run | ||
sorear | bye masak | ||
ajs_home: yeah but I can't be sure the results are consistant between systems | |||
ajs_home | valgrind --tool=cachegrind -- your-program-and-args-here | 22:01 | |
true | |||
I'll look into grabbing niecza in a bit | |||
gotta go cook dinner | |||
araujo | :) | 22:02 | |
sorear, o/ | 22:03 | ||
22:03
araujo left
22:04
araujo joined
|
|||
kresike | bye all | 22:21 | |
22:21
kresike left
|
|||
tadzik | bye bye | 22:21 | |
ha, made it | |||
flussence | not on my screen! | ||
22:23
pupoque left
22:25
pupoque joined
|
|||
jnthn -> sleep, 'night | 22:26 | ||
dalek | ecza/non-bootstrap: bea180f | sorear++ | lib/ (3 files): Wire compiler actions to the grammar engine This wiring takes place at a lower level than just creating a p6-level actions class. This might count as premature optimization. |
22:30 | |
ecza/non-bootstrap: d90112c | sorear++ | lib/Actions.cs: Fixup for install_sub |
|||
ecza/non-bootstrap: 50780fb | sorear++ | lib/Parser.src: Incorporate CgOp in Parser.src |
|||
22:44
thou joined,
thou left
22:46
fridim_ left
23:06
pochi left
23:12
Chillance left
23:15
tokuhirom joined
|
|||
[Coke] | colomon: hey, can ABC be installed? | 23:16 | |
23:19
adu left
|
|||
dalek | ecza/non-bootstrap: 56b506a | sorear++ | lib/ (3 files): Wire actions to correct handling of $*VARs |
23:23 | |
23:38
thou_ joined
|
|||
colomon | [Coke]: it should work. But last time I checked Rakudo still couldn't handle it. | 23:46 | |
(the module, I mean, not the installing.) | |||
[Coke] | colomon: argh. you mean I've been building the wrong perl6? ;) | 23:51 | |
colomon | well, I haven't tried it in a week or two. things might have gotten better. | 23:52 | |
[Coke] | colomon: Quantifier quantifies nothing at line 50, near " { +$0 } <" | 23:53 | |
colomon | huh. that's new | ||
[Coke] | colomon: niecza is NOT installable, neh? | ||
colomon | it's possible I've introduced new things that don't work in Rakudo since it stopped working in Rakudo -- I've added quite a bit of code to the module. | 23:54 | |
[Coke]: define installable? I guess I do always run it from its build directory... | |||
[Coke] | I'm trying to get it running for my son. I guess I'll just put niecza AND abc in a folder and point him at that for now. | ||
colomon: I wish it to be installed in, e.g. /usr/local | 23:55 | ||
preferably without having to manually copy a bunch of stuff. | |||
[Coke] just shoves niecza and abc into a dir that he can wrap a script around. | 23:56 | ||
colomon | you can always cheat and make a one-line script to invoke niecza and stick that in /usr/local | ||
23:56
sudokode left
|
|||
colomon | [Coke]: if you want to generate sheet music, you also need to have Lilypond installed... | 23:56 | |
23:58
thou_ left
|
|||
[Coke] | colomon: aye, mono and lilypond are already installed (via macports) | 23:58 | |
colomon | \o/ | ||
I don't think I ever got the macport of lilypond to work, I ended up installing it from binaries online. | |||
(and as a result, I've never figured out how to run it from the command line, which makes things unnecessarily awkward.) | 23:59 |