Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-06-14

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:00 gabiruh joined #perl6
00:00 pmichaud Is this just S10:182 that you are talking about?
00:01 sorear I'm not talking relative to any specific bit of spec
00:01 sorear I'm just trying to make it work usefully :)
00:01 sorear but I think I have an improved idea of how this stuff should work.
00:01 jnthn pmichaud: I...can't see how 182 relates.
00:01 jnthn pmichaud: But also what sorear said.
00:01 jnthn :)
00:02 jnthn pmichaud: Did you mean 128?
00:02 jnthn That seems much more related.
00:02 pmichaud yes, 128
00:02 pmichaud I _really_ need a new keyboard.
00:02 sorear perl6_set_types_{mu,junction,list_​array,enummap_hash,ins,packagehow} bug me.
00:03 jnthn Such empty packages may be subsequently be redeclared as any other
00:03 jnthn package-like object (module, class, etc.), and no redeclaration warning will be issued
00:03 pmichaud the tops of the keys on this one are so worn that I can't find the home keys by feel
00:03 jnthn for such a redeclaration.
00:03 jnthn ...yes, fits in.
00:03 pmichaud that's "stealing packages".
00:03 jnthn pmichaud: Wow. That's quite some typing.
00:03 jnthn pmichaud: Seems to.
00:03 pmichaud I think this keyboard is close to 7 years old.
00:04 pmichaud I've looked at others over the past couple of years but didn't find any I like better.
00:04 jnthn sorear: Then don't copy them into Niecza :)
00:04 sorear you're embarrassing me... my keyboard is like 8 years old and is still working perfectly
00:04 jnthn pmichaud: Yeah, mine is also overdue replacement...
00:04 jnthn But also very comfy. :)
00:04 jnthn And I can still find the home keys :)
00:04 pmichaud sorear: maybe you just program more efficiently than I do.  :)
00:05 pmichaud on my keyboard the little dots on the 'f' and 'j' are gone
00:05 sorear maybe I just have softer fingers. ;)
00:05 pmichaud I tried added stickers on the keys to be able to figure it out, but the stickers keep sliding off.
00:05 jnthn Ah, one mine they're more lumps underneath the f and j
00:05 jnthn *on
00:05 jnthn So a bit more to wear away. :)
00:06 sorear mine has lumps, but there's so little waer that you can still *read* the keys
00:07 icwiener joined #perl6
00:08 clkao left #perl6
00:08 sorear why is WHO a STable field, I wonder
00:08 acrussell left #perl6
00:08 tokuhirom joined #perl6
00:09 jnthn sorear: Why *woudln't* WHO be an STable field? :)
00:09 jnthn sorear: It not being would force every meta-object to provide that kind of thing.
00:09 jnthn Probably via a different interface if the HLL wanted to do so.
00:09 sorear ohright I forgot you didn't have common ancestry for all HOWs
00:10 clkao joined #perl6
00:10 jnthn sorear: Right. It's hard to have ancestry without inheritance.
00:10 lumi_ left #perl6
00:11 jnthn Plus even if inheritance was a 6model primitive, I still wouldn't want a common root meta-object.
00:11 lumi_ joined #perl6
00:11 jnthn Then, 6model is designed to support more than just Perl 6. :)
00:15 daniel-s_ left #perl6
00:16 dju__ joined #perl6
00:17 jnthn night, #perl6
00:19 dju_ left #perl6
00:28 Trashlord left #perl6
00:45 f00li5h is now known as f00li5h[HireMe]
00:56 icwiener left #perl6
00:57 tokuhiro_ joined #perl6
01:01 tokuhirom left #perl6
01:01 noganex joined #perl6
01:04 noganex_ left #perl6
01:12 icwiener joined #perl6
01:15 woosley joined #perl6
01:18 thou left #perl6
01:20 whiteknight left #perl6
01:22 lichtkind good night all
01:22 lichtkind left #perl6
01:25 icwiener_ joined #perl6
01:28 icwiener left #perl6
01:33 lumi_ left #perl6
01:34 lumi_ joined #perl6
01:43 colomon left #perl6
01:43 colomon joined #perl6
01:47 cotto joined #perl6
01:48 Tedd1 left #perl6
01:49 Tedd1 joined #perl6
01:58 sorear hmm
01:58 * sorear pokes pmichaud
01:58 sorear STD keeps filename/line number data for all names poked into stashes
01:59 sorear so "class Foo::Bar {}\n...\nclass Foo::Bar {}" gives a more useful error message
01:59 sorear does this make sense in a general Perl 6 context?
01:59 pmichaud sorear: makes sense to me, I think.
01:59 sorear should every package slot have source location info?
02:00 pmichaud pct is set up so that nearly every token can have source location info.  of course, the trick is to know what location info to save :)
02:00 sorear not *what* location info to save
02:00 sorear *where* to save it
02:01 sorear our-scoped items that need redeclaration checking include constants, subs, and packageoids
02:01 sorear it seems it should be stored polymorphically
02:02 sorear maybe the WHO object should keep a second hash of location info alongside the normal hash of data
02:06 pmichaud that seems plausible
02:08 colomon left #perl6
02:08 colomon joined #perl6
02:10 agentzh joined #perl6
02:14 thou joined #perl6
02:19 lumi_ left #perl6
02:20 lumi_ joined #perl6
02:30 Trashlord joined #perl6
02:32 mberends left #perl6
02:37 thou left #perl6
03:11 tokuhiro_ left #perl6
03:11 tokuhirom joined #perl6
03:13 Zapelius joined #perl6
03:16 lumi_ left #perl6
03:17 lumi_ joined #perl6
03:26 Su-Shee left #perl6
03:28 Su-Shee joined #perl6
03:28 envi_laptop joined #perl6
03:34 donri joined #perl6
03:34 araujo left #perl6
03:40 donri left #perl6
04:02 skangas left #perl6
04:02 skangas joined #perl6
04:07 lumi_ left #perl6
04:08 lumi_ joined #perl6
04:18 dalek rakudo/nom: 173e019 | pmichaud++ | / (2 files):
04:18 dalek rakudo/nom: Improve register (re-)usage in statementlists and routine_defs.
04:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/173e0199b7
04:18 dalek rakudo/nom: 28995b9 | pmichaud++ | src/Perl6/SymbolTable.pm:
04:18 dalek rakudo/nom: Better register (re-)usage in SC events.
04:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/28995b9d7e
04:18 dalek rakudo/nom: 2f3a8d3 | pmichaud++ | src/Perl6/SymbolTable.pm:
04:18 dalek rakudo/nom: Put PAST::Stmt register boundaries on ST.set_attribute[_typed].
04:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2f3a8d3c1b
04:18 dalek rakudo/nom: 2f7c19f | pmichaud++ | / (17 files):
04:18 dalek rakudo/nom: Merge branch 'nom' of github.com:rakudo/rakudo into nom
04:18 dalek rakudo/nom:
04:18 dalek rakudo/nom: Conflicts:
04:18 dalek rakudo/nom: src/Perl6/Actions.pm
04:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2f7c19f3e4
04:20 tokuhiro_ joined #perl6
04:23 tokuhirom left #perl6
04:31 Zapelius left #perl6
04:38 wamba joined #perl6
04:46 satyavvd joined #perl6
04:47 Bzek joined #perl6
04:52 sorear aww, I saw a nom merge commit and was excited for a moment
04:52 szabgab wikimedia is giving away a few servers
04:52 szabgab http://blog.wikimedia.org/2011/06/​13/server-decommission-donations/
04:52 lumi_ left #perl6
04:53 lumi_ joined #perl6
04:53 szabgab if you guys think the perl 6 development could use such a server then pls contact TPF - which I am not affiliated with - to try to arrange one
04:54 szabgab sorear: do I know correctly that moritz is running the perl6 evalbot here?
04:57 sorear szabgab: moritz does 90% of the maintaince, but diakopter's name is on the VPS contract, and I occassionally do work on it too
04:59 szabgab oh, is the evalbot running on a VPS ?
04:59 szabgab what are teh parameters of that machine?
05:01 sorear What do you mean?
05:02 sorear /proc/cpuinfo says "QEMU Virtual CPU"...
05:02 szabgab memory size I guess
05:02 sorear free -m thinks 2GB
05:02 szabgab and I wonder how is the CPU allocated on such things
05:03 szabgab I never had a VPS
05:03 sorear I know it's quite fast
05:03 szabgab I keep renting iron
05:05 sorear I just did time perl -E 'for (1 .. 100_000_000) { }', ran 3x faster on the p6eval VPS than on my local computer
05:05 sorear 5.4s
05:09 JimmyZ joined #perl6
05:13 koban joined #perl6
05:13 dalek niecza: e51f7a9 | sorear++ | / (3 files):
05:13 dalek niecza: [remove-CURLEX] Reimplementation of STD is_name
05:13 dalek niecza: review: https://github.com/sorear/niecza/commit/e51f7a953a
05:13 dalek niecza: 6083fb7 | sorear++ | src/niecza:
05:13 dalek niecza: Use metamodel to verify $?FOO references.  Add placeholders to metamodel immediately.
05:13 dalek niecza: review: https://github.com/sorear/niecza/commit/6083fb7bfa
05:13 dalek niecza: 6cb84d6 | sorear++ | src/niecza:
05:13 dalek niecza: Remap is_known to is_name
05:13 dalek niecza: review: https://github.com/sorear/niecza/commit/6cb84d6e16
05:18 dalek magnet dalek-poller: 303ac6a | sorear++ | push.psgi:
05:18 dalek magnet dalek-poller: Drop commit packets with >15 commits, with a warning to the offender
05:18 dalek magnet dalek-poller: review: https://github.com/sorear/da​lek-poller/commit/303ac6a6cc
05:18 dalek magnet dalek-poller: b72de5a | sorear++ | push.psgi:
05:18 dalek magnet dalek-poller: Improve message after heuristic merge detection
05:18 dalek magnet dalek-poller: review: https://github.com/sorear/da​lek-poller/commit/b72de5a86a
05:18 dalek magnet dalek-poller: 39e7ab0 | sorear++ | push.psgi:
05:18 dalek magnet dalek-poller: Fix UTF8 handling in push mode.
05:18 dalek magnet dalek-poller: review: https://github.com/sorear/da​lek-poller/commit/39e7ab0826
05:19 roen joined #perl6
05:20 dalek dalek-poller: 303ac6a | sorear++ | push.psgi:
05:20 dalek dalek-poller: Drop commit packets with >15 commits, with a warning to the offender
05:20 dalek dalek-poller: review: https://github.com/sorear/da​lek-poller/commit/303ac6a6cc
05:20 dalek dalek-poller: b72de5a | sorear++ | push.psgi:
05:20 dalek dalek-poller: Improve message after heuristic merge detection
05:20 dalek dalek-poller: review: https://github.com/sorear/da​lek-poller/commit/b72de5a86a
05:20 dalek dalek-poller: 39e7ab0 | sorear++ | push.psgi:
05:20 dalek dalek-poller: Fix UTF8 handling in push mode.
05:20 dalek dalek-poller: review: https://github.com/sorear/da​lek-poller/commit/39e7ab0826
05:22 dalek dalek-poller: 710078d | sorear++ | poll:
05:22 dalek dalek-poller: Disable tpfwiki tracking due to spam
05:22 dalek dalek-poller: review: https://github.com/sorear/da​lek-poller/commit/710078dded
05:22 dalek dalek-poller: 46fdf61 | sorear++ | push.psgi:
05:22 dalek dalek-poller: Make github pushes work again
05:22 dalek dalek-poller: review: https://github.com/sorear/da​lek-poller/commit/46fdf611ea
05:37 Tedd1 left #perl6
05:38 masak morning, #perl6.
05:39 hudnix left #perl6
05:43 Tedd1 joined #perl6
05:44 tadzik morning masak
05:45 kaare_ joined #perl6
05:49 lumi_ left #perl6
05:49 lumi_ joined #perl6
05:51 masak left #perl6
05:53 tadzik 34 seconds to pir, 3 to pbc. Very nice
05:53 JimmyZ morning masak!
06:05 wamba left #perl6
06:13 sorear o/ masak
06:19 Su-Shee good morning.
06:24 tadzik good morning Su-Shee
06:27 sjn good morning, #perl6
06:29 lumi_ left #perl6
06:30 lumi_ joined #perl6
06:37 cosimo left #perl6
06:48 amkrankruleuen left #perl6
06:49 amkrankruleuen joined #perl6
06:56 mj41 joined #perl6
06:56 TiMBuS joined #perl6
07:03 amkrankruleuen left #perl6
07:04 amkrankruleuen joined #perl6
07:06 JimmyZ left #perl6
07:08 Tedd1 left #perl6
07:09 Tedd1 joined #perl6
07:11 thou joined #perl6
07:20 amkrankruleuen left #perl6
07:36 jfried joined #perl6
07:47 thou left #perl6
07:48 amkrankruleuen joined #perl6
07:49 woosley left #perl6
07:53 lumi_ left #perl6
07:53 amkrankruleuen left #perl6
07:54 lumi_ joined #perl6
07:56 wamba joined #perl6
07:59 fish|ipad joined #perl6
07:59 fish|ipad left #perl6
07:59 fish|ipad joined #perl6
08:00 mikemol left #perl6
08:02 fish|ipad is now known as coopad
08:04 coopad left #perl6
08:06 tzhs joined #perl6
08:09 amkrankruleuen joined #perl6
08:25 jfried left #perl6
08:26 dakkar joined #perl6
08:28 jnthn morning
08:34 moritz mrning
08:34 jfried joined #perl6
08:34 daxim joined #perl6
08:36 tadzik oh, moritz. Could you review my Week #3 in some spare time?
08:37 moritz tadzik: I'm taking a look now
08:37 jfried left #perl6
08:38 tadzik great, thanks
08:39 lumi_ left #perl6
08:40 moritz tadzik: looking t/01-delimited.t, line 67
08:40 lumi_ joined #perl6
08:40 moritz tadzik: whis is that not a code block?
08:41 * moritz hasn't taken a look at those tests for far too long
08:43 roen left #perl6
08:43 moritz t/02-paragraph.t, '=for foo', could you please add a test that tests the 'foo'?
08:45 tadzik moritz: the 67 is note a code block for it's indented as its delimited parent
08:45 moritz isn't its parent indented 0 spaces_
08:45 moritz s/_/?/
08:46 tadzik =begin bar is its parent
08:46 moritz =begin bar  is the line I'm talking about
08:46 tadzik or you mean bar's parent?
08:46 moritz and it's parent is =being foo
08:46 moritz which is indented 0 spaces
08:47 tadzik yes. I don't think delimited block can become code blocks themselves, I thought this works for paragraphs of text only
08:47 * tadzik checks the spec
08:47 tadzik A code block may be implicitly specified as one or more lines of text
08:48 tadzik I don't think that applies to block declarations
08:48 * moritz must reread pod spec
08:48 ruoso left #perl6
08:49 moritz the point of code blocks is that we don't care what's inside
08:49 tadzik also, as a matter of checking for foo, that's hard due to the fact that it should be Pod6::Block::Named::Foo, which is quite hard to achieve in Rakudo currently. Now as I think of it, it makes sense to add a $.type attribute to block, to be able to detect such things. Plus it's actually useful even if you have the Named::Foo thing
08:49 tadzik yes
08:49 moritz so if something is indented, then we shouldn't be looking at its contents to determine if it's a code block
08:50 tadzik but look for example at http://i.imgur.com/dhljt.png, taken from the spec
08:50 molaf joined #perl6
08:50 tadzik if it was like you say, =head2 will become a one-line code block, which imho makes quite little sense and is rather not what the author meant
08:50 tadzik I find indenting things such as sections quite natural
08:51 moritz the difference here is that there's no newline between =head2 and the previous paragraph
08:52 ruoso joined #perl6
08:52 tadzik the pod directive terminates the paragraph before it
08:52 moritz yes
08:52 moritz but as I understood S26 last I looked, newline + indention = always a code block
08:53 tadzik I don't see anything that would mean such thing, maybe it's a matter of interpretation and then I'll go for 1) DWIM, and 2) Examine the examples in the spec
08:54 tadzik also, look at S26:615 example
08:55 moritz S26:615 agrees with you
08:56 moritz but I see that as a conflict
08:56 moritz anyway, I should first check your progress against your schedule
08:56 moritz then discuss the indention issue
08:57 moritz tadzik: uhm, do you have a link to your proposal? http://www.google-melange.com/gsoc/p​roject/google/gsoc2011/tadzik/18001 shows me only the abstract :/
08:58 tadzik the indentation issue has a lot of confusion around it, have you seen my discussion with masak++ on Sunday I think?
08:58 tadzik moritz: http://www.google-melange.com/gsoc/pro​posal/review/google/gsoc2011/tadzik/1 looks ok
08:58 tadzik I should move that to gsocmess
08:58 moritz tadzik: thanks
08:59 moritz week 3: \checkmark
08:59 daniel-s_ joined #perl6
08:59 moritz back to the codeblock/notacodeblock discussion...
09:00 moritz tadzik: can you give a simple rule when something that is indented is parsed as a code block, and when it isn't?
09:01 tadzik ye4
09:01 tadzik yep
09:01 wamba left #perl6
09:03 tadzik I understand it as the following: a block of text is parsed and formatted as a paragraph when it consists of a positive number of lines of text which do not start with pod directives. When a multiple paragraphs of text occur in a pod block, they are to be separated by blank lines. Now, code blocks follow the same rules, but when they're indented more than their parent delimited block, they become code
09:03 tadzik blocks
09:04 jfried joined #perl6
09:06 moritz so... if something is indented more than its parent, proceeded by a newline, and does not start with a pod directive, it's code?
09:06 moritz that's not a spec I'm particularly fond of, but I can see how you came to that conclusion, and I can live with it
09:07 tadzik moritz: I don't think it must neceserilly start with a newline, it's a code block too if it's the only child of its parent, no leading or trailing newlines. Not sure to have tests for that though
09:09 moritz so
09:09 moritz =foo bar
09:09 moritz baz
09:10 moritz
09:10 moritz would that treat baz as code?
09:12 tadzik I think so, and I think it's broken for now
09:13 tadzik also, code should only be allowed inside pod blocks, list items and semantic blocks, and that's NYI for now
09:13 moritz ok
09:13 tadzik I'll finish the name stuff and look into it
09:14 * moritz wonders if there's a simple way to write an evil helper that interpolates namespaces
09:15 moritz less evil than eval, that is
09:16 tadzik name checking pushed
09:17 moritz tadzik++
09:17 tadzik also, =foo bar is illegal pod, I assume you mean =for bar
09:18 moritz tadzik: let me just say that I'm very happy with your progress and way of interactions so far
09:18 moritz yes *handwave&
09:19 tadzik I'm honored to hear that, thank you
09:21 tadzik huh, I somehow assumed one wouldn't use code blocks inside paragraph/abbreviated blocks, thanks for pointing that out
09:21 tadzik that's probably because of our conclusion that one would generally want to sorround code blocks with blank lines :)
09:22 tadzik aw, that complicates stuff
09:22 tadzik erm, I mean, yay, fun!
09:23 nymacro joined #perl6
09:26 lumi_ left #perl6
09:27 lumi_ joined #perl6
09:32 Shozan joined #perl6
09:33 tadzik okay, I'm down to one todo due to that NYI I mentioned, I'll try to fix that later today, after the exam
09:33 tadzik changes pushed
09:34 moritz good luck for your exam
09:34 tadzik thanks, I'm not really worried about this one. Hence I have time for some hacking 3 hours before it :0
09:34 tadzik :)
09:38 sylwek joined #perl6
09:42 sylwek left #perl6
09:48 Woodi joined #perl6
09:48 jfried_ joined #perl6
09:49 jfried left #perl6
09:50 jfried_ is now known as jfried
10:07 azawawi joined #perl6
10:07 azawawi hi
10:07 azawawi moritz: ping
10:07 moritz azawawi: pong
10:08 azawawi moritz: any chance you could add #opencsw to your wonderful web-based irc? I asked for their permission and they said yes.
10:08 moritz azawawi: sure
10:09 azawawi moritz: thanks! You're the man! :)
10:09 _ilbot joined #perl6
10:09 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: http://irc.perl6.org/ | UTF-8 is our friend!
10:10 moritz azawawi: same procedure as last year... please announce the logging URL in the channel
10:10 azawawi moritz: sure
10:11 azawawi moritz++ # big thanks
10:11 moritz you're welcome
10:12 lumi_ left #perl6
10:12 lumi_ joined #perl6
10:14 azawawi an update on what i have been doing lately on Padre
10:14 azawawi Padre uses Wx::STC which is basically an older version of Scintilla with a buggy Perl 5 lexer
10:15 azawawi i started working on a backport of Scintilla to existing Wx
10:15 azawawi http://beta.metacpan.org/module/Wx::Scintilla
10:15 azawawi i plan to fix Perl 5 bugs, add a more perl-ish API and add a Perl 6 lexer
10:16 azawawi Padre can now use Wx::Scintilla if it installs to your platform... since it is basically compiling scintilla to your platform and that can easily fail at the moment
10:17 azawawi so within a month hopefully i will write a C++ Scintilla Perl 6 lexer (that uses perl6.vim as a basis).
10:18 * moritz looks forward to it
10:22 Woodi left #perl6
10:28 azawawi left #perl6
10:31 lumi_ left #perl6
10:31 Woodi joined #perl6
10:34 lumi_ joined #perl6
10:36 Tedd1 left #perl6
10:40 slavik1 that will be awesome
10:43 MayDaniel joined #perl6
10:44 Tedd1 joined #perl6
10:57 Moukeddar joined #perl6
10:58 envi_laptop left #perl6
11:01 agentzh left #perl6
11:03 azawawi joined #perl6
11:04 envi_laptop joined #perl6
11:11 azawawi moritz: ping
11:15 MayDaniel left #perl6
11:22 Woodi left #perl6
11:27 moritz azawawi: pong
11:28 Moukeddar Hello guys
11:29 azawawi left #perl6
11:30 nymacro left #perl6
11:32 azawawi joined #perl6
11:33 azawawi moritz: sorry i dc-ed since im using webchat.freenode.net
11:33 azawawi moritz: did you get my pm?
11:33 moritz azawawi: I got a "hi" as pm
11:35 _ilbot joined #perl6
11:35 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: http://irc.perl6.org/ | UTF-8 is our friend!
11:36 Woodi joined #perl6
11:39 tzhs left #perl6
11:39 azawawi left #perl6
11:42 leprevost joined #perl6
11:47 Shozan left #perl6
11:48 Woodi left #perl6
11:49 Woodi joined #perl6
11:52 lumi_ left #perl6
11:53 lumi_ joined #perl6
11:55 Woodi left #perl6
11:55 wamba joined #perl6
11:59 Shozan joined #perl6
12:01 takadonet morning all
12:03 Moukeddar left #perl6
12:03 Moukeddar joined #perl6
12:06 satyavvd left #perl6
12:08 Woodi joined #perl6
12:15 daniel-s_ is now known as daniel-s
12:15 daniel-s is it ok to use an empty class, where the class has inherited different roles
12:15 daniel-s or is it bad form?
12:16 takadonet daniel-s: there is probably a better solution
12:16 moritz I think it's OK
12:17 moritz (for roles we say "composed" and not "inherited")
12:17 jnthn A class that just composes roles is fine by me.
12:17 daniel-s sorry takadonet, 2:1 :)
12:18 takadonet daniel-s: np :)
12:18 jnthn The classes defining the Rakudo meta-objects in nom are mainly made up by composing roles. I've been very happy with this arrangement so far. :)
12:19 jnthn Though there are some methods in the class body
12:19 moritz it's the ultimate proof that code re-use works :-)
12:19 moritz imagine you want to write a script that glues some code from the CPAN, and then you find that all you have to do is to use() the modules, and don't have to do any programming
12:20 moritz that's like just creating a class (script) from roles (modules) without having to write more glue code
12:23 Woodi left #perl6
12:25 Woodi joined #perl6
12:26 TiMBuS left #perl6
12:28 PhatEddy joined #perl6
12:29 PhatEddy rakudo: $.a
12:29 p6eval rakudo ae5bea: OUTPUT«Null PMC access in find_method('a')␤  in main program body at line 2:/tmp/5jxwrOMsL_␤»
12:29 PhatEddy nom: $.a
12:29 p6eval nom: OUTPUT«Null PMC access in find_method('a')␤current instr.: '_block1002' pc 28 ((file unknown):0) (:1)␤»
12:30 mikemol joined #perl6
12:31 PhatEddy Probably a variation of http://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=74274 but thought golf might be of interest ...
12:31 PhatEddy rakudo: $!a
12:31 p6eval rakudo ae5bea: OUTPUT«Null PMC access in get_attr_str()␤  in main program body at line 2:/tmp/CS1RvJA8Qe␤»
12:31 PhatEddy nom: $!a
12:31 p6eval nom: OUTPUT«Lookup of $!a outside of package that can support attributes at line 1, near ""␤current instr.: 'nqp;HLL;Grammar;panic' pc 23569 (src/stage2/gen/NQPHLL.pir:6311)␤»
12:31 jnthn nom++ on that one :)
12:31 PhatEddy right
12:31 jnthn It was a compile time error there
12:31 jnthn I can fix $.a also.
12:32 jnthn std: $.a
12:32 p6eval std 37a0cdd: OUTPUT«ok 00:01 118m␤»
12:32 jnthn oh.
12:32 jnthn Not by stealing from std though :)
12:32 moritz :-)
12:33 Moukeddar left #perl6
12:36 PhatEddy Currently planning to file as note under RT 74274.  If separate bug report wanted let me know.
12:37 lumi_ left #perl6
12:38 lumi_ joined #perl6
12:40 JimmyZ joined #perl6
12:41 JimmyZ good evening, #perl6
12:41 takadonet JimmyZ: hey
12:41 JimmyZ takadonet: hello, how are you today
12:42 Shz joined #perl6
12:42 takadonet JimmyZ: good and u?
12:43 JimmyZ I'm fine too ;)
12:44 Shozan left #perl6
12:49 Holy_Cow joined #perl6
12:49 Holy_Cow left #perl6
12:52 molaf left #perl6
12:54 dju__ left #perl6
12:57 bluescreen10 joined #perl6
13:01 daniel-s what's this doing?:
13:01 daniel-s $scheme .= chop;
13:03 JimmyZ $cheme = $cheme.chop
13:04 daniel-s perl6: my $a = "hello"; $a .= chop; say $a;
13:04 p6eval pugs, rakudo ae5bea, niecza v6-153-g6cb84d6: OUTPUT«hell␤»
13:05 daniel-s perl6: my $a = "helloo"; $a .= chop; say $a;
13:05 p6eval pugs, rakudo ae5bea, niecza v6-153-g6cb84d6: OUTPUT«hello␤»
13:06 JimmyZ though $a ~= 'world' eq $a = $a ~ 'world', but $a .= chop not eq $a = $a . chop
13:07 jnthn Only because you can't have whitespace around .
13:07 jnthn Well
13:07 jnthn It's actually parsed as a postfix
13:07 jnthn gotta go, bbl
13:07 JimmyZ perl6: my $a = "helloo"; $a = $a\ .\ chop; say $a;
13:07 p6eval niecza v6-153-g6cb84d6: OUTPUT«hello␤»
13:07 p6eval ..rakudo ae5bea: OUTPUT«===SORRY!===␤Confused at line 22, near "$a = $a\\ ."␤»
13:07 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "\\"␤    expecting "\187", ">>", "=", "^", operator name, qualified identifier, variable name, "...", "--", "++", "i", array subscript, hash subscript or code subscript␤    at /tmp/M89x3qR_2z line 1, column 29␤»
13:08 JimmyZ std: my $a = "helloo"; $a = $a\ .\ chop; say $a;
13:08 p6eval std 37a0cdd: OUTPUT«ok 00:01 122m␤»
13:08 daniel-s JimmyZ: is that a bug in pugs and rakudo?
13:08 mtk joined #perl6
13:08 JimmyZ I think it NYI in rakudo
13:09 JimmyZ not sure whether it's a bug or NYI
13:10 daniel-s my @a = <a bright sunny day>; say @a.join(" ");
13:10 JimmyZ rakudo: my $a = 1; say $a\ ++;
13:10 p6eval rakudo ae5bea: OUTPUT«1␤»
13:10 hudnix joined #perl6
13:10 daniel-s rakudo: my @a = <a bright sunny day>; say @a.join(" ");
13:10 p6eval rakudo ae5bea: OUTPUT«a bright sunny day␤»
13:11 JimmyZ yes, it's a bug
13:11 daniel-s does somebody want to submit a bug report?
13:12 JimmyZ I guess no ?
13:12 JimmyZ rakudo: my @a = <a bright sunny day>; say @a;
13:12 p6eval rakudo ae5bea: OUTPUT«abrightsunnyday␤»
13:12 JimmyZ rakudo: my @a = <a bright sunny day>; say ~@a;
13:13 p6eval rakudo ae5bea: OUTPUT«a bright sunny day␤»
13:13 daniel-s much nicer
13:13 daniel-s how come it knows to add spaces?
13:13 lumi_ left #perl6
13:14 * JimmyZ can't follow daniel-s
13:14 lumi_ joined #perl6
13:14 f00li5h[HireMe] is now known as f00li5h
13:14 flussence Array.Str just does that by default
13:14 JimmyZ rakudo: my @a = <a bright sunny day>; say @a.Str;
13:14 flussence I think
13:14 p6eval rakudo ae5bea: OUTPUT«a bright sunny day␤»
13:14 JimmyZ rakudo: my @a = <a bright sunny day>; say @a.Stringy;
13:14 p6eval rakudo ae5bea: OUTPUT«Method 'Stringy' not found for invocant of class 'Array'␤  in main program body at line 22:/tmp/BsUEBB6KXt␤»
13:15 tzhs joined #perl6
13:15 daniel-s I would have expected it to return a string of "abrightsunnyday"
13:16 JimmyZ rakudo: my @a = <a bright sunny day>; say @a;
13:16 p6eval rakudo ae5bea: OUTPUT«abrightsunnyday␤»
13:16 JimmyZ that's what you want
13:17 daniel-s rakudo: my $a = 1; say $a ++;
13:17 p6eval rakudo ae5bea: OUTPUT«===SORRY!===␤Confused at line 22, near "say $a ++;"␤»
13:18 daniel-s perl6: my $a = "helloo"; $a = $a.chop; say $a;
13:18 p6eval pugs, rakudo ae5bea, niecza v6-153-g6cb84d6: OUTPUT«hello␤»
13:20 daniel-s do I emails bugs to rakudobug@perl.org
13:20 daniel-s or on github at https://github.com/rakudo/rakudo
13:20 moritz email
13:21 moritz but what's the bug?
13:21 JimmyZ $a\ .\ chop bug?
13:21 JimmyZ perl6: my $a = "helloo"; $a = $a\ .\ chop; say $a;
13:21 p6eval niecza v6-153-g6cb84d6: OUTPUT«hello␤»
13:21 p6eval ..rakudo ae5bea: OUTPUT«===SORRY!===␤Confused at line 22, near "$a = $a\\ ."␤»
13:21 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "\\"␤    expecting "\187", ">>", "=", "^", operator name, qualified identifier, variable name, "...", "--", "++", "i", array subscript, hash subscript or code subscript␤    at /tmp/nZo6wf0ZsG line 1, column 29␤»
13:21 moritz std: my $a = "helloo"; $a = $a\ .\ chop; say $a;
13:21 p6eval std 37a0cdd: OUTPUT«ok 00:01 122m␤»
13:21 moritz agreed
13:23 pmichaud good morning, #perl6
13:23 JimmyZ perl6: my $a = "helloo"; $a = $a\ ~\ 'world'; say $a; # another one
13:23 p6eval niecza v6-153-g6cb84d6: OUTPUT«hellooworld␤»
13:23 p6eval ..pugs: OUTPUT«*** ␤    Unexpected "~\\"␤    expecting "."␤    at /tmp/7_pprT39nG line 1, column 28␤»
13:23 p6eval ..rakudo ae5bea: OUTPUT«===SORRY!===␤Confused at line 22, near "$a = $a\\ ~"␤»
13:23 moritz good am, pm
13:23 szbalint_ is now known as szbalint
13:23 JimmyZ but similar
13:23 moritz both are "unspace not working"
13:24 JimmyZ not all unspace not working
13:24 moritz right
13:25 pmichaud I've been wondering if List.Str should add spaces or not.  (List.Stringy obviously should.)
13:26 moritz I've been wondering if this whole Str vs. Stringy business is just too confusing
13:26 pmichaud I think it makes sense.
13:26 pmichaud especially when dealing with type objects and junctions
13:26 moritz if we have two separate ways to stringify, we need a *very* clear and simple rule about when which applies
13:27 pmichaud I don't think of it as two separate ways to stringify -- I think of it as stringification at different levels.
13:28 pmichaud Just like  .Numeric isn't a separate way to stringify
13:28 pmichaud *numify
13:29 moritz for numbers, $thing.Numeric.Num == $thing.Num nearly always (modulo FP errors)
13:29 moritz will the same be true for strings? ie $thing.Stringy.Str eq $thing.Str?
13:30 pmichaud I disagree with the premise
13:30 pmichaud if $thing is complex, the == doesn't hold.
13:30 moritz example?
13:30 pmichaud can one do .Num on a Complex?
13:31 moritz if the imaginary part is 0, yes
13:31 moritz if not, you get a fail()
13:31 pmichaud so, maybe the confusion is in the terms (more)
13:31 moritz so, we can narrow down to "$thing.Numeric.Num == $thing.Num, unless both sides of the == fail"
13:31 pmichaud with Str/Stringy, it's .Stringy that produces the fails
13:31 pmichaud which is backwards from Numeric/Num
13:32 moritz ok, let's focus on cases where neither of the coercion ops fail
13:33 JimmyZ p6l
13:34 moritz are any of  $thing.Str.Stringy eq $thing.Stringy  and  $thing.Stringy.Str eq $thing.Str  violated for common data structures?
13:35 pmichaud (thinking)
13:36 pmichaud Range, probably
13:36 moritz for example $thing = Any  or $thing = <a b c>
13:36 pmichaud $thing = Any isn't a valid case, because we're talking about a fail there
13:36 moritz which of those fails?
13:36 pmichaud using Any as a string produces a failure
13:37 moritz Any.Str or Any.Stringy?
13:37 pmichaud Any.Stringy
13:37 pmichaud that's how we find "use of undefined value"
13:37 moritz waitwaitwait, is that a warning or a fail()?
13:37 pmichaud my $x;  say ~$x;   # use of undefined value
13:38 pmichaud traditionally it's been a fail()
13:38 pmichaud i.e., prefix:<~> returns a  Failure that becomes "" if handled properly
13:39 * colomon had thought .Stringy and .Str were supposed to be exactly analogous to .Numify and .Num...
13:39 pmichaud I suppose it could be that prefix:<~> warns immediately
13:39 pmichaud colomon: sometimes the analogies don't hold :)
13:40 pmichaud anyway, the analogous case is     my $x;  say +$x;
13:40 pmichaud which involves a warn/fail also.
13:40 moritz I'm just warning against cramming too much difference into .Str and .Stringy
13:40 sorear good * #perl6
13:41 sorear moritz: +1
13:41 * colomon wonders if now would be a good time to implement Cat...
13:41 pmichaud the point of having .Str and .Stringy is that there *is* a difference, though.  :)
13:41 moritz just imagine you are explaining all that to a newbie programmer
13:42 PerlJam gutenMorgen #perl6
13:42 moritz and you need to answer the "why do I get different values out of these two code paths that both stringify?"
13:42 moritz questions
13:42 pmichaud example?
13:42 moritz good *, PerlJam and sorear
13:43 moritz pmichaud: for example if you .Stringy and .Str ranges differently
13:43 pmichaud note that ".Str" is not "stringify", just like ".Num" is not "numify"
13:43 colomon I thought it was "stringify into an actual Str".
13:43 moritz well, .Num and .Numeric usually yield the same result, in the sense that they compare equal using ==
13:44 pmichaud I'm not sure that's an exact sense
13:44 pmichaud because sometimes .Numeric yields something that isn't .Num
13:44 colomon as I say, much like .Num is "numify into a Num"
13:44 moritz pmichaud: right, but @array.Num == @array.Int too, unless you go really high numbers
13:44 pmichaud using == here is the wrong sense
13:44 pmichaud I guarantee that
13:44 colomon are you implying .Stringy always yields a Str?
13:45 moritz pmichaud: in what way?
13:45 pmichaud multi sub xyz(Int $x) { ... };   multi sub xyz(Num $x) { ... };   xyz(+$str)
13:45 pmichaud will result in numification that produces different results
13:45 pmichaud in some sense it's wrong to say that .Numeric always produces things that are ==
13:46 pmichaud or to use == as the test for validity
13:46 moritz that's why I don't say "always" but "usually"
13:46 moritz and I'm aware that it's not ===
13:47 moritz my point is really that from a high level perspective, where you don't care about the actual numeric (or stringy/buffery) type, things should look roughly the same after .Num/.Numeric and .Str/.Stringy, for most "normal" values
13:47 colomon +1
13:47 moritz ... and if they don't, there should be a really simple way to say why they don't look the same
13:48 moritz like "We can't print Junctions if Junction.Stringy and Junction.Str behave the same"
13:49 PerlJam moritz: what isn't "roughly the same" between .Str and .Stringy ?
13:49 * pmichaud thinks
13:49 colomon PerlJam: as I understand it, List.Stringy might return a Cat instead of a Str.  For instance.
13:50 moritz PerlJam: depends on what we spec and implement
13:50 spq1 joined #perl6
13:50 moritz ... which would be totally fine for me if the Cat.Str then equals what you'd get from List.Str, for finite lists
13:51 PerlJam as long as you don't have to do List.Stringy.Str or some such though, right?
13:52 moritz shortcuts will exist, I'm sure
13:53 moritz around the time when Stringy was invented, I discussed the need for a role that both Buf and Str implement
13:53 colomon moritz:
13:53 moritz so that we could have IO functions for example for writing to a file, which convert to .StrBufMesh (or whatever you call it)
13:54 moritz and that converion could either return a raw Buf, which would then write that binary data to that file
13:54 PerlJam In my world view, strings are buffery, so the role that both implement is called Buf
13:54 moritz or a Str, which would be then be encoded
13:55 moritz it seems that Stringy tries to fill a totally different niche
13:55 pmichaud okay, here are examples
13:55 moritz and one which I don't really understand... hope that pmichaud++ enlightens me
13:55 pmichaud Nil.Stringy returns "Nil",  Nil.Str returns "" with a warning
13:55 TimToady other way around, I'd think
13:56 pmichaud I'm reading directly from S02
13:56 pmichaud S02-bits.pod:2235:C<Nil.Str> return C<"Nil">.  C<Nil.Stringy> returns '' with a warning.
13:56 pmichaud so I'm guessing something is wrong there :)
13:56 TimToady I suspect that's wrong
13:56 pmichaud oh, I typed it wrong
13:56 pmichaud nm
13:56 pmichaud Nil.Str returns "Nil", Nil.Stringy returns "" with a warning
13:56 pmichaud (I read it right but typed it wrong.  Perhaps proving moritz++'s point :)
13:57 pmichaud anyway,  the point being that Nil.Stringy.Str  ne Nil.Str
13:57 pmichaud (which is the case moritz++ is trying to avoid or have a good explanation for)
13:58 TimToady well, used to be that I postulated a different low-level stringifier for print and say
13:59 TimToady some sort of last-ditch .force-string
13:59 TimToady approximating .defined ?? .Str !! .perl
14:00 tzhs_ joined #perl6
14:00 TimToady at some point we made .Str do that, but that might be a mistake
14:01 TimToady and then it became more of a human-readable vs computer-readable issue
14:01 pmichaud ...and the approximation is now less exact
14:01 tzhs left #perl6
14:01 pmichaud since Nil and (I think) Range don't quite fit that distinction
14:01 TimToady hence the distinction between Tuesday and 2
14:02 sorear pmichaud: Nil is not .defined, so it makes sense that .Stringy would be ""
14:02 TimToady but the idea was that .Stringy would imply you wanted to do further data processing on the value, while .Str would mean you wanted a human to read it
14:02 Woodi left #perl6
14:02 wamba left #perl6
14:02 sorear (yes, I know my own compiler lags behind this spec change)
14:02 TimToady so ~ became associated with stringy, and + with numeric
14:03 sorear pmichaud: what is your take on Range Str[ingy]?
14:03 TimToady which makes Str and Num into "Bridge" types
14:03 TimToady and you need a string bridge type to do output sanely, if you want to support many output encodings
14:04 pmichaud sorear: I don't have a strong opinion on that one.  this is one of those areas where I'm looking for spec clarity as opposed to saying "here's how I think it ought to be."
14:04 Woodi joined #perl6
14:05 moritz TimToady: does Buf fit into that mental model somehow?
14:05 sorear AFAICT Range is always converted into X..Y
14:05 * PerlJam gets the feeling like english has somehow been turned into a foreign language again
14:05 sorear unless it's converted into a list first
14:05 TimToady but I do get the feeling that Str and Num as a bridge type are both forcing two things into one thing
14:05 pmichaud sorear:    my @a := 1..3;   say ~@a
14:05 pmichaud probably should be "1 2 3" and not "1..3"
14:06 pmichaud also
14:06 pmichaud sub foo() { 1..3 };    say "Here are the results {foo()}"
14:07 moritz TimToady: I don't think the spec forces Num as numeric bridge type
14:07 moritz TimToady: could be a FatRat too
14:08 TimToady well, yes, the spec only mentions Bridge twice
14:08 pmichaud say 1..3;   # 123
14:08 pmichaud say ~(1..3);   # 1 2 3
14:08 TimToady the fundamental underlying problem is that our types are not conveying the intent of the programmer
14:08 pmichaud say $(1..3);   # 1..3
14:10 TimToady in particular, which channels should be considered data, and which human info
14:11 TimToady humans don't care (and sometimes prefer) if meta-info sneaks into the data stream, like Any(), or 1..3 or Tuesday
14:11 JimmyZ perl6: say ~(1..*);
14:11 p6eval niecza v6-153-g6cb84d6: OUTPUT«1..Infinity␤»
14:11 p6eval ..pugs: OUTPUT«(timeout)»
14:11 p6eval ..rakudo ae5bea: OUTPUT«␤»
14:11 moritz which is why we should keep .pretty and .perl separate
14:12 pmichaud niecza:  say ~(1..3)
14:12 p6eval niecza v6-153-g6cb84d6: OUTPUT«1..3␤»
14:12 pmichaud niecza:  say ~(1,2,3)
14:12 thou joined #perl6
14:12 p6eval niecza v6-153-g6cb84d6: OUTPUT«1 2 3␤»
14:13 pnu left #perl6
14:13 pmichaud niecza:  say ~(1..3, 4)
14:13 p6eval niecza v6-153-g6cb84d6: OUTPUT«1 2 3 4␤»
14:13 TimToady niecza: say ~(1...3)
14:13 p6eval niecza v6-153-g6cb84d6: OUTPUT«1 2 3␤»
14:14 TimToady the problem is those pesky humans, again, who want .. to do ... where it makes sense
14:14 TimToady but the also want .. to be Range, which conflicts here
14:14 jfried left #perl6
14:15 pnu joined #perl6
14:15 PerlJam easy!  Eliminate the humans!  </skynet>
14:15 JimmyZ perl6: say ~(1...*);
14:15 p6eval pugs: OUTPUT«*** ␤    Unexpected ";"␤    at /tmp/pAEduipe6K line 1, column 13␤»
14:15 p6eval ..rakudo ae5bea, niecza v6-153-g6cb84d6: OUTPUT«(timeout)»
14:16 TimToady a human will also prefer auto-metafying of known infinite lists
14:16 TimToady wheras a computer will prefer a Cat
14:17 tzhs_ left #perl6
14:17 moritz daniel-s: I have a patch for your lwp-simple ticket, but I first need to compile a rakudo to test it :-)
14:18 TimToady I think a case could be made that say, warn, die, and note should auto-metafy, while print shouldn't
14:18 moritz daniel-s: the fix is to use split() with a limit, ie my @path = $url.split(/\/+/, 3)
14:18 moritz daniel-s: where the 3 says "produce at most 3 chunks"
14:18 daniel-s moritz: oh, I've nearly finished doing a fix myself
14:19 TimToady but in that case, we should probably detach auto-metafy/pretty from .Str
14:19 TimToady and make it an IO boundary thing
14:20 moritz hey, we could have a debug() function that acts like say(), but prefers metafy/pretty
14:20 TimToady (well, presumably the user can get at the .pretty or whatever we call it)
14:20 daniel-s moritz: don't you want at most 2 chunks?
14:20 daniel-s before the :// and after
14:20 daniel-s what's the 3rd?
14:20 moritz daniel-s: scheme, hostname and local path
14:21 daniel-s oh yea
14:21 tadzik o/ #perl6
14:21 moritz \o tadzik, did you survive your exam?
14:21 tadzik Jesus, almost
14:22 tadzik actually I had below the required number of points, but I finally got my 3
14:22 tadzik aka The Most Beatiful of The Grades
14:23 leprevost left #perl6
14:23 tadzik that's what you get for not cheating but actually trying to understand stuff. Not worth it
14:24 Woodi left #perl6
14:25 PerlJam TimToady: wait ... say should auto-metafy but not print?  that makes say suddenly seem a little less simple
14:25 TimToady or maybe output handles should have a policy that defaults human text, but can be set to computer text
14:25 Maddingu1 is now known as Maddingue
14:26 Woodi joined #perl6
14:26 pmichaud TimToady: do you see prefix:<~> as "human text" or "computer text" ?
14:26 TimToady though I suppose a channel could intermix those, if there's data + comments
14:27 TimToady computer
14:27 TimToady and .Str is human, as it currently stands
14:27 TimToady but it does feel rather artificial
14:27 TimToady ~ and + are used implicitly inside the program all the time
14:27 TimToady which is why it biases toward computer
14:28 TimToady it's there in $a + $b
14:28 TimToady well, + is
14:28 moritz reading that, it would make sense to free .Str of the "human" role
14:29 pnu left #perl6
14:29 pmichaud all this feels a little backwards to me, in that I think of  ~@list as  "string such that a human can read it"
14:29 TimToady probably
14:29 pmichaud i.e., the difference between  say @list and say ~@list  is that the latter is more readable to me :)
14:29 daniel-s moritz: this was my solution http://pastebin.com/VSDZwEq8
14:30 daniel-s given that it doesn't even work yet and yours is a much simpler solution... I go with your idea
14:30 pmichaud (I admit I'm conflating list context here... but still it's sometimes the case that ~ means "make it look nicer")
14:30 TimToady I think sorear was arguing for space by default on say lists
14:30 moritz daniel-s: what is that <[.] thing about?
14:30 mtk left #perl6
14:30 TimToady but I think Perl culture would go nuts if we did that
14:30 daniel-s oh, that's right, I can just do <-[/:]> right?
14:31 mtk joined #perl6
14:31 moritz right
14:31 moritz daniel-s: I also have a test here :-)
14:32 daniel-s and I realised the weird spacing is because of mixing tabs and spaces
14:32 daniel-s actually, I've noticed that
14:32 daniel-s I always prefer tab characters, but everyone else's code is always 4 spaces
14:32 daniel-s what's the norm?
14:32 moritz in perl culture, 4 spaces is pretty common
14:32 TimToady maybe we need a pretty op of some sort so that ~ doesn't have to officially carry those semantics (even though it would still behave the same)
14:33 moritz but it's cause for endless debate
14:33 daniel-s but, isn't it annoying, because you're using 4 characters for every tab space
14:33 daniel-s that's 4 times as many keystrokes as what is really needed IMO
14:33 pnu joined #perl6
14:33 TimToady to me, tab is always 8 spaces
14:33 TimToady well, with a floor thrown in there
14:34 daniel-s whatever the number of spaces you're using tab to represent
14:34 pmichaud the standard is 8
14:35 moritz daniel-s: it's a matter of your editor if you need four key presses
14:35 TimToady and there's no in-band way to change that
14:35 moritz daniel-s: for example I have my vim configured to make a tab indent to the next integer multiple of four spaces
14:35 TimToady 'course, now Go culture is trying to force it the other way, where tab is whatever you want it to be
14:36 moritz set shiftwidth=4 tabstop=4 expandtab
14:36 daniel-s emacs does something similar
14:36 daniel-s I press tab and it lines me up to where I want to be
14:36 TimToady fortunately, Perl doesn't care much, so as long as you're consistent with yourself, it works out, mostly
14:37 daniel-s but removing tabs is still 4 keystrokes
14:37 moritz so, no 4 times the key strokes :-)
14:37 moritz ah well, you can just outdent
14:37 moritz << in vim
14:37 Woodi left #perl6
14:37 TimToady otoh, it looks like Pod6 is caring more
14:37 koban left #perl6
14:38 TimToady someone should have got smarter at the beginning and split the tab char into two different chars
14:38 moritz about as much as perl 6 heredocs care
14:39 TimToady well, you're always safe with pure spaces or pure tabs
14:40 TimToady so if you're anything other than an 8-column tabber, we should probably make it easy to spot leading spaces where they shouldn't be
14:42 TimToady I prefer pure-space because it makes it easy to line things up
14:44 * TimToady wonders how hard it would be to detect insane whitespace...
14:45 Woodi joined #perl6
14:45 [particle] set list
14:45 [particle] set listchars=trail:\ ,tab:\ \ ,nbsp:¬,extends:»,precedes:«
14:45 [particle] that's what i use in vim to display some of the invisible chars
14:46 TimToady what, you want human output do you?!?
14:47 [particle] i am not a computer yet.
14:47 cognominal joined #perl6
14:48 TimToady say meta @foo
14:48 TimToady say me @foo
14:49 moritz say pretty @foo
14:49 * PerlJam wonders how to get the ugly @foo
14:49 PerlJam or, if ugly is the default .... why?
14:50 moritz isn't "ugly" spelled "~"? :-)
14:50 cognominal_ left #perl6
14:50 TimToady not for @foo :)
14:50 moritz the default is not "ugly" but "compact"
14:52 * TimToady wonders whether say is not actually a list context
14:52 pmichaud the default is more "what it is", not "what it would be if I used it in a string"
14:52 flussence (I had some code in my early Str.indent attempts to detect insane whitespace - something similar to "any(self.lines !~~ /^\s+\t/)")
14:52 pmichaud say Any
14:52 TimToady flussence: that's just one form of insanity
14:52 pmichaud maybe say is slice context or whatever we call that these days
14:53 TimToady some lines starting with 8 spaces while others start with a tab is probably also insane, unless you like w*i*d*e tabstops
14:53 pmichaud i.e., it prints all of its arguments in item context
14:54 TimToady well, item is incidental, it still comes down to which stringifier we pick
14:54 TimToady but item as not-list, yeah
14:55 pmichaud maybe we have ItemStr and Str or somesuch
14:55 TimToady too opaque
14:55 pmichaud the name or the concept?
14:56 TimToady the concept of going meta automatically should be made explicit somehow
14:56 TimToady .pretty is okayish, if a bit long
14:56 moritz .cute ?
14:57 pmichaud "You think that's cute today..."
14:57 daniel-s thanks for getting to the // URL bug
14:57 TimToady .pretty is also mostly about auto-indent in people's minds
14:57 daniel-s moritz:
14:57 TinyURL_Bot joined #perl6
14:57 daniel-s now my tinyurl bot works
14:57 daniel-s !tiny http://digg.com
14:57 TinyURL_Bot http://tinyurl.com/6ryne
14:57 flussence that's... longer than the input :)
14:57 moritz daniel-s: you're welcome. If I knew from the start that you were working on a fix, I would have let you do it
14:58 moritz !timy http://de.arxiv.org/list/physics.optics/recent
14:58 moritz !tiny http://de.arxiv.org/list/physics.optics/recent
14:58 TimToady .cute is not cute, but .ok would be cute
14:58 TinyURL_Bot http://tinyurl.com/3pucowx
14:58 daniel-s nah, I'm much happier you did it :P
14:58 tadzik :my $*ALLOW_CODE := ($<identifier> ~~ /^^ 'pod' $$ || ^^ 'item'/)
14:58 tadzik is that something that doesn't neceserilly want to appear in a token?
14:58 moritz ~$<identifier> please
14:59 tadzik oh, true
14:59 TimToady .xxx for "explicit" would be doube-plus uncute
14:59 TimToady *double
14:59 moritz or just $<identifier> eq any <pod item>;
14:59 tadzik is there any in nqp?
14:59 moritz uhm, no
14:59 tadzik plus this needs to match item7
15:00 tadzik or any of them
15:00 moritz ah, right
15:00 moritz ignore me
15:00 dalek rakudo/nom: e87a9ef | pmichaud++ | src/core/List.pm:
15:00 dalek rakudo/nom: Arguments to .join should be treated as Stringy.
15:00 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e87a9ef58b
15:01 tadzik http://wklej.org/id/546437/ that's the code that fails for me
15:01 tadzik failure at the very bottom
15:02 * moritz not sure
15:03 * colomon has now successfully built Rakudo and his $work software on his new MBP.  Everything else should just be a detail...
15:03 TimToady well, it doesn't have to be so short if say defaults to it for each slurpy item arg
15:03 moritz tadzik: you could also do something like my $*ALLOW_CODE := 0; { $*ALLOW_CODE := 1 if ... } if you don't trust the code-in-regex embedding thing
15:03 moritz s/do/try/
15:04 moritz afk
15:04 Maddeth joined #perl6
15:05 TimToady .sane, .smart, .visible, .explicit, .meta, .human, .me, ... *
15:05 moritz back, it's raining outside, so I'm postponing my trip outside :-)
15:05 tadzik yeah, that helped :)
15:06 flussence I'd suggest .Text for people-formatted and .Str for computer-formatted
15:07 flussence str being the more technical term and an abbrev
15:08 pmichaud which one would be ~ ?
15:08 TimToady TExT: To Explicit TExT   # recursive acronym
15:08 tadzik I like how !?$*FOO is valid and doing what I want :)
15:09 colomon tadzik: isn't the ? redundant there?
15:09 TimToady should be redundant
15:10 tadzik colomon: it probably is. Bu I can barely resist this !?$* :P
15:10 tadzik looks like Snoopy swearing
15:10 colomon tadzik: !?$* that!
15:10 TimToady perl6: say not so Cool
15:11 p6eval rakudo ae5bea, niecza v6-153-g6cb84d6: OUTPUT«Bool::True␤»
15:11 p6eval ..pugs: OUTPUT«*** No such subroutine: "&so"␤    at /tmp/aM90iZ8r4T line 1, column 5 - line 2, column 1␤»
15:11 TimToady rakudo and niecza both agree that it's not so cool :P
15:11 TinyURL_Bot left #perl6
15:12 pmichaud it's nice that "not so"  is a synonym of sorts for "not".  :-)
15:12 moritz feels like SQL :-)
15:12 TimToady as synonyms go it's pretty so so.
15:13 pmichaud if $you { say .so }
15:15 TimToady funny how 'so-so pretty' is very different from 'so--so pretty'
15:15 pmichaud afk
15:17 jfried joined #perl6
15:18 TimToady can I start backlogging now?
15:19 tadzik backlogging is like Achilles chasing a turtle
15:19 moritz except that for the non-linear interactions between the two
15:19 tadzik true
15:20 TimToady more like the Hare, preferably March
15:20 TimToady though usually more like the Mad Hatter...
15:20 alester joined #perl6
15:23 tadzik being in token foo, how do I much something gainst token bar? $<asd>.Str ~~ self.bar doesn't seem to work
15:23 TimToady if you're in the same grammar, it's just <bar>
15:24 tadzik that failed even more tests. Hmm
15:24 TimToady if you're not in a grammar, you should be :)
15:24 moritz otherwise you have to use ThatGrammar.parse($str, :rule<identifier>)
15:24 tadzik I was trying  { $*ALLOW_CODE := $<identifier>.Str ~~ self.pod_code_parent }
15:25 moritz maybe you shouldn't be reparsing stuff
15:25 moritz but rather set $*ALLOW_COUNT in the calling rule
15:25 tadzik I want to keep all the valid identifiers in one place
15:26 tadzik moritz: why would I count stuff?
15:26 moritz something like [ <pod_code_parent> { $*ALLOW_CODE := 1 } || <identifier> ]
15:26 moritz erm, $ALLOW_CODE
15:26 * moritz distracted, sorry
15:26 tadzik no worries
15:26 tadzik I see your point
15:27 tadzik and I like it :)
15:27 PerlJam reparsing is a red flag in general though  (except when it isn't ;)
15:28 TimToady lookaheads tend to be a more acceptable form of reparsing
15:28 tadzik $<identifier> = [ <a> {} || <identifier> ] shouldn't cause any problems?
15:29 TimToady maybe make it <.identifier> in that case, or pick different names
15:29 sorear just try not to do anything irreversible in action methods...
15:29 sorear niecza: say "foo @bar baz"
15:29 p6eval niecza v6-153-g6cb84d6: OUTPUT«foo @bar baz␤»
15:29 sorear niecza: say "foo @!bar baz"
15:29 p6eval niecza v6-153-g6cb84d6: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Cannot resolve class for private method at /tmp/fpR1lqtBzN line 1:␤------> [32msay "foo @!bar[33m⏏[31m baz"[0m␤␤Unhandled exception: Check failed␤␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2) ␤  at
15:29 p6eval ../home/p6eval/niecza/sr…
15:29 araujo joined #perl6
15:30 * sorear plans to fix that soonish
15:30 TimToady the main thing is to view the result of <a> as a kind of transaction, so that if you have any side effects, they only attach to <a>, and if you thrown away <a>, the transaction rolls back automatically
15:31 daniel-s left #perl6
15:31 sorear the parser has to parse @!bar to know it's not followed by a subscript, but by the time it notices that, the term:variable action method has already carped
15:31 sorear I figure this is why STD has $*VAR; I'm going to piggyback off that
15:32 dalek rakudo/nom: cd08b78 | pmichaud++ | src/ (2 files):
15:32 dalek rakudo/nom: Move (unused) src/Perl6/Compiler.pir into src/old.
15:32 dalek rakudo/nom:
15:32 dalek rakudo/nom: This means that Rakudo-nom now has _no_ .pir files in its sources -- it's all either .nqp or .pm.
15:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cd08b78168
15:32 PerlJam yay! pmichaud++  :)
15:32 TimToady \o/
15:33 colomon \o/
15:33 * TimToady thinks of nqp as "a level of indirection"
15:33 PerlJam now if only we could abstract all of the PIR code into a library or something ...
15:35 daniel-s joined #perl6
15:36 pmichaud nqp is our p6-syntax'ed abstraction layer between rakudo and the underlying vm
15:36 pmichaud yes, it may go away someday
15:37 pmichaud but it's also nice to have a lightweight p6-abstraction level that we might be able to entice other compiler writers to use :)
15:37 dalek rakudo/nom: 2b2ac48 | pmichaud++ | src/core/List.pm:
15:37 dalek rakudo/nom: Small fix so that "say Parcel" works again... bigger fix coming soon.
15:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2b2ac48a1c
15:37 Trashlord left #perl6
15:38 pmichaud also, here are the results of putting the new register allocator into master:  http://gist.github.com/1025161
15:38 pmichaud (the "rakudo-work" entry there... 2011.05/master is Rakudo 2011.05 running on Parrot's master)
15:38 JimmyZ or heavy weight compiler, which is Perl 6
15:39 pmichaud note especially the rx.p6 test :)
15:39 PerlJam indeed.
15:39 tadzik moritz: wouldn't setting $*BAH in a block like you showed fail, for } will reset it?
15:40 pmichaud tadzik: no "my"
15:40 pmichaud [ my $*BAH := ... }   # 'reset' at end of block
15:40 tadzik yeah, no my
15:40 daniel-s Perl6: my @a = (1, 2, 3); say @a.push; say @a; say @a.pop; say @a;
15:40 pmichaud { $*BAH := ... }    # change's caller's $*BAH
15:40 pmichaud *changes
15:40 * tadzik looks into tests once again
15:42 Reaganomicon joined #perl6
15:43 daniel-s perl6: my @a = (1, 2, 3); say @a.push; say @a; say @a.pop; say @a;
15:43 p6eval pugs: OUTPUT«3␤123␤3␤12␤»
15:43 p6eval ..rakudo ae5bea, niecza v6-153-g6cb84d6: OUTPUT«123␤123␤3␤12␤»
15:44 Eevee joined #perl6
15:44 daniel-s That seems wrong
15:44 pmichaud .push returns its invocant
15:44 PerlJam huh ... there's not as much Q:PIR in rakudo as I thought there would be.
15:45 pmichaud it's a lot of pir:: now
15:45 pmichaud but that makes it easier to find and figure out what "basic" opcodes we need from any VM
15:45 PerlJam yeah.  I still thought there was quite a bit more Q:PIR though
15:45 PerlJam jnthn++ pmichaud++  :)
15:46 sorear pmichaud: are you trying to imply niecza should be part of the NQP ecosystem? :)
15:47 daniel-s left #perl6
15:47 pmichaud sorear: I really meant "compiler writers of other HLLs", not "other Perl 6 compiler writers"  :)
15:49 PerlJam looks like 264 unique forms of /pir::\w+/ in nom,   only 147 if I only count /pir::\w+?__/
15:49 sorear 'comb' would make a very useful CLI tool
15:49 pmichaud unique forms?  or instances?
15:50 PerlJam ack 'pir::\w+' -oh | sort -u | wc -l
15:50 sorear comb -r 'pir::\w+' . | sort -u
15:50 pmichaud PerlJam: that included the nom + parrot dirs, perhaps?
15:50 pmichaud and generated files?
15:51 PerlJam oh, yes.
15:51 sorear ack--
15:51 PerlJam no, PerlJam--
15:52 sorear someday I'd like to combine ack and git-grep and make the perfect search ool
15:53 PerlJam 199 if I do (in src): ack 'pir::\w+' -oh  binder core ops Perl6 pmc utils | sort | uniq | wc -l
15:53 pmichaud try case insensitive
15:53 sftp left #perl6
15:53 pmichaud the  upper versus lowercase argument distinctions aren't well maintained
15:53 pmichaud s/argument/signature/
15:53 pmichaud I get 111
15:54 pmichaud oh, wait
15:54 pmichaud bad command line
15:55 PerlJam in any case ... it's < 200 ops.   someone *could* write a VM tailored to those ops  ;)
15:55 pmichaud that's what we're kind of thinking of doing
15:55 dju joined #perl6
15:55 pmichaud at least being able to say "these are the ops you are likely to need"
15:55 donri joined #perl6
15:55 sorear WHY does ack not allow searching -?
15:56 PerlJam as much as we've mentioned ack just now, I'm surprised we haven't seen alester magically appear :)
15:56 pmichaud http://gist.github.com/1025199  #  effect of register allocation on coretests
15:57 pmichaud sorry, commontests
15:57 PerlJam What are the improvements to the allocator?
15:57 tadzik like
15:57 PerlJam (or should I backlog to find out?)
15:58 dju left #perl6
15:58 pmichaud the previous allocator was dumb/naive... it expected imcc to do smart register allocation
15:58 pmichaud (because imcc has traditionally been advertised as offering that capability)
15:58 pmichaud so, PAST's codegen just grabbed a new register identifier whenever it needed one, and trusted imcc to figure out how they could be combined
15:59 tadzik will <![\w]> work in current Rakudo? I remember something about character classes and something something
15:59 pmichaud the new codegen now explicitly keeps track of temporary registers and re-uses them
15:59 pmichaud tadzik: that's just \W for that specific instance
15:59 Shz left #perl6
15:59 pmichaud but no, \w doesn't work inside of <[...]>  (yet?)
15:59 tadzik I don't want to match it
16:00 tadzik I want it w/o the trailing space
16:00 pmichaud oh, you want zero-width
16:00 tadzik yep
16:00 sorear I get 156 for git grep -h 'pir::\w\+' | perl6 -ne '.say for .comb(/"pir::" \w+/)' | sed 's/__.*//' | sort -u | wc -l
16:00 pmichaud <!before \w> works
16:00 PerlJam pmichaud: how did the register allocator come to attention?
16:00 tadzik oh, true
16:00 tadzik Thank you pmichaud
16:01 sorear PerlJam: me obnoxiously pointing out PAST's sucky register use
16:01 PerlJam sorear++  then  :)
16:01 sorear I think
16:01 pmichaud no
16:01 pmichaud that's not it at all
16:01 pmichaud I noticed it when parrot was taking 50+ seconds to compile a 45K .pir file
16:01 sftp joined #perl6
16:01 pmichaud (45K line .pir file)
16:02 pmichaud in rakudo master, we have *tons* of very small Parrot subs that do initialization
16:02 sftp left #perl6
16:02 pmichaud this costs us startup time because of the need to invoke all of those separate subs at load time
16:02 pmichaud to get around this, jnthn++ has created serialization contexts, and all of the initialization can take place in a single Parrot sub
16:03 pmichaud unfortunately, that one sub is several thousands of lines long, and used thousands of registers
16:03 pmichaud this caused imcc to go haywire trying to keep track of all of those registers  (imcc's register handling is quadratic, it seems, although I don't know why)
16:04 benabik pmichaud: Probably poor handling the data structure to track the registers in use.
16:04 benabik *of the
16:05 pmichaud so, our chose was to either break up this long sub into multiple smaller ones (which brings us back to what master is doing), or to go ahead and handle register allocation in PAST since it's unlikely imcc/Parrot will do it anytime soon
16:05 pmichaud s/chose was/choices were/
16:05 pmichaud I went with the second.
16:05 pmichaud Now compiling that 45K pir file happens in under 2 seconds instead of over 50
16:06 alester Beetlejuice Beetlejuice Beetlejuice!
16:07 Trashlord joined #perl6
16:08 sftp joined #perl6
16:12 molaf joined #perl6
16:13 JimmyZ_ joined #perl6
16:14 sftp left #perl6
16:14 takadonet pmichaud: wow
16:15 PerlJam So, just because I was curious ... it looks like there have been 14 commits to master and 405 commits to nom since the last Rakudo release ... is there any reason those commits to master haven't been merged with nom ?
16:15 PerlJam s/merged with/merged into/ if that makes my intent clearer
16:16 JimmyZ left #perl6
16:16 JimmyZ_ is now known as JimmyZ
16:16 gfldex most of those 14 commits change PARROT_REVISION
16:17 PerlJam no they don't
16:19 PerlJam though looking at the commits, I guess several of them don't quite make sense in a nom world.
16:21 tadzik All tests successful, yay
16:21 tadzik I need a t-shirt like that
16:21 Mowah left #perl6
16:23 PerlJam I worry a little bit that the commits on master that *do* make sense on nom might get lost in the switch if we don't keep up with merging them because we'll forget as more and more time passes.
16:23 PerlJam granted, we shouldn't have to wait too long.  But that's why it only worries me a little bit.
16:24 moritz PerlJam: the best way to fix that is to write tests for the stuff done in master
16:24 tadzik moritz: implicit code blocks allowed only in certain parents now pushed
16:24 tadzik or not. Wake up, github
16:25 tadzik there we go
16:26 magoo_ joined #perl6
16:26 sftp joined #perl6
16:30 moritz tadzik: care to install a post-commit hook that make dalek report your commits here?
16:30 tadzik moritz: I don't mind. Is there any guide for that?
16:31 moritz tadzik: in the mu repo, misc/dalek-push.txt
16:31 jfried left #perl6
16:33 tadzik how can I do that for rakudo/gsoc-podparser?
16:34 moritz I thought for gsocmess
16:35 sorear you need rakudo admin rights
16:35 daxim left #perl6
16:35 tadzik I did that for gsocmess
16:35 moritz tadzik++
16:36 moritz rakudo is currently configured pull-style - just add the branch to mu/misc/dalek-conf.json
16:36 ymasory joined #perl6
16:36 tadzik I'll review my tests and commit something :)
16:39 sftp left #perl6
16:39 moritz http://metautonomo.us/2011/06/14/wth​-is-happening-to-rails-ill-tell-you/ I find it amusing that ruby folks say things like "In most cases — for mere humans, anyway — there really is a right way to do things. Ruby is an Object Oriented programming language. There are literally decades of prior research in the field of OO software design, and they’ve resulted in a lot of really well-documented and well-tested design patterns for building software."and the
16:39 moritz ... and then rely heavily on monkey typing
16:41 dalek gsocmess: 4a1e0ad | tadzik++ | t/0 (3 files):
16:41 dalek gsocmess: Move comment-related tests to a separate file
16:41 dalek gsocmess: review: https://github.com/tadzik/​gsocmess/commit/4a1e0ad96e
16:41 tadzik oh, fun
16:42 * JimmyZ doesn't like Ruby, mostly because its syntax is pythonic, because he doesn't like python's syntax
16:42 PerlJam moritz: because that's the way you do it.  You can't have OOP without monkey-typing, can you?  I mean even the rails gods do it and they have way more experience than most people.    ;-)
16:44 Eevee I have no problem with Ruby; I'm just terrified of its community
16:45 tadzik The only Ruby programmer I know is a friendly guy. OTOH, all the Pythoners I know in person are mostly Perl haters
16:45 Eevee a Ruby guy tried helping me with a Python project once; I gave up on that once he implemented shared code by writing a superclass and patching it onto some other classes' base class list from the file defining the superclass  9_6
16:45 tadzik that's sad, for I'd like to learn Python one day, but the communitu drives me off
16:47 mikehh joined #perl6
16:49 Eevee tadzik: I think I've seen about as much perl-bashing in #python as I've seen python-bashing in #perl
16:53 TimToady here in #p6 we bash everyone equally including ourselves :)
16:54 moritz speaking of bashing... Go has this funny feature where you can leave out the semicolon at the end of the statement, and the *lexer* guesses where semicolons go
16:54 moritz so after )\n  it guesses "this would be a nice place" and places a staetment end
16:54 moritz even if you were writing something like
16:55 moritz if  ((foo == bar)\n && (baz == qux))
16:55 moritz because the lex doesn't know the number of opening parens
16:56 Eevee wow
16:56 Eevee because when I think "good features to put in my systems programming language"
16:56 Eevee I consult JavaScript
16:56 moritz and learn about optional ;
16:56 moritz and chose it *NOT*
16:57 TimToady we could go all COBOL and use '. ', if people don't like how much the ; sticks out :)
16:58 TimToady that's even more like English™
16:58 tadzik Eevee: really?
16:58 tadzik (the python bashing on #perl)
16:58 TimToady a good system programming language should give you access to the system
16:59 Eevee tadzik: that is to say, not much of either and usually from one or two ornery bastards  8)
16:59 tadzik I don't think I ever saw it, but I don't sit on #perl much. Maybe that's the bullseye of the hate :)
16:59 moritz well, we do a fair amount of python bashing in here
17:00 Su-Shee \o/ smalltalk!
17:00 TimToady as long as it's not an unfair amount
17:00 TimToady smalltalk weirds language
17:01 Su-Shee yeah it is, mostly the environment etc. got me hooked.
17:01 dakkar left #perl6
17:01 Eevee honestly I think the biggest source of python bashing I've seen has been #python
17:01 * TimToady apologizes to Calvin and Hobbes for the allusion
17:02 Su-Shee Eevee: I'm somewhat exhausted by programming languages recently. I always come back to Perl somehow unless it's something specialized.
17:03 molaf left #perl6
17:03 * PerlJam watches DHH at railsconf 2011
17:04 Su-Shee that guy is the reason why I get angry at Ruby once a week. I like the language, but the "community" .. oh boy...
17:04 PerlJam Su-Shee: you have to learn "ignorance is bliss"  :)
17:04 * tadzik wonders how many people dislike Perl because of him
17:05 PerlJam I'm just seeing if there are any good ideas I can steal
17:05 PerlJam (one of the things that Perl taught me :)
17:05 tadzik I think the most are "I must try this «Perl» you talk about all the time"
17:05 spq1 left #perl6
17:05 Su-Shee PerlJam: well that's why I read a couple of ruby books and had a ruby job and I absolutely ignore RoR :)
17:06 TimToady yes, well, every community has its share of rotters, though we hope we're better than most at derotting
17:06 molaf joined #perl6
17:07 Su-Shee TimToady: at least the perl community is not as clueless and without any regard for programming history rotting ;)
17:08 Su-Shee though not really a gentle, harmonious family ;)
17:09 PerlJam sometimes it's okay to re-invent the wheel, but you should do so consciously.
17:09 wamba joined #perl6
17:10 PerlJam though, the rails community seems to be reinventing lots of wheels for some reason.  I guess because of DHH's ignorance of history?
17:11 JimmyZ left #perl6
17:12 Su-Shee PerlJam: judging from blog articles etc over the years, at least many of those who write are pretty ignorant about the history of concepts, languages, ideas etc.
17:12 Su-Shee PerlJam: or they're much better in selling than I ever imagined ;)
17:14 TimToady I've peddled enough snake oil to recognize when other people are peddling it.  :)
17:14 Su-Shee well I'm mostly envious, I want Perl be the pacemaker of ideas again ;)
17:16 pmichaud back again
17:16 TBA2 how do i do a string substitution using a Match object, i'm sure i seen an example earlier along the lines of $match.subst() but can't find the example anywhere and i'm getting myself more and more confused lol :P
17:16 takadonet pmichaud: wb
17:17 TBA2 and im sure it should be obvious to me *facepalm*
17:17 PerlJam Weird how DHH is gushing over the coffeescript features than perl has had for ages.
17:18 PerlJam (syntactic sugar anyone?)
17:18 moritz TBA2: I'm not aware of any straight forward method. Str.subst uses Match objects internally, but you can't easily access that
17:19 molaf left #perl6
17:19 TimToady are you trying to do a subst on the string value of the match?
17:19 TBA2 moritz: that might have been where i seen it earlier then
17:19 Su-Shee PerlJam: that is exactly the history and knowledge thing.. *sigh*
17:20 TBA2 TimToady: on the string it matched against, e.g. my $a = "test"; $a ~~ /es/; # now replace es in test with something
17:20 moritz if it were implemented, $a ~~ m:rw/es/; $/ = 'something' or so
17:21 TBA2 although it just occured to me that if done, surely it'd ruin the .from/.to values in any later matches ?
17:21 mj41 left #perl6
17:21 magoo_ left #perl6
17:21 moritz right now you can do $/.orig.substr(0, $/.from) ~ $something ~$/.orig.substr($/.to)
17:21 TimToady perl6: my $a = "test"; $a ~~ /es/; substr($a, $/.from, $/.to - $/.from) = 'something';
17:21 p6eval rakudo ae5bea: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 22:/tmp/M4sf_A3TaH␤»
17:21 p6eval ..niecza v6-153-g6cb84d6:  ( no output )
17:21 p6eval ..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6​.2.13.16/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
17:21 moritz and store the result in a new variable
17:22 moritz perl6: my $a = "test"; $a ~~ /es/; say substr( $a, $/.from, $/.to, "something");
17:22 p6eval niecza v6-153-g6cb84d6: OUTPUT«Unhandled exception: Excess arguments to CORE substr, used 3 of 4 positionals␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE substr @ 0) ␤  at /tmp/gS4zSYBUQJ line 1 (MAIN mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1769 (CORE C837_ANON @ 2)
17:22 p6eval ..␤  at /home/p6…
17:22 p6eval ..rakudo ae5bea: OUTPUT«No applicable candidates found to dispatch to for 'substr'. Available candidates are:␤:(Mu : Any $start, Any $length?;; *%_)␤␤  in main program body at line 22:/tmp/lo_sUG0wvS␤»
17:22 p6eval ..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6​.2.13.16/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
17:22 TBA2 moritz: thanks, will give that a go, i do like that smartmatch syntax though!
17:23 mberends joined #perl6
17:24 * TimToady wonders if .subst($match, "something") could be made to work, assuming $match keeps its .orig
17:25 molaf joined #perl6
17:25 moritz what would be the invocant?
17:25 moritz or $match.subst("something")?
17:27 TBA2 moritz: worked, thank you :)
17:27 TimToady $match.replace("something") maybe
17:28 TimToady to avoid confusion with a string pattern
17:28 moritz TimToady: sounds sane-ish
17:28 TimToady perl6: say "food".subst("foo","bar")
17:28 p6eval rakudo ae5bea, niecza v6-153-g6cb84d6: OUTPUT«bard␤»
17:28 p6eval ..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6​.2.13.16/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
17:29 TBA2 looks like a nice solution, would it affect the .from/.chars/.to on any later matches though?
17:29 TimToady perl6: say "food".subst("foo")
17:29 p6eval pugs: OUTPUT«*** No such method in class Str: "&subst"␤    at /tmp/FJ_wgg0ekx line 1, column 5 - line 2, column 1␤»
17:29 p6eval ..niecza v6-153-g6cb84d6: OUTPUT«Unhandled exception: No value for parameter $replacement in CORE Cool.subst␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE Cool.subst @ 0) ␤  at /tmp/nnQQ2Ngb_W line 1 (MAIN mainline @ 1) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1769 (CORE C837_ANON @
17:29 p6eval ..2) ␤  at /home/…
17:29 p6eval ..rakudo ae5bea: OUTPUT«No applicable candidates found to dispatch to for 'subst'. Available candidates are:␤:(Mu : Any $matcher, Any $replacement, Any :samecase(:ii($samecase)), Any :samespace(:ss($samespace)), *%options)␤␤  in main program body at line 22:/tmp/2VRZBWNw2U␤»
17:29 moritz TBA2: it would return a new string, and leave all things related to the old string and the match unaffected
17:29 TimToady well, even if it doesn't mean anything, it would be confusing to overload .subst for that
17:30 TBA2 ah good, i dont think my brain is working tonight lol
17:31 moritz we generally prefer to construct new things instead of modifying the old ones, if we have a choice
17:32 TBA2 moritz: what about like this example but with 1000+ matches, surely not efficient to rerun the regex 1000+ times? couldn't there be an option to work on the original string and adjust match positions depending on how many bytes are removed/added?
17:32 TBA2 seems to me like something that would be done quite often
17:33 ymasory left #perl6
17:34 TBA2 actually perhaps not
17:36 TimToady At some point you have to give up on hammering the nails with your ViseGrips® and use a chainsaw instead...
17:37 TimToady in other words, you parse with a grammar and then walk the tree
17:37 pmichaud Is *that* what I've been doing wrong?  I kept switching to using my skull on the nails.
17:37 TimToady Walking a tree is not as easy as walking a dog...
17:37 TBA2 now im confused lol :p
17:38 * TBA2 rereads S05
17:38 * TimToady hasn't had breakfast yet, and it shows...
17:38 colomon But I have a tree -- many trees, actually! -- and don't have a dog atm.
17:39 Chillance joined #perl6
17:39 TimToady walking 0 dogs is trivially easy
17:39 Su-Shee I'm afraid of dogs, I walk only trees. ;)
17:40 * moritz climbs trees
17:41 pmichaud I walk my dog and walk into trees.
17:41 * TimToady imagines a ruby with roots...
17:42 cdarroch joined #perl6
17:42 cdarroch left #perl6
17:42 cdarroch joined #perl6
17:42 * TimToady starts backlogging again to find his roots...
17:43 mberends in Soviet Russia, the dog walks you!
17:43 TimToady that's usually true in Soviet Amerika too
17:43 Su-Shee and the tree walks into you?
17:44 mberends dog can be both a noun and a verb, so can walk, but what would 'to tree' mean?
17:45 tadzik zdrzewić: prononce that!
17:45 TimToady the dog treed the squirrel.
17:45 sorear I think TBA2 may be looking for m:rw //
17:46 kaare_ left #perl6
17:46 Su-Shee tadzik: that's like the famous 70ies politician I can't pronounce.. zbgienev brczsnky or something. (I can't even less write him)
17:46 * TimToady suspects that m:rw is HHF
17:46 Su-Shee tadzik: "shedsevich"
17:46 sorear tadzik: zuhduhrzewick
17:47 TimToady m:rw is probably higher than the treed squirrel...
17:47 Su-Shee tadzik: or sredshevich
17:47 TBA2 sorear: lol, wish it existed :P
17:47 tadzik Su-Shee: brzczyński?
17:47 Su-Shee tadzik: yes!
17:47 Su-Shee I can't even google him because I don't know how to type his name ;)
17:47 tadzik stchshewitsch would probably be quite close
17:48 moritz niecza: $_ = "foobar"; m:rw/oo/; .say
17:48 p6eval niecza v6-153-g6cb84d6: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Regex modifier rw not yet implemented at /tmp/mpV0pY_jus line 1:␤------> [32m$_ = "foobar"; m:rw[33m⏏[31m/oo/; .say[0m␤␤Unhandled exception: Check failed␤␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2) ␤  at
17:48 p6eval ../home/p6eval/n…
17:48 pmichaud #phasers in 72
17:48 huf i recognise those letters but... but they dont seem to work the way i'm expecting them to
17:48 TBA2 i'm thinking a closure in a matching regex (does it exist in rakudo yet?), but it'd need to affect the original string so could cause some problems
17:48 molaf left #perl6
17:48 Su-Shee tadzik: http://en.wikipedia.org/wiki/Zbigniew_Brzezinski
17:49 sorear moritz: I call IHF
17:49 tadzik oh, Brzeźiński
17:49 tadzik that's not quite Brzczyński, but I can understand why it sounds familiar. I guess all the "brzszczrzczsz" words sound familiar
17:49 moritz rakudo: say 'foobar'.subst(:g, /<[aeiou]>+/, { .uc })
17:49 p6eval rakudo ae5bea: OUTPUT«fOObAr␤»
17:49 moritz sorear: "Increadibly High Fruit"?
17:50 sorear Intermediate ;)
17:50 tadzik oh, it's report day
17:50 sorear the trick is making $0 = "foo"; $1 = "bar"; work
17:50 TBA2 sorear: which is exactly what i need lol :)
17:50 sorear I need to extend SubstrLValue to make a super substr thing that can collude with other instances to DTR
17:50 sorear T
17:50 TBA2 i can track the changes i make to the original, adjusting future matches, but thats gonna get messy
17:50 TimToady the trick is probably to turn the string into a rope of match/nonmatches
17:51 sorear so when you assign to $0, $1's offsets are adjusted
17:51 tadzik Su-Shee: there is a famous film scene, where a prisoner responds to a Nazi officer about his name, "Grzegorz Brzęczyszczykiewicz", I may be able to find it on youtube for you
17:51 pmichaud sounds like .caps/.chunks
17:51 TimToady with a rope that happens automagically, unless there's overlap, in which case you're hosed anyway
17:51 TBA2 could we make the match a nonmatch if its an overlap and part of the match changes?
17:51 sorear well, the string is never really changed
17:52 tadzik Su-Shee: http://www.youtube.com/watch?v=ftrqO-jkMpE
17:52 Su-Shee tadzik: which movie?
17:52 tadzik "How did I started World War 2"
17:52 tadzik famous Polish comedy
17:53 Su-Shee hrmpf. there are no WW2/Nazi comedies here.
17:53 TimToady rather than actually assigning to $0 et al. I think we'd be better off making a way to map 0 => $new0, 1 => $new1 so we can stay functional
17:53 huf tadzik: it sounds much less intimidating than it looks
17:53 Su-Shee huf: indeed :))
17:53 TimToady so maybe it's really a .subst variant
17:53 pmichaud there's also the question of $0, $1 etc being a quantified capture
17:53 Su-Shee huf: unless you know how it's really written ;)
17:54 Su-Shee tadzik: *lol* that's _exactly_ how I would sit there, yes. ;)
17:54 huf isnt it fairly phonetic?
17:54 tadzik it is
17:54 sftp joined #perl6
17:54 huf it's just not at all what i'm used to in at least two ways
17:54 TimToady modifying a string in place is rather OO-y, so maybe we should force people to create an appropriate O to do it
17:55 tadzik unlike English, almost every letter (or actually every letter) sounds exactly how it looks... it sounds weird
17:55 TimToady otherwise we risk sawampersanditis again
17:55 moritz :-)
17:55 Su-Shee tadzik: the german is really german.
17:56 TimToady you sure it's not Deutsch?
17:56 sorear niecza: my $str = "aaa"; my $view := substr($str, 1, 1); $view = "bbb"; say $str
17:56 p6eval niecza v6-153-g6cb84d6: OUTPUT«abbba␤»
17:56 tadzik German is very Deutsch
17:56 huf surely not, it's dutch!
17:56 huf from pennsylvania no less
17:56 * Su-Shee just got three grey hairs more ;)
17:57 TBA2 sorear: nice, doesn't work in rakudo though :(
17:57 TBA2 rakudo: my $str = "aaa"; my $view := substr($str, 1, 1); $view = "bbb"; say $str
17:57 Su-Shee oh wait, no he isn't. now it's showing.
17:57 p6eval rakudo ae5bea: OUTPUT«Cannot modify readonly value␤  in '&infix:<=>' at line 1␤  in main program body at line 22:/tmp/N6EM60cKOq␤»
17:57 TimToady sorear: how much does that pessimize rvalue substrs?
17:58 tadzik moritz: can we declare Week #3 done?
17:58 moritz tadzik: aye
17:59 TimToady sorear: I'm quite willing to have a view generated by subview rather than substr if that would make substr faster
17:59 TimToady or substr-rw
18:00 Zapelius joined #perl6
18:00 sorear TimToady: in the current niecza implementation, I don't think it has any effect whatsoever
18:01 sorear TimToady: however it will hurt future implementations the cost of 1 allocation and 1 indirect function call (and nom, which already uses an implementation like what I'm considering)
18:02 mkramer joined #perl6
18:02 mkramer left #perl6
18:10 TimToady "Lookup of $!a outside of package that can support attributes" bugs me for some reason; it's a developer-centric message, not a user-centric message
18:11 sorear TimToady: is that a nom error message?
18:11 TimToady yes
18:11 TimToady http://irclog.perlgeek.de/​perl6/2011-06-14#i_3923464
18:11 sorear it's better than this:
18:11 sorear niecza: say $!foo
18:11 p6eval niecza v6-153-g6cb84d6: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Cannot resolve class for private method at /tmp/hk5lgeWgRz line 1 (EOF):␤------> [32msay $!foo[33m⏏[31m<EOL>[0m␤␤Variable $!foo used where no 'self' is available at /tmp/hk5lgeWgRz line 1:␤------> [32msay
18:11 p6eval ..[33m⏏[31m$!foo[0m␤␤Unhandled exceptio…
18:12 sorear (also, wrong, since niecza still thinks $!foo means $(self!foo).  TOFIX)
18:13 TimToady "Cannot use attribute $!a in this context" is more user-centric
18:13 TimToady or Cannot understand
18:14 ymasory joined #perl6
18:14 TimToady or even "Illegal use of attribute $!a outside of any context that knows about attributes"
18:14 PerlJam Isn't "package that can support attributes" just "class"?
18:14 TimToady roles
18:14 moritz class, role, grammar
18:14 PerlJam oh, yes
18:14 TimToady but 'package' is misleading
18:14 TimToady if acccurate
18:15 TimToady and also leads people to think that attributes are stored in packages
18:15 slavik TimToady: perl5? :P
18:15 * TimToady and snake oil go way back...
18:15 slavik ^^
18:15 PerlJam TimToady: at least you only got the oil and not the whole snake
18:16 TimToady snakes are too constricting
18:16 slavik TimToady: thanks for a new signature quote ;)
18:17 sftp left #perl6
18:17 Su-Shee slavik: are you by any chance BBBike-slavik?
18:17 slavik no idea who that would be
18:18 Su-Shee a perl hacker who wrote an insanely cool bike map for berlin. ;)
18:18 sftp joined #perl6
18:18 slavik I was in germany once ... for an hour ... until I got on a TWA plane to NYC
18:18 slavik :)
18:19 slavik in frankfurt
18:22 dalek rakudo/nom: 3398e0b | pmichaud++ | src/Perl6/Actions.pm:
18:22 dalek rakudo/nom: "Lookup of $name outside of package that..."  ==>  "Cannot understand attribute $name in this context"   TimToady++
18:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3398e0ba65
18:24 PerlJam moritz: did your grant cover adding more advanced error information?  (like "use diagnostics" in perl 5)
18:24 PerlJam if not, that would make an excellent follow-up grant IMHO
18:27 sftp left #perl6
18:28 sftp joined #perl6
18:29 ab5tract joined #perl6
18:31 moritz PerlJam: not covered... but it would be mostly doc work, so no good material for hague grants
18:39 bluescreen10 left #perl6
18:39 bluescreen10 joined #perl6
18:40 estrabd is now known as estrabd_afUH
18:52 ymasory left #perl6
18:52 Bzek left #perl6
18:53 tyatpi_ joined #perl6
18:53 sftp left #perl6
18:58 sftp joined #perl6
19:03 lichtkind joined #perl6
19:04 lichtkind cheers
19:05 lichtkind sorear: esspecially you :)
19:05 daemon left #perl6
19:05 sorear hi
19:06 mkramer joined #perl6
19:07 daemon joined #perl6
19:12 tadzik <pmichaud jnthn moritz>.pick(2)
19:12 tadzik rakudo: <pmichaud jnthn moritz>.pick(2)
19:12 p6eval rakudo ae5bea:  ( no output )
19:12 tadzik ah, whatever
19:12 pmichaud ("say" ?)
19:12 tadzik yeah, I know
19:12 tadzik orka, how the Swedish people say
19:13 tadzik s/how/as/ I suppose
19:17 jaldhar left #perl6
19:17 ymasory joined #perl6
19:46 sftp left #perl6
19:49 mkramer left #perl6
19:52 _sri left #perl6
19:53 sftp joined #perl6
19:55 _sri joined #perl6
19:58 sftp left #perl6
19:59 sftp joined #perl6
19:59 jnthn nom: package Foo { has $!a }
19:59 p6eval nom: OUTPUT«A package cannot have attributes at line 1, near " }"␤current instr.: 'nqp;HLL;Grammar;panic' pc 23569 (src/stage2/gen/NQPHLL.pir:6311)␤»
20:00 sftp left #perl6
20:00 sorear nom: class Foo { has $!a; has $!a }
20:00 p6eval nom: OUTPUT«Package 'Foo' already has an attribute named '$!a'␤current instr.: 'nqp;Perl6;Metamodel;Attri​buteContainer;_block1613' pc 18296 (src/gen/perl6-metamodel.pir:4066)␤»
20:01 sftp joined #perl6
20:02 pmichaud jnthn: ping (when you're done discussing on #phasers)
20:03 slavik pew pew pew?
20:03 dalek rakudo/nom: ff8b4a6 | pmichaud++ | tools/build/Makefile.in:
20:03 dalek rakudo/nom: "make test" does not require Test.pir.
20:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ff8b4a61bf
20:04 jnthn pmichaud: pong
20:04 mtk left #perl6
20:04 pmichaud jnthn: I'm interested in getting ** params to "work" -- pretty easy to implement the parameter/binding part?
20:05 jnthn pmichaud: er :)
20:05 jnthn pmichaud: I need you to define "work" a bit more :)
20:05 pmichaud parse and bind to an appropriate slurpy type
20:06 jnthn pmichaud: So basically same as for *@foo but a different type?
20:06 pmichaud yes
20:06 jnthn pmichaud: Oh, easy :)
20:06 pmichaud I figured as much.  I was even thinking of attempting it myself but don't want to muck something up.
20:06 jnthn pmichaud: You're not liable to but it's far quicker for somebody who knows where all the bits go. :)
20:07 jnthn Literally bits, given we need to add another flag to a bitfield :)
20:07 pmichaud that was the other reason for me doing it -- to figure out where all the bits go
20:07 jnthn ah :)
20:07 pmichaud and I had already gotten as far as the bitfield part
20:07 pmichaud anyway, I have so much on my plate I'll lety ou do it :)
20:07 jnthn :P
20:07 jnthn OK
20:07 jnthn pmichaud: Can you stub in the type you want to use?
20:07 pmichaud sure
20:07 pmichaud LoL
20:07 jlaire joined #perl6
20:08 jnthn WtF?
20:08 pmichaud stubbing now
20:08 jnthn :)
20:08 jnthn pmichaud: er, hmm
20:08 jnthn pmichaud: Maybe BOOTSTRAP is a wise choice also
20:08 pmichaud stubbing it into BOOTSTRAP, yes.
20:08 jnthn pmichaud: OK, thanks.
20:08 jnthn pmichaud: Where does LoL fit type wise?
20:08 pmichaud is List, for now.
20:08 jnthn k
20:08 pmichaud so, easy.
20:09 pmichaud actually, I may make it 'is Array' for now
20:09 pmichaud can change it later if need be
20:09 pmichaud hmmm
20:09 pmichaud no, I'll do 'is List' with a $!descriptor
20:10 jnthn k
20:11 pmichaud pushed.
20:11 jnthn ok
20:11 jnthn afk for 5 mins, then can look
20:11 pmichaud oh wait, forgot a step
20:12 pmichaud I'm not sure what (if anything) to do with pir::perl6_set_types_list_array__vPP(List, Array);
20:12 pmichaud I'll leave that for you :)
20:13 jnthn yes, but I'll handle it.
20:14 pmichaud one last push.
20:14 pmichaud thanks
20:14 dalek rakudo/nom: da5ab6c | pmichaud++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
20:14 dalek rakudo/nom: Stub in LoL type so jnthn++ can work on **@param.
20:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/da5ab6c100
20:14 dalek rakudo/nom: a7858a9 | pmichaud++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
20:14 dalek rakudo/nom: Forgot to put LoL in the PACKAGE.
20:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a7858a9277
20:14 dalek rakudo/nom: 1f46ba0 | pmichaud++ | src/Perl6/Grammar.pm:
20:14 pmichaud absolutely no rush on this, btw, just wanted to make sure we're set up to start handling it at some point.
20:14 dalek rakudo/nom: Add '**' as a parameter quant.
20:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1f46ba0959
20:14 Moukeddar joined #perl6
20:15 pmichaud I figure it's easy to stub in and then I can start working on it and playing with it.
20:15 Moukeddar left #perl6
20:15 shiftless joined #perl6
20:17 jnthn pmichaud: oh, if there's no rush I'll deal with the current half-way-done set of patches I'm working on first.
20:17 mtk joined #perl6
20:17 estrabd_afUH is now known as estrabd
20:18 fhelmberger_ left #perl6
20:18 pmichaud jnthn: that's fine
20:19 pmichaud I doubt I'll get to LoL today, for example
20:19 pmichaud but at some point in the next day or two I may want to play with it
20:21 sftp left #perl6
20:21 fhelmberger joined #perl6
20:21 Moukeddar joined #perl6
20:21 Moukeddar left #perl6
20:22 sftp joined #perl6
20:22 shiftless hey guys, I was wondering if someone could briefly explain why perl 6 is so slow right now? is it the parsing? just wondering if there is any progress being made to improve this. I like the language and I think I will be sticking with it for my project.
20:22 sftp left #perl6
20:22 tadzik my expertise shows that the new metamodel branch is up to 40 times faster. Stay tuned
20:23 tadzik and I believe it's just the bbeginning, the serious optimizations are not yet worked on
20:23 shiftless cool
20:27 PerlJam shiftless: It's slow for a variety of reasons, nto the least of which is a focus on getting the correct semantics rather than a focus on optimization.
20:28 PerlJam shiftless: but, as tadzik says ... it's getting faster all the time :)
20:34 masak joined #perl6
20:34 masak oh hai, #perl6.
20:34 tadzik oh hai masak
20:43 masak $work talk for which I've been procrastinating for three days now is finished. I am relieved. :)
20:43 jnthn Time to start procrastinating for Friday and NPW ;)
20:43 masak \o/
20:44 masak Friday and NPW!
20:44 jnthn We're gonna be cream crackered by Monday :)
20:44 colomon ?
20:44 masak jnthn: what's that? o.O
20:45 colomon ooo, I just got ncurses to install!  (sounds stupid, but I've been struggling in the background with it all day today)
20:45 jnthn oh :)
20:45 masak jnthn: some kind of British biscuit?
20:45 jnthn Slang for "knackered" :)
20:45 masak oh :)
20:45 jnthn Meant to be more polight.
20:45 jnthn *polite
20:45 jnthn ...
20:45 masak phenny: sv "sliten"?
20:45 phenny masak: "worn" (sv to en, translate.google.com)
20:45 masak :)
20:45 Moukeddar joined #perl6
20:46 masak Moukeddar! \o/
20:46 Moukeddar Hey my man :)
20:46 * masak kowtows
20:46 Moukeddar how's your day so far?
20:46 masak I'm cream crackered. :)
20:46 jnthn :P
20:46 Moukeddar Oo
20:46 bluescreen10 left #perl6
20:47 masak eating a cold pizza after a long day.
20:47 Moukeddar lol
20:47 bluescreen10 joined #perl6
20:47 Moukeddar warm it a little bit
20:48 masak nah. it's supposed to be cold :)
20:48 moritz but in the oven, not in the micro wave
20:48 Moukeddar microwave ?
20:48 tadzik .u wave
20:48 Moukeddar never used it :)
20:48 phenny U+223F SINE WAVE (∿)
20:48 masak Moukeddar: I gave a talk tonight, about CQRS and Event Sourcing.
20:48 Moukeddar where masak ?
20:48 tadzik hi ha, microwave! ∿
20:48 masak Moukeddar: in Malmö, where I work.
20:49 Moukeddar it won't be online ?
20:49 Moukeddar i just understood the concept of a service bus :)
20:49 masak no, won't be online.
20:49 moritz it's funny that the sine wave doesn't look like a sine at all in my font
20:50 Moukeddar and the whole language thing is crippling me :(
20:50 masak I did demo our Hex code, though. so there was a bit of Perl in it. :)
20:50 masak Moukeddar: what, the Arabic-English-French thing?
20:50 Moukeddar yes , that
20:51 jnthn masak: It was funny, it was an event for .Net developers. You showed no .Net-related code, just Perl. \o/
20:51 masak that is a bit funny. :)
20:51 Moukeddar he did perl on an .NET event?
20:51 Moukeddar you got balls :)
20:51 masak :P
20:51 [particle] left #perl6
20:51 masak I said it was Modern Perl, which is why they probably didn't recognize it as Perl :P
20:51 jnthn The only talk I've given to the .Net user group was about regexes :)
20:52 Moukeddar i bet the whole presence was silenced when they saw perl snippets :)
20:52 masak Moukeddar: no, the reaction was fairly mild.
20:52 masak Moukeddar: it's Perl code that doesn't much stand out as Perl code.
20:52 masak Moukeddar: https://github.com/jnthn/he​x/blob/master/t/gameplay.t
20:55 Moukeddar i remember this demo :)
20:56 Moukeddar i need to rearange my bookmarks :)
20:56 * masak abandoned bookmarks as a way of life back in 2006
20:56 jnthn bookmark = tab
20:56 jnthn ;)
20:56 Moukeddar what do you use?
20:57 masak I just saved everything in a big file database on a server.
20:57 * jnthn doesn't do bookmarks generally
20:57 masak then I grep'd it when I needed seomething :)
20:57 Moukeddar isn't that an overkill ?
20:57 Moukeddar or for fun ?
20:57 jnthn For the stuff I visit a lot, I know the URL. For everything else I google.
20:57 masak Moukeddar: I admit it was a bit excessive. but I have lots of data on my browsing habits.
20:58 Moukeddar the idea of server DB is pretty interesting i must say
20:58 moritz I only uee bookmarks for pages that are notoriously hard to google
20:59 moritz usually if I forget the name of something :-)
20:59 mj41 joined #perl6
20:59 envi_laptop left #perl6
21:02 Moukeddar the other day , me and my friends were discussing ,they thought the whole idea of reusability and maintainability was tidious as they only sell the soft one, then i remembered a saying from some infoQ talks, if you do that , better turn into nursering
21:02 moritz Moukeddar: in English it is common not to a space after a comma, not before it
21:03 masak I'm not 100% sure about reusability, but I'd accept maintainability willingly in just about any project. :)
21:03 [particle] joined #perl6
21:04 Moukeddar thanks for pointing that out moritz,bad habits :)
21:04 Moukeddar so masak every piece of software is unique ?
21:05 masak Moukeddar: moritz said "after, but not before" :P
21:05 Moukeddar like this, heh?
21:05 masak \o/
21:05 sbp in early modern usage they often used to compress the space out when printing. and they used to put spaces before colons and semi-colons, which drives me up the wall. they also used long s with a half bar, so what do they know
21:06 masak Moukeddar: I'm not saying reuse is bad. I'm saying it's not as common as we like to believe, and we perhaps shouldn't optimize for it as much as we sometimes do.
21:06 masak Moukeddar: the problem with DRY is that it introduces coupling.
21:07 Moukeddar right, strive for lwo coupling and high cohesion
21:07 Moukeddar low*
21:07 masak aye.
21:07 masak and we tend to over-focus on the opposite problem, that of updating denormalized data.
21:07 masak because it's so visible.
21:08 moritz there's another reason
21:08 moritz there are simply fantastic tools for working with normalized data
21:08 Moukeddar like ?
21:09 moritz DBs with referential integrity checks, ORM mappers
21:09 Moukeddar i like ORM more :)
21:09 moritz the two work on very different levels
21:10 pmichaud jnthn: did you see http://gist.github.com/1025161 yet?  (rakudo-work is the key line)
21:10 masak ORMs are a solution to a problem we shouldn't be getting in the first place. at least according to the world view of Event Sourcing.
21:10 Moukeddar elaborate please
21:10 moritz masak: maybe, but then we'd have other problems
21:10 PhatEddy left #perl6
21:10 PerlJam masak: and SQL shouldn't exist according to Date and Codd too  :)
21:11 Moukeddar so NoSQL is the answer to that problem ?
21:11 pmichaud .oO( NQSQL? :)
21:11 EDevil joined #perl6
21:11 PerlJam NoSQL is just everyone re-discovering some old patterns are useful in a new context
21:11 EDevil left #perl6
21:12 Moukeddar so , it isn't the answer
21:12 PerlJam Moukeddar: there is no "the answer"
21:12 masak noSQL really means "non-relational". there are lots of good stuff out there besides relational, and not everything needs to be relational.
21:12 pmichaud "the answer?"  I thought this was #perl6  :-)
21:12 masak :P
21:12 Moukeddar lol
21:12 * Moukeddar stopped looking for the answer
21:13 pmichaud TMTOWTAI
21:13 PerlJam and infinite number of ways in fact :)
21:13 moritz pmichaud: so, register allocation really boosts regexes?
21:13 masak Moukeddar: one of the nice things about DDD is that it allows you to have several "the answer" (several models) co-existing in your application.
21:13 pmichaud moritz: not quite :)
21:13 pmichaud rx.t is one long mainline sub
21:13 Moukeddar TMTOWTAI ? looks like a martial art name :)
21:13 pmichaud i.e., it's a *ton* of regex matches one right after another
21:13 moritz pmichaud: ah
21:13 moritz pmichaud: so more "huge subs"?
21:13 masak Moukeddar: "There's More Than One Way To Answer It" :P
21:14 pmichaud which meant it became a single Parrot sub with a lot of registers (many of which end up holding Match objects)
21:14 pmichaud so register allocation boosts long mainlines :)
21:14 pmichaud (or any long block, for that matter)
21:15 Moukeddar i understand now, there's no universal solution :)
21:16 jnthn pmichaud: Nice side-effect. :)
21:16 jnthn pmichaud: I'd never have guessed so much of compiling that tests was spent in reg alloc. :/
21:16 pmichaud well, I suspect it's not just reg alloc but also gc
21:17 ab5tract left #perl6
21:17 masak Moukeddar: well, each solution is "universal" from its own point of view. it's just that there are parallel universes :P
21:17 pmichaud same with atan2.p6 -- it's a longish mainline
21:18 pmichaud here's the impact on spectests  (actually, the 'commontest' subset):  https://gist.github.com/1025199
21:19 masak rakudo: given 42 { .say; redo }
21:19 p6eval rakudo ae5bea: OUTPUT«42␤  in <anon> at line 22:/tmp/NT6IvWKZbk␤»
21:19 pmichaud I suspect nothing catches the redo exception.
21:20 bluescreen10 left #perl6
21:20 jnthn pmichaud: Over 4% improvement...I'll take that. :)
21:20 jnthn pmichaud++
21:21 masak pmichaud: I suspect so too.
21:21 masak pmichaud: shouldn't the redo exception contain something like "can't redo outside of a loop"?
21:22 Moukeddar well , thank you guys for all the info, corrections and clarifications
21:24 moritz well, the corrections regarding the commas + whitespace didn't help much :/
21:25 Moukeddar it was helpful (for me)
21:25 jnthn masak: Perhaps the default handler should, yes.
21:25 masak jnthn: no, I was thinking the control exception itself...
21:25 Moukeddar i'll be back later with more questions :)
21:25 Moukeddar have a nice day/night
21:25 masak moritz: you usually like when we put whitespace around our binary operators :P
21:26 masak Moukeddar: \o
21:26 moritz masak: usually.
21:27 alester left #perl6
21:29 masak rakudo: repeat until True { say "OH HAI" }
21:29 p6eval rakudo ae5bea: OUTPUT«OH HAI␤»
21:29 masak do-once block :)
21:29 Moukeddar left #perl6
21:30 tadzik rakudo: say not so Cool
21:30 p6eval rakudo ae5bea: OUTPUT«Bool::True␤»
21:30 moritz rakudo: say so not Cool
21:30 p6eval rakudo ae5bea: OUTPUT«Bool::True␤»
21:31 wamba left #perl6
21:31 masak rakudo: say so not True or Cool
21:31 p6eval rakudo ae5bea: OUTPUT«Bool::False␤»
21:32 tadzik rakudo: say not so True or Cool
21:32 p6eval rakudo ae5bea: OUTPUT«Bool::False␤»
21:33 masak rakudo: say True or False and Cool or Mu or so Real
21:33 p6eval rakudo ae5bea: OUTPUT«Bool::True␤»
21:33 tylercur1is rakudo: not True or Cool; ? so say not True or Cool
21:33 p6eval rakudo ae5bea: OUTPUT«Bool::False␤»
21:33 Trashlord left #perl6
21:33 masak rakudo: say so not True and Real and not Cool
21:33 tadzik rakudo: say Rat.can(Mu)
21:33 p6eval rakudo ae5bea: OUTPUT«Bool::False␤Method 'Bridge' not found for invocant of class 'Failure'␤  in 'infix:<!=>' at line 3749:CORE.setting␤  in 'infix:<!=>' at line 3749:CORE.setting␤  in 'Bool' at line 3548:CORE.setting␤  in main program body at line 1:/tmp/E4_vcsd3yS␤»
21:33 p6eval rakudo ae5bea: OUTPUT«␤»
21:34 tadzik :(
21:34 flussence rakudo: say 1 XZXZXXXZXZZXZXZZ 2; # I still like this piece of inanity
21:34 p6eval rakudo ae5bea: OUTPUT«(timeout)»
21:34 tadzik how do you turn Perl into Ruby?
21:34 PerlJam you forgot to use R and S in there too
21:35 tadzik rakudo: my $a = "perl"; $a++ for (1..444); say $a
21:35 p6eval rakudo ae5bea: OUTPUT«pfin␤»
21:35 flussence you got a fish
21:35 flussence or part of one...
21:36 flussence (I think the number was more like 5347)
21:37 masak tadzik: don't do it! you'll get de-karma'd :P
21:37 tadzik 44994 gives me rtfz
21:37 tadzik I think it wants to tell me something
21:38 sftp joined #perl6
21:39 y3llow_ joined #perl6
21:40 masak tadzik: to read the zanual?
21:40 flussence ride the zebras?
21:40 y3llow left #perl6
21:40 pothos_ joined #perl6
21:40 flussence (they float!)
21:40 y3llow_ is now known as y3llow
21:40 tadzik they do?
21:41 Psyche^ joined #perl6
21:41 pothos left #perl6
21:41 tadzik zannual – Zebras' Annual
21:41 pothos_ is now known as pothos
21:43 thou left #perl6
21:44 pmichaud loliblogged: http://pmthium.com/2011/06/14/rakudo-no​m-reaches-milestone-no-more-pir-files/
21:44 Patterner left #perl6
21:44 Psyche^ is now known as Patterner
21:45 masak \o/
21:45 masak pmichaud++
21:45 lichtkind pmichaud is always worth to be ++ :)
21:46 TimToady to turn Perl into Ruby you just have to monkey patch a .times method into Int
21:46 jnthn pmichaud++ # nice post :)
21:46 benabik pmichaud: I think you goofed the link to the nom branch.
21:46 flussence ...and define circumfix:«| |», and you're done (more or less)
21:47 TimToady well, that's not gonna fly, unless you remove prefix:<|>
21:47 pmichaud benabik: thanks, I caught that also.  Fixed now.
21:48 TimToady and shoot all the mathematicians who want it for abs()
21:48 flussence (maybe it could use those ¦¦ things that no keyboard lets you type directly...)
21:49 tadzik use MONKE^WMATH_SYNTAX;
21:53 flussence .oO( why does unicode give mathematicians several thousand codepoints, but chemists get a benzene ring buried in "Miscellaneous Technical Symbols"? )
21:53 lumi_ left #perl6
21:53 shiftless left #perl6
21:54 lumi_ joined #perl6
21:54 TimToady and why are there no dominoes above 🂓
21:54 masak flussence: because chemists are lousy bribers.
21:56 * flussence is shocked to find out there really are no double-nines :(
21:56 Maddeth left #perl6
21:57 masak .u 🂓
21:57 phenny U+1F093 DOMINO TILE VERTICAL-06-06 (🂓)
21:57 masak "Double-six ought to be enough for anyone."
21:58 masak blog post! http://strangelyconsistent.org/b​log/june-14-2011-logic-operators
21:58 flussence that's the first time I've seen irssi and/or urxvt give up and just display a �...
21:59 TimToady obviously they should have made dominoes into combining characters, then just defined one end of them
22:01 tyatpi_ left #perl6
22:01 masak "Learn combining characters through dominoes!"
22:03 ymasory left #perl6
22:03 ymasory joined #perl6
22:04 ymasory left #perl6
22:05 supernovus joined #perl6
22:06 flussence I recall seeing a text editor on some really old computer that could do overstrike characters... you'd get Ø with O-backspace-/
22:07 TimToady let me guess, an APL terminal... :)
22:08 masak or INTERCAL.
22:09 flussence heh, I never got to play with big toys, I might've been thinking of RISC OS...
22:09 supernovus � rly
22:10 dalek rakudo/nom: b2e9a57 | pmichaud++ | README:
22:10 dalek rakudo/nom: Update README.
22:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b2e9a5713f
22:10 tokuhiro_ left #perl6
22:11 masak 'night, #perl6. tomorrow there's a game in the edublog, and then I must plan the other half of the month. :)
22:11 masak left #perl6
22:13 mj41 left #perl6
22:18 takadonet left #perl6
22:20 mikemol *applauds* http://pmthium.com/2011/06/14/rakudo-no​m-reaches-milestone-no-more-pir-files/
22:20 * mikemol is going to need to start reading up on NQP, so he can passively ruminate on a C++ implementation.
22:23 sorear hi mikemol
22:23 mikemol Where's the most comprehensive, comprehensible (if one doesn't know PIR or Perl6 extensively) description of NQP?
22:23 mikemol sorear: o/
22:24 sorear ping jnthn
22:24 mikemol Not sure I need to, now.
22:24 mikemol :)
22:25 sorear sorry
22:25 sorear jnthn: ping.  How should I factor "passing source location info to the meta model"?
22:25 benabik mikehh: I find nqp.git/t/nqp to be the most complete description
22:26 mikemol benabik: I'm going to need something that looks a bit more URL-like
22:26 sorear github.com/perl6/nqp
22:28 benabik mikemol: https://github.com/perl6/nqp/tree/master/t/nqp  It's the test files, but they're laid out in a simple sequence of features.
22:29 supernovus left #perl6
22:29 jnthn sorear: I thought I was clear enough before that I don't think you should be doing that.
22:29 jnthn I can't really explain how to factor something I think is the wrong factoring... :)
22:30 sorear jnthn: you made it clear that HOW methods shouldn't be calling "sorry"
22:30 jnthn sorear: Ah, OK.
22:30 sorear jnthn: but to emulate STD's error messages I need the source location of the original definition
22:31 jnthn sorear: Original definition of which things in particular?
22:31 sorear jnthn: For STD-equivalent functionality, package symbols and lexicals
22:31 sorear ideally also attributes and methods
22:32 sorear I've had more than one embarrassing bug in niecza caused by accidentally defining the same method twice
22:32 mberends left #perl6
22:32 sorear not that it's *essential* to have source locations for those
22:34 mberends joined #perl6
22:34 jnthn sorear: If you're going to put it in meta-objects then they're just attributes in the meta-object.
22:34 jnthn And make sure it's optional
22:35 jnthn Just have a "has int $!position" or some such.
22:36 sorear *nod*
22:36 * jnthn is mostly worrying about separation of concerns :)
22:37 * TimToady is mostly worried about separating the users from their concerns...
22:38 TimToady and in the real world, "separation of concerns" usually just results in finger pointing
22:38 Trashlord joined #perl6
22:42 lumi_ left #perl6
22:44 lumi_ joined #perl6
22:45 mtk left #perl6
22:49 dalek nqp: 8bc12e5 | jonathan++ | src/ (3 files):
22:49 dalek nqp: Enrich type checking a bit to support some more ways of doing type checks.
22:49 dalek nqp: review: https://github.com/perl6/nqp/commit/8bc12e5f65
22:53 Zapelius left #perl6
23:00 whiteknight joined #perl6
23:07 cdarroch left #perl6
23:07 dalek rakudo/nom: 692a140 | jnthn++ | / (4 files):
23:07 dalek rakudo/nom: Sketch out SubsetHOW. Untested.
23:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/692a1402d5
23:07 dalek rakudo/nom: 22efa4f | jnthn++ | src/core/Code.pm:
23:07 dalek rakudo/nom: Code.ACCEPTS
23:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/22efa4fb43
23:07 dalek rakudo/nom: 888d2f0 | jnthn++ | src/binder/sixmodelobject.h:
23:07 dalek rakudo/nom: Chase 6model API update.
23:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/888d2f0786
23:07 dalek rakudo/nom: cb6bc83 | jnthn++ | src/Perl6/Metamodel/SubsetHOW.pm:
23:07 dalek rakudo/nom: More twiddling with SubsetHOW's checking code.
23:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cb6bc8302c
23:07 dalek rakudo/nom: 7fde1b2 | jnthn++ | src/core/traits.pm:
23:07 dalek rakudo/nom: Tentative 'of' trait, for use with subset.
23:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7fde1b2fdc
23:07 dalek rakudo/nom: a181c92 | jnthn++ | tools/build/NQP_REVISION:
23:07 dalek rakudo/nom: Bump NQP revision to get latest 6model core.
23:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a181c92d22
23:13 thou joined #perl6
23:17 Chillance left #perl6
23:18 Trashlord left #perl6
23:28 daniel-s joined #perl6
23:32 Tedd1 left #perl6
23:34 Tedd1 joined #perl6
23:35 betterworld left #perl6
23:36 betterworld joined #perl6
23:37 lumi_ left #perl6
23:38 lumi_ joined #perl6
23:44 jnthn nom: say Int ~~ Cool
23:44 p6eval nom: OUTPUT«Could not find sub &coerce-smartmatch-result␤current instr.: '_block1002' pc 105 ((file unknown):139) (:1)␤»
23:44 dalek rakudo/nom: c6d592d | jnthn++ | src/Perl6/ (3 files):
23:44 dalek rakudo/nom: First incomplete cut of subset type declaration. Seems to essentially work, at least with a few basic tests.
23:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c6d592d277
23:44 dalek rakudo/nom: 53ad49c | jnthn++ | src/Perl6/Metamodel/SubsetHOW.pm:
23:44 dalek rakudo/nom: A refinement type should carry the methods of its refinee.
23:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/53ad49c35f
23:49 hudnix left #perl6
23:54 [particle] left #perl6
23:54 [particle] joined #perl6
23:54 hudnix joined #perl6
23:55 TBA2 left #perl6
23:59 dalek rakudo/nom: 297e88c | jnthn++ | src/Perl6/Actions.pm:
23:59 dalek rakudo/nom: Unbust smartmatching.
23:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/297e88c283
23:59 dalek rakudo/nom: dbbd98d | jnthn++ | LHF.markdown:
23:59 dalek rakudo/nom: A couple more bits of LHF to nom.
23:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dbbd98db8b

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

Perl 6 | Reference Documentation | Rakudo