Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-06-24

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 skids I do like the new half brackets, but they don't seem to be in default compose keymaps, unfortunately.
00:02 pmichaud well, hopefully the defaults will change with worldwide adoption of perl 6.  :-)
00:02 pmichaud also, my font doesn't seem to display half brackets
00:03 dalek rakudo/nom: 690d774 | pmichaud++ | src/core/ (2 files):
00:03 dalek rakudo/nom: Refactor prefix:<|> flattening for Ranges and other types.
00:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/690d7743c3
00:07 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 sirrobert https://gist.github.com/2980628
00:08 pmichaud \s* doesn't really make sense in a rule
00:08 sirrobert ok...
00:08 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
00:09 pmichaud inside of method verb($/), you might want 'eq' instead of '=='
00:09 sirrobert oh, yeah
00:10 sirrobert Still, adding a blank line at the top of the file breaks it
00:10 sirrobert even with the \s* removed
00:10 pmichaud looking
00:12 sirrobert (cleaned up the gist by replacing == with 'eq' and removed the \s* in all places.  Same problem)
00:13 pmichaud ah, it's the ^ that's an issue.
00:14 pmichaud 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!
00:14 pmichaud I think a recentish spec change causes leading whitespace before a ^ to be ignored... but rakudo doesn't implement that.
00:14 sirrobert glad it's not me =)
00:14 pmichaud so, eliminate the space before the ^ and maybe it will work.
00:15 pmichaud or, switch TOP to be a 'token' instead of a 'rule'
00:15 sirrobert ok, great.
00:15 sirrobert should I file a bug on this somewhere?
00:15 cj joined #perl6
00:15 pmichaud message to rakudobug@perl.org would be helpful, yes.
00:16 pmichaud 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 =)
00:16 sirrobert ok
00:16 pmichaud glad to help, sorry you lost the hours :)
00:17 sirrobert It was a net gain -- I learned all about grammars, which was the goal =)
00:17 pmichaud sirrobert++
00:20 pmichaud afk for a while
00:20 sirrobert ditto
01:01 adu joined #perl6
01:06 xinming_ joined #perl6
01:12 tokuhirom joined #perl6
01:12 thou joined #perl6
02:24 orafu joined #perl6
02:30 BaggioKwok joined #perl6
03:04 leprevost joined #perl6
03:39 BaggioKwok left #perl6
03:39 _jaldhar joined #perl6
03:55 BaggioKwok joined #perl6
04:08 _jaldhar joined #perl6
04:32 _jaldhar joined #perl6
04:44 adu joined #perl6
04:49 kaare_ joined #perl6
05:17 thou joined #perl6
05:38 _jaldhar joined #perl6
05:39 _jaldhar joined #perl6
05:51 _jaldhar joined #perl6
06:07 GlitchMr joined #perl6
06:14 mucker joined #perl6
06:29 _jaldhar joined #perl6
07:17 birdwindupbird joined #perl6
07:20 sisar joined #perl6
07:23 sivoais joined #perl6
07:24 birdwindupbird joined #perl6
07:24 dbr joined #perl6
07:59 BaggioKwok joined #perl6
08:13 moritz \o
08:18 Woodi hallo today :)
08:20 Woodi 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 Woodi just *impression*...
08:22 * Woodi just noticed that "Perl6" do not look alien-ish now to him :)
08:26 moritz well, often the features of perl 6 modules are rather limited
08:27 moritz I guess the important question is "do they do what you want?"
08:36 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:37 Woodi just talking about *fast* impressions, hopes, expectations and wishes :)
08:37 brrt joined #perl6
08:38 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:41 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:42 pupoque_ joined #perl6
08:42 Woodi hmm, I probabyly lied... now I have everything installed to chowned /aux/graft and then 'grafted' to /opt, which is user-chowned...
08:43 Woodi -Gesh-: hallo :)
08:43 Gesh hi ^)
08:44 Woodi I like your confession yesterday about no idea why you like Perl :) I have the same, no idea why :)
08:47 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:48 Gesh 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 :)
08:49 Gesh Maybe ^)
08:49 Woodi and why my irc client says I am 37 days away ?
08:52 sisar moritz: can you invite me to perl6advent.wordpress.com ? I'd like to fix a broken link.
08:53 sisar ok, moritz is away, can anyone else invite me ?
08:56 * sisar afk
08:58 masak good morning, sweethearts.
08:58 tadzik hello masak
08:58 sergot joined #perl6
08:58 sergot hi o/
09:01 masak this is another wonderful day when we bring Perl 6 closer to widespread adoption.
09:02 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.
09:02 masak sisar: I'll see what I can do.
09:07 masak fix'd.
09:07 * masak breaks the night's fast
09:18 birdwindupbird joined #perl6
09:19 moritz r: say (^5).bounds.perl
09:19 p6eval rakudo 690d77: OUTPUT«(0, 5)␤»
09:20 dalek doc: 300a79e | moritz++ | lib/Range.pod:
09:20 dalek doc: [Range] add signatures; method bounds
09:20 dalek doc: review: https://github.com/perl6/doc/commit/300a79ef46
09:25 masak diakopter: https://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:27 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 :)
09:28 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 masak sisar: for some reason, I've standardized on <pre><code>...</code></pre> in my blog posts.
09:29 masak 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
09:29 masak and so the cargo-culting continues... :)
09:33 masak shoppe &
09:35 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…
09:35 p6eval ..rakudo 690d77: OUTPUT«No such method 'succ' for invocant of type 'Parcel'␤  in block <anon> at /tmp/SBaxYvI9vM:1␤␤»
09:35 moritz where does succ come from? Numeric? and then another one in Str?
09:36 moritz or is there a common role or class?
09:40 telex joined #perl6
09:44 sisar this line: "#!/usr/bin/env perl6 use vcalling native perl6advent6; use NativeCall;" from http://perl6advent.wordpress.com/2010/12/15/day-15-calling-native-libraries-from-perl-6/ looks wrong.
09:44 sisar what is 'vcalling native perl6advent6" ?
09:46 moritz looks like copy&paste gone wrong
09:46 moritz somebody wrote 'use v6';
09:46 moritz and copied something between the v and 6
09:46 sisar moritz: aha ! nice catch. I'll fix that.
09:47 moritz nr: say 'ab cd'.succ
09:47 p6eval rakudo 690d77, niecza v18-7-ga660099: OUTPUT«ab ce␤»
09:47 sisar and this first part ""#!/usr/bin/env perl6", is this correct ?
09:47 dalek doc: 2baa240 | jnthn++ | lib/Code.pod:
09:47 dalek doc: Start documenting Code.
09:47 dalek doc: review: https://github.com/perl6/doc/commit/2baa240ab1
09:48 sergot joined #perl6
09:48 moritz sisar: yes
09:48 moritz \o/ contributions to doc!
09:48 moritz jnthn++
09:48 jnthn Well, dunno if they're any good. :)
09:48 jnthn It's my first commit there, lemme know if I did anything rong. :)
09:48 jnthn I looked at Any.pod and tried to follow the style.
09:49 moritz looks good
09:49 jnthn \o/
09:49 moritz you could be a bit more specific about the return types in the signatures
09:49 moritz but that's not a must
09:49 jnthn What's the standard way to do that?
09:50 spider-mario joined #perl6
09:50 moritz method arity(Code:D:) returns Int:D
09:50 jnthn Nothing in Any did, afaict...
09:50 moritz List.pod has some examples
09:50 moritz well, most stuff in Any can return Any, so it's a bit pointless to add Any as annotations :-)
09:51 jnthn Well, apart from any/all/one return Junction.
09:51 moritz nr: say 'zz'.succ
09:51 p6eval rakudo 690d77, niecza v18-7-ga660099: OUTPUT«aaa␤»
09:52 dalek doc: f4e26e1 | jnthn++ | lib/Code.pod:
09:52 dalek doc: Add some return type documentation; moritz++ for noting it was missing.
09:52 dalek doc: review: https://github.com/perl6/doc/commit/f4e26e18d0
09:52 moritz jnthn++
09:53 sisar phenny: tell flussence, i formatted the code snippets on http://perl6advent.wordpress.com/2010/12/15/day-15-calling-native-libraries-from-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.
09:53 moritz nr: say 'É‘'.succ
09:53 p6eval rakudo 690d77: OUTPUT«ɑ␤»
09:53 p6eval ..niecza v18-7-ga660099: OUTPUT«WTF␤»
09:53 moritz lol
09:54 moritz nr: say 'a9'.succ
09:54 p6eval rakudo 690d77, niecza v18-7-ga660099: OUTPUT«b0␤»
09:56 moritz .u É‘
09:56 phenny U+0251 LATIN SMALL LETTER ALPHA (É‘)
09:56 jnthn moritz: We'll ship these docs in R*?
09:56 moritz nr: say 'α'.succ
09:56 p6eval rakudo 690d77, niecza v18-7-ga660099: OUTPUT«β␤»
09:56 moritz jnthn: sure
09:56 jnthn \o/
09:56 moritz jnthn: speaking of which, does p6doc work on windows?
09:58 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 :(
09:58 jnthn C:\consulting\perl6\doc>perl6 bin/p6doc
09:58 jnthn What documentation do you want to read?
09:59 jnthn C:\consulting\perl6\doc>perl6 bin\p6doc Str.split
09:59 jnthn Cannot locate Str in any of the following paths:
09:59 moritz sisar: wordpress also mangles newlines
09:59 jnthn ...and a list of paths...
09:59 moritz :(
09:59 sisar moritz: aye
09:59 moritz jnthn: does $*PROGRAM_NAME contain backslashes or slashes on windows?
10:00 jnthn moritz: perl6doc -Ilib bin/p6doc Str
10:00 jnthn That does something else
10:00 jnthn 'less' is not recognized as an internal or external command,
10:00 jnthn operable program or batch file.
10:00 moritz jnthn: then it gets one step further
10:00 jnthn moritz: If I s/less/more then it shows docs \o/
10:00 jnthn Needs the -Ilib though.
10:01 moritz jnthn: it tries to run perl6 --doc $somefile | less
10:01 jnthn moritz: Is there a reason for using less instead of more?
10:01 jnthn Aren't they more or less the same?
10:01 moritz r: say $*OS
10:01 p6eval rakudo 690d77: OUTPUT«linux␤»
10:01 jnthn Apart from more works on more platforms? :)
10:01 moritz jnthn: less allows scrolling up and down, more only down
10:01 jnthn ah
10:02 moritz jnthn: what does $*OS report on your platform?
10:02 jnthn MSWin32
10:04 moritz jnthn: please try again
10:05 dalek doc: 5c333a0 | moritz++ | bin/p6doc:
10:05 dalek doc: try some win32 fixes
10:05 dalek doc: review: https://github.com/perl6/doc/commit/5c333a0a03
10:05 dalek doc: 88a038a | moritz++ | lib/Str.pod:
10:05 dalek doc: some Str.succ description
10:05 dalek doc: review: https://github.com/perl6/doc/commit/88a038a5db
10:05 moritz nr: say 'b0'.pred
10:05 p6eval rakudo 690d77, niecza v18-7-ga660099: OUTPUT«a9␤»
10:05 moritz nr: say 'a0'.pred
10:05 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…
10:05 p6eval ..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␤␤»
10:07 moritz nr: say 'img002.png'.pred
10:07 p6eval rakudo 690d77, niecza v18-7-ga660099: OUTPUT«img001.png␤»
10:08 dalek doc: 4bfc101 | moritz++ | lib/Str.pod:
10:08 dalek doc: [Str] method pred
10:08 dalek doc: review: https://github.com/perl6/doc/commit/4bfc1012af
10:08 vmspb joined #perl6
10:09 jnthn moritz: oops
10:09 jnthn ===SORRY!===
10:09 jnthn Malformed initializer
10:09 jnthn at bin/p6doc:48
10:09 moritz dammit
10:09 moritz I should compile before committing :(
10:09 jnthn ah, I see it
10:10 moritz missing closing quote
10:10 dalek doc: 055e79f | jnthn++ | bin/p6doc:
10:10 dalek doc: Fix compile-o. Works nicely on Windows now.
10:10 dalek doc: review: https://github.com/perl6/doc/commit/055e79fcd1
10:10 moritz \o/
10:10 jnthn Doesn't need -Ilib any more either
10:11 moritz I hoped so
10:14 kaare_ joined #perl6
10:16 JimmyZ joined #perl6
10:16 sisar moritz:  http://en.support.wordpress.com/code/posting-source-code/. I tried it and it works.
10:17 moritz sergot: I like your patch to &dir, but I'd prefer not to run a regex for every dir entry
10:18 Kresike joined #perl6
10:18 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
10:18 Kresike hello all you happy perl6 people
10:18 sergot moritz: Ok, I'll change it. :)
10:18 moritz \o Kresike, today with upper case first letter :-)
10:18 sergot Kresike: hi !
10:19 Kresike moritz, sergot o/
10:19 * Kresike connected from his home workstation
10:19 kresike there
10:20 moritz \o lc 'Kresike' # :-)
10:21 huf i always try to guess nationality by nick
10:21 huf this time, i succeeded
10:21 huf (mostly, i fail)
10:24 * moritz would have guessed "French" for pmichaud :-)
10:25 kresike huf, my regular nickname is crash, but that's taken here on freenode
10:26 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:27 huf oh, crash, kres, i get it
10:29 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:30 jnthn masak's English is too perfect to be a native speaker. :D
10:31 huf does he at least have an accent or is he a perfect god?
10:32 jnthn Not much in the way of accent either. :-)
10:32 huf dammit, some slight flaw would've made him more human
10:34 kresike hmmm, that godness explains the towel on his head :)
10:34 kresike though I have seen nicer cronws ...
10:39 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 masak my last name makes people think I'm German, most of the time.
10:46 MayDaniel joined #perl6
10:49 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:50 PacoAir joined #perl6
10:52 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
10:53 masak it was a battle of mostly words. some silent stares were involved, too.
11:02 * moritz hopes people have seen https://github.com/mattdiamond/fuckitjs
11:07 masak moritz: looks like an odd joke with lots of swearing in it.
11:12 jnthn I don't think there's any swearing besides fuck.
11:12 jnthn Which is just the library name :P
11:13 masak "Fuck it, use FuckIt.NoConflict."
11:13 jnthn oh no, the source ther's a //@TODO: give a .. :)
11:15 jnthn I actually learned something I didn't know about jQuery from the source too :P
11:17 sisar jnthn: though a bit old, but jut for you: http://www.phoronix.com/scan.php?page=news_item&amp;px=MTEwMDA
11:17 sisar *just
11:17 sisar *just right
11:19 jnthn wtf, how are you meant to write good code with Bud Light...
11:19 jnthn Garbage In, Garbage Out...
11:20 sisar *lol*
11:21 whiteknight joined #perl6
11:34 moritz masak: yes, just the right kind of odd joke for me
11:40 vmspb Hello
11:40 kresike yay, installed rakudo by hand, and it's running the spectests
11:40 vmspb How to get $PERL_VERSION_MAJOR (5 or 6), what would this could work in Perl5 and Perl6?
11:40 vmspb p5 & p6: if ($PERL_VERSION_MAJOR >= 6) {say 'eval $p6code'} else {say 'eval $p5code'}
11:41 vmspb p5: if ($^V >= 6) {say 'eval $p6code'} else {say 'eval $p5code'}
11:41 vmspb p6: if ($?PERL.version >= 6) {say 'eval $p6code'} else {say 'eval $p5code'}
11:41 p6eval rakudo 690d77: OUTPUT«===SORRY!===␤Variable $?PERL is not declared␤at /tmp/aV8T9_vWTY:1␤»
11:41 p6eval ..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 #perl6
11:44 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»
11:44 moritz eval: if (':2<1>' == 1 ) { print "Perl 6" } else { print "Perl 5" }
11:44 buubot_backup moritz: Perl 51
11:44 moritz (the 1 is just the return value from the print)
11:44 linus joined #perl6
11:54 masak checking $/ should also work.
11:55 moritz eval: 5 if $/;
11:55 buubot_backup moritz: 5
11:55 moritz p6eval: say 6 if $/
11:55 moritz p6: say 6 if $/
11:55 p6eval rakudo 690d77, niecza v18-7-ga660099:  ( no output )
11:55 moritz p6: say 6 unless $/
11:56 p6eval rakudo 690d77, niecza v18-7-ga660099: OUTPUT«6␤»
11:56 moritz masak++
12:00 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:01 moritz sergot: since it's just a cosmetic feature, I'm fine with it only considering /
12:01 sergot Great. :)
12:06 linus left #perl6
12:11 brrt joined #perl6
12:13 leprevost joined #perl6
12:17 MayDaniel joined #perl6
12:46 spider-mario .u ο
12:46 phenny U+03BF GREEK SMALL LETTER OMICRON (ο)
12:50 * masak idly wonders why Unicode has stopped working for him in feather/screen
12:51 moritz masak: I've upgraded screen on feather
12:51 moritz masak: maybe you need to restart your instance of it
12:58 masak aye.
12:59 masak in fact, it was after my last session disappeared that things look wrong.
13:10 Psyche^ joined #perl6
13:11 tokuhirom joined #perl6
13:11 spider-mario .u μ
13:11 phenny U+03BC GREEK SMALL LETTER MU (μ)
13:11 spider-mario .u µ
13:11 phenny U+00B5 MICRO SIGN (µ)
13:11 spider-mario oh.
13:13 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 masak great for obfuscations, though.
13:14 spider-mario I see, thanks for the clarification
13:16 pmichaud good morning, #perl6
13:17 jimmy1980 joined #perl6
13:18 jnthn hi, pmichaud
13:19 moritz good am, pm
13:22 Chillance joined #perl6
13:26 pmichaud oh, I should probably restart my screen session also.
13:26 pmichaud doing that now -- bbiab
13:27 pmichaud joined #perl6
13:36 masak pmichaud! \o/
13:38 dalek rakudo/nom: d90f671 | moritz++ | docs/release_guide.pod:
13:38 dalek rakudo/nom: [release_guide] remove SVNisms
13:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d90f671571
13:45 dalek doc: e1f3193 | pmichaud++ | lib/Any.pod:
13:45 dalek doc: Punctuation fixes.
13:45 dalek doc: review: https://github.com/perl6/doc/commit/e1f3193e19
13:46 dalek rakudo/nom: 4b2c1fe | moritz++ | docs/release_guide.pod:
13:46 dalek rakudo/nom: [release_guide] remove redundancy with nqp's release guide
13:46 dalek rakudo/nom:
13:46 dalek rakudo/nom: Also split bumping of VERSION and NQP_REVISION into separate steps
13:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4b2c1fe272
13:53 sisar .u µ
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)
13:53 sisar huh ?
13:54 moritz .u µ
13:54 phenny U+00B5 MICRO SIGN (µ)
13:54 moritz sisar: I guess yours was latin-1, not UTF-8
13:56 sisar hmm, i just copy pasted spider-mario's code. Maybe XChat's clipboard changes things when you copy..
13:56 sisar ... and pate back
13:56 sisar *paste
14:01 sisar 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:02 dalek doc: a759831 | pmichaud++ | lib/ (4 files):
14:02 dalek doc: Some more minor cleanups.
14:02 dalek doc: review: https://github.com/perl6/doc/commit/a7598317ae
14:09 moritz pmichaud++
14:11 cognominal is there a converse of &slurp, say &spit?
14:12 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 :-)
14:12 moritz every name we've come up with so far is at least a bit ugly
14:12 masak ooh, &spit
14:12 moritz we've had that one suggested years ago too
14:12 masak aye.
14:13 masak but it's at least much less disgusting than some of the other alternatives.
14:13 flussence dunno, I think &spill sounds nice
14:13 phenny flussence: 09:53Z <sisar> tell flussence i formatted the code snippets on http://perl6advent.wordpress.com/2010/12/15/day-15-calling-native-libraries-from-perl-6/, can you check if I did not inadvertently broke something.
14:13 masak ooh, &spill
14:13 masak anyway, need to think hard about failure modes.
14:13 masak what happens if there's already a file there?
14:13 pmichaud &spill is a good choice also.  Maybe &fill too, or &pour
14:14 masak ooh, &pour. that's the best so far.
14:14 pmichaud &spout
14:14 masak &pour's good partly because it's not a direct opposite.
14:14 masak and you &pour before you &slurp.
14:15 cognominal I like &spout
14:15 masak &spout sounds a bit violent.
14:15 sisar &vomit :p
14:16 masak ...and here we go...
14:16 masak ...again...
14:16 masak maybe &bikeshed captures the full set of subtle meanings.
14:16 masak I dunno, it just feels right to me.
14:17 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
14:17 sisar &vacate
14:17 pmichaud masak: +1 from me
14:17 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... :(
14:17 * masak makes it so
14:17 pmichaud although I kind of wish there was a 5-letter analog to &slurp :-)
14:17 sisar flussence: oh, ok.
14:18 pmichaud &flood  :-P
14:18 flussence (maybe I'll have to do a follow-up article to show all the new changes)
14:18 masak pmichaud: &spurt
14:18 sisar flussence: +1 to that
14:18 pmichaud I could go for &spurt, too.
14:18 masak yeah, it's not bad.
14:19 cognominal I like &spurt
14:19 masak it has a strange consistency with &slurp
14:19 masak it will drive the Japanese up the wall :P
14:19 cognominal it is consonnant indeed.
14:19 pmichaud &shoot
14:19 masak and you're vocal about it ;)
14:19 masak no, &spurt it is.
14:20 masak it's time we got one.
14:20 cognominal *consonant, ever
14:20 masak haha, S16 doesn't even mention &slurp, that's how out of touch it is.
14:21 * masak mods S32/IO
14:21 flussence and if you take out a few letters, it says "put" :)
14:22 masak um...
14:22 pmichaud &spray
14:22 masak *sigh* :)
14:22 masak &spurt it is.
14:22 masak S32/IO says for slurp: 'In the case of a directory, it uses "\n" to separate entries.'
14:22 masak when is this ever a good idea?
14:22 masak do the implementations honor this?
14:22 masak can I unspec it in a separate commit?
14:23 pmichaud masak: what should it do instead, ooc?
14:23 pmichaud fail?
14:25 masak for a directory? yes.
14:25 pmichaud spec that, then.
14:26 masak this is a simple function. do one thing, and do it well.
14:26 masak if we allow directories, what about directories inside directories?
14:26 masak what about symlinks?
14:26 masak what about mounted drives?
14:27 pmichaud I don't understand how those would affect things, fwiw.
14:27 pmichaud but I'm still okay with spec'ing it as "fail"
14:29 dalek doc: 688f723 | pmichaud++ | lib/Range.pod:
14:29 dalek doc: Range.pod: Add reference to sequence operator, punctuation cleanups.
14:29 dalek doc: review: https://github.com/perl6/doc/commit/688f723ac3
14:29 dalek doc: 591e763 | pmichaud++ | lib/ (2 files):
14:29 dalek doc: Minor cleanups.
14:29 dalek doc: review: https://github.com/perl6/doc/commit/591e763853
14:29 dalek doc: f88567f | pmichaud++ | lib/Str.pod:
14:29 dalek doc: [Str]:  Change some Int -> StrPos, add notes about ucfirst and lcfirst, remove duplicate 'encode' entry.
14:29 dalek doc: review: https://github.com/perl6/doc/commit/f88567fd95
14:30 dalek doc: e421ccc | pmichaud++ | lib/Str.pod:
14:30 dalek doc: [Str]:  Add note about 'length'.
14:30 dalek doc: review: https://github.com/perl6/doc/commit/e421ccc12b
14:31 pmichaud moritz: feel free to remove/refactor my entries for 'length', 'ucfirst', etc.
14:31 pmichaud However, I think that we want   "p6doc length"   or "p6doc ucfirst" to return something useful.
14:31 pmichaud (perhaps "things that don't exist" belong in their own .pod file)
14:32 dalek specs: 18e2133 | masak++ | S32-setting-library/IO.pod:
14:32 dalek specs: [S32/IO] spec &spurt
14:32 dalek specs: review: https://github.com/perl6/specs/commit/18e2133135
14:33 dalek doc: f491fbb | pmichaud++ | lib/List.pod:
14:33 dalek doc: Add a note about 'reverse' vs 'flip'.
14:33 dalek doc: review: https://github.com/perl6/doc/commit/f491fbbfe9
14:34 dalek specs: b7b1054 | masak++ | S32-setting-library/IO.pod:
14:34 dalek specs: [S32/IO] make &slurp fail on directories
14:34 dalek specs:
14:34 dalek specs: Rather than DWIM in a way I think no-one will much benefit from.
14:34 dalek specs: review: https://github.com/perl6/specs/commit/b7b1054f7a
14:34 pmichaud r:  say slurp('.');  # curious
14:34 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␤␤»
14:34 masak heh.
14:36 colomon masak: What does "Unicode" encoding mean?
14:36 * colomon just saw spec changes...
14:38 erkan joined #perl6
14:38 erkan joined #perl6
14:42 masak colomon: oh, I copied that bit from &slurp
14:42 masak though if no-one has any objections, I'd rather it say 'UTF-8'.
14:42 masak colomon: oh!
14:42 masak I take that back.
14:43 masak Note that
14:43 masak the "Unicode" encoding implies figuring out which actual UTF is
14:43 masak in use, either from a BOM or other heuristics.  If heuristics are
14:43 masak inconclusive, UTF-8 will be assumed.
14:43 masak that's under '=item open' in the same file.
14:44 dalek rakudo/nom: 115ab2f | pmichaud++ | docs/release_guide.pod:
14:44 dalek rakudo/nom: Move "create release announcement" into step 1.
14:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/115ab2fbba
14:46 dalek rakudo/nom: 5921c70 | pmichaud++ | docs/release_guide.pod:
14:46 dalek rakudo/nom: Move the "make sure everything compiles/runs" testing step to _after_ the "update NQP and versions" steps.
14:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5921c70d46
14:48 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:49 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 colomon +1
14:52 dalek specs: 43780ff | masak++ | S32-setting-library/IO.pod:
14:52 dalek specs: [S32/IO] "UTF-8" for &spurt, not "Unicode"
14:52 dalek specs:
14:52 dalek specs: colomon++ for pointing out that "Unicode" doesn't make much sense here,
14:52 dalek specs: the way it does for reading (and trying to figure out the exact encoding).
14:52 dalek specs: review: https://github.com/perl6/specs/commit/43780ff8ab
14:52 pmichaud I think it should remain "Unicode", fwiw.
14:53 masak feel free to revert.
14:53 colomon pmichaud: why?
14:53 pmichaud Yes, I understand colomon's point.  However, we use "Unicode" to mean "whatever Unicode format makes the most sense", too.
14:53 pmichaud for some languages/scripts, utf-8 might not be the best output format.
14:53 masak it feels a bit bad to perpetuate the illusion that "Unicode" is an encoding, even if implicitly.
14:53 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 pmichaud it's dwimmy
14:54 colomon pmichaud: are you proposing that p6 should somehow scan what is being exported and choose the "best" encoding to use?
14:55 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:56 masak JIS, for example.
14:56 masak oh, we have an $*ENC variable, don't we.
14:56 masak maybe we should just default to that, then.
14:57 pmichaud that makes a huge amount of sense :-)
14:57 colomon r: say $*ENC
14:57 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␤␤»
14:57 masak ok, I'll change it.
14:57 colomon : say $*ENC
14:57 _jaldhar joined #perl6
14:57 masak oh, and it's $?ENC
14:57 colomon r: say $?ENC
14:57 p6eval rakudo 4b2c1f: OUTPUT«===SORRY!===␤Variable $?ENC is not declared␤at /tmp/jbgpjkPauK:1␤»
14:57 masak I always assume it's $*ENC, for some reason.
14:57 flussence r: say %*ENV<LC_ALL>.split('.').perl
14:57 p6eval rakudo 4b2c1f: OUTPUT«No such method 'split' for invocant of type 'Any'␤  in block <anon> at /tmp/q8_kPzpZcY:1␤␤»
14:58 flussence guess that's of no use...
14:58 colomon yeah, using $?ENC seems to make sense
14:58 dalek specs: fd60e99 | masak++ | S32-setting-library/IO.pod:
14:58 dalek specs: [S32/IO] on second thought, $?ENC
14:58 dalek specs:
14:58 dalek specs: The default encoding of the distribution. This makes a huge
14:58 dalek specs: amount of sense.
14:58 dalek specs: review: https://github.com/perl6/specs/commit/fd60e99b47
15:00 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
15:00 p6eval rakudo 4b2c1f: OUTPUT«8␤»
15:01 dalek doc: 783d3a8 | pmichaud++ | README:
15:01 dalek doc: Typo fix.
15:01 dalek doc: review: https://github.com/perl6/doc/commit/783d3a8b8a
15:12 dalek doc: 7736027 | pmichaud++ | lib/perlvar.pod:
15:12 dalek doc: Add perlvar.pod, a (temporary?) place to document magical variables.
15:12 dalek doc: review: https://github.com/perl6/doc/commit/7736027613
15:15 dalek doc: f798f06 | pmichaud++ | lib/perlvar.pod:
15:15 dalek doc: Add $?ENC (from S32/IO.pod).
15:15 dalek doc: review: https://github.com/perl6/doc/commit/f798f063e8
15:17 sisar pmichaud: http://tablets.perl6.org/appendix-b-grouped.html#compiler-hint-variables
15:18 sisar pmichaud: and the entry just above that
15:20 pmichaud sisar: cool, feel free to update perlvar.pod with those
15:22 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 #perl6
15:23 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
15:24 sisar masak: there looks to be more of abandoning the species altogether than evolution
15:24 pmichaud rapid evolution, yes.
15:24 masak I'd say lots of people have thought this through. but it's still hard to make complete, comprehensive, clear, useful documentation.
15:25 masak I'd say "many projects" isn't our biggest problem by far.
15:25 masak that said, someone who supervises, organizes and co-ordinates the different efforts would be great.
15:25 kresike How can one document something that is still under heavy development ?
15:25 masak Perl 6 is Mostly Stable at this point.
15:26 masak we're quickly converging on the thing we want.
15:26 jnthn Because much more stays the same than changes these days.
15:26 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.  :)
15:26 jnthn (Which is a good thing.)
15:26 szabgab and sisar has not even listed my Perl 6 stuff :(
15:26 masak aww. szabgab++ # awesome Perl 6 tutorials
15:26 szabgab I am disapoined :(
15:27 sisar sisar--
15:27 masak aren't they linked from perl6.org?
15:27 masak they should be.
15:27 szabgab they are
15:27 pmichaud yes, they are.
15:27 masak my old u4x shouldn't be, at this point, I think.
15:27 szabgab but wait, I am coming back!
15:27 masak moritz++' effort should be.
15:27 masak as far as I'm concerned, that's the new u4x now.
15:27 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
15:27 szabgab I just have to take my son to Taekwondo training...
15:28 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.
15:28 kresike and we all know, how programmers feel about documentation ... it's hard enough doing it the first time
15:28 masak aye.
15:28 JimmyZ joined #perl6
15:28 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 :)
15:29 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?
15:29 masak pmichaud++
15:29 pmichaud szabgab: I'm commiting that Rakudo will provide a strong deprecation policy for future releases.
15:30 pmichaud 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 ...
15:30 pmichaud kresike: I hear what you're saying; I'm not sure what you're proposing (if anything)
15:30 szabgab pmichaud:  thanks   &&  back later &
15:31 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:35 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:36 pmichaud kresike: programmers are all we have here, at the moment.
15:36 pmichaud kresike: if you know of where we can get some non-programmers to write our docs, I'm all for it.  :)
15:37 kresike pmichaud, I'll ask around, but by profession I'm also just a programmer trying to learn perl6
15:37 kresike :)
15:37 pmichaud besides, iiuc most of the p5 docs was written by p5 programmers, and that seemed to work out okay :)
15:39 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 _jaldhar joined #perl6
15:41 jimmy1980 joined #perl6
15:41 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:43 masak there is a lot, yes.
15:43 masak the idea is that you learn it piecemeal.
15:43 moritz p6: say log10 85
15:43 p6eval niecza v18-7-ga660099: OUTPUT«1.9294189257142926␤»
15:43 p6eval ..rakudo 5921c7: OUTPUT«1.92941892571429␤»
15:44 dalek tablets: 5396137 | pmichaud++ | docs/appendix-b-grouped.txt:
15:44 dalek tablets: Documentation fix;  $<...> is not a 'twigiled variable'.
15:44 dalek tablets: review: https://github.com/perl6/tablets/commit/53961371ca
15:46 dalek doc: 3a4f4a2 | moritz++ | lib/Numeric.pod:
15:46 dalek doc: start to talk about Numeric
15:46 dalek doc: review: https://github.com/perl6/doc/commit/3a4f4a2bfd
15:54 dalek tablets: 72c9ca6 | pmichaud++ | docs/appendix-a-index.txt:
15:54 dalek tablets: Add navigational heading for equals sign.
15:54 dalek tablets: review: https://github.com/perl6/tablets/commit/72c9ca6606
15:54 dalek tablets: 5b2c973 | pmichaud++ | docs/appendix-a-index.txt:
15:54 dalek tablets: Convert "angle brackets twigil" to a postcircumfix op.
15:54 dalek tablets: review: https://github.com/perl6/tablets/commit/5b2c973a47
15:58 _jaldhar joined #perl6
15:58 dalek doc: 86a9699 | pmichaud++ | lib/Numeric.pod:
15:58 dalek doc: Typo fix; rephrase .ACCEPTS a bit.
15:58 dalek doc: review: https://github.com/perl6/doc/commit/86a9699d62
16:00 kurahaupo joined #perl6
16:01 dalek tablets: b3cee55 | pmichaud++ | docs/appendix-a-index.txt:
16:01 dalek tablets: Remove "both" from interpretation of infix:<|>.
16:01 dalek tablets: review: https://github.com/perl6/tablets/commit/b3cee557d0
16:02 dalek nqp/toqast: ef4ed30 | jnthn++ | docs/QASTMAP:
16:02 dalek nqp/toqast: Start a list of tasks and design issues related to QAST migration.
16:02 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/ef4ed30605
16:03 dalek nqp/toqast: 46cf8f8 | jnthn++ | src/PAST/NQP.pir:
16:03 dalek nqp/toqast: Start getting some more of the 6model primitives into the nqp:: namespace.
16:03 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/46cf8f8400
16:03 dalek nqp/toqast: bc64ed0 | jnthn++ | src/how/NQP (5 files):
16:03 dalek nqp/toqast: Use nqp::setwho and nqp::newtype.
16:03 jnthn heh :)
16:04 dalek joined #perl6
16:05 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 pmichaud JimmyZ:  different irc servers, likely
16:08 cognominal pmichaud: you said you hade made a special stage to display the parse tree. I need it for my codeviewer  https://github.com/cognominal/code-viewer
16:09 cognominal 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.
16:09 cognominal ok
16:09 pmichaud I also said that I think the parse tree display is broken because of a dumper issue, not necessarily a stage one.
16:10 cognominal and that's https://github.com/cognominal/codeview
16:10 cognominal code-viewer was a previous attemps
16:12 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:13 masak 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 masak and we should start to direct people to it when they have questions.
16:13 pmichaud where is u4x these days, ooc?
16:13 sisar masak: nice to know :-)
16:14 sorear good * #perl6
16:14 masak pmichaud: https://github.com/perl6/mu/tree/master/docs/u4x
16:14 moritz in fact I stole a bit from u4x
16:14 sisar pmichaud: http://doc.perl6.org/
16:14 masak pmichaud: it's actually more of an interface than an implementation. which is why I fully endorse moritz++' effort.
16:15 masak oh right, we did have a bit of content didn't we.
16:15 sisar sorear: o/
16:15 masak in retrospect I think the dwimminess of the grok tool might be a bit too much.
16:15 sisar sorear: your thoughts on perl6 documentaion ?
16:15 masak but we can probably get pretty close without much trouble.
16:16 sorear sisar: What perl6 documentation?
16:16 sisar sorear: :-), see backlog, we've been discussing documentation.
16:16 sorear oh, &spurt is the spec name now?
16:17 sorear *mumbles*
16:17 sorear OTOH, now I get to claim "increased spec compliance!" for c19
16:17 sorear v19
16:17 sorear sisar: how far back?
16:18 dalek doc: 6badc2b | moritz++ | lib/Numeric.pod:
16:18 dalek doc: [Numeric], exp, roots, Bool
16:18 dalek doc: review: https://github.com/perl6/doc/commit/6badc2b1a5
16:18 sisar sorear: starts at http://irclog.perlgeek.de/perl6/2012-06-24#i_5753695
16:20 cognominal which librariy is used by padre for display?
16:21 cognominal I mean for the GUI
16:23 sisar cognominal: i think http://www.wxwidgets.org/
16:23 cognominal ok
16:23 dalek rakudo/nom: 3a0e404 | jnthn++ | docs/ChangeLog:
16:23 dalek rakudo/nom: Add a note on meta-object improvement to ChangeLog.
16:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3a0e4049ac
16:26 am0c joined #perl6
16:27 _jaldhar joined #perl6
16:28 _jaldhar joined #perl6
16:30 moritz p6: say (3+4i).abs
16:30 p6eval rakudo 5921c7, niecza v18-7-ga660099: OUTPUT«5␤»
16:32 moritz p6: say (3+4i).sqrt
16:32 p6eval rakudo 5921c7, niecza v18-7-ga660099: OUTPUT«2+1i␤»
16:32 _jaldhar joined #perl6
16:33 _jaldhar joined #perl6
16:33 moritz p6: say (-4).sqrt
16:33 p6eval rakudo 5921c7, niecza v18-7-ga660099: OUTPUT«NaN␤»
16:34 sisar moritz: http://rosettacode.org/wiki/Arithmetic/Complex#Perl_6, maybe you can add to it
16:34 sisar p6: say (-4).Complex.sqrt;
16:34 p6eval niecza v18-7-ga660099: OUTPUT«1.2246063538223773E-16+2i␤»
16:34 p6eval ..rakudo 5921c7: OUTPUT«1.22460635382238e-16+2i␤»
16:34 moritz sisar: I'm focusing on p6doc right now
16:34 sisar moritz: sure :-)
16:35 awwaiid joined #perl6
16:37 dalek doc: a63baba | moritz++ | lib/Numeric.pod:
16:37 dalek doc: [Numeric] abs, sqrt, conj
16:37 dalek doc: review: https://github.com/perl6/doc/commit/a63baba178
16:40 moritz p6: say (-10).rand
16:40 p6eval niecza v18-7-ga660099: OUTPUT«-9.42198123755957␤»
16:40 p6eval ..rakudo 5921c7: OUTPUT«-1.20300443451018␤»
16:41 * masak .oO( yes, but which one is right? )
16:43 sorear I wouldn't be opposed to having the spec recommend a specific random number generator for full p6 impls
16:45 sisar sorear: +1
16:45 moritz recommendations in the spec are useless
16:46 moritz either we spec one, or we require certain features, or we just say "make it good and fast"
16:48 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"
16:48 sisar s/properties of/expectations from
16:48 sisar moritz: oh, sorry
16:49 szabgab pmichaud: re: looking for non-programmer:     I know a bad programmer, does that count? :)
16:49 dalek doc: 3271639 | moritz++ | lib/Real.pod:
16:49 dalek doc: [Real]
16:49 dalek doc: review: https://github.com/perl6/doc/commit/32716391ab
16:49 pmichaud szabgab: I think my comment was more rhetorical than anything else.  I don't think that good programmers are universally bad at documentation.   :-)
16:51 pmichaud although the discussion here inspires me to write something about the "Perl 6 Bazaar"
16:51 pmichaud or make a lightning talk on the subject for yapc::eu
16:52 dalek doc: a56b88b | moritz++ | lib/Real.pod:
16:52 dalek doc: [Real] base
16:52 dalek doc: review: https://github.com/perl6/doc/commit/a56b88bfaf
16:52 moritz p6: say (1+2i).succ
16:52 p6eval niecza v18-7-ga660099: OUTPUT«2+2i␤»
16:52 p6eval ..rakudo 5921c7: OUTPUT«No such method 'succ' for invocant of type 'Complex'␤  in block <anon> at /tmp/BJlLUOsXjR:1␤␤»
16:53 moritz p6: say Int.succ
16:53 p6eval niecza v18-7-ga660099: OUTPUT«1␤»
16:53 p6eval ..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␤␤»
16:53 moritz niecza++
16:54 moritz niecza: say Int.pred
16:54 p6eval niecza v18-7-ga660099: OUTPUT«-1␤»
16:55 sisar n: say Int.sqrt;
16:55 p6eval niecza v18-7-ga660099: OUTPUT«0␤»
16:56 sergot How to: sub a($a, @b, %c, *@d) { b(the_same_arglist); } ? :)
16:56 sorear b(|callframe.args)
16:56 sergot sorear++ thanks
16:56 sorear or: a(|cap, $a, @b, %c, *@d) { b(|cap) }
16:57 sorear or: a(|cap ($a, @b, %c, *@d)) { b(|cap) }
16:57 sisar rn: say ::; #what happens here ?
16:57 p6eval niecza v18-7-ga660099: OUTPUT«PseudoStash.new(...)␤»
16:57 p6eval ..rakudo 5921c7: OUTPUT«EnumMap.new("\$!", Any, "\$=pod", Array.new(), "!UNIT_MARKER", !UNIT_MARKER, "GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "::?PACKAGE", GLOBAL, "\$_", Any, "\$/", Any, )␤»
16:58 jnthn Hmm...that really should not say EnumMap.
16:58 dalek rakudo/toqast: 1891283 | jnthn++ | / (11 files):
16:58 dalek rakudo/toqast: Add a qperl6 that can be used to gradually do the QAST migration, while still using the normal compiler to build CORE.setting.
16:58 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/1891283f38
16:58 pmichaud I suspect it's being perl6ized
16:59 jnthn pmichaud: No, it is a pseudostash
16:59 pmichaud oh, wait, there's a bug in EnumMap.perl
16:59 jnthn r: say ::.WHAT
16:59 p6eval rakudo 5921c7: OUTPUT«PseudoStash()␤»
16:59 jnthn pmichaud: Yes, that was my quess
16:59 jnthn *guess
16:59 pmichaud EnumMap.perl has 'EnumMap' hardcoded.
17:01 pmichaud fixing.
17:01 jnthn pmichaud++
17:02 icwiener joined #perl6
17:03 * moritz tries to fix succ and pred
17:04 moritz because they succ :-)
17:05 pmichaud I'm not sure that Int.succ should be 1; at least not without a warning.
17:06 sorear I am
17:06 sorear my Int $x; $x++
17:06 pmichaud that's a product of postfix:<++>, not of .succ
17:06 pmichaud my Int $x;  $x += 1;    means something special when $x is undefined
17:07 sorear are you trying to tell me ++ is different from .=succ ?
17:07 pmichaud yes.
17:07 pmichaud oh, maybe not
17:07 pmichaud looking
17:07 pmichaud r: my Int $x;  $x++;  say $x;
17:07 p6eval rakudo 5921c7: OUTPUT«1␤»
17:09 pmichaud "a bare undefined value in a suitable container is allowed to mutate itself into an Int ..."
17:09 pmichaud undefined values outside of containers.... not sure they get to mutate.
17:09 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
17:09 moritz .succ doesn't mutate
17:09 sisar rn: my Bool $x; say $x++;
17:09 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␤␤»
17:09 p6eval ..niecza v18-7-ga660099: OUTPUT«0␤»
17:10 szabgab I started to move over all my perl 5 related content to the Perl Maven site
17:10 szabgab what shall I do with the Perl 6 content?
17:10 szabgab Should I move it to a site called Perl 6 Maven?
17:10 szabgab or do you have a better name suggestion?
17:10 thou joined #perl6
17:10 pmichaud moritz: my point is that it's the postfix:<++> that does the mutation, not .succ .
17:11 pmichaud Int.succ should probably throw a warning, not simply return 1.
17:12 pmichaud from S03:545:
17:12 sorear pmichaud: what does ++ do if not .=succ?
17:12 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:
17:12 pmichaud my $x; say $x++;    # 0, not Any
17:12 pmichaud ++ does .=succ, but it sets the variable to zero first.
17:13 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.
17:13 sorear what does this do, and how does it do it?  my Num $n; $n++
17:14 UncleFester6 joined #perl6
17:14 pmichaud sets $n to zero, then calls $n .= succ
17:14 sorear "zero?
17:14 zby_home joined #perl6
17:14 pmichaud r:  my Num $n;  $n++;
17:14 p6eval rakudo 3a0e40:  ( no output )
17:14 pmichaud r:  my Num $n;  $n++;  say $n;
17:14 p6eval rakudo 3a0e40: OUTPUT«1␤»
17:15 moritz sorear: 0."{$arg.^name}"()
17:15 sorear r: my Num $n; $n++; say $n.WHAT
17:15 p6eval rakudo 3a0e40: OUTPUT«Num()␤»
17:15 sorear moritz: rakudosource?
17:16 moritz sorear: rakudo simply has a different multi variant for each numeric type
17:17 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 https://gist.github.com/2984059
17:18 sorear stdcall/ccall issues?
17:20 pmichaud jnthn:
17:20 pmichaud pmichaud@kiwi:~/p6/rakudo$ ./perl6
17:20 pmichaud > say ::
17:20 pmichaud PseudoStash.new("\$!", Any, "\$=pod", Array.new(), "!UNIT_MARKER", !UNIT_MARKER, "GLOBALish", GLOBAL, "EXPORT", EXPORT, "\$?PACKAGE", GLOBAL, "::?PACKAGE", GLOBAL, "\$_", Any, "\$/", Any, )
17:20 pmichaud better?
17:20 pmichaud spectesting.
17:21 sisar n: my Bool $x; say $x++; say $x++; #sorear, what happens here ?
17:21 p6eval niecza v18-7-ga660099: OUTPUT«0␤True␤»
17:22 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␤␤»
17:22 pmichaud that's a bug.
17:22 moritz should the first one say 0 or False?
17:22 pmichaud False
17:22 sorear sisar: not sure, but I'm certain it's not up to spec. :)
17:23 jnthn pmichaud: Yes, better
17:23 pmichaud S03:539 covers postfix:<++> on Bools.
17:23 pmichaud (just before postfix:<++> on Any/Numeric/Cool is described)
17:23 dalek niecza: 95a1946 | sorear++ | / (5 files):
17:23 dalek niecza: s/spew/spurt/g for compatibility with latest spec
17:23 dalek niecza: review: https://github.com/sorear/niecza/commit/95a1946ac9
17:26 dalek rakudo/nom: bd0e5c0 | pmichaud++ | src/core/EnumMap.pm:
17:26 dalek rakudo/nom: Fix EnumMap.perl to use objects typename instead of hardcoded "EnumMap".
17:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bd0e5c0811
17:28 sisar pmichaud++ #fast bugfixing !
17:32 sisar pmichaud: should I file a bug for wrong Bool++ ? or are we gonna see another lightning bugfix ? ;-)
17:34 sisar pmichaud: note that the bug only occurs when $x is uninitialized. The spec is silent(?) on incrementing uninitialized Bool variables.
17:34 sisar r: my Bool $x; $x = True; $x++ #works
17:34 p6eval rakudo 3a0e40:  ( no output )
17:35 sisar r: my Bool $x; $x = True; say $x++ #works
17:35 p6eval rakudo 3a0e40: OUTPUT«True␤»
17:35 pmichaud sisar: I'm expecting uninitialized Bool to work like uninitialized Numeric
17:35 pmichaud principle of least surprise :)
17:35 sisar pmichaud: aye, I agree.
17:35 pmichaud you can file a bug for Bool++; I'm fixing it now, but we'll want a spectest.
17:36 sisar pmichaud: ok, filing. pmichaud++
17:36 masak sisar++
17:37 sisar r: my Bool $x; $x = True; say $x--; #another bug
17:37 p6eval rakudo 3a0e40: OUTPUT«True␤»
17:37 sisar pmichaud: fixing ^ too ?
17:37 pmichaud sisar: that looks correct to me :)
17:38 pmichaud r: my Bool $x; $x = True;  say --$x;
17:38 p6eval rakudo 3a0e40: OUTPUT«False␤»
17:38 UncleFester6 left #perl6
17:38 pmichaud r: my Bool $x; $x = True;  say $x--; say $x;
17:38 sisar oh !
17:38 p6eval rakudo 3a0e40: OUTPUT«True␤False␤»
17:38 kikulli joined #perl6
17:44 masak sisar: remember the semantic difference between prefix:<--> and postfix:<-->
17:45 sisar masak: yessir ! :-)
17:45 * sisar almost always forgets that there is even something like post and pre --
17:46 pmichaud > my Bool $x;  say $x++;  say $x
17:46 pmichaud False
17:46 pmichaud True
17:46 pmichaud spectesting, then committing
17:46 sisar \o/
17:47 sisar bugreport: #113816
17:48 sisar .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++
17:48 masak really*
17:48 sisar masak: thanks :-)
17:48 masak 11 minutes. not bad for a beginner ;)
17:49 masak 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.
17:49 masak ok. well, quality matters.
17:50 pmichaud quality is often more important than speed :)
17:50 masak they are not in opposition IMO.
17:50 masak speed comes from being familiar with the necessary operations.
17:51 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.
17:52 dalek rakudo/nom: f798fb1 | pmichaud++ | src/core/Bool.pm:
17:52 dalek rakudo/nom: Fix pre/post-increment/decrement on undefined Bool containers. sisar++ RT #113816
17:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f798fb1b7e
17:52 masak I have a very hard time sacrificing quality in the name of speed in my work and hobby life.
17:53 pmichaud masak: that's because you're a high-quality person :)
17:53 diakopter quality can include speed too, though.
17:54 diakopter (relatively more) efficiency can be a requirement
17:55 diakopter 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 ?
17:56 diakopter oh, you weren't talking about software; you were talking about bug reports, oops.
17:57 * diakopter should backlog further
17:57 masak diakopter: with the quality/speed thing I mostly meant software, fwiw.
17:57 pmichaud I'm closing the ticket now.
17:57 masak pmichaud++
17:57 pmichaud well, I'm marking it testneeded.
17:57 pmichaud also updating the "expected output", and fixing my bugfix to actually give the correct answer.  :)
17:58 pmichaud since we all had it wrong :)
17:59 pmichaud my Bool $x;  say $x++; say $x   # "Bool", "True"
18:01 pmichaud I'll go ahead and add the spectests, too.
18:02 dalek rakudo/toqast: 9914c45 | jnthn++ | src/QPerl6/World.pm:
18:02 dalek rakudo/toqast: Correct an outdated comment.
18:02 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/9914c454b0
18:02 dalek rakudo/toqast: 3b80143 | jnthn++ | src/QPerl6/ (2 files):
18:02 dalek rakudo/toqast: Tentatively start to change to PAST::Block into QAST::Block; leave a case where things are a little more invovled. Note, breaks everything. :-)
18:02 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/3b80143503
18:02 dalek rakudo/toqast: 8a4ca80 | jnthn++ | src/QPerl6/ (2 files):
18:02 dalek rakudo/toqast: Translate various PAST::Val to their QAST equivalents; again, a few outliers/tricky cases left for now.
18:02 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/8a4ca807cf
18:02 dalek rakudo/toqast: d646a75 | jnthn++ | src/QPerl6/ (2 files):
18:02 dalek rakudo/toqast: PAST::Stmt/PAST::Stmts to QAST::Stmt/QAST::Stmts, apart from one trickier case.
18:02 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/d646a753fb
18:02 dalek rakudo/toqast: 4dc8dad | jnthn++ | src/QPerl6/ (2 files):
18:02 dalek rakudo/toqast: Switch .get_ref calls over to using QAST::WVal.
18:02 dalek rakudo/toqast: review: https://github.com/rakudo/rakudo/commit/4dc8dad39a
18:12 sisar rn: say 'a'|'b';
18:12 p6eval rakudo 3a0e40: OUTPUT«any(a, b)␤»
18:12 p6eval ..niecza v18-9-g95a1946: OUTPUT«any("a", "b")␤»
18:13 sisar ^ rakudo is missing quotes (cf. Niecza). Is this detail unimportant ?
18:13 pmichaud that detail is very important... not sure what happened there.
18:13 * pmichaud checks Junction.gist
18:13 diakopter free((char*)1) <- breakpoint technique for Visual Studio when invoking from not within the IDE
18:13 pmichaud welll.... hmm
18:14 diakopter "A heap has been corrupted"
18:14 pmichaud rn: say Int|Num;
18:14 p6eval rakudo f798fb: OUTPUT«any(Int(), Num())␤»
18:14 p6eval ..niecza v18-9-g95a1946: OUTPUT«any(Int, Num)␤»
18:14 pmichaud rn: say Int
18:14 p6eval rakudo f798fb, niecza v18-9-g95a1946: OUTPUT«Int()␤»
18:14 pmichaud I think I might be able to argue for Rakudo's behavior.
18:15 pmichaud .gist is not always the same as .perl
18:17 benabik joined #perl6
18:17 araujo joined #perl6
18:17 sisar but a and b would imply subroutines named a and b
18:17 sisar r: 'a' ~~ any(a,b);
18:17 p6eval rakudo f798fb: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&a' called (line 1)␤Undefined routine '&b' called (line 1)␤»
18:17 pmichaud say outputs using .gist
18:17 pmichaud .gist is not always the same as .perl
18:18 pmichaud you aren't expected to be able to eval a .gist and get the same results as before.
18:18 sisar hmm
18:18 pmichaud rn: say ('a'|'b').perl
18:18 p6eval rakudo f798fb, niecza v18-9-g95a1946: OUTPUT«any("a", "b")␤»
18:19 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.
18:20 diakopter r: say (/a/|/b/)
18:20 p6eval rakudo f798fb: OUTPUT«any(_block1011, _block1021)␤»
18:21 diakopter n: say (/a/|/b/)
18:21 p6eval niecza v18-9-g95a1946: OUTPUT«any(regex ANON(Any \self) { ... }, regex ANON(Any \self) { ... })␤»
18:26 sergot nom: sub b($a, $b) { say 'b'; }; sub a($p1, $p2) { b(|callframe.args); }
18:26 p6eval rakudo f798fb:  ( no output )
18:27 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)␤»
18:27 sergot nom: sub b($a, $b) { say 'b'; }; sub a($p1, $p2) { b(|callframe.args); }; a(1,2)
18:27 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␤␤»
18:27 sergot sorear: it doesn't work. :(
18:27 tadzik 'evening
18:28 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 parameter␤at /tmp/mapbZUpqx4:1␤»
18:28 jnthn nom: sub b($a, $b) { say 'b'; }; sub a(|$c, $p1, $p2) { b(|$c); }; a(1,2)
18:28 p6eval rakudo f798fb: OUTPUT«===SORRY!===␤Cannot put required parameter after variadic parameters␤at /tmp/gaj_P0yRF_:1␤»
18:28 jnthn Oh really...
18:28 jnthn nom: sub b($a, $b) { say 'b'; }; sub a(|$c ($p1, $p2)) { b(|$c); }; a(1,2)
18:28 p6eval rakudo f798fb: OUTPUT«b␤»
18:29 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␤»
18:29 jnthn Taking a capture then unpacking it works fine.
18:29 pmichaud looks like callframe.args NYI
18:29 jnthn Yeah
18:29 sergot jnthn++ thanks
18:29 sergot :)
18:29 jnthn Feel free to file a TODO ticket on callframe.args. It's LHF, afaik.
18:31 sisar rn: sub a {return 42;}; say a; sub i { return 42; }; say i;
18:31 p6eval rakudo f798fb, niecza v18-9-g95a1946: OUTPUT«42␤0+1i␤»
18:31 sisar ^shouldn't overloading i warn ?
18:33 dalek roast: f18a918 | pmichaud++ | S03-operators/autoincrement.t:
18:33 dalek roast: Add spectests for bool autoincrement (RT #113816).
18:33 dalek roast: review: https://github.com/perl6/roast/commit/f18a918585
18:34 masak sisar: no, why?
18:35 masak 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 masak it's just like this.
18:35 pmichaud ...does the setting declare 'i' as a term/constant?
18:35 masak r: sub foo { say "outer" }; { sub foo { say "inner" }; foo }; foo
18:35 p6eval rakudo f798fb: OUTPUT«inner␤outer␤»
18:35 masak or like this.
18:36 masak r: my $var = "outer"; say $var; { my $var = "inner"; say $var }; say $var
18:36 p6eval rakudo f798fb: OUTPUT«outer␤inner␤outer␤»
18:36 sisar masak: it hides what's in the setting? so the new i definition should work, right ?
18:36 masak yes.
18:36 masak unless what pmichaud suspects is true, and it's actually a term.
18:36 sisar masak: but it said "0+1i";
18:36 pmichaud where is 'i' being defined?
18:36 masak then it's intercepted at the parsing level.
18:37 masak pmichaud: at the end of src/core/Complex.pm
18:37 masak it's a constant.
18:37 Gesh joined #perl6
18:37 pmichaud ah yes, there it is.
18:37 pmichaud sisar: so, to get to the new i definition you need i()
18:38 masak oh right, that's the rule.
18:38 masak pmichaud++
18:38 pmichaud consider:
18:38 masak rn: sub a {return 42;}; say a; sub i { return 42; }; say i()
18:38 p6eval niecza v18-9-g95a1946: OUTPUT«42␤Unhandled 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 p6eval ..rakudo f798fb: OUTPUT«42␤42␤»
18:38 masak sorear: ^
18:38 pmichaud rn: sub if { say 'if' };   if(1);
18:38 p6eval niecza v18-9-g95a1946: OUTPUT«if␤»
18:38 p6eval ..rakudo f798fb: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'if' will never work with argument types (int) (line 1)␤    Expected: :()␤»
18:39 pmichaud rn: sub if(*@x) { say 'if' };   if(1);
18:39 p6eval rakudo f798fb: OUTPUT«if␤»
18:39 p6eval ..niecza v18-9-g95a1946: OUTPUT«Potential difficulties:�  @x is declared but not used at /tmp/xeNJIqdC54 line 1:�------> [32msub if(*[33m�[31m@x) { say 'if' };   if(1);[0m��if�»
18:39 sisar pmichaud: yes, but then the two calls say a and say i() are different, which makes me feel weird
18:39 masak sisar: then don't call it 'i' :P
18:39 pmichaud sisar: barewords aren't always subroutine calls.
18:40 sisar masak: what rakudo should say is "Masak says: don't name a subroutine 'i' :p " :p
18:41 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()
18:41 masak I was saying, if you think it's weird to have to () it, don't do that.
18:41 pmichaud just like it's perfectly legal to name a subroutine  'if', 'for', 'while', 'class', etc.
18:41 masak it's only weird because you created a weird situation for yourself.
18:41 nebuchadnezzar joined #perl6
18:47 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 /…
18:47 p6eval ..rakudo f798fb:  ( no output )
18:48 sisar hmm, rakudo doen't even say anything, I wonder what happened.
18:48 pmichaud r: say 2i .. 10i;
18:48 p6eval rakudo f798fb: OUTPUT«Complex.new(0, 2)..Complex.new(0, 10)␤»
18:48 pmichaud r: say (2i .. 10i).list;
18:49 p6eval rakudo f798fb: OUTPUT«␤»
18:49 Gesh What is niecza?
18:49 pmichaud say 2i cmp 10i;
18:49 masak Gesh: Rakudo and Niecza are two Perl 6 implementations.
18:49 moritz a perl 6 compiler on the CLR (.NET/Mono)
18:49 pmichaud r: say 2i cmp 10i;
18:49 p6eval rakudo f798fb: OUTPUT«Decrease␤»
18:49 masak Gesh: Rakudo runs on Parrot, Niecza runs on the CLR.
18:49 Gesh Ah, ok
18:49 pmichaud rakudo thinks that 2i > 10i, so it produces an empty list.
18:49 pmichaud it's probably stringifying.
18:50 dalek rakudo/nom: 7d394e2 | moritz++ | src/core/ (3 files):
18:50 dalek rakudo/nom: move succ and pred from Real to Numeric
18:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7d394e2f5b
18:50 masak Gesh: they're both pretty great. see http://perl6.org/compilers/features
18:50 sisar what, rakudo compare Complex nos... of right, stringification, phew !
18:50 sisar *oh
18:51 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…
18:51 Gesh masak, why there is no haskell implemented perl6 in the comparison? I heard about one
18:52 masak Gesh: Pugs is implemented in Haskell.
18:52 Gesh Yep
18:52 masak p: say "Hiiii!"
18:52 p6eval pugs: OUTPUT«Hiiii!␤»
18:52 Gesh masak, but it's not there
18:52 masak Gesh: but it's a little old now.
18:52 dalek doc: 28057e9 | moritz++ | lib/Numeric.pod:
18:52 dalek doc: [Numeric] succ, pred
18:52 dalek doc: review: https://github.com/perl6/doc/commit/28057e922a
18:52 pmichaud I suspect Pugs isn't listed because it's much less actively developed
18:52 masak so a feature comparison would be a little unfair, because many things are broken.
18:53 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.
18:53 masak pmichaud: +1
18:53 Gesh i see.
19:00 brrt joined #perl6
19:05 dalek features: f5269a2 | pmichaud++ | template.html:
19:05 dalek features: Add a link/note about Pugs.  (updates/improvements welcomed).
19:05 dalek features: review: https://github.com/perl6/features/commit/f5269a23f6
19:05 sisar n: (*|'a').WHAT.say;
19:05 p6eval niecza v18-9-g95a1946:  ( no output )
19:05 sisar hm, nieczabug
19:06 sisar sorear: Junctions are fully implemented in Niecza ?
19:08 sorear sisar: yes
19:08 sorear n: say (*|'a').WHAT
19:08 p6eval niecza v18-9-g95a1946: OUTPUT«{ ... }␤»
19:08 sorear n: say WHAT (*|'a')
19:08 p6eval niecza v18-9-g95a1946: OUTPUT«WhateverCode()␤»
19:08 sorear hrm
19:08 sorear not 100% sure this behavior is correct
19:09 sisar r: (*|'a').WHAT.say;
19:09 p6eval rakudo f798fb: OUTPUT«Junction()␤»
19:09 sorear n; ((*|'a').WHAT.say)(5)
19:09 sorear n: ((*|'a').WHAT.say)(5)
19:09 p6eval niecza v18-9-g95a1946: OUTPUT«Junction()␤»
19:10 sisar well, i'm off to bed now, good night #perl6
19:10 * sisar zzz...
19:11 sergot seen masak
19:11 masak sleep well, sisar. dream of effortless comparison of the complex and hypercomplex.
19:11 masak sergot: I'm right here!
19:11 sergot \o/
19:11 sergot great
19:11 masak \o/
19:12 sorear does p6 support hypercomplex numbers yet?
19:13 masak you mean, through a library?
19:13 masak I could whip one up, if you want.
19:13 masak might be fun.
19:13 cognominal joined #perl6
19:13 sorear just speaking of 12:11 < masak> sleep well, sisar. dream of effortless comparison of the complex  and hypercomplex.
19:14 sorear not certain what that comparison should do.
19:15 sorear the quaternion algebra has an interesting group of (continuous) automorphisms
19:15 brrt joined #perl6
19:17 adu joined #perl6
19:19 masak oh, I've never thought of the group of continuous automorphisms of the quaternions before. what's interesting about it?
19:20 sorear it's uncountably big.  also, it's isomorphic to the proper rotations of 3-space
19:21 vmspb joined #perl6
19:21 masak oh, right. Euler angles.
19:21 masak still haven't grok'd those.
19:23 dalek features: 911978f | pmichaud++ | template.html:
19:23 dalek features: Update the feature comparison page to look more like other
19:23 dalek features: pages on the perl6.org site (menubar at top, smaller Camelia, etc.).
19:23 dalek features:
19:23 dalek features: If anyone disagrees with this updated layout, feel free to revert.
19:23 dalek features: review: https://github.com/perl6/features/commit/911978f846
19:24 sorear I don't think Euler angles are relevant here
19:26 sorear 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:27 sorear 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 #perl6
19:27 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:28 * masak learns about http://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
19:29 masak hm, yes.
19:33 erkan joined #perl6
19:33 erkan joined #perl6
19:42 vmspb rn: say 'a'|'b'
19:42 p6eval rakudo 7d394e: OUTPUT«any(a, b)␤»
19:42 p6eval ..niecza v18-9-g95a1946: OUTPUT«any("a", "b")␤»
19:42 vmspb rn: say 'a'|'b, c, d'
19:42 p6eval rakudo 7d394e: OUTPUT«any(a, b, c, d)␤»
19:42 p6eval ..niecza v18-9-g95a1946: OUTPUT«any("a", "b, c, d")␤»
19:43 pmichaud &slerp  # replacement for &spout?  ;-)
19:44 pmichaud rearrange the letters and you can get "perls" or "sperl"
19:44 sorear masak: yapsi.  YAPC.
19:47 masak sorear: aye. what about it? :)
19:50 sorear masak: just noticed the other day.
19:53 masak hehe :)
19:53 tadzik yep, that's how I pronounce it :)
19:53 tadzik although "si" does not turn into "Å›" in this particular case
19:54 masak the 'i' in 'yapsi' is short when I say it. the one in 'YAPC' is long. but the difference is slight.
19:55 sorear short and long 'i's are allophonic in us english
19:55 masak and probably elsewhere, too.
20:24 birdwindupbird joined #perl6
20:31 fridim_ joined #perl6
20:34 brrt left #perl6
20:38 danishman joined #perl6
20:40 brrt joined #perl6
21:02 brrt left #perl6
21:32 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:33 ajs_home 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:34 Moukeddar joined #perl6
21:34 Moukeddar left #perl6
21:35 ajs_home Am I the only one that's kind of sickened at the idea that echo requires 175k instructions?
21:35 tadzik GNU
21:35 flussence if you think that's appalling, try /bin/true ;)
21:35 tadzik right :)
21:35 sorear ajs_home: I'm guessing your echo is dynamically linked
21:36 ajs_home True is 97k.... at least it's better... .sigh
21:36 sorear glibc needs to be relocated
21:36 ajs_home yeah, it is
21:36 adu ajs_home: would like to optimize perl6?
21:36 adu s/ / you /
21:36 flussence LD_DEBUG=statistics /bin/echo
21:37 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:38 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
21:38 ajs_home There was a day that would have been considered obscene
21:38 sorear ajs_home: debian?
21:39 adu ajs_home: as I see it, there are 3 big parts: runtime library, compilation strategy, and virtual machine
21:39 araujo joined #perl6
21:39 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
21:40 adu flussence: heh, erroneous error messages, what'll they think of next
21:41 geekosaur (so, typical red hat...)
21:41 adu ajs_home: of those three, I think the most opportunity for optimization is in compilation strategy
21:41 ajs_home I'd guess you're right, adu
21:48 ajs_home Another test: ./perl6 -e 'my $n = 0; for 1..10 -> $i { $n+=$i } ; say $n'
21:48 ajs_home 1.5b instructions
21:48 ajs_home up the count to 100 -> 1.5b instructions
21:48 ajs_home up the count to 1000 -> 1.5b instructions
21:48 ajs_home O.o
21:49 tadzik :)
21:49 ajs_home OK, I'm doing a floor, but still
21:49 ajs_home it's really 1.531b, 1.534b and 1.580b
21:50 ajs_home side note: valgrind rocks
21:51 geekosaur I imagine the largest chunk of it is spent translating to PIR or something
21:52 ajs_home Running perl6 with --leak-check=full is ... voluminous
21:52 ajs_home Interesting output, "definitely lost: 19,231 bytes in 1,422 blocks ... possibly lost: 121,216,606 bytes in 50,691 blocks"
21:53 ajs_home 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
21:54 tadzik 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 #perl6
21:55 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"
21:55 ajs_home which could be an internal allocator at work
21:55 sorear valgrind has API calls that you can use to instrument the parrot allocator and avoid definitely lost
21:56 sorear good luck getting any such patch accepted
21:57 sergot bye bye ! :)
21:57 araujo joined #perl6
21:57 araujo joined #perl6
21:57 tadzik \o
21:58 sorear o/ araujo
21:59 ajs_home Oh interesting... the Parrot garbage collector is marking uninitialized objects as live. That's probably not good
22:00 sorear ajs_home: i'd be interested to know what valgrind thinks about niecza's startup time
22:00 masak 'night, #perl6
22:00 ajs_home sorear, it's really easy to run
22:00 sorear bye masak
22:00 sorear ajs_home: yeah but I can't be sure the results are consistant between systems
22:01 ajs_home valgrind --tool=cachegrind -- your-program-and-args-here
22:01 ajs_home true
22:01 ajs_home I'll look into grabbing niecza in a bit
22:01 ajs_home gotta go cook dinner
22:02 araujo :)
22:03 araujo sorear, o/
22:04 araujo joined #perl6
22:21 kresike bye all
22:21 tadzik bye bye
22:21 tadzik ha, made it
22:21 flussence not on my screen!
22:25 pupoque joined #perl6
22:26 * jnthn -> sleep, 'night
22:30 dalek niecza/non-bootstrap: bea180f | sorear++ | lib/ (3 files):
22:30 dalek niecza/non-bootstrap: Wire compiler actions to the grammar engine
22:30 dalek niecza/non-bootstrap:
22:30 dalek niecza/non-bootstrap: This wiring takes place at a lower level than just creating a p6-level
22:30 dalek niecza/non-bootstrap: actions class.  This might count as premature optimization.
22:30 dalek niecza/non-bootstrap: review: https://github.com/sorear/niecza/commit/bea180fe4c
22:30 dalek niecza/non-bootstrap: d90112c | sorear++ | lib/Actions.cs:
22:30 dalek niecza/non-bootstrap: Fixup for install_sub
22:30 dalek niecza/non-bootstrap: review: https://github.com/sorear/niecza/commit/d90112cd7f
22:30 dalek niecza/non-bootstrap: 50780fb | sorear++ | lib/Parser.src:
22:30 dalek niecza/non-bootstrap: Incorporate CgOp in Parser.src
22:30 dalek niecza/non-bootstrap: review: https://github.com/sorear/niecza/commit/50780fb979
22:44 thou joined #perl6
23:15 tokuhirom joined #perl6
23:16 [Coke] colomon: hey, can ABC be installed?
23:23 dalek niecza/non-bootstrap: 56b506a | sorear++ | lib/ (3 files):
23:23 dalek niecza/non-bootstrap: Wire actions to correct handling of $*VARs
23:23 dalek niecza/non-bootstrap: review: https://github.com/sorear/niecza/commit/56b506ae1f
23:38 thou_ joined #perl6
23:46 colomon [Coke]: it should work.  But last time I checked Rakudo still couldn't handle it.
23:46 colomon (the module, I mean, not the installing.)
23:51 [Coke] colomon: argh. you mean I've been building the wrong perl6? ;)
23:52 colomon well, I haven't tried it in a week or two.  things might have gotten better.
23:53 [Coke] colomon: Quantifier quantifies nothing at line 50, near " { +$0 } <"
23:53 colomon huh.  that's new
23:53 [Coke] colomon: niecza is NOT installable, neh?
23:54 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 colomon [Coke]: define installable?  I guess I do always run it from its build directory...
23:54 [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.
23:55 [Coke] colomon: I wish it to be installed in, e.g. /usr/local
23:55 [Coke] preferably without having to manually copy a bunch of stuff.
23:56 * [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 colomon [Coke]: if you want to generate sheet music, you also need to have Lilypond installed...
23:58 [Coke] colomon: aye, mono and lilypond are already installed (via macports)
23:58 colomon \o/
23:58 colomon I don't think I ever got the macport of lilypond to work, I ended up installing it from binaries online.
23:59 colomon (and as a result, I've never figured out how to run it from the command line, which makes things unnecessarily awkward.)

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo