Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-06-05

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 TimToady we used to do backtracking by throwing exceptions
00:00 sorear We... did?
00:00 TimToady yeah, it didn't work out to well :)
00:01 TimToady that's why we have xact chains now
00:01 sorear I suppose that makes some kind of sense
00:01 sorear exceptions cut the stack, which is the spine of the call graph, which could be the spine of a search tree
00:02 TimToady most of the time we try to avoid exceptions in P6, because it tends to mess up any kind of parallel processing
00:02 TimToady that's why we now have interesting values of "undef" instead
00:04 sorear yet we've redefined "return" to be a kind of throw
00:10 pnate joined #perl6
00:14 TimToady sure, but that's mostly to *find* the place we're returning from, and the return parcel doesn't care
00:15 justatheory joined #perl6
00:18 astrojp joined #perl6
00:23 colomon TimToady: on Match (re S05 changes), shouldn't that be Stringy and Numeric rather than Str and Num?
00:24 colomon TimToady:  or should it be both?
00:28 pugssvn r31117 | lwall++ | [S05] some clarifications suggested by sorear++
00:31 TimToady colomon: dunno what you mean...line number?
00:31 TimToady dinner &
00:32 colomon I'm looking at r 31116, you made Match do Positional and Associational ... oh, wait, that wasn't your change, wayland did that.
00:33 colomon wayland added  method Str() and method Num() to Match, and I'm suggesting they should be Stringy and Numeric.
00:34 * colomon could have sworn that was a TimToady patch.  Must be hallucinating from lack of sleep again.
00:36 lue .oO[what's happening again, the hallucinating or lack of sleep? :)]
00:39 colomon .oO(maybe I just think I spent half of last night rocking a feverish toddler)
00:40 jnthn Aww.
00:40 lue :/
00:40 * jnthn managed to get on top of @stuff today so should have a good chunk of Rakudo hacking time tomorrow. o/
00:40 colomon \o/
00:41 lue for bless(), does it have to be a hash? i.e. would bless(*, $calar) be ok?
00:42 colomon lue: well, git log confirms that I pushed committed a Rakudo patch at 5:12 am local time...
00:43 lue .oO(According to the git record, the defendant did not pushed a commit at 7:00 Tuesday morning. Therefore, he did not commit the crime!)
00:44 lue .oO(But Crime::Murder was commited by the defendant at 7:15, according to its git record!)
00:46 lue do you have to pass a hash on to bless()? The spec seems to say so...
00:46 dalek book: 07fd0ad | chromatic++ | src/subs-n-sigs.pod:
00:46 dalek book: Edited chapter, leaving a couple of author notes.
00:46 dalek book: review: http://github.com/perl6/book/commit/07fd0ad803fd1827c6efe6ad1a87c7332cc63129
00:48 colomon lue: I'm no expert on bless, but... errr.... no?
00:49 lue OK. [I feel like desiging P6 tshirts, this makes the pun a bit easier] :)
00:49 colomon self.bless(*, :numerator($numerator), :denominator($denominator));
00:49 colomon for instance.
00:49 * Tene writes Perl 6 code for the first time in months.
00:50 colomon you might have to pass named pairs, if you want members to be initialized...
00:50 ash___ colomon: don't hashes get flattened into kw slurps?
00:51 colomon ash___: I think so, but you don't have to pass a hash (which is what lue asked)
00:52 ash___ yeah, but functionally a hash is equivalent  to named params in this case, i think? that could be way wrong...
00:53 colomon the named arguments go into a slurpy hash in the bless implementation, I think.
00:53 jnthn I believe so, yes.
00:53 jnthn ash___: If you put a hash there you need to | it
00:54 jnthn ash___: Otherwise it'll get passed as a positional parameter, which will be no use at all. :-)
00:54 colomon jnthn++
00:54 ash___ thanks for the info jnthn++
00:56 * jnthn is impressed that RT is still at 614 tickets - we seem to be clearing some up as well as the new ones being opened.
00:56 jnthn I'm hoping to make a little dent tomorrow too :-)
00:56 jnthn Where "tomorrow" = after sleep :-)
00:57 patspam joined #perl6
00:59 lue so bless(*, $you) should be all right?
00:59 lue g'night jnthn o/
01:00 colomon lue: If I understand jnthn correctly, I don't think $you will do anything, so I guess it's all right.  :)
01:00 lue :D I smell pun in that last statement colomon.
01:01 jnthn lue: Oh, I didn't say I was sleeping yet. :-)
01:01 colomon I'm too tired to pun intentionally.
01:01 jnthn lue: I'm too awake.
01:01 jnthn lue: But not awake enough to code.
01:01 jnthn And, well, I wrote enough code today. :-)
01:01 colomon I think I'm going to make an amaretto sour, since I have neither whisky nor cider in the house.
01:02 lue .oO( I've heard about this. It's like limbo, but for coders. I think it's called 'end-user' :) )
01:03 colomon oh bother, I can't actually afford the calories in a drink. :(
01:03 jnthn :(
01:04 colomon stupid lack of exercise.  I need to do something about that.
01:04 * jnthn knows the problem all too well
01:04 jnthn Though there are more walking opportunities around where I live now once I do get outside.
01:05 lue .oO(I exercise my typing fingers all day. I don't get why I'm not getting results)
01:05 colomon it's kind of where being a father has hit me the hardest.  there has been nothing resembling a regular schedule in our house for the last 21 months.
01:05 lue .oO(And an aerobic brain workout too, not to mention :) )
01:06 jnthn colomon: At least you have a good reason. :-)
01:06 jnthn I could certainly get out and walk a bunch more than I do.
01:07 jnthn Thing is, I really like to do it as well once I get going.
01:10 colomon I loved walking the dog first thing in the morning and then nordic tracking before lunch.  that was a good schedule....
01:18 plobsing joined #perl6
01:21 masonkramer joined #perl6
01:23 lue afk # and then making some more merchandise!
01:43 masonkramer has anyone figured out how to type «» hyperators on a mac by pressing ⌥< && ⌥> ?
01:44 ash___ «»
01:44 ash___ « = alt + |
01:45 ash___ » = alt + | + shift (thats a bar btw)
01:45 masonkramer oh, that's useful
01:45 masonkramer I'd rather have them on <>, but I guess it would be easier to acustom myself to the default
01:45 masonkramer thanks
01:46 masonkramer it beats the heck out of the character pallette
01:46 masonkramer palette
01:52 ash___ also useful is changing input modes to Unicode Hex Input
01:52 ash___ then you can give the hex of the unicode thing you want to input
01:52 ash___ so if you remember the unicode hex of the thing you want you can get to it real fast
01:56 skids joined #perl6
02:34 jaldhar joined #perl6
02:36 gbacon joined #perl6
02:37 sorear lue: bless doesn't actually do anything in rakudo currently
02:38 xinming_ joined #perl6
02:40 alester joined #perl6
02:45 satyavvd joined #perl6
02:52 pugssvn r31118 | allbery_b++ | [S05] typo
02:52 allbery_b I was amazed I still had my password...
03:08 ashleydev_ joined #perl6
03:13 TiMBuS joined #perl6
03:19 plainhao joined #perl6
03:19 * sorear starts trying to implement viv --emit-psq
03:27 lue sorear: oh. well, that's interesting. Guess rakudo's not up to sainthood yet :P
03:34 allbery_b <badtaste>hasn't had enough little boys yet</badtaste>
03:36 lue I suppose that's a good thing though. To be a saint, you'd have to be dead for 5 years...
03:36 lue (on a related note, how long since the pugs project 'died' ?)
03:41 diakopter sorear: !!!!
03:41 diakopter sweet!
03:41 diakopter sorear: just make up whatever API you need
03:42 diakopter name it well, and I'll know how to implement the API properly.
03:42 diakopter I'm not saying I'm not available to help design it, though
03:45 diakopter sorear: if you svn co the perlesque repo, make sure to get r316 and not the latest
03:45 diakopter (I really should revert it...)
03:45 diakopter but, alas, afk&
03:48 dalek book: b3a2e1c | util++ | src/roles.pod:
03:48 dalek book: Fixed two bad POD keywords for programlisting sections - s/=being/=begin/
03:48 dalek book: review: http://github.com/perl6/book/commit/b3a2e1c3c75278fc3634025ee9c7a0ca4f431d4d
03:54 dalek book: 190bf45 | util++ | src/subs-n-sigs.pod:
03:54 dalek book: Fixed missing closing brace in code example
03:54 dalek book: review: http://github.com/perl6/book/commit/190bf4541bb9f1877ed7685e527d7d0ae1824895
03:59 sorear diakopter: where is the perlesque repo?
04:06 dalek book: 288b3d2 | util++ | src/subs-n-sigs.pod:
04:06 dalek book: Changed approximation of "e" to exact value in code example
04:06 dalek book: review: http://github.com/perl6/book/commit/288b3d24db964898bcf8c76b7f554700e5db098b
04:09 mberends sorear: perlesque resides in a subtree of http://code.google.com/p/csmeta/
04:10 mberends afk &
04:21 sorear thanks
04:22 sorear rakudo: {say"$_({.perl})"}("\{say\"\$_(\{.perl\})\"\}")
04:22 p6eval rakudo 7c83e6: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 11␤»
04:25 astrojp left #perl6
04:26 allbery_b doesn't quite quine yet, I guess
04:28 sorear I probably just screwed up the quoting, somewhere
04:28 sorear rakudo: say "$_"
04:28 p6eval rakudo 7c83e6: OUTPUT«Any()␤»
04:28 sorear rakudo: say "$_()"
04:28 p6eval rakudo 7c83e6: OUTPUT«invoke() not implemented in class 'Any'␤  in main program body at line 11:/tmp/Ww7wgNTdaJ␤»
04:29 lue rakudo: {say "$_({.perl})"}("\{say \"\$_(\{.perl\})\"\}")
04:29 p6eval rakudo 7c83e6: OUTPUT«invoke() not implemented in class 'Perl6Str'␤  in <anon> at line 11:/tmp/jxpRMpKZTk␤  in main program body at line 11:/tmp/jxpRMpKZTk␤»
04:29 sorear rakudo: say $_."({.perl})"
04:29 p6eval rakudo 7c83e6: OUTPUT«===SORRY!===␤Quoted method name requires parenthesized arguments at line 11, near ""␤»
04:29 sorear rakudo: say $_~"({.perl})"
04:29 p6eval rakudo 7c83e6: OUTPUT«Any()(Any)␤»
04:29 sorear rakudo: {say $_~"({.perl})"}('{say $_~"({.perl})"}')
04:29 p6eval rakudo 7c83e6: OUTPUT«{say $_~"({.perl})"}("\{say \$_~\"(\{.perl})\"}")␤»
04:30 sorear rakudo: {say $_~"({.perl})"}("\{say \$_~\"(\{.perl})\"}")
04:30 p6eval rakudo 7c83e6: OUTPUT«{say $_~"({.perl})"}("\{say \$_~\"(\{.perl})\"}")␤»
04:34 wasy_ joined #perl6
04:34 lue hrrm... why couldn't I call slurp on a Str, like so: $tring.slurp()
04:35 ashleydev_ sorear: what are you working on?  I've seen your name pop up a lot in the irclog lately but I haven't taken much time to see what's really been going on lately around perl6...
04:38 * allbery_b spectests his first ever rakudo build. (yeh, I'm slow)
04:38 colomon lue:  what do you think slurp on a string would do?
04:39 sorear ashleydev_: http://en.wikipedia.org/wiki/Quine_(computing)
04:39 sorear Or do you mean longer ago
04:40 allbery_b the quinetessence of perl 6
04:40 ashleydev_ I think I saw you doing a bit with STD
04:41 sorear ah, yes
04:42 sorear yeah, I'm working on the STD ecosystem
04:42 sorear I recently wrote a summary of exactly what that is
04:42 ashleydev_ yay, link?
04:42 lue I thought it would DWIM and use the string as a path/filename :)
04:42 sorear looking
04:42 sorear pugs svnweb is slow
04:44 sorear http://perlcabal.org/svn/pugs/view/src/perl6/README
04:44 lue [again, in the strange urge to create P6 merchandise, the latest pun is $drink.slurp();]
04:47 allbery_b slurpee arrays?
04:47 allbery_b hm, a slurpy array thingy involving @slurpee...
04:49 colomon lue: you can do slurp($drink)
04:49 lue I know, that's what I did.
04:49 lue It's perfect for a coffee mug :)
04:50 envi^home joined #perl6
04:51 colomon my guess is $drink.slurp isn't there because it feels odd to put file commands in the string class
04:51 kaare joined #perl6
04:53 lue Yeah, I see that.
04:53 allbery_b trying to figure out the relationship between strings and pathnames seems to be a common modern language/library issue
04:55 colomon I think p6 is moving in the direction of having an IO class which can be constructed from a string.
04:55 lue hows about this: when you say $tring.slurp(), slurp() treats it as a string containing a filename w/ relative path [more]
04:56 lue if it can't be found, a warning is issued, and everything continues.
04:56 colomon so in the long run, something like $drink.IO.sluro will probably work
04:56 lue colomon: ooh, that's better.
04:57 lue .oO( dwim($drink.slurp()) )
04:59 * lue ponders the meanness of a compiler giving ID-10T and PEBKAC errors, especially in parsefails
05:03 allbery_b like sudo insults mode?
05:04 wasy_ joined #perl6
05:07 dalek book: 9eacc6b | util++ | README:
05:07 dalek book: Fixed typo in distro name - s/Ununtu/Ubuntu/
05:07 dalek book: review: http://github.com/perl6/book/commit/9eacc6b85528a11d73eef8fb1470ed679d444f51
05:07 dalek book: c88e280 | util++ | src/subs-n-sigs.pod:
05:07 dalek book: Fixed missing ";" in code example
05:07 dalek book: review: http://github.com/perl6/book/commit/c88e2809bf7a67966e5682af7c3c29199e1310be
05:07 lue ===SORRY!=== Expected `;', got `\n'. Error Code: ID-10T # something like that :)
05:08 lue [the book update above is pure coincidence, I swear!]
05:09 eternaleye joined #perl6
05:11 pugssvn r31119 | sorear++ | [viv] A start at documentation
05:12 synth joined #perl6
05:15 colomon afk # turning over toddler rocking to my wife for a few hours
05:25 pragma_ joined #perl6
05:27 pbot joined #perl6
05:30 sorear pragma_: help
05:30 pragma_ sorear: hi.
05:30 sorear oh, sorry, I took the /bot/ in your cloak literally
05:31 pragma_ left #perl6
05:31 pragma_ joined #perl6
05:31 pragma_ What bot?
05:32 pragma_ Oh, did it show a changing host message when I changed nicks too?
05:32 sorear yes
05:32 sorear 22:25 -!- pragma_ [~pragma@unaffiliated/pragma/bot/candide/x-109842] has joined  #perl6
05:32 pragma_ It should send the changing host message to the user too, so they know about it happening :/
05:32 sorear it has since been removed.
05:33 pragma_ Yeah, I quickly identified to nickserv as the pot so I could group the pbot3 nick with its account.
05:33 sorear Aha.
05:33 sorear What does pbot do, then?
05:34 shrub joined #perl6
05:34 pragma_ It's mostly a factoid bot.
05:34 sorear For #perl6 or elsewhere?
05:34 pragma_ elsewhere, I'm afraid.
05:35 pragma_ But it's written in Perl...5!
05:35 sorear I think ~75% of IRC bots are
05:35 pragma_ I didn't really mean to bring attention to it by the nick spam.
05:36 sorear it's a suprisingly good language for the task
05:36 TiMBuS i have a bot written i nperl 6
05:36 TiMBuS it doesnt work on rakudo head or id make it join here :(
05:36 pragma_ http://www.iso-9899.info/wiki/Candide
05:37 dju_ joined #perl6
05:40 sorear mmm.
05:40 sorear TiMBuS: does it work on rakudo alpha?
05:41 TiMBuS sorear, yes it does
05:42 TiMBuS the regexes are broken in ng and im waay too lazy to do any kind of manual string manipulation
05:45 TiMBuS does rakudo have a working threading implementation? if so, i could work on adding some useful modules while i wait for a fix
05:54 sorear define "broken"
05:55 sorear there have been major changes to master regex handling in the last 2 days
05:55 sorear (and no, no threads)
06:03 diakopter sorear: how can I help you with emit-psq
06:04 rgrau joined #perl6
06:10 sorear I want to break ground on a second target, so I can see how viv works in a multi-targetted context; this is why I'm trying to design emit-psq
06:10 diakopter :)
06:10 diakopter (yay)
06:10 moritz_ good morning
06:10 diakopter moritz_: hi :)
06:11 sorear to this end, I need to 1. get perlesque installed 2. study how it works 3. mediate between diakopter and TimToady to find the perfect compromise level of functionality for viv
06:11 sorear (also I just got sidetracked)
06:12 diakopter ho ho ho; this will be fun!
06:12 rgrau moritz_: morning
06:12 diakopter hrm; I probably should make perlesque HEAD build again
06:13 * sorear wonders whether to preemptively apply for a csmeta commitbit
06:14 sorear What's the difference between the Sprixel in csmeta and the Sprixel in pugs?
06:15 diakopter lolz.  the sprixel in pugs is in/for JS
06:15 diakopter the sprixel in csmeta is for CLR
06:15 diakopter the sprixel in pugs can be svn rm, imho
06:15 sorear did you write it?
06:15 diakopter yes :P
06:16 diakopter it tried to interpret the yaml ast from std directly, single-pass
06:16 sorear yeaaaghh
06:16 sorear you do not want to touch that yaml
06:16 diakopter well, not the yaml :0  ToJS.pm
06:16 diakopter see ToJS.pm
06:16 diakopter in src/perl6
06:17 diakopter it's a JS emitter for Perl objects
06:17 diakopter not JSON, since JSON can't handle cyclical/recursive/multiple references
06:17 lue tomorrow, I shall finish up on my P6 merchandise. But for now, afk.
06:17 sorear as far as I am concerned, the YAML output from viv is only good for debugging
06:17 sorear have you heard of JSPON?
06:18 diakopter no
06:18 sorear it's an extension of JSON that handles anchors
06:18 diakopter oh look, I invented it
06:18 sorear it's being standardized by some ORM/object persistence people
06:18 sorear oh
06:18 diakopter heh, not really
06:18 diakopter but my system does the same sortof thing
06:18 dalek csmeta: r318 | diakopter++ | trunk/Sprixel/ (10 files):
06:18 dalek csmeta: [perlesque] a known working state, I think.  still lots of dead/wip C#
06:18 dalek csmeta: review: http://code.google.com/p/csmeta/source/detail?r=318
06:18 diakopter it uses the perl ref "address" as the obj id
06:19 diakopter sorear: actually I'd already added you to csmeta, preemptively
06:19 diakopter I think
06:19 diakopter maybe not
06:20 diakopter which goog account do you want added
06:20 sorear let me try to find out if I *have* a goog account... :/
06:21 sorear google code seems to think my email address is a valid username
06:21 sorear in-use
06:24 diakopter hm
06:24 Maddingu1 joined #perl6
06:25 sorear I suppose I should check if my password is any good
06:26 sorear yepp
06:26 diakopter I *thought* I emailed you b4
06:26 sorear trawl github
06:28 sorear next step: read the csmeta docs
06:28 diakopter har
06:28 diakopter they're minimal/out-of-date
06:29 sorear What's the deal with Sprixel/Microsoft/* ?
06:30 diakopter what do you mean "What's the deal with"?
06:30 sorear Why is there a big chunk of MS-copyright code in Sprixel?
06:30 diakopter they're great libraries
06:31 diakopter see the redistribution license they're released under
06:31 diakopter MS-PL
06:31 diakopter essentially Apache-ish
06:31 sorear yes, but why are they bundled?
06:31 diakopter closer to BSD though
06:31 diakopter why not?
06:32 diakopter how else would they be obtained
06:32 sorear because I've never used .NET before and I have no idea how much its automatic dependency installation system does or doesn't suck
06:32 sorear I'm spoiled by CPAN, ok
06:32 diakopter "automatic dependency installation system" "what's that?" ;)
06:33 diakopter let's be clear; .NET is Microsoft's CLR; you'll likely use Mono, Novell's CLR
06:33 diakopter CLR is the runtime, CLI is the "standard" (Common Language Infrastructure)
06:34 diakopter CIL is the instruction set
06:34 diakopter CLS is the Common Language Spec
06:34 diakopter CTS is the Common Type System
06:34 sorear Ah, I had it backwards
06:35 sorear I thought .NET was the spec and CLR was the Microsoft implementation
06:35 moritz_ phenny: telly colomon that his last rakudo patch caused a failure in S02-builtin_data_types/hash.t
06:35 diakopter Passed 780/815,  95.71%
06:36 diakopter real 22m6.107s
06:36 diakopter that's 'make snaptest' after 'make clean'
06:37 sorear Is mono-complete the package I want?  (Debian)
06:38 diakopter no, unfortunately for debian you need mono 2.6.4
06:38 sorear 2.6.4 exactly?
06:38 diakopter or later
06:39 diakopter but it's the latest
06:40 diakopter it takes a long time to build
06:40 diakopter it bootstraps... many times.
06:40 diakopter save the make output; it's interesting
06:41 sorear note that my computer is approximately three and a half times slower than yours
06:41 sorear I'm having trouble finding mono 2.6.4
06:41 diakopter http://ftp.novell.com/pub/mono/sources/mono/mono-2.6.4.tar.bz2
06:41 sorear mono-project.com is offering me lots of ways to download 1.x
06:41 sorear which probably won't work
06:42 sorear ah, there it is
06:42 diakopter (see the link above)
06:42 sorear thanks
06:42 sorear do I want any of the other files?
06:42 diakopter which other files
06:43 diakopter in that dir?
06:43 diakopter it took about an hour to build mono on that computer, iirc
06:44 diakopter so 3.5 of hotness for you I guess
06:44 diakopter hm, maybe not an hour.  at least a half hour.
06:44 diakopter it was a while ago.
06:46 sorear heh.  I've seen far worse
06:46 sorear the three-stage bootstrap of GHC kept on for a good seven hours
06:47 sorear (Rakudo 2010.03 took longer, but it was using 800% of available memory and thus didn't satisfy "hotness")
06:47 Tene phenny: tell masak to check for commits in web
06:47 phenny Tene: I'll pass that on when masak is around.
06:47 diakopter I'd suggest waiting until late morning tomorrow (after I sleep and tidy a bunch of things up in the perlesque repo tomorrow morning) before tackling perlesque
06:48 diakopter I wouldn't want you to get discouraged too quickly by all the mess
06:48 sorear by the time mono finishes compiling, I'll be asleep
06:48 sorear by the time I wake up, it'll be late morning EST
06:48 diakopter ok; I'm in PDT
06:48 diakopter sleep&
06:53 jaldhar joined #perl6
07:00 masonkramer_ joined #perl6
07:07 Ross joined #perl6
07:13 [mark] joined #perl6
07:13 shrub hello perlers
07:13 shrub I may have found a bug in rakudo
07:13 shrub came here to see if it's known
07:14 shrub ./perl6 -e 'say "" .. ""'
07:14 shrub or " " .. " "
07:14 shrub runs out of memory
07:23 sorear hello shrub
07:23 shrub hi
07:23 sorear I'm not sure if that's a bug
07:23 shrub ok
07:23 sorear rakudo: ("" .. "").WHAT.say
07:23 p6eval rakudo 7c83e6: OUTPUT«Range()␤»
07:23 sorear rakudo: ("" .. "").batch(10).Str,say
07:23 p6eval rakudo 7c83e6: OUTPUT«Method 'batch' not found for invocant of class 'Range'␤  in main program body at line 11:/tmp/Tp2JvZJAKD␤»
07:23 sorear rakudo: ("" .. "").batch(10).Str.say
07:24 p6eval rakudo 7c83e6: OUTPUT«Method 'batch' not found for invocant of class 'Range'␤  in main program body at line 11:/tmp/f9Q1qtkG9g␤»
07:24 sorear rakudo: ("" .. "").^methods.Str.say
07:24 p6eval rakudo 7c83e6: OUTPUT«excludes_min excludes_max ACCEPTS to min max fmt iterator new bounds perl from Int list Num eager elems Seq Str ucfirst substr log10 tan cos bytes fmt pred acosec sinh Numeric asinh cosech trim asec trim-leading chr acotanh floor sech asech rand truncate round sqrt asin split
07:24 p6eval ..exp c…
07:24 sorear rakudo: ("" .. "").^methods(:local).Str.say
07:24 p6eval rakudo 7c83e6: OUTPUT«excludes_min excludes_max ACCEPTS to min max fmt iterator new bounds perl from␤»
07:24 sorear rakudo: ("" .. "").iterator.batch(10).Str.say
07:24 p6eval rakudo 7c83e6: OUTPUT«         ␤»
07:24 sorear rakudo: ("" .. "").iterator.batch(10).perl.say
07:24 p6eval rakudo 7c83e6: OUTPUT«("", "", "", "", "", "", "", "", "", "")␤»
07:24 sorear there are 2 issues here
07:25 sorear 1 is that ("" .. "") is producing an infinite list
07:25 sorear this may or may not be correct; I'd need to double-check the spec
07:25 shrub aha
07:25 sorear 2 is that "say" doesn't handle infinite lists correctly
07:25 sorear this is a known issue, being worked on by pmichaud++
07:25 shrub I see
07:26 shrub well actutally I ran into the problem when my program issues
07:26 shrub " " .. " "
07:26 shrub out of some computed values
07:26 shrub that hung and ran out of memory too
07:26 shrub I discovered the empty string version when experimenting
07:26 shrub What should " " .. " " return?
07:27 shrub In perl 5 it returns " "
07:27 TiMBuS id wager that's what it should be
07:28 shrub That's what I expected it to be... I solved it by detecting in advance and just using " " myself
07:28 shrub This didn't happen for "A" .. "A", etc...
07:28 TiMBuS also sorear, re: the broken regexes. it seems they don't capture properly
07:28 TiMBuS sorry for the late reply
07:29 TiMBuS i found a bug on the rt about it though
07:31 sorear shrub: As far as I can tell, S03 has nothing to say on that matter.
07:32 yinyin joined #perl6
07:32 sorear TimToady: What should " " .. " " do?  In Rakudo it returns " " xx *
07:32 shrub ok
07:32 Ross joined #perl6
07:33 shrub well it certainly surprised me, a complete newbie to Perl 6 ;-)
07:34 sorear there's a well-observed phenomenon that DWIM languages, when they fail, fail hard
07:36 shrub hehe... yes well I've worked around it in my code (which was only messing about anyway) but just wondered if I should submit a bug report.
07:44 moritz_ please do
07:44 moritz_ mailto:rakudobug@perl.org
07:44 shrub ok I will do... thanks
07:53 shrub Ok. bug report sent. Thanks for your help.
08:26 eternaleye rakudo: my $foo = -> $x { leave( $x + 10 ) }; say $foo.(5);
08:26 p6eval rakudo 7c83e6: OUTPUT«Could not find sub &leave␤  in <anon> at line 11:/tmp/zGHjN98bee␤  in main program body at line 11:/tmp/zGHjN98bee␤»
08:27 eternaleye I find that my biggest ponies are somewhat surprising. 'leave()' and Whatever currying, the first because it simplifies lambdas so, the latter because I got used to it on alpha
08:32 sorear we have whatever currying right now ...
08:32 sorear rakudo: (* * *)(2,3).say
08:32 p6eval rakudo 7c83e6: OUTPUT«6␤»
08:36 moritz_ we have partial whatever-currying
08:37 moritz_ rakudo: say (3 + * * 4).(2)
08:37 p6eval rakudo 7c83e6: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤  in 'Cool::Numeric' at line 1538:CORE.setting␤  in 'Cool::Numeric' at line 1539:CORE.setting␤  in 'infix:<+>' at line 5466:CORE.setting␤  in main program body at line 11:/tmp/25xL4CGb7N␤»
08:54 Su-Shee joined #perl6
08:57 szabgab I am writing my Perl 6 slide for LinuxTag
08:57 szabgab what shall I say date wise about Rakudo * ?
08:57 szabgab June ?
08:57 szabgab "any day now" ?
09:06 ejs joined #perl6
09:07 meppl joined #perl6
09:16 cognominal *-day?
09:24 finanalyst joined #perl6
09:25 finanalyst sorear: I am having a problem with STD.pm, which is used in Padre for syntax checking. Could you help?
09:37 azert0x joined #perl6
09:45 ejs joined #perl6
09:52 pmurias joined #perl6
09:53 pmurias hi
09:53 finanalyst pmurias: hi
09:54 finanalyst do you have any experience with STD.pm?
09:56 pmurias mildew uses STD
09:56 pmurias so yes
10:01 pmurias finanalyst: why do you ask?
10:01 finanalyst pmurias: trying to get Padre to highlight perl6 programs properly.
10:02 finanalyst Padre works unless there are modules
10:02 finanalyst STD.pm cant find the modules
10:02 szabgab oh I just thought you might need to configure PERL6LIB before you start Padre
10:03 BrowserUk joined #perl6
10:03 finanalyst szabgab: will try that. did not occur to me as Rakudo was picking up the modules as installed
10:03 szabgab just a guess, I am not sure
10:05 pugssvn r31120 | pmurias++ | [mildew] dumping more things works
10:07 BrowserUk left #perl6
10:23 ejs joined #perl6
10:23 patrickas joined #perl6
10:23 patrickas morning
10:24 patrickas moritz_: I think the tests in hash.t are to blame and not colomon's patch
10:26 kensanata joined #perl6
10:39 xabbu42 joined #perl6
10:48 agentzh joined #perl6
10:54 finanalyst how do I get STD? Is it a git file?
10:58 linguist joined #perl6
10:59 finanalyst moritz_: I'm trying to get hold of STD. How do I get it? Cant find any documentation.
11:02 linguist left #perl6
11:03 colomon finanalyst: it's in the old pugs archive
11:04 finanalyst colomon: thanx. I was looking at it thru the web interface, but the repository seems to have changed
11:05 finanalyst is it still in an svn repository?
11:05 colomon http://svn.pugscode.org/pugs/src/perl6
11:05 colomon is the directory
11:06 finanalyst ok i think i am getting a handle on this. I had forgotten how to do it.
11:07 finanalyst an addition to the README on how to get just STD might be good
11:09 gbacon joined #perl6
11:09 jaldhar joined #perl6
11:10 Woody2143 joined #perl6
11:10 patrickas_ joined #perl6
11:11 patrickas_ colomon: is there a reason why in Any-list.pm we have proto sub first(Mu $test, @values) instead of proto sub first(Mu $test, *@values) ?
11:11 colomon patrickas_: same deal as map was.  almost certainly should be changed.
11:12 patrickas I guess someone should check all the protos at the end of the file and fix all of them
11:14 moritz_ patrickas: re hash and map, I'd like to get some spec clarification on that
11:15 patrickas moritz_ there was a discussion about it yesterday before colomon applied the patch
11:15 patrickas let me check the backlog
11:16 moritz_ ok, I'll backlog too
11:16 patrickas http://irclog.perlgeek.de/perl6/2010-06-04#i_2403549
11:18 moritz_ %hash would flatten, but $hash wouldn't # what TimToady++ said
11:18 moritz_ the tests uses %hash, not { ... }
11:19 moritz_ so according to $larry, the test is correct
11:19 patrickas Yes the test was added after colomon's patch and larry's explanation
11:19 patrickas unless I am confused about it which is not unlikely
11:22 patrickas moritz_: currently two tests are failing and one is passing right ?
11:24 patrickas rakudo: use Test; my %flattens= ("a"=> 1 , "b"=>2); is( (map { .WHAT } , %flattens).join(' ') , 'Pair() Pair()' , 'Flattening Hashes become Pairs when passed to map');
11:24 p6eval rakudo 7c83e6: OUTPUT«ok 1 - Flattening Hashes become Pairs when passed to map␤»
11:25 patrickas This behaviour is as expected
11:25 patrickas rakudo: use Test; is( (map { .WHAT } , {"a"=> 1 , "b"=>2}).join(' ') , 'Hash()' , 'Non flattening Hashes do not become Pairs when passed to map');
11:25 p6eval rakudo 7c83e6: OUTPUT«not ok 1 - Non flattening Hashes do not become Pairs when passed to map␤#      got: "Pair() Pair()"␤# expected: "Hash()"␤»
11:25 patrickas This is a bug in rakudo, but was there before colomon's patch (I think)
11:26 patrickas It was just wrongly tested, untill TimToady explained how the correct behaviour should be
11:32 whiteknight joined #perl6
11:34 moritz_ I'm confused - I thought my local test failures were just the other way round
11:36 patrickas what you're right!
11:37 patrickas I am getting the same locally, though not through p6eval
11:37 patrickas when was the bot last built?
11:37 patrickas when has bot last built rakudo?
11:37 patrickas i just built now to check the issue
11:40 patrickas I am confused too, now i can't remember if yesterday I built before or after colomon's patch
11:41 moritz_ rakudo: say 1
11:41 p6eval rakudo 7c83e6: OUTPUT«1␤»
11:41 moritz_ that's the hash of colomon++'s commit
11:50 patrickas I guess you are right... colomon's commit did fix the issue it was supposed to dix, but it messed up the flattening hash case
11:51 patrickas but at the time of his commit the test was wrong anyway that's why he didn't notice the problem
11:52 patrickas and when I added the right tests I did not notice their behaviour was wrong because I had apparently built before pulling colomon's patch
11:52 patrickas it all makes sense now and you were right all along :-)
11:52 colomon wait, it doesn't make any sense at all.
11:53 colomon why does use Test; is( (map { .WHAT } , {"a"=> 1 , "b"=>2}).join(' ') , 'Hash()' , 'Non flattening Hashes do not become Pairs when passed to map') work on my local build and fail on p6eval?
11:54 patrickas apparently p6eval does not contain your patch
11:54 colomon according to the version number, it does contain my patch.
11:54 patrickas oh!
11:55 patrickas how do I get the version of p6eval ?
11:56 moritz_ it's in the output
11:56 moritz_ rakudo 7c83e6: OUTPUT ...
11:56 moritz_ the 7c83e6 is the abbreviated commit hash
11:56 patrickas oh ok
11:56 colomon oh, it doesn't contain my patch
11:56 colomon !
11:56 colomon 7c83e65fb2cda0ddd85e6abe98b18ee7da4a465f is the hash for the patch in question.
11:56 colomon no, wait, it does.
11:57 colomon right, so 7c83e6 is the short version of 7c83e65fb2cda0ddd85e6abe98b18ee7da4a465f
11:57 colomon which is the commit "Switch sub version of map to take slurpy values"
11:58 patrickas strange!
11:58 patrickas is it possible rakudo version ?
11:58 patrickas has somethign to do with it ?
11:59 patrickas I did --gen-parrot before building
11:59 colomon I'm also baffled by the logic that %a  should flatten here, though that does seem to be what TimToady said.
11:59 moritz_ % and @ are flattening sigils
11:59 patrickas s/rakudo version/parrot version/
12:00 colomon moritz_: but they don't flatten normally in sub binding, do they?
12:00 colomon rakudo: sub foo($a, $b) { say $a ~ $b; }; my @a = 'a', 'b'; say ~@a; foo(@a) # don't expect last bit to work
12:00 p6eval rakudo 7c83e6: OUTPUT«a b␤Not enough positional parameters passed; got 1 but expected 2␤  in 'foo' at line 11:/tmp/OecqJ9vcfg␤  in main program body at line 11:/tmp/OecqJ9vcfg␤»
12:01 moritz_ colomon: only into slurpy paramters
12:01 colomon moritz_: then it's a dispatch bug?
12:01 moritz_ rakudo: sub f(*@a) { say @a.perl }; my @b = 2, 4; say f @b; # I expect that to work
12:01 p6eval rakudo 7c83e6: OUTPUT«[2, 4]␤1␤»
12:02 moritz_ rakudo: sub f(*@a) { say @a.perl }; my %b = a => 2, b => 44; f %b; # I expect that to work
12:02 p6eval rakudo 7c83e6: OUTPUT«[{"a" => 2, "b" => 44}]␤»
12:02 moritz_ it doesn't flatten
12:02 moritz_ and i think it should
12:03 moritz_ anyway, the build log on p6eval shows no signs of strangeness
12:03 patrickas but wasn't p6eval still flattening a few minutes ago ?
12:04 patrickas rakudo: use Test; my %flattens= ("a"=> 1 , "b"=>2); is( (map { .WHAT } , %flattens).join(' ') , 'Pair() Pair()' , 'Flattening Hashes become Pairs when passed to map');
12:04 p6eval rakudo 7c83e6: OUTPUT«ok 1 - Flattening Hashes become Pairs when passed to map␤»
12:04 moritz_ it seems that the version reporting on p6eval is wrong
12:05 patrickas moritz_: how do I get the version of parrot with which rakudo is built ? (mine and p6evals?)
12:05 moritz_ I'll push something, and test the rebuild
12:05 moritz_ rakudo: say %*VM<config><revision> # used to work in alpha
12:05 p6eval rakudo 7c83e6: OUTPUT«47137␤»
12:05 patrickas I got 47344
12:05 moritz_ you can also run  ./parrot_install/bin/parrot_config revision
12:05 colomon patrickas: no, p6eval was never flattening
12:06 patrickas maybe the difference is that p6eval has an old parrot and we all have newer one locally ?
12:06 colomon it just wasn't an issue with map until map was changed to take a slurpy parameter.
12:07 moritz_ do you see a failure in t/spec/integration/advent2009-day16.rakudo ?
12:07 dalek rakudo: 09314df | (Gerd Pokorra)++ | build/Makefile.in:
12:07 colomon moritz_: yes
12:07 dalek rakudo: Explicitly set --name for perl6.1 man page
12:07 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
12:07 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/09314dfd280fbd3ba146d3aa84a66f0c05703308
12:09 colomon rakudo: use Test; lives_ok 'for ^20 {my ($a,$b)=<AT CG>.pick.comb.pick(*); my ($c,$d)=sort map {6+4*sin($_/2)},$_,$_+4; printf "%{$c}s%{$d-$c}s\n",$a,$b}' , 'Can handle "map {...} ,$x,$y"';
12:09 p6eval rakudo 7c83e6: OUTPUT«not ok 1 - Can handle "map {...} ,$x,$y"␤»
12:09 patrickas maybe the test is messed up ... I wrote it after all :-)
12:10 colomon it seems like it had parens around the map arguments when we were messing this stuff yesterday?
12:12 patrickas I hate to have to ask such a stupid question
12:12 patrickas but what is lives_ok  supposed to do ?
12:13 colomon patrickas: it executes the code and makes should the code doesn't throw an error.
12:14 patrickas if I test the code inside the quotes it gets executed without errors
12:14 patrickas rakudo: for ^20 {my ($a,$b)=<AT CG>.pick.comb.pick(*); my ($c,$d)=sort map {6+4*sin($_/2)},$_,$_+4; printf "%{$c}s%{$d-$c}s\n",$a,$b}
12:14 p6eval rakudo 7c83e6: OUTPUT«Too many positional parameters passed; got 3 but expected 2␤  in 'map' at line 1523:CORE.setting␤  in main program body at line 11:/tmp/tCFT8oilev␤»
12:15 patrickas locally it just works
12:15 patrickas colomon it seems your patch is not applied in p6eval because that's exactly the error it was supposed to solve
12:16 patrickas map in p6eval is still expecting exactly 2  params and no more
12:16 finanalyst i am having problems with STD and wanted to do a nopaste, but the perl6 channel isnt in the dropdown box
12:18 patrickas rakudo: say &map ~~ Multi;
12:18 p6eval rakudo 7c83e6: OUTPUT«1␤»
12:19 patrickas rakudo: for &map.candidates -> $m { say $m.signature.perl; }
12:19 p6eval rakudo 7c83e6: OUTPUT«:(&mapper, @values)␤»
12:19 patrickas AHA!
12:20 patrickas introspection FTW!
12:21 finanalyst moritz_: #perl6 is not listed as a channel for http://paste.list.org
12:22 masak joined #perl6
12:22 masak oh hai, #perl6!
12:22 phenny masak: 06:47Z <Tene> tell masak to check for commits in web
12:22 finanalyst masak: hi
12:22 colomon rakudo: for &grep.candidates -> $m { say $m.signature.perl; }
12:22 p6eval rakudo 7c83e6: OUTPUT«:(Mu $test, *@values)␤»
12:22 colomon masak: o/
12:22 masak Tene: will do. will probably not have proper access to the 'net until tomorrow.
12:23 colomon patrickas: good call!
12:23 patrickas so that solves the first confusion we had, p6eval definetely does not have your patch regardless of what the version string is claiming
12:24 patrickas now the lives_ok failing test issue I am still not getting
12:24 patrickas can you guys try running
12:24 patrickas use Test;my $str = 'for ^20 {my ($a,$b)=<AT CG>.pick.comb.pick(*); my ($c,$d)=sort map {6+4*sin($_/2)},$_,$_+4; printf "%{$c}s%{$d-$c}s\n",$a,$b}';lives_ok ($str);eval ($str);
12:24 patrickas locally ? since p6eval cannot be relied upon in this case :-(
12:26 masak hey, I rewcognize that one-liner! :)
12:27 patrickas locally I am getting : lives_ok ($str) -> "not ok" but eval($str) -> correct output!
12:27 patrickas masak I was updating it to work with latest rakudo, but things got ... messed up :-)
12:28 masak patrickas++ # diligent
12:28 patrickas is it possible lives_ok is messed up ?
12:29 patrickas masak: that was the only item on the roadmap to rakudo* within my reach :-)
12:30 masak "From each according to ability..." dear heavens, the guy who equated Rakudo to communism must have been right! :P
12:31 patrickas hehehe and the first release is version star
12:32 patrickas maybe we shoudl make it version star with a hammer and sickle inside it just to be more explicit :-)
12:32 masak er. we're not at the first release, we're at #29.
12:33 masak the thing you're referring to is a "distribution", although people don't seem to be uning that term much.
12:33 patrickas i am sorry I meant the first release with a name for a version number :-)
12:34 masak some even think that Rakudo * will be "Perl 6 released!"
12:34 patrickas yes that is it a distibution :-)
12:34 masak releases and distributions, as I understand it, fall on different "timelines".
12:35 patrickas oh well ... I think confusion is bound to happen no matter what
12:35 masak except that a distribution will be made shortly after a release, just like Rakudo is released shortly after Parrot is.
12:35 radu_ joined #perl6
12:36 masak moritz_: "PMC" in the IRC logs is explained with "Parrot Magic Cookie". that is very cute, but (I think) outdated. I don't know what it is nowadays.
12:37 moritz_ PolyMorphic Container
12:38 moritz_ though it was only renamed to sound more serious
12:38 moritz_ I don't support that -!Ofun motion, so I'm in no hurry to update
12:39 masak heh.
12:41 patrickas ok I think i got the lives_ok thingy
12:41 patrickas I am passing a string to it thinking it will eval it
12:41 patrickas but lives ok is expecting a closure
12:42 masak for what it's worth, I'm dismayed at the proposed change of ? semantics. but I haven't seen any spec changes yet; maybe these will be so good they'll atually convince me to like the new old semantics.
12:43 patrickas but if that's the case how do I pass something that rakudo can't parse yet, so that when rakudo can parse it the test will pass ?
12:44 moritz_ eval_lives_ok
12:45 moritz_ take a look into Test.pm some day; it's instructive :-)
12:45 patrickas heheh defined just a few lines below it :-) read the source luke!
12:46 patrickas I read enought of it just to understand why lives_ok was not doing what I want. Then I promptly closed it :-)
12:48 cosimo how do I translate this grammar into a perl6 grammar?
12:49 cosimo http://github.com/reductivelabs/puppet/raw/master/lib/puppet/parser/grammar.ra
12:50 cosimo i guess there's no easy answer
12:50 moritz_ you can look at the precedence parser in STD.pm6; a simplified version + hand translating the other parts of the grammar should get you tehre
12:52 moritz_ I still hope for a spec that exposes the precedence parser to the userland
12:53 moritz_ it's something that every implementation must contain anyway, and it's likely to be rather useful for the Perl 6 programmer
12:53 pugssvn r31121 | patrickas++ | use eval_lives_ok
12:53 masak moritz_:  you hope so too? cool!
12:54 patrickas OK so I think i finally cleaned the mess I made :-)
12:54 masak jnthn: ping
12:54 cosimo moritz_: this is the current one? http://svn.pugscode.org/pugs/src/perl6/STD.pm6
12:55 ajs joined #perl6
12:58 ajs1 joined #perl6
13:01 radu_ Hi! I'm new around here and i'd like to contribute to the Perl 6 project. I'd like to start with testing.
13:01 radu_ I need a commit bit for the pugs repository, right?
13:04 masak phenny: tell jnthn that I tried the gist with the "öl" in it yesterday on the bus. is there a way to iterate over a ByteView, or get the length of it? I think I'd need one or the other to know when to stop. :P couldn't find a way to make it work.
13:04 phenny masak: I'll pass that on when jnthn is around.
13:05 masak time to log off and spend time with my nephew.
13:05 masak o/
13:06 ashleydev_ radu_: welcome
13:07 ashleydev_ i'm just a lurker for now, but moritz_ can get up up to speed on the testing bit
13:07 radu_ ok, thanks :)
13:21 masonkramer_ joined #perl6
13:41 azert0x joined #perl6
13:43 jnthn phenny: tell masak yes, I thought I mentioned that elements was still missing, but you may like to have a crack at adding it. :-) But I can do so. :-)
13:43 phenny jnthn: I'll pass that on when masak is around.
13:43 phenny jnthn: 13:04Z <masak> tell jnthn that I tried the gist with the "öl" in it yesterday on the bus. is there a way to iterate over a ByteView, or get the length of it? I think I'd need one or the other to know when to stop. :P couldn't find a way to make it work.
13:43 jnthn ESAWITALREADY
13:43 jnthn radu_: Hi! You're wanting to work on some testing things?
13:43 radu_ yeah
13:44 radu_ can you help me get started?
13:44 jnthn Yes, for sure. Give me a moment to make some coffee, and I'll help you. :-)
13:48 jnthn radu_: OK, I'm back. :-)
13:49 JimmyZ joined #perl6
13:49 jnthn radu_: So, it's probably helpful if you have commit access to the test suite. /msg me your desired username and your email address and I can get you a commit bit sent.
13:49 jnthn radu_: The tests are in http://svn.pugscode.org/pugs/t/spec/ - if you have Rakudo already checked out and did make spectest, then you'll already have a hackout of them.
13:51 jnthn er, a checkout
13:51 jnthn I normally work from that.
13:52 jnthn After that, it's mostly a case of finding tests to write. There's a couple of places to do that; one is by looking in the http://svn.pugscode.org/pugs/t/spec/TODO
13:53 jnthn Another is the Rakudo RT queue.
13:54 jnthn The toher important thing to know about is fudge, which is somewhat explained in http://svn.pugscode.org/pugs/t/spec/README
13:55 jnthn *other
13:55 pmurias joined #perl6
13:55 jnthn But basically, if you edit a test file that Rakudo runs and it's a test that Rakudo fails, it should be "fudged".
13:56 jnthn Either by "todo" (meaning we can execute the test without crashing but get the wrong answer - just a normal todo really) or "skip" (which means fudge comments out the test so we don't run the code at all).
13:57 * jnthn hopes that makes some sense :-)
13:57 radu_ ok, i don't have rakudo yet. I'll install it in a couple of minutes.
13:57 radu_ i checked-out the pugs sources, should i do a test commit now?
13:58 jnthn radu_: Yes, the custom is to add yourself to the AUTHORS file in the first commit. :-)
14:03 pugssvn r31122 | radus++ | Added new user radus.
14:03 radu_ ok, seems to be working :)
14:03 ash__ joined #perl6
14:04 jnthn \o/
14:15 synth joined #perl6
14:16 moritz_ jnthn: can I use the quote_EXPR parser to not eat up the terminal quote?
14:25 jnthn moritz_: As far as I know, it eats both quotes.
14:26 jnthn moritz_: But if you want to get at the thing it quoted, it's available as a sub match.
14:26 moritz_ jnthn: I'm investigating tr/// parsing
14:26 dalek book: 001c38c | util++ | src/multi-dispatch.pod:
14:26 dalek book: [mmd] Fixed syntax by adding "multi" to example
14:26 dalek book: review: http://github.com/perl6/book/commit/001c38c25cc07bbcd5ddc57bad674dd7a80c945b
14:26 jnthn moritz_: OK, cool. See also s/// parsing.
14:27 moritz_ yes, but that uses the .LANG trick, which doesn't eat up the modifiers
14:27 jnthn Aha
14:27 jnthn Yeah, I see the issue. Hmm.
14:27 * jnthn checks STD
14:28 moritz_ without looking I guess it has a Quote LANG
14:28 moritz_ s/Quote/Q/
14:28 jnthn Yeah
14:28 jnthn But our quote parsing seems to work different to that.
14:29 jnthn moment, checking something
14:29 moritz_ I wonder if I can call quote_delimited directly
14:30 jnthn That also noms the delimiters
14:30 jnthn You want to I think do
14:30 jnthn :my $*QUOTE_STOP := '/'; <quote_atom>
14:31 moritz_ I'll try that, thanks
14:32 moritz_ my current plan is to re-use Substituion.pm
14:32 moritz_ and add an additional attribute for subst vs. tr
14:33 jnthn moritz_: OK. I'm not sure how correct the Substitution.pm approach is
14:33 moritz_ probably not very :-)
14:33 jnthn moritz_: I guess it can be made to work once we have sink context implemented.
14:33 radu_ joined #perl6
14:34 moritz_ not sure how robust it is to leaking the Substitution object into userland
14:34 moritz_ rakudo: say s/a/b/.WHAT
14:34 p6eval rakudo 09314d: OUTPUT«Substitution()␤»
14:34 jnthn moritz_: Yeah, quite.
14:35 jnthn moritz_: I couldn't get a straight answer on how it should work, though, so I just Did Something.
14:35 moritz_ my $x = s/a/b/.WHAT # not in sink context
14:35 jnthn moritz_: Ah, hmm.
14:35 moritz_ I guess it should just be a call, with $topic = $_
14:35 jnthn I wonder if we always want to call it immediately.
14:35 jnthn Ah, yes
14:35 moritz_ yes
14:35 jnthn Because when ~~ sets $_...
14:35 jnthn :-)
14:36 moritz_ right
14:36 moritz_ it should :-)
14:36 jnthn Maybe I should hack on that.
14:37 moritz_ if you do, I'll attempt to fix s///
14:43 moritz_ it should be as simple as a PAST::Val.new(:pasttype('callmethod'), :name('subst'), PAST::Va.new(:name('$_'), :scope('lexical')), $PAST_FOR_REGEX, $PAST_FOR_SUBSTITUTION);
14:44 moritz_ oh noez; my attempt at tr/// make rakudo exit silently
14:45 rv2733 joined #perl6
14:45 moritz_ and it doesn't like sub tryeq from file S03-operators/arith.rakudo
14:48 * moritz_ suspects LTM issues with term parsing
14:48 jnthn oh noes
14:49 jnthn Haz you a >> ?
14:49 moritz_ I haz, yez
14:49 moritz_ ah
14:49 moritz_ it's a problem for all quote things parsed with quote_EXPR
14:50 moritz_ but not a problem for things parsed with LANG('Regex'
14:50 moritz_ rakudo: sub Quux { say 3 }; Quux
14:50 p6eval rakudo 09314d: OUTPUT«===SORRY!===␤Confused at line 11, near "Quux"␤»
14:50 moritz_ rakudo: sub suux { say 3 }; suux
14:50 p6eval rakudo 09314d: OUTPUT«3␤»
14:50 jnthn oh, ouch
14:50 moritz_ doesn't collide with s///
14:51 moritz_ rakudo: sub rxbla { say 3 }; rxbla # again, regex parsing causes no problems
14:51 p6eval rakudo 09314d: OUTPUT«3␤»
14:51 jnthn rakudo: qqe
14:51 p6eval rakudo 09314d: OUTPUT«===SORRY!===␤Confused at line 11, near "qqe"␤»
14:51 jnthn rakudo: qqe()
14:51 p6eval rakudo 09314d: OUTPUT«Could not find sub &qqe␤  in main program body at line 11:/tmp/iPPeOMEJFk␤»
14:51 jnthn ew
14:51 moritz_ rakudo: qqxa
14:51 p6eval rakudo 09314d: OUTPUT«===SORRY!===␤Confused at line 11, near "qqxa"␤»
14:52 moritz_ I wonder if the failure mode of a failed quote_EXPR is the same as for  a failed, ordinary token
14:53 jnthn nqp: Qa
14:53 p6eval nqp: OUTPUT«Confused at line 1, near "Qa"␤current instr.: 'parrot;HLL;Grammar;panic' pc 552 (src/cheats/hll-grammar.pir:205)␤»
14:53 jnthn moritz_: It looks to be implemented in the same terms as other things (e.g. cursor_pass, etc)
14:54 moritz_ some compiled regexes call ."mark_fail"(0) on the cursor
14:55 moritz_ or "!cursor_fail"
14:56 jnthn I wonder if we can hack around it with
14:56 jnthn <sym> <!before <alpha>> >>
14:57 moritz_ I'll try
14:58 moritz_ it feels like it shouldn't work
14:58 moritz_ because >> after <sym> already implies not being before an alpha
14:58 jnthn ah, ye
14:58 jnthn *yes
14:59 jnthn But it doesn't seem to be doing the Right Thing.
14:59 moritz_ thing is, it seems to make a difference where the regex fails
15:00 moritz_ either immediately (common case), or after matching the literal prefix (or <sym>)
15:00 moritz_ which would be a bug
15:08 * jnthn tries out a fix for RT#75514
15:08 JimmyZ rakudo: my $d; for 1..5 { sub; };
15:08 p6eval rakudo 09314d: OUTPUT«===SORRY!===␤Symbol '$ss_SS_S_S__S_S_s' not predeclared in <anonymous>␤»
15:08 jnthn wtf
15:09 moritz_ evalbot nuisance
15:09 moritz_ and error reporting at previous line
15:09 moritz_ or something
15:11 jnthn ah, yes.
15:11 moritz_ elsif $m eq 's' { $/.CURSOR.obs('/s','^^ and $$ anchors');                    }
15:11 moritz_ elsif $m eq 'm' { $/.CURSOR.obs('/m','. or \N');                              }
15:11 moritz_ isn't that exactly the wrong way round?
15:12 moritz_ in perl 5 /m changes behaviour of ^ and $
15:12 moritz_ and /s changes .
15:12 jnthn erm, yes.
15:12 jnthn That's what blind copying from STD gets us. :-)
15:13 arnsholt Has an argmax method for Array or the like ever been considered?
15:14 jnthn argmax?
15:14 JimmyZ rakudo: use MONKEY_TYPING; my $d = ''; augment class Str { method some_meth_1 {$d = $d ~ self;}}; for '0' .. '5' { .WHAT.say; .some_meth_1; }; # known bug? runing twice.
15:14 p6eval rakudo 09314d: OUTPUT«Str()␤Str()␤Method 'some_meth_1' not found for invocant of class 'String'␤  in main program body at line 11:/tmp/gLI4jA4RDD␤»
15:14 arnsholt jnthn: "Which value from the array maximises this function?"
15:14 JimmyZ I heard something similar
15:15 JimmyZ but not sure it's the same one
15:15 dalek rakudo: 8c85fb4 | moritz++ | src/Perl6/Grammar.pm:
15:15 dalek rakudo: fix p5 -> p6 regex error message confusion
15:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8c85fb4211a222018350f0aa8506215a3cbccf3d
15:15 colomon arnsholt: max does that already
15:15 colomon arnsholt: though it may be implemented in rakudo yet
15:15 jnthn JimmyZ: Seems that there is more than one bug there...
15:16 arnsholt colomon: Indeed it does. Thanks
15:16 jnthn I think max with an arg works.
15:16 JimmyZ jnthn: I don't know the more ones.
15:18 colomon rakudo: my @a = 1..10, -4; say @a.max({-$_})
15:18 p6eval rakudo 09314d: OUTPUT«Too many positional parameters passed; got 2 but expected between 0 and 1␤  in <anon> at line 1:/tmp/syR3wJRdVZ␤  in 'Any::max' at line 1335:CORE.setting␤  in main program body at line 11:/tmp/syR3wJRdVZ␤»
15:19 JimmyZ rakudo: use MONKEY_TYPING; my $d = ''; augment class Str { method some_meth_1 {$d = $d ~ self;}}; for '0' .. '5' { .WHAT.say; sub; }; # this complained $d is not predeclared, which is wrong too.
15:19 p6eval rakudo 09314d: OUTPUT«===SORRY!===␤Symbol '$ss_SS_S_S__S_S_s' not predeclared in <anonymous>␤»
15:19 colomon rakudo: my @a = 1..10, -4; say @a.max({-$^a <+> -$^b })
15:19 p6eval rakudo 09314d: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 11␤»
15:19 colomon rakudo: my @a = 1..10, -4; say @a.max({-$^a <=> -$^b })
15:19 p6eval rakudo 09314d: OUTPUT«-4␤»
15:20 colomon passing single arg closure nyi, gotta pass the actual comparison function
15:20 colomon that's probably LHF
15:21 arnsholt Yeah, probably
15:25 colomon or not, now that I think about it.  getting it fully right is kind of tricky.
15:25 colomon I suppose a quick and dirty implementation might be LHF.
15:26 arnsholt How so?
15:26 colomon Well, in theory it should handle an Ordering argument, instead of just a closure.
15:26 moritz_ just pass the thing on to .sort
15:26 colomon and it should behave differently de...
15:26 colomon moritz_: no!
15:26 moritz_ that's the quick-n-dirty solution
15:26 colomon that's hideously wasteful.
15:27 colomon you could get a drastically better quick-n-dirty solution by just making a new comparison closure using a single arg closure, if that is what is passed in.
15:27 colomon and that's still not an ideal way of doing it.
15:32 arnsholt True, true
15:36 ingy joined #perl6
15:36 JimmyZ sigh, why RT can't be created ticket by myself
15:37 colomon rakudo: my $a = { $^a cmp $^b }; say $a.signature
15:37 p6eval rakudo 09314d: OUTPUT«Signature()<0x3723130>␤»
15:37 colomon rakudo: my $a = { $^a cmp $^b }; say $a.signature.perl
15:37 p6eval rakudo 09314d: OUTPUT«:(;; Mu $a, Mu $b)␤»
15:38 colomon rakudo: my $a = { $^a cmp $^b }; say $a.signature.^methods.perl
15:38 p6eval rakudo 09314d: OUTPUT«[{ ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ...
15:38 p6eval ..}, { …
15:38 colomon rakudo: my $a = { $^a cmp $^b }; say $a.signature.^methods>>.name.perl
15:38 p6eval rakudo 09314d: OUTPUT«("perl", "ACCEPTS", "params", "acos", "fmt", "eval", "chop", "tanh", "subst", "Numeric", "chomp", "index", "chr", "acotanh", "trim-trailing", "capitalize", "pred", "atanh", "cosec", "exp", "lc", "p5chop", "chars", "sinh", "acotan", "lcfirst", "roots", "sec", "asec", "trim",
15:38 p6eval .."cotanh…
15:38 colomon rakudo: my $a = { $^a cmp $^b }; say $a.signature.params.perl
15:38 p6eval rakudo 09314d: OUTPUT«(Parameter.new(), Parameter.new())␤»
15:38 colomon rakudo: my $a = { $^a.abs }; say $a.signature.params.perl
15:38 p6eval rakudo 09314d: OUTPUT«(Parameter.new(), )␤»
15:39 colomon rakudo: my $a = { $^a.abs }; say $a.signature.params.elems
15:39 p6eval rakudo 09314d: OUTPUT«1␤»
15:39 colomon rakudo: my $a = { $^a cmp $^b }; say $a.signature.params.elems
15:39 p6eval rakudo 09314d: OUTPUT«2␤»
15:46 p6eval joined #perl6
15:58 lue ohai
16:02 tedv joined #perl6
16:03 masonkramer_ joined #perl6
16:07 patspam joined #perl6
16:08 diakopter mruhaha
16:11 pugssvn r31123 | diakopter++ | [evalbot] disable most of mono optimizations in p6eval perlesque
16:12 diakopter urm
16:12 p6eval joined #perl6
16:13 pugssvn r31124 | diakopter++ | [evalbot] disable most of mono optimizations in p6eval perlesque [reprise]
16:14 p6eval joined #perl6
16:14 xomas_ joined #perl6
16:14 xomas_ joined #perl6
16:15 lue what's the reprise for?
16:16 diakopter fixing my flub
16:32 dakkar joined #perl6
16:35 * masonkramer wants the synopses as pdfs
16:39 moritz_ masonkramer: I'm sure there's a pod2latex translater somewhere...
16:39 moritz_ masonkramer: from there on it's only a tiny step towards having a PDF
16:40 diakopter masonkramer: I too am curious how many 8.5x11" sheets they consume :)
16:45 dalek book: 38d3aa9 | moritz++ | src/basics.pod:
16:45 dalek book: [basics] talk more about scalars
16:45 dalek book: shamu++ for proposing it, and Util++ for discussion
16:45 dalek book: Also remove a notice from chromatic++ which we follow now;
16:45 dalek book: Add a footnote for the Perl 5 programmer about sigil invariance
16:45 dalek book: review: http://github.com/perl6/book/commit/38d3aa9ed0176ed45e938fcec51bfbf54f378d3a
16:48 pmichaud good morning (barely), #perl6
16:48 jnthn o/ pmichaud
16:48 jnthn pmichaud: barely good, or barely morning?
16:49 pmichaud barely morning
16:49 jnthn Ah, good.
16:49 jnthn :-)
16:49 pmichaud (11 minutes left here)
16:49 pmichaud too soon to tell if the morning is good or not.  :-P
16:49 lue goodmorning
16:49 jnthn I was awake for 5 hours of the morning.
16:49 jnthn The ones up until 5am :-)
16:50 lue .oO(Internet (ihn-tur-neht) [n.] — Destroys all concepts of day and night)
16:51 justatheory joined #perl6
16:51 jnthn lue: Living this far north almost does that too, at this time of year. ;-)
16:52 * jnthn has a patch to close a Rakudo bug from July last year :-)
16:52 lue \o/
16:54 * jnthn sets spectests going while he goes to the shops
16:55 jnthn It also fixes exit :-)
16:56 lue :D That's a major problem with REPL, that only ^C will exit.
16:56 jnthn Oh, it doesn't fix it for the REPL though...
16:56 jnthn But I could fix that also
16:56 TimToady ^D works fine for me
16:56 jnthn This was exit not working even in a program body.
16:57 jnthn TimToady: It'd probably be nice if "exit" did akshually exit the REPL though, I guess. :-)
16:58 lue What is the difference between ^C and ^D [or rather, what signal does each one send]
16:58 * jnthn bbs
16:58 TimToady rakudo: kill 15, $*PID
16:58 p6eval rakudo 8c85fb: OUTPUT«Could not find sub &kill␤  in main program body at line 11:/tmp/7zDM9dWglm␤»
16:58 pmichaud ^C is INTR, ^D is EOF
16:58 lue Only a couple of times I had to use ^D, and that was when ^C failed
16:58 TimToady um, ^C is more violent
16:58 lue .u KILL
16:58 phenny lue: Sorry, no results for 'KILL'.
16:59 lue .u SIG
16:59 phenny U+C2DD HANGUL SYLLABLE SIG (식)
16:59 TimToady I would use ^C if ^D fails
16:59 pmichaud anyway, we can get exit to work, I think.
16:59 pmichaud It used to work in alpha, iirc.
16:59 pmichaud just  a sec.
17:01 pmichaud okay, will take slightly more than a second... :-)
17:01 Ross joined #perl6
17:01 lue well, I've had better luck with ^C than ^D [in terms of doing what I want them to do]. Ah well, TIMTOWTDI :)
17:03 rgrau joined #perl6
17:03 dalek book: ef42d30 | moritz++ | src/subs-n-sigs.pod:
17:03 dalek book: [subs] incorporate some cleanup by chromatic++
17:03 dalek book: review: http://github.com/perl6/book/commit/ef42d30386082197dad87864636c58a96a887a9d
17:04 Trashlord joined #perl6
17:07 moritz_ I can't help but feeling the spec for Str.trans is terribly bloated
17:07 moritz_ it contains lots of stuff that isn't even accessible from within tr///
17:08 moritz_ like that "regex as a matcher" thing
17:08 TimToady tr/// is just a convenience
17:08 moritz_ IMHO it's good to have it somewhere, but bad to have it all in one method
17:09 TimToady the point is to do transliteration, not to preserve the history of tr///
17:09 moritz_ but maybe it's just me trying to implement it sanely... (or get others to do it)
17:10 TimToady well, yes, it's specced to essentially be doing LTM over an alternation, and the translation easy once you've figured out which pattern matches
17:10 moritz_ that's another thing I'd like to talk about
17:11 moritz_ I stil feel it's overly hard to identify which one of a set of alternatives matched
17:11 TimToady that's the job of the LTMer
17:11 TimToady STD does it on every token :)
17:11 moritz_ well, I mean for the user
17:12 moritz_ which language construct would you use to find out?
17:12 moritz_ proto tokens probably
17:12 TimToady define the functional meaning of "identify"?
17:12 TimToady what would you do with the information?
17:12 moritz_ usually to perform a certain substituion or other operation
17:13 TimToady anything more complicated than transliteration probably wants a transducing grammar instead
17:13 moritz_ I'd shut up if we had a nice API for creating proto tokens and adding alternatives programmatically
17:14 moritz_ (something more convenient than eval())
17:14 TimToady .^add_method
17:14 pmichaud oh dear.
17:15 pmichaud pmichaud@orange:~/rakudo$ ./perl6
17:15 pmichaud > exit 1
17:15 pmichaud > exit 60
17:15 pmichaud in main program body at line 1
17:15 moritz_ proto regex a { <...> }; &a.^add_method('a:sym<foo>', rx{ <sym> \w+ });  # like this?
17:15 pmichaud pmichaud@orange:~/rakudo$
17:16 pmichaud so, exit "works" if you happen to return one of the magic exit values.
17:18 TimToady grammar Base { proto regex a { <...> } }; grammar Derived is Base { regex a:sym<foo> { <sym> \w+ } };  # or whatever methods this calls internally
17:19 lue afk # and then making a couple more shirts!
17:19 TimToady grammar categories are inherited
17:20 moritz_ so...
17:20 TimToady so you don't have to monkey patch the base grammar
17:20 moritz_ that's not quite the programmatic API I was looking for
17:21 moritz_ but I guess with enough violence it can all be done with API calls to the meta class
17:21 moritz_ ... for which somebody will then write a module to abstract it away
17:22 TimToady what we want is something that says, "Here's an eval, tell me what to do instead of that."  :)
17:23 TimToady and now we're probably redesigning quasi's  :)
17:23 moritz_ well, an eval where we don't have to care about interpolation would be great... right
17:23 moritz_ that's quasi
17:23 moritz_ are quasis available from outside macros?
17:23 TimToady sure
17:23 moritz_ heh
17:23 moritz_ then I guess I have my API \o/
17:23 TimToady std: quasi { "Your ad here" }
17:24 p6eval std 31124: OUTPUT«ok 00:02 111m␤»
17:24 moritz_ just need to find soembody to implement it
17:24 moritz_ ... and find out how to make money from these ads :-)
17:24 TimToady SM\O/P
17:24 TimToady that's the real trick, ain't it...
17:25 moritz_ I do make some money from ads, but it somewhat disturbs me that it only works for a low-tech site -- no chance with Perl 6 contents :-)
17:26 TimToady I'm sure Ted Nelson has a micropayment system for that.  :)
17:27 TimToady unfortunately Xanadu turned out to have caverns measureless to man
17:28 moritz_ unfortunately the only micropayment system that was moderately successful cranked up its fees so much it's unusable as a micropayment system these days
17:32 pmichaud what exceptions is CATCH supposed to catch?  (Or, if easier, what should it not catch?)
17:32 TimToady one of Xanadu's problems was that it kind of assumed that the value of a text we related to its length, and that the length was a well-defined concept, which it was when everyone used bytes for characters. :)
17:33 TimToady s/text we/text was/
17:33 TimToady CATCH doesn't catch control exceptions
17:34 pmichaud right, so which are the control exceptions?
17:34 pmichaud does CATCH catch fail/die ?
17:34 TimToady yes
17:34 TimToady er die
17:34 TimToady fail is not an exception
17:34 pmichaud well, it's a return exception, like 'return'
17:34 pmichaud but yes, I see the difference.
17:35 TimToady also, remember that control exceptions actually are only for locating scopes; they do no stack unwinding themselves
17:35 TimToady if they find their target scope, then they can unwind
17:35 pmichaud so, 'die' isn't a control exception.
17:36 TimToady no, it's a normal exception
17:36 pmichaud how about 'exit'?
17:36 pmichaud (to the extent that exit might be considered exceptional, which is how Parrot currently treats it)
17:36 cognominal joined #perl6
17:36 TimToady I'd say it's a control exception that is typically not caught until the outermost CONTROL
17:36 pmichaud okay.
17:37 TimToady but a webserver might well catch it
17:37 pmichaud but that would be with a CONTROL block, not a CATCH
17:37 TimToady yes
17:37 * jnthn back from @shop
17:37 jnthn ooh, interesting discusison while I was gone
17:37 * jnthn backlogs
17:37 TimToady any situation where you have multiple GLOBALs running in one PROCESS
17:38 ispeak_ joined #perl6
17:38 TimToady exit is primarily intended to exit the current interpreter, not the current process
17:38 jnthn pmichaud: I fixed exit already.
17:38 pmichaud jnthn: not really.
17:38 jnthn pmichaud: Enough.
17:38 pmichaud jnthn: there's a bug in the 'exit' opcode.
17:39 jnthn pmichaud: Oh.
17:39 pmichaud exit $I0    throws an exception of type $I0
17:39 jnthn pmichaud: OK, I've made things no more broken than they were before I broke them more when I did backtraces.
17:39 jnthn oh wtf.
17:39 jnthn It's meant to set exit_code.
17:39 pmichaud right
17:39 jnthn Parrot fail.
17:39 pmichaud and there doesn't seem to be an exception type for handling 'exit'
17:39 jnthn pmichaud: It's a severity.
17:39 pmichaud other than CONTROL_ERROR, which is what is also used for &die and &warn
17:40 pmichaud EXCEPT_EXIT is a severity, yes, but we also need a type.
17:40 jnthn Oh?
17:40 jnthn OK.
17:40 pmichaud that doesn't get caught by our CATCH blocks.
17:40 jnthn Aha.
17:40 dalek rakudo: 53c3a48 | jonathan++ | build/PARROT_REVISION:
17:40 dalek rakudo: Bump to latest Parrot to get improvements to the backtrace handling code; this
17:40 dalek rakudo: fixes the exit bug.
17:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/53c3a4836c767d7c095afe3ada997e56c2f1b440
17:40 dalek rakudo: c3e84aa | jonathan++ | src/builtins/control.pir:
17:40 dalek rakudo: The default Warning message should not come with a \n on it already.
17:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c3e84aa12c329584fdbe1d6be8bac9c01c6fc592
17:40 dalek rakudo: 01583bf | jonathan++ | src/Perl6/BacktracePrinter.pm:
17:40 dalek rakudo: Make backtrace printer smart enough to recognize warnigns - which it is now
17:40 dalek rakudo: passed - and just emit the warning along with a line number.
17:40 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/01583bf91edeb1184517dc2c68492c69c40c77a6
17:40 jnthn pmichaud: OK, makes sense.
17:40 pmichaud either that, or we have to have our CATCH blocks check for severity.  But that seems Real Wrong.
17:41 TimToady I think in addition to exit we also need politely_request_process_to_exit_all_interpeters or some such :)
17:43 radu_ joined #perl6
17:43 jnthn pmichaud: Yes, that'd be nasty. I see the issue now.
17:44 jnthn pmichaud: Guess it just needs a little Parrot hacking.
17:44 TimToady in other words, we should be able to take a standalone program containing 'exit', plug it without change into a web server that runs multiple interpreters, and not have 'exit' blow the whole server up
17:45 jnthn Sounds kinda useful. :-)
17:45 TimToady so it must be a control exception catchable by the outer process, and not hardwired to POSIX::exit or whatever :)
17:46 TimToady rakudo: fail "foo"
17:46 p6eval rakudo 8c85fb:  ( no output )
17:46 pmichaud rakudo:  for 1..4 { say $_;  exit 64; }
17:46 p6eval rakudo 8c85fb: OUTPUT«1␤2␤3␤4␤»
17:47 pmichaud :-D
17:47 skids joined #perl6
17:47 jnthn eww
17:47 pmichaud anyway, I'll work on cleaning it up.
17:48 jnthn pmichaud: OK, or I can probably do the Parrot tweaks.
17:48 wasy_ joined #perl6
17:48 jnthn pmichaud: I guess it's just a case of adding another type.
17:48 TimToady rakudo: $*ERR.print("hello?\n")
17:48 p6eval rakudo 8c85fb: OUTPUT«hello?␤»
17:48 TimToady why doesn't fail output its output?
17:48 jnthn TimToady: Does here.
17:48 TimToady here to, but not the bot
17:48 jnthn Or at least, in the repl.
17:49 moritz_ autoprinting?
17:49 jnthn Not sure. Odd. :-/
17:49 TimToady *too
17:49 TimToady rakudo: fail "foo\n"
17:49 p6eval rakudo 8c85fb:  ( no output )
17:49 TimToady rakudo: die "foo\n"
17:49 p6eval rakudo 8c85fb: OUTPUT«foo␤␤  in main program body at line 11:/tmp/d1mIGsYzbl␤»
17:50 pmichaud fail returns a failure
17:50 pmichaud but nothing happens if that failure isn't used somehow.
17:50 pmichaud in the case of the repl, it gets printed, which forces the message to stdout
17:50 pmichaud in the case of the bot... the return value is never printed or used.
17:50 TimToady I think moritz_++ got it in one
17:50 pmichaud right
17:51 pmichaud I was elaborating :)
17:52 pmichaud jnthn: so, in parrot-terms, if &die doesn't throw a control exception, what kind of exception should it throw?
17:52 TimToady I believe failure in sink context should also die.
17:52 pmichaud is a 1-liner fail in sink context, though?
17:53 TimToady rakudo: return 42;
17:53 p6eval rakudo 8c85fb:  ( no output )
17:53 pmichaud and do we want     { foo-that-fails();  say 'hello'; }      to die?
17:53 pmichaud (I'm okay with "yes")
17:53 TimToady that's what I believe
17:53 pmichaud okay.
17:53 TimToady which is why I used that word. :)
17:53 jnthn pmichaud: Ergh...I'm not even sure how the exception types thing works...
17:54 pmichaud jnthn: in what sense?
17:54 pmichaud jnthn: I mean, what part doesn't make sense?
17:54 pmichaud (besides parrot's crazy mapping of exception types)
17:54 jnthn pmichaud: Is it just a bunch of integer codes that we can stash in an exception object?
17:55 pmichaud it's an integer code used to identify the type of exception
17:55 jnthn pmichaud: And then a handler can say "oh, I'll take anything with this list of IDs"?
17:55 pmichaud for example,  .CONTROL_RETURN, .CONTROL_LOOP_NEXT, .CONTROL_LOOP_REDO, etc.
17:55 pmichaud then a handler can say "I'm interested in these types of exceptions", yes.
17:55 jnthn oh argh
17:55 pmichaud (it can also say "I'm interested in everything but these types of exceptions")
17:56 jnthn But LOADS of Parrot exceptions that we could get also get codes in the same sense.
17:56 pmichaud that's generally okay
17:56 jnthn Oh, well in that case we could do CATCH by listing all the CONTROL_ exceptions.
17:56 jnthn But...eww.
17:56 pmichaud we do that now.
17:56 jnthn Oh?
17:56 pmichaud yes.
17:56 pmichaud that's not the problem I'm having.
17:56 jnthn rakudo: try { return 42; CATCH { say "caught" } }
17:56 p6eval rakudo 8c85fb:  ( no output )
17:57 jnthn ah, so we do
17:57 jnthn I'd thought that was still broken.
17:57 pmichaud the problem I have is that  Parrot's "die" opcode sends an exception of type  CONTROL_ERROR
17:57 pmichaud but in Perl 6, &die isn't a control exception
17:57 jnthn Oh.
17:57 jnthn That feels...wrong.
17:57 pmichaud so, I'm trying to figure out how to map what Perl 6 wants onto parrot's exception types
17:57 jnthn (CONTROL_ERROR)
17:58 jnthn I'm sorta surprised Parrot has that.
17:58 pmichaud I dunno, I think most folks outside of the Perl 6 world would expect "die" to be a form of error exception
17:58 pmichaud so I don't think Parrot's too far off there.
17:58 jnthn Yes, but not a form of control exception?
17:58 pmichaud it would be a control exception in a sense similar to 'return'
17:59 TimToady the point of control exceptions is to hijack the exception mechanism for *non* errors
17:59 jnthn OK
17:59 pmichaud TimToady: yes, I'm just saying how Parrot has likely traditionally view 'die', which is in the Perl 5 sense.
17:59 pmichaud *viewed
17:59 jnthn pmichaud: But afaict, there's no "hierarchy" here. The fact it's called CONTROL_ERROR is just what it's called.
17:59 pmichaud right, there's no hierarchy
17:59 jnthn We can use the code and pretend it's not called CONTROL_ERROR if we want. :-)
17:59 pmichaud so, I'm asking this question (more)
18:00 pmichaud 1. what exception type should we use for &exit
18:00 pmichaud 2. what exception type should we use for &die
18:00 jnthn 1. Add another exception type to Parrot
18:00 pmichaud and note that the answers to the above don't have to match what Parrot uses for its 'exit' and 'die' opcodes.
18:00 jnthn 2. CONTROL_ERROR would seem to be our best bet.
18:01 pmichaud using CONTROL_ERROR for &die seems wrong since in Perl 6 &die isn't a control exception :)
18:01 jnthn Yes, but since thre's no hierarchy it's just purely a name.
18:01 jnthn (A meaningless one.)
18:01 pmichaud meaningless even for hll interop?
18:03 jnthn pmichaud: Well, I don't see anything else at all on the list that other languages would be liable to pick other than CONTROL_ERROR for things that "die".
18:03 pmichaud okay
18:03 pmichaud then I agree with your answers :)
18:03 jnthn pmichaud: All the others are very specific.
18:03 pmichaud I'll add CONTROL_EXIT, change exit opcode to use that.
18:03 TimToady could we get parrotfolk to rename it so it doesn't say CONTROL
18:03 TimToady ?
18:03 TimToady USER_ERROR or some such
18:03 pmichaud TimToady: possibly, but again, in the Parrot world, 'die' really is a form of control exception.
18:04 moritz_ where in STD.pm6 is lang Q defined?
18:04 jnthn moritz_: grep for grammar Q
18:04 moritz_ jnthn: thanks
18:04 pmichaud moritz_: btw, I couldn't sleep thursday night and so I figured out how to use inversion lists for <[...]> charclasses in Rakudo.  :)
18:04 moritz_ pmichaud: now that's good news!
18:04 jnthn \o/
18:05 christine joined #perl6
18:05 pmichaud which means we'll even be able to get things like   <[\Wabc]>  to work.
18:05 TimToady pmichaud: sounds to me like parrot doesn't know what a control exception is really
18:05 pmichaud TimToady: no argument there.
18:05 jnthn std: <[\Whoz op?]>
18:05 p6eval std 31124: OUTPUT«ok 00:01 107m␤»
18:05 jnthn std: /<[\Whoz op?]>/
18:05 p6eval std 31124: OUTPUT«ok 00:01 106m␤»
18:05 jnthn :-D
18:06 pmichaud and things like <[\x7000..\x7fff]>  won't result in 4096 byte constants :-)
18:06 jnthn TimToady: Well, yeah, what I wasn't saying above is "gah, I hate this whole thing!"
18:06 TimToady std: /<[\Whozop?]>/
18:06 p6eval std 31124: OUTPUT«ok 00:01 105m␤»
18:06 TimToady std: /<[Whozp]>/
18:07 p6eval std 31124: OUTPUT«ok 00:01 105m␤»
18:07 moritz_ pmichaud: funnily I mentioned inversion lists on perlmonks just the other day
18:07 * pmichaud checks
18:07 pmichaud have a url handy?
18:07 TimToady std: /[\Whozop]/
18:07 p6eval std 31124: OUTPUT«ok 00:01 105m␤»
18:07 moritz_ http://www.perlmonks.org/?node_id=842899
18:07 TimToady std: /[Whozop]/
18:07 p6eval std 31124: OUTPUT«ok 00:01 104m␤»
18:07 TimToady std: /[Whozp]/
18:07 p6eval std 31124: OUTPUT«Potential difficulties:␤  [Whozp] appears to be an old-school character class; please use <[Whozp]> if you␤    mean a character class, or quote it like 'Whozp' to match␤    string as a unit at /tmp/ojo1EFExIA line 1:␤------> [32m/[Whozp][33m⏏[31m/[0m␤ok 00:01 104m␤»
18:07 TimToady std: /[\Whozp]/
18:07 p6eval std 31124: OUTPUT«Potential difficulties:␤  [\Whozp] appears to be an old-school character class; please use <[\Whozp]> if you␤    mean a character class, or put whitespace inside like [ \Whozp ] to disable␤    this warning at /tmp/DkzbJKYV95 line 1:␤------> [32m/[\Whozp][33m⏏[31m/[0m␤ok 00:01
18:07 p6eval ..1…
18:08 jnthn TimToady: Ah, the double o maybe?
18:08 TimToady yep
18:08 jnthn Makes sense.
18:08 TimToady std: /[\Who zp]/
18:08 p6eval std 31124: OUTPUT«Potential difficulties:␤  [\Who zp] appears to be an old-school character class; please use <[\Who\x20zp]> if you␤    mean a character class, or put whitespace inside like [ \Who zp ] to disable␤    this warning at /tmp/mcQO0HuqMz line 1:␤------> [32m/[\Who zp][33m⏏[31m/[0m␤ok
18:08 p6eval ..…
18:08 moritz_ (short summary: somebody looked for a way to count number of overlaps for sparse ranges)
18:08 TimToady std: /[ \Whozp ]/
18:08 p6eval std 31124: OUTPUT«ok 00:01 106m␤»
18:08 TimToady which also works for the double space
18:09 bluescreen joined #perl6
18:09 Chillance joined #perl6
18:12 * pmichaud really wants a way for NQP to access Parrot's constants more directly.
18:13 TimToady std: for ^20 {my ($a,$b)=<AT CG>.pick.comb.pick(*); my ($c,$d)=sort map {6+4*sin($_/2)},$_,$_+4; printf "%{$c}s%{$d-$c}s\n",$a,$b}
18:13 p6eval std 31124: OUTPUT«ok 00:01 108m␤»
18:13 TimToady okay, "%{$c}" now doesn't complain
18:15 TimToady std: "${foo}bar"
18:15 p6eval std 31124: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of ${foo}; in Perl 6 please use {$foo} at /tmp/8qfYmPOPl5 line 1:␤------> [32m"${foo}[33m⏏[31mbar"[0m␤Parse failed␤FAILED 00:01 104m␤»
18:15 TimToady but that still does :)
18:16 pugssvn r31125 | moritz++ | [t/spec] a wee unfudge for rakudo
18:16 pmichaud exit # lunch
18:16 pugssvn r31126 | moritz++ | [t/spec] rewrite exit.t with Test::Util
18:17 jnthn pmichaud: noooo...you exit isn't resumable!
18:18 jnthn s/you //
18:18 moritz_ jnthn: as long as it's not /exit :-)
18:19 pmichaud jnthn: perhaps "exit" as in  "Exit stage right, followed by a bear" ?
18:19 pmichaud (lunch is slightly delayed)
18:19 moritz_ rakudo: use Test; plan 1; lives_ok { warn "# foo" }, 'bar';
18:19 p6eval rakudo 01583b: OUTPUT«1..1␤not ok 1 - bar␤# Looks like you failed 1 tests of 1␤»
18:19 pmichaud jnthn: so, here's an idea
18:20 jnthn .oO( dammit, .^attributes is epicly broken )
18:20 pmichaud PAST::Val.new( :value('.CONTROL_NEXT'), :from('exception_types') )
18:21 pmichaud where that gets automatically translated into the appropriate .include and remains a constant in the PIR source
18:21 pmichaud (as opposed to being translated into the integer equiv)
18:21 jnthn pmichaud: Hmm
18:21 dalek rakudo: e67ef33 | moritz++ | t/spectest.data:
18:21 dalek rakudo: run exit.t
18:21 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e67ef33a6df8b247e6b4e4da834045668a6ecae3
18:21 pmichaud so that we don't have to be doing  Q:PIR { .include ... }
18:21 jnthn pmichaud: I guess that's kinda mappable to other backends.
18:21 jnthn pmichaud: Yeah, that sucks to do.
18:22 jnthn pmichaud: Maybe drop the . (of course, insert it when emitting the PIR)
18:22 pmichaud well, more generically I'm also thinking of something like   nqp::exception_types<CONTROL_NEXT>
18:22 jnthn Hmm, yes.
18:22 pmichaud afk, dinner.
18:23 pmichaud er, lunch
18:23 pmichaud and yes, drop the .
18:23 jnthn I think either of those maybe works
18:23 jnthn Well
18:24 jnthn I guess you'd need both at some level
18:24 jnthn Maybe it's a good idea to find a way to have nqp:: style things without confusing operations and "hashes" though
18:27 Trashlord joined #perl6
18:35 TimToady also note that warnings are control exceptions because they expect to resume
18:35 TimToady control exceptions are basically all those below the "I think I'm dying" threshold.
18:37 TimToady and that is the threshold that is the CONTROL/CATCH boundary
18:38 pmichaud jnthn: it's not much different than other namespaces, though.    Maybe  %nqp::exception_types<CONTROL_NEXT>  is special.
18:38 pmichaud or maybe we just find a way to have   const CONTROL_NEXT
18:39 jnthn pmichaud: Aye
18:39 pmichaud TimToady: so, CATCH doesn't catch &warn ?
18:39 pmichaud (just verifying)
18:39 TimToady nope
18:39 pmichaud okay.
18:39 TimToady I believe that's specced
18:39 jnthn pmichaud: Anyway, the idea overall (expose the constants in a way that's VM-independent) is a fine one.
18:40 TimToady S04:1092
18:40 pmichaud TimToady++
18:42 sorear jnthn: pmichaud has already +1'd my proposal (pasm::HEADER::NAME for direct access to Parrot constants to use with pir::, but if you're using portable nqp:: calls, use the nqp:: constant aliases)
18:42 pmichaud sorear: yes, that's what we're currently discussing
18:43 pmichaud sorear: I'm trying to figure out exactly how I want to fold it into nqp/past/post
18:43 pmichaud I may go with the pasm:: approach for the short-term.
18:43 sorear :scope('macro'), :include('exception_types.pasm') ?
18:44 pmichaud I'm thinking they're more PAST::Val than PAST::Var
18:44 pmichaud and I'm more interested in "constants", not "macros"
18:44 jnthn Aye, the "macro" thing is a Parrot implementation detail.
18:51 lue ohai again
18:52 Trashlord joined #perl6
18:53 pmichaud afk, walk.
18:54 pugssvn r31127 | lwall++ | [STD] backwards /s and /m noticed by moritz_++
19:01 sorear diakopter: How do I compile this thing?
19:02 pugssvn r31128 | lwall++ | [S05] posit that cursor lists may be returned to a regex with <.gather { take ... }>
19:14 pmichaud back
19:14 diakopter sorear: (back)
19:14 diakopter sorear:  xbuild Sprixel.sln
19:17 diakopter sorear, well
19:17 diakopter xbuild /p:Configuration=Release Sprixel.sln
19:17 diakopter then
19:18 diakopter run Sprixel.exe (  `mono bin\Release\Sprixel.exe`) to generate perlesque.exe
19:19 diakopter then  `mono -O=-all,cfold perlesque.exe file-to-run` to run perlesque code
19:20 diakopter -O=-all,cfold  disables mono optimizations that ... take longer than they should
19:26 jnthn std: my $x = multi method () { }
19:26 p6eval std 31127: OUTPUT«ok 00:01 109m␤»
19:26 jnthn Ah, STD doesn't do that (semantic) check.
19:26 jnthn Turns out termish needs to clear $*MULTINESS like it does $*SCOPE, anyways.
19:27 jnthn Otherwise if you write an anonymous method inside a multi sub you get an epic fail.
19:27 jnthn bbs
19:27 finanalyst joined #perl6
19:28 jnthn std: sub foo() { sub bar() { }; sub bar() { }; }
19:28 p6eval std 31127: OUTPUT«[31m===[0mSORRY![31m===[0m␤Illegal redeclaration of routine 'bar' (see line 1) at /tmp/irHvoUI1Xl line 1:␤------> [32msub foo() { sub bar() { }; sub bar[33m⏏[31m() { }; }[0m␤Check failed␤FAILED 00:01 105m␤»
19:28 jnthn std: multi sub foo() { sub bar() { }; sub bar() { }; }
19:28 p6eval std 31127: OUTPUT«ok 00:01 105m␤»
19:28 sorear diakopter: Sprixel.exe is generating a *huge* amount of output
19:28 jnthn TimToady: ^^
19:29 diakopter sorear: oh, oops
19:29 diakopter kill it :)
19:29 diakopter I should have said  mono Sprixel.exe -e ''
19:29 sorear what are all those numbers?
19:30 diakopter you must not have updatd to r318
19:30 sorear fresh checkout an hour ago
19:30 sorear At revision 318.
19:30 diakopter oh
19:30 diakopter the numbers are 1..5 over and over again
19:31 diakopter perlesquel: my FrameBase $F; my $x = 5; $F = _cc.Clone(); $F.Instruction-=2; say(1); say(2); say(3); say(4); say(5); goto $F; say('done');
19:31 diakopter I thought I removed that.
19:31 p6eval perlesquel:
19:31 p6eval ..OUTPUT«1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5␤1␤2␤3␤4␤5�
19:31 diakopter anyway, just run what I wrote above
19:32 diakopter ignore the stdout
19:32 diakopter note I never said to redirect stdout to a file
19:32 diakopter heh
19:33 diakopter if you got that far, perlesque.exe is already created
19:33 diakopter so proceed on
19:34 sorear no, I didn't redirect stdout to a file
19:34 sorear which was a mistake
19:34 sorear screen was using lots and lots of CPU
19:34 diakopter oh
19:34 sorear stefan@stefans:~/dl/csmeta$ mono Sprixel/bin/Release/Sprixel.exe -e ''
19:34 sorear Unhandled Exception: System.IO.FileNotFoundException: Could not find file "/home/stefan/dl/csmeta/-e".
19:34 sorear what does this mean
19:34 diakopter ok, oops, I forgot
19:35 diakopter I'm sorry I'm not being clear.
19:35 diakopter I'm being very unclear :(
19:35 azert0x joined #perl6
19:35 diakopter instead of running that line there,
19:35 diakopter proceed to the next step I mentioned, which is "to run perlesque code"
19:35 diakopter mono -O=-all,cfold perlesque.exe file-to-run
19:35 diakopter mono -O=-all,cfold Sprixel/bin/Release/perlesque.exe file-to-run
19:36 sorear can I run code not in files?
19:37 diakopter I thought so..
19:37 sorear ok, it's still not working.
19:38 pugssvn r31129 | lwall++ | [STD] termish should reset $*MULTINESS as noted by jnthn++
19:38 sorear http://pastie.org/993246
19:39 diakopter another thing I forgot; currently you have to cd into bin/Sprixel/Release
19:40 sorear did you mean Sprixel/bin/Release
19:40 diakopter yes; sorry :)
19:41 sorear \o/
19:41 sorear it works
19:42 diakopter startup time for perlesque.exe is kinda high, but I hope to figure out how to make that greatly diminished - by rewriting the grammar compiler (again).
19:43 diakopter but it should be quite fast to parse sizable chunks of perlesque code
19:43 occamshatchet joined #perl6
19:43 diakopter valid perlesque code, that is :D
19:44 diakopter you can run the tests, too.  one of them fails (it's TODO, while I'm still figuring out how to solve it)
19:44 azert0x_ joined #perl6
19:44 diakopter oh, the test runner needs rewritten
19:45 diakopter since calling Sprixel.exe makes it regenerate perlesque.exe every time
19:46 kst joined #perl6
19:52 TimToady I suppose it's time to start removing the sops to gimme5 from STD.pm6, such as hardwiring objects as hashes, and using real accessors (which viv can turn back into hash accesses if it likes)
19:52 dalek csmeta: r319 | diakopter++ | trunk/Sprixel/run_tests.sh:
19:52 dalek csmeta: [perlesque] update run_tests.sh
19:52 dalek csmeta: review: http://code.google.com/p/csmeta/source/detail?r=319
19:52 dalek csmeta: r320 | diakopter++ | trunk/Sprixel/Main.cs:
19:52 dalek csmeta: [perlesque] remove silly default code
19:52 dalek csmeta: review: http://code.google.com/p/csmeta/source/detail?r=320
20:01 diakopter sorear: do you feel you have a good enough grasp of the perlesque syntax/expressivity?
20:01 diakopter I would be glad to detail it
20:02 dalek csmeta: r321 | diakopter++ | trunk/Sprixel/t/p (3 files):
20:02 dalek csmeta: [perlesque] comment out the tests pmurias fatally broke :)
20:02 dalek csmeta: review: http://code.google.com/p/csmeta/source/detail?r=321
20:03 Psyche^ joined #perl6
20:04 uvtc joined #perl6
20:05 lue grr... where's a good place to upload some of my P6 merchandise?
20:05 lue [wordpress needs to let me upload tarballs :/]
20:05 uvtc Hi. I've been writing down some "quickstart" notes for Perl 6. They are at http://www.unexpected-vortices.com/docs/dev-notes/perl-6/green-onion-quickstart.html . If anyone has any corrections or opinions, please let me know.
20:05 jnthn rakudo: say Attribute ~~ Any
20:05 p6eval rakudo e67ef3: OUTPUT«1␤»
20:06 jnthn rakudo: say Attribute.new.perl
20:06 p6eval rakudo e67ef3: OUTPUT«Method 'perl' not found for invocant of class 'Attribute'␤  in main program body at line 11:/tmp/K4kQ3wY3lz␤»
20:06 pmichaud uvtc: you might want to call them "quickstart notes for Rakudo", since Perl 6 is just a language.
20:06 pmichaud For example, in "Installation", I see...
20:06 pmichaud "Perl 6 comes in 2 parts: Rakudo (the Perl 6 compiler), and Parrot (the virtual machine)..."
20:07 pmichaud this is slightly misleading, as there is no "official Perl 6"
20:07 uvtc pmichaud: Ah, good point. Thanks. Will correct that.
20:08 pmichaud on my ubuntu system, I just install the "libicu-dev" package, which doesn't seem to require a number.
20:08 azert0x_ joined #perl6
20:09 pmichaud not sure why I chose -dev, though.  Maybe I needed it at one point to do development.
20:11 uvtc pmichaud: (re. libicu) Oooh. Good point. I built Rakudo and Parrot without it, but using that package name makes things just a bit simpler.
20:11 uvtc pmichaud: edit: whoops. I *do* have it installed.
20:12 pmichaud yeah, I'm wondering if -dev is in fact required for it to work.  I know that on my ubuntu system, I've often needed libreadline5-dev in order to get readline support in parrot/rakudo to work.
20:13 pmichaud so some things seem to require the -dev package.
20:13 dalek rakudo: b56b5e6 | jonathan++ | src/metamodel/ClassHOW.pir:
20:13 dalek rakudo: Start to fix up .^attributes somewhat. This at least resolves an RT, but we
20:13 dalek rakudo: can't pass S12-introspection/attributes.t just yet.
20:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b56b5e6c5c927cad22b878b53b5d08da0f220821
20:13 dalek rakudo: 6dd7efa | jonathan++ | src/Perl6/Grammar.pm:
20:13 dalek rakudo: Fix a $*MULTINESS leak.
20:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6dd7efac4ae63b074582d088122ee12059a465c3
20:13 dalek rakudo: 01ef15a | jonathan++ |  (2 files):
20:13 dalek rakudo: Attribute should inherit from Any; requires a little bit of re-ordering of the
20:13 dalek rakudo: builtins.
20:13 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/01ef15a1686e45d79fa31ea375c136588d1dc331
20:13 lue Anyone know of a good place to put a couple of tarballs up? It's P6 related, so I was thinking the pugs repo....
20:14 pmichaud lue: what's in the tarballs?
20:15 pugssvn r31130 | jnthn++ | [t/spec] Fudge some of attributes.t - we can run the majority of it now.
20:16 lue one has merchandise svgs, the other has the other in png format.
20:16 lue [If it were to go to pugs, it'd be worth it to upload the whole folder, not a tarball]
20:17 lue s/has the other/has the same stuff/
20:19 uvtc pmichaud: updated. Thanks.
20:19 diakopter sorear: around?
20:21 lue I was thinking it'd fit well in the misc/ folder
20:22 uvtc Gotta go. Any other input, please don't hesitate to email (addr in footer). Thanks.
20:22 diakopter perlesque: sub factorial(int $a --> int) { if $a <= 1 { return 1 }; return factorial($a-1) * $a }; say(factorial(15));
20:22 p6eval perlesque: OUTPUT«2004310016␤»
20:23 pugssvn r31131 | jnthn++ | [t/spec] Add a test for the multi leakage but I accidentally in the Rakudo setting.
20:23 jnthn s/but/bug/
20:23 jnthn gah, wish there was an svn --amend :-)
20:28 azert0x joined #perl6
20:35 lue afk # and then uploading p6 merchandise pictures
20:36 dalek rakudo: 22dcb5c | jonathan++ | t/spectest.data:
20:36 dalek rakudo: Turn on S12-introspection/attributes.t.
20:36 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/22dcb5cfa6c38d2f3a9fb216105c10ea400b37e4
20:39 pyrimidine joined #perl6
20:40 patrickas joined #perl6
20:40 patrickas sa3ideh perlsixers
20:40 sorear diakopter: I know very little.  perlesque in my mind is basically "simply-typed IronNQP with call/cc"
20:40 patrickas rakudo: for &map.candidates -> $m { say $m.signature.perl; }
20:40 p6eval rakudo e67ef3: OUTPUT«:(&mapper, *@values)␤»
20:41 sorear pmichaud: on Debian-derived distributions, -dev is almost always required for FFI work
20:42 sorear pmichaud: in order to ensure that you always compile against the correct library version while allowing more than one to be installed, Debian policy puts the /usr/lib/libfoo.so -> /usr/lib/libfoo.so.1.2.3.4 symlink in the same package as /usr/include/foo.h
20:43 sorear pmichaud: this is fine for compiled code, but if you're doing dlopen("libfoo.so")... you need to depend on -dev :/
20:44 diakopter sorear: that's mostly correct
20:44 diakopter sorear: and mostly complete
20:44 pugssvn r31132 | lwall++ | [STD] switch .<_from> and .<_pos> hash lookups to using .from and .pos accessors
20:45 sorear pmichaud: http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev
20:45 eternaleye joined #perl6
20:45 sorear diakopter: back.
20:45 diakopter sorear: what you're missing is that the complete CLR base class library is also at your disposal
20:45 diakopter (which is gargantuan, really)
20:46 sorear yes.  and I know nothing about it
20:46 diakopter sorear: but, consider me your gateway/portal for accessing that library :)
20:46 sorear what's a good reference?
20:47 diakopter msdn is the definitive reference, but it's ... enormous. it's better to ask a search engine naively
20:47 diakopter or me
20:47 diakopter or jnthn
20:47 Guest24348 left #perl6
20:49 diakopter sorear: basically I'm going to follow your lead.  just emit whatever code/API you feel like, I'll write the api/wrappers/glue for it
20:49 pugssvn r31133 | jnthn++ | [t/spec] Unfudge tests for RT#65514 and add a couple of extra ones for it too.
20:50 diakopter sorear: in other words, code blindly (without testing) :)
20:50 diakopter (just to get some code emitted)
20:50 |Jedai| joined #perl6
20:50 diakopter and I'll fix it up
20:52 diakopter rakudo: sub factorial(Int $a --> Int) { if $a <= 1 { return 1 }; return factorial($a-1) * $a }; say(factorial(12));
20:52 p6eval rakudo 22dcb5: OUTPUT«479001600␤»
20:52 diakopter perlesque: sub factorial(int $a --> int) { if $a <= 1 { return 1 }; return factorial($a-1) * $a }; say(factorial(12));
20:52 p6eval perlesque: OUTPUT«479001600␤»
20:52 diakopter whee
20:52 diakopter I got the startup time of perlesque p6eval reduced :)
20:52 diakopter (finally)
20:53 dalek rakudo: 8befeb2 | jonathan++ | src/core/operators.pm:
20:53 dalek rakudo: Implement the non-role case of does (and thus but, which just delegates to
20:53 dalek rakudo: does), as per S14.
20:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8befeb206ead3a7661024cc76c9d9c3584c06edb
20:54 diakopter sorear: do you have anything started in viv?  feel free to commit it if you want any feedback...
20:55 diakopter stupid me bought a sony vaio notebook 2 years ago, not knowing the bios locked me out of Intel VT and external monitor rotation.  found the hack to obtain VT, but can't find one for rotation. :(
20:56 patrickas rakudo: for 1..Inf  {.say;last; }
20:56 p6eval rakudo 22dcb5:  ( no output )
21:00 sorear VT?
21:01 diakopter hardware virtualization
21:02 diakopter http://en.wikipedia.org/wiki/Intel_VT
21:03 sorear aha
21:03 sorear so, what, do they sell a high-priced model with VT enabled?
21:03 diakopter no; no vaio has it
21:04 sorear is this the new 486SX "let's cut the Vcc trace to the integrated coprocessor and call it a cheap model"?
21:05 dalek rakudo: 609fd63 | jonathan++ | src/Perl6/Actions.pm:
21:05 dalek rakudo: Add a missing .node in term:sym<name>, which happily gets us reporting sub not
21:05 dalek rakudo: found line numbers more accurately.
21:05 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/609fd63013f231173b535809f35462acd59b29c9
21:05 diakopter I have no idea; did you see my comments above re: viv/perlesque?
21:05 sorear yes
21:06 diakopter are you ok with that plan?
21:06 sorear vaguely
21:06 sorear I worry I'll change too much
21:06 diakopter ah
21:07 * diakopter is reminded of the arrow practice targets in Disney's Robin Hood
21:08 diakopter don't worry about changing too much; there's no such threshold. we'll all throw away most of our code anyway eventually
21:08 kensanata joined #perl6
21:09 diakopter I'd just like to see the general structure/architecture
21:12 ispeak_ joined #perl6
21:15 plobsing joined #perl6
21:17 moritz_ rakudo: my $x = 3 but False; say "foo" if $x;
21:17 p6eval rakudo 22dcb5: OUTPUT«No applicable candidates found to dispatch to for 'infix:<does>'. Available candidates are:␤:(Mu $do-it-to-me, Role $r)␤:(Mu $do-it-to-me, ConcreteRole $r)␤:(Mu $do-it-to-me, (Parcel) $roles)␤␤  in 'infix:<but>' at line 485:CORE.setting␤  in main program body at line
21:17 p6eval ..11:/tmp/APWgva…
21:18 moritz_ prints foo\n locally here
21:18 moritz_ because it doesn't know that True is an enum
21:18 sorear diakopter: do the CLR base libraries support dynamically-typed containers?
21:18 * sorear thinks back to the VB6 Variants of his youth
21:19 moritz_ and that enums have different mixin semantics than ordinary values
21:19 patrickas std: class Foo {  has Int $.length;} ; my $f = Foo.new(:length(5, 7));
21:19 p6eval std 31133: OUTPUT«ok 00:01 109m␤»
21:19 patrickas what does that mean  ?
21:20 patrickas oh hello moritz_
21:20 moritz_ it parsed it OK in 1s using 109m of RAM
21:20 moritz_ should be a run-time error, but STD.pm has no run time (yet?)
21:21 patrickas rakudo: class Foo {  has Int $.length; method p {say $.length;} } ; my $f = Foo.new(:length(5, 7)); $f.p;
21:21 p6eval rakudo 22dcb5: OUTPUT«57␤»
21:22 patrickas It's from http://perl6advent.wordpress.com/2009/12/22/day-22-operator-overloading/
21:22 moritz_ :(
21:22 pugssvn r31134 | moritz++ | [t/spec] test for RT #75446, offby1 line number report for non-existing sub calls
21:24 patrickas oh well ... btw what did the problem with p6eval turn out to be?
21:24 moritz_ haven't resolved or tracked it down yet
21:25 patrickas I guess it resolved itself then :-)
21:25 moritz_ rakudo: my %h = a => 1, b = >3; say (map { .WHAT }, %h).join(', ')
21:25 p6eval rakudo 22dcb5: OUTPUT«===SORRY!===␤Confused at line 11, near "my %h = a "␤»
21:25 moritz_ rakudo: my %h = a => 1, b => 3; say (map { .WHAT }, %h).join(', ')
21:25 p6eval rakudo 22dcb5: OUTPUT«Pair(), Pair()␤»
21:26 moritz_ huh.
21:26 patrickas I thought you had worked on it :-)
21:26 kensanata joined #perl6
21:26 moritz_ I pushed something to trigger a rebuild
21:27 moritz_ the version number says the rebuild worked
21:27 moritz_ it might be lying
21:27 patrickas well i checked that colomon's patch is now in
21:27 patrickas rakudo: for &map.candidates -> $m { say $m.signature.perl; }
21:27 p6eval rakudo 22dcb5: OUTPUT«:(&mapper, @values)␤»
21:27 patrickas WHAT!
21:27 moritz_ so it's still the auld one
21:28 moritz_ diakopter: did you touch the rakudo build on p6eval today?
21:28 patrickas but that's the first thing i checked when I logged in !
21:28 patrickas I'm going crazy
21:28 patrickas [23:43] <patrickas> rakudo: for &map.candidates -> $m { say $m.signature.perl; }
21:28 moritz_ p6eval keeps two copies of rakudo installs around
21:28 patrickas [23:43] <p6eval> rakudo e67ef3: OUTPUT«:(&mapper, *@values)␤»
21:28 patrickas [
21:29 * sorear has located the MSDN CORLIB docs
21:29 moritz_ maybe one of them is borked, and other not
21:29 patrickas that was an huor ago
21:29 patrickas yes that must be it
21:30 moritz_ the reason is that the rebuild is slow with little memory, so that one still works while the other is being compiled
21:30 patrickas heheh I thought I was going crazy :-)
21:30 patrickas and how does it switch between them ?
21:30 moritz_ you are. This is #perl6. Abandon all dreams of sanity.
21:30 moritz_ patrickas: a symlink
21:31 moritz_ I have ~/p1 and ~/p2 as install locations
21:31 moritz_ and a symlink ~/p which points to the one that was last rebuilt successfully
21:31 patrickas ok but I mean 12 hours ago the patch was not in, one hour ago it was in and now it is not
21:31 jnthn moritz_: Actually it does the right thing if you do ! or ? on it.
21:31 jnthn moritz_: Or anything that results in .Bool
21:32 jnthn moritz_: It's just that if doesn't actually seem to lead to such a call...
21:32 moritz_ jnthn: and 'if' isn't iffy enough :-)
21:33 jnthn :-)
21:33 jnthn moritz_: Even if Bool was a true enum though, we'd still end up adding a Bool method that would need to be called.
21:34 moritz_ sure
21:34 jnthn moritz_: Though you're right that enum value mix-in semantics are different.
21:34 moritz_ so it's really an "if" bug/limitation in this case
21:34 jnthn (It'd work about the same but for different reasons.)
21:34 jnthn Yes, afaict.
21:34 patrickas I suspect the current rakudo used by p6eval (22dcb5) doesn't have any of the patches applied today.. can you guys test? moritz_ and jnthn both pushed changes ...
21:35 moritz_ patrickas: I've triggered a rebuild on the server now
21:35 moritz_ hoping, hoping
21:35 patrickas ko
21:35 jnthn dinner, bbiab
21:35 patrickas ok :-)
21:36 moritz_ oh noez
21:36 patrickas the build is borked ?
21:36 moritz_ we're back at a bunch of "this is not a Perl 6 Str string" failures
21:37 moritz_ build is still running
21:39 moritz_ such a rewrite throws lots of stuff away...
21:40 moritz_ rakudo: say .perl for &map.candidates
21:40 p6eval rakudo 609fd6: OUTPUT«{ ... }␤»
21:40 pugssvn r31135 | moritz++ | [t/spec] refudged real-strings.t for rakudo, and add test for RT #75456 (numification of match objects with trailing space)
21:40 moritz_ rakudo: say .signature.perl for &map.candidates
21:40 p6eval rakudo 609fd6: OUTPUT«:(&mapper, *@values)␤»
21:41 moritz_ patrickas: should now be new version
21:41 patrickas ok let's hope it lasts :-)
21:42 moritz_ I've triggered a second rebuild now, to get the second up-to-date too
21:42 patrickas I am not able to get the one liner at the end of day 23 to work.
21:42 patrickas not even with alpha!
21:42 moritz_ is that curtesy of masak?
21:43 patrickas I am afraid my perl6 fu is not up to the task :-(
21:43 patrickas the one liner is by "David Burton"
21:43 patrickas rakudo: say [my@i=0 xx 9,1,0 xx 9];map {say [@i=m {%([^8]>>.fmt("%03b") Z  0,1,1,1,1,0,0,0){@i[($_-1)%19,$_,($_+1)%19].join}},^19]},^9;
21:43 p6eval rakudo 609fd6: OUTPUT«0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0␤»
21:44 moritz_ look like a flattening issue
21:44 moritz_ or laziness
21:44 moritz_ hey, it's map in void context
21:46 ispeak_ joined #perl6
21:46 patrickas obfuscated perl is all fun until you have to understand it :-)
21:46 moritz_ std: say [my@i=0 xx 9,1,0 xx 9];map {say [@i=m {%([^8]>>.fmt("%03b") Z 0,1,1,1,1,0,0,0){@i[($_-1)%19,$_,($_+1)%19].join}},^19]},^9;
21:46 p6eval std 31134: OUTPUT«ok 00:01 112m␤»
21:49 moritz_ I don't understand it eiher
21:50 sorear perl 6 has a way of shooting you in the foot if you try to obfuscate it
21:50 sorear this could be construed as an advantage
21:50 moritz_ the problem is, you can carefully work around the shootings
21:52 sorear mberends: do you have any objection to (js) sprixel being removed from pugsrepo?  diakopter wants it gone
21:52 moritz_ it's all in version control :-)
21:53 moritz_ so gone is really just "gone" :-)
21:54 sorear yes
21:54 patrickas bbl! I'll try to decipher it later!
21:54 * moritz_ goes to sleep
21:58 pyrimidine moritz_: great job on .trans!
22:00 Guest33860 joined #perl6
22:02 xomas_ joined #perl6
22:02 xomas_ joined #perl6
22:04 sorear diakopter: 2010-05-11 blog post needs despamming
22:08 xomas_ joined #perl6
22:11 diakopter sorear: thanks :)
22:11 diakopter i'll fix
22:14 diakopter sorear: actually v4 of CLR does support dynamic
22:14 diakopter and I think mono has implemented much (all?) of it too
22:15 diakopter so that could be worth looking at
22:18 xinming_ joined #perl6
22:19 diakopter sorear: to look at the CIL assembly, you can do something like:  monodis perlesque.exe
22:19 diakopter or  monodis asmbly_1.exe
22:19 diakopter if you have a windows box/vm, it's helpful to use Reflector to look at the C# edition too (or VB.net)
22:19 diakopter afk&
22:25 xabbu42 joined #perl6
22:37 sorear Mmmm decompilers.
23:06 orafu joined #perl6
23:28 * diakopter just comes up with the stupid idea to write the next perlesque stage in perlesque
23:28 diakopter duh
23:28 diakopter afk again& :)
23:33 sorear diakopter: does perlesque have any IRs I can look at?
23:37 sorear diakopter: in types.t, where are decimal et al defined?  They don't look like CLR types
23:37 sorear diakopter: what happens when + is used in perlesque on object types?
23:39 pugssvn r31136 | lwall++ | [CursorBase] attempt to continue when there is only the .syml file
23:39 pugssvn r31137 | lwall++ | [tryfile] add in t/spec/packages when it makes sense
23:41 jnthn sorear: .Net has a Decimal type built in.
23:44 sorear I am unable to find it in the MSDN class hierarchy documentation
23:44 jnthn sorear: http://msdn.microsoft.com/en-us/library/system.decimal.aspx
23:45 sorear also, it's so nice seeing TimToady effortlessly moving back in even after my shakeup
23:47 TimToady "I'm all shook up!"  --Elvis
23:47 sorear TimToady: What parts of the error reporting system do you think belong outside STD?
23:47 * jnthn hopes TimToady hasn't left the building
23:48 TimToady that's okay, I'll probably keep making appearances after I'm dead too...
23:48 sorear I just moved the smallest subset of .panic required to support FAILGOAL
23:48 * TimToady is wondering why it gets a redef on the perl -c
23:48 * TimToady has also been looking at EXPR to what is P6oidal
23:49 TimToady not much, actually
23:49 sorear possibly I screwed up the "remove unneccesary blocks" optimization
23:51 TimToady well, it's not very screwed up, given we're still at 95.71%

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

Perl 6 | Reference Documentation | Rakudo