Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-03-08

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:04 lichtkind moritz_: and after?
00:07 moritz_ lichtkind: don't know
00:08 moritz_ you can easily find out yourself, though
00:09 snarkyboojum would be cool to have an autobuild type tool showing spectest pass/fails available on the web somewhere
00:09 phenny snarkyboojum: 07 Mar 14:21Z <masak> tell snarkyboojum that when he wakes up, he might want to take a look at the new code I just pushed to http://github.com/masak/tardis -- variable assignments now work! \o/
00:09 lichtkind moritz_: i have a pugs and parrot repo locally but im not that deep into it to run tests
00:11 moritz_ lichtkind: it's not hard, and well described in rakudo's README file
00:11 lichtkind moritz_: i din't doubt that, just not tried yet :)
00:16 moritz_ snarkyboojum: that's basically what smolder does
00:16 snarkyboojum moritz_: thought there might be something out there :) what's/where's smolder?
00:16 * snarkyboojum is quite the newbie
00:17 moritz_ snarkyboojum: it's a generic client/server thing for collecting test information
00:18 * moritz_ tries to find the link
00:19 moritz_ http://smolder.plusthree.com/app/public_projects/smoke_reports/18
00:21 snarkyboojum moritz_: oh :) thanks
00:23 snarkyboojum rakudo: say ~(1,2,3)
00:23 p6eval rakudo 213974: OUTPUT«3␤»
00:23 snarkyboojum rakudo: say (1,2,3).Str
00:23 p6eval rakudo 213974: OUTPUT«1 2 3␤»
00:23 snarkyboojum rakudo: say (1,2,3).WHAT
00:23 p6eval rakudo 213974: OUTPUT«Parcel()␤»
00:23 moritz_ that's a very odd one
00:24 snarkyboojum rakudo: say (1,2,3).iterator.WHAT
00:24 p6eval rakudo 213974: OUTPUT«List()␤»
00:24 snarkyboojum rakudo: say ~((1,2,3).Seq)
00:24 p6eval rakudo 213974: OUTPUT«1 2 3␤»
00:24 snarkyboojum weird :)
00:24 moritz_ rakudo: class A { }; say ~A.new; say A.new; say A.new.Str
00:24 p6eval rakudo 213974: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6protoobject;VTABLE_name' pc 1296 (runtime/parrot/library/P6object.pir:764)␤»
00:25 moritz_ rakudo: class A { };  say A.new; say A.new.Str
00:25 p6eval rakudo 213974:  ( no output )
00:25 snarkyboojum I was trying to track it down, as a learning exercise
00:26 moritz_ wow, things are really more screwed than I thought
00:26 moritz_ the method Str in Any-str.pm is oh so wrong
00:26 moritz_ rakudo: class A { }; say A.WHICH
00:26 p6eval rakudo 213974: OUTPUT«47668155388928␤»
00:26 moritz_ rakudo: class A { }; say A.WHERE
00:26 p6eval rakudo 213974: OUTPUT«47314470797688␤»
00:27 quester_ joined #perl6
00:27 moritz_ rakudo: class A { }; say A.new.WHERE
00:27 p6eval rakudo 213974: OUTPUT«47098753465736␤»
00:27 moritz_ rakudo: class A { }; say A.new.WHICH
00:27 p6eval rakudo 213974: OUTPUT«47956305276616␤»
00:27 snarkyboojum found the definition for prefix<~> src/cheats/str-ops.pir, which just returns a 'Str' PMC.. is that right?
00:28 moritz_ yes...
00:28 moritz_ this PIR level conversion calls the get_string vtable method
00:28 snarkyboojum so the parcel is stringifying somewhere..
00:28 snarkyboojum right
00:29 moritz_ and then in class Mu there's :.sub '' :vtable('get_string') :method
00:29 moritz_ (in src/builtins/Mu.pir)
00:29 moritz_ which just calls the .Str() method on the invocant
00:30 snarkyboojum so why does (1,2,3).Str work?
00:30 snarkyboojum rakudo: say (1,2,3).Str()
00:30 moritz_ so it should be a matter of simply installing the correct .Str methods somewhere
00:30 p6eval rakudo 213974: OUTPUT«1 2 3␤»
00:30 moritz_ rakudo: say Parcel ~~ Mu
00:30 p6eval rakudo 213974: OUTPUT«1␤»
00:31 moritz_ snarkyboojum: I have no idea; that's where the sneakyness comes in
00:31 moritz_ rakudo: say (1, 2, 3).^methods.map({~$_}).grep({/Str/}).perl
00:32 p6eval rakudo 213974:  ( no output )
00:33 moritz_ says "maximum recursion depth exceeded" locally here
00:33 moritz_ anyway, time for bed here...
00:34 Tene moritz_: vtable overrides don't get inherited properly, afaict.
00:36 colomon joined #perl6
00:39 jferrero joined #perl6
00:49 yinyin joined #perl6
00:51 colomon joined #perl6
00:52 lichtkind moritz_: thanks
00:53 colomon moritz_ is still awake?!  hackathon++!
00:55 amenhotep joined #perl6
00:56 snarkyboojum rakudo: say ~(1,)
00:56 p6eval rakudo 213974: OUTPUT«1␤»
00:56 snarkyboojum rakudo: say ~()
00:56 p6eval rakudo 213974: OUTPUT«0␤»
00:56 snarkyboojum rakudo: say ().WHAT
00:56 p6eval rakudo 213974: OUTPUT«Parcel()␤»
00:58 snarkyboojum is that right? stringifying () --> 0?
00:59 colomon snarkyboojum: I think it's stringifying to the number of elements in the Parcel, so no.
00:59 snarkyboojum colomon: how would I work out how parcels are stringified? :)
01:00 snarkyboojum can't see anything in Parcel.pir
01:00 colomon might also check Parcel.pm
01:00 snarkyboojum not there either
01:00 colomon then look for the base class(es?) of Parcel
01:01 colomon parcelproto = p6meta.'new_class'('Parcel', 'parent'=>'parrot;ResizablePMCArray Iterable', 'does_role'=>pos_role)
01:01 colomon So iterable, maybe or ResizablePMCArray(??)
01:01 snarkyboojum 'parent'=>'parrot;ResizablePMCArray Iterable'
01:01 snarkyboojum I take it that's important
01:01 snarkyboojum :)
01:02 colomon doesn't look like Iterable.Str is getting called.
01:02 wknight8111 joined #perl6
01:03 colomon unfortunately, that's all the ideas I have....
01:03 snarkyboojum colomon: cheers - thought I'd have a bash ;)
01:04 colomon :)
01:05 snarkyboojum rakudo: say (1,2,3).of
01:05 p6eval rakudo 213974: OUTPUT«Mu()␤»
01:25 snarkyboojum joined #perl6
01:31 colomon so, it looks like the hackathoners took my challenge and ran away with it, going 25,678 passing tests this morning to 26,630 passing tests now, well past the 26,000 I suggested.
01:32 colomon rakudo: say 4063328477 % 65535
01:32 p6eval rakudo 213974: OUTPUT«27407␤»
01:33 colomon alpha: say 4063328477 % 65535
01:33 p6eval alpha 30e0ed: OUTPUT«27407␤»
01:34 colomon > say 4063328477 % 65535
01:34 colomon 27406
01:35 colomon kind of disturbed that I'm getting a different answer for that one locally....
01:36 colomon rakudo: say (4063328477 % 65535).WHAT
01:36 p6eval rakudo 213974: OUTPUT«Int()␤»
01:38 avar joined #perl6
01:38 elmex joined #perl6
01:38 z3ndrag0n joined #perl6
01:38 lisppaste3 joined #perl6
01:38 krunen joined #perl6
01:38 araujo joined #perl6
01:38 hatseflats joined #perl6
01:41 lichtkind good night
01:41 lichtkind http://use.perl.org/~perl6doc/journal/
01:41 colomon o/
01:41 lichtkind :)
01:43 jaldhar joined #perl6
01:45 jaldhar joined #perl6
01:54 diakopter colomon: wow
01:54 colomon I'm getting 50+ fails in arith.t.
01:55 diakopter rakudo: say say 4063328477 / 65535
01:55 p6eval rakudo 213974: OUTPUT«62002.4182040131␤1␤»
01:55 diakopter rakudo: say 4063328477 / 65535
01:55 p6eval rakudo 213974: OUTPUT«62002.4182040131␤»
01:57 colomon > say 4063328477 / 65535
01:57 colomon -3534.5818112459
02:01 colomon > say 4063328477
02:01 colomon -231638819
02:04 diakopter ah
02:05 diakopter overflow
02:16 z3ndrag0n joined #perl6
02:16 hudnix joined #perl6
02:17 lue joined #perl6
02:24 diakopter colomon: p6eval is on 64-bit...
02:24 diakopter linux
02:24 diakopter what's yours
02:24 colomon diakopter: 32-bit OS X
02:24 diakopter suspicious
02:25 diakopter it's suspect; I'm suspicious
02:25 colomon I should be looking at it more, but I'm very tired.
02:25 diakopter :D
02:25 colomon It's got to be the 32-bit thing, I reckon.
02:25 colomon I mean, 4063328477 == -231638819 is a classic 32-bit int issue.
02:25 diakopter sounds like rakudo assumes ints are 64-bit
02:26 diakopter does parrot have checked arithmetic operations?
02:26 diakopter or all unchecked?
02:26 colomon I don't know, but Rakudo does.
02:26 colomon I think, anyway....
02:27 colomon our sub upgrade_to_num_if_needed($test) {
02:27 colomon Q:PIR {
02:27 colomon .local num test
02:27 colomon $P0 = find_lex '$test'
02:27 colomon test = $P0
02:27 colomon if test > 2147483647.0 goto upgrade
02:27 colomon if test < -2147483648.0 goto upgrade
02:27 colomon $I0 = test
02:27 colomon .return ($I0)
02:27 colomon upgrade:
02:27 colomon .return (test)
02:27 colomon }
02:27 colomon }
02:28 colomon .... nope, never even reaches there in these cases.
02:30 colomon problem is maybe in dec_number in Actions.pm?
02:32 * quester_ Patched http://www.perlfoundation.org/perl6/index.cgi?roadmap_to_helping_with_development to say bugs and patches going to rt.perl.org should be marked [BUG] and {PATCH], with square brackets.  The wiki had turned them into links to pages called BUG and PATCH without visible brackets.  ...Well, I either fixed it or made it even more broken.
02:40 jaldhar_ joined #perl6
03:00 gfx joined #perl6
03:40 lue hello?
03:49 quester_ lue: Hello.  I guess no one is watching their screen now.
03:49 * quester_ Submitted RT #73418: [PATCH] Fix bug #68752, make perl6 --version more informative (second version of patch, replaces #73148)
03:52 snarkyboojum left #perl6
04:02 snarkyboojum joined #perl6
04:03 * lue --afk &
04:04 rv2733 joined #perl6
04:09 athenot_ joined #perl6
04:12 fridim joined #perl6
04:40 jaldhar_ joined #perl6
04:57 tuxdna joined #perl6
05:22 Sarten-X joined #perl6
05:30 quester_ left #perl6
05:42 am0c joined #perl6
05:46 nihiliad joined #perl6
05:46 vamped joined #perl6
05:50 IllvilJa joined #perl6
06:26 oracle joined #perl6
06:30 payload joined #perl6
06:42 OracleOnLog joined #perl6
06:43 mst joined #perl6
06:43 mst I'm not sure who should be told about this
06:44 mst but k23z__ is spx2/qp_pq - known troll, permanently banned from irc.perl.org for repeated ban evasion, legally banned from use of any shadowcat systems due to repeatedly hassling us
06:44 mst continued to connect illegally and had his VPS and shell accounts terminated by his service providers as a result
06:44 mst still convinced that I'm evil rather than admitting the possibility he ever did anything wrong
06:44 mst and continues to hassle me in query every 24 hours asking to be unbanned
06:45 mst you guys get to choose whether you still want him in here; if anybody needs more information do contact me.
06:45 mst jnthn: ^^
06:45 mst pmichaud: ^^
06:45 * mst vanishes again
06:45 mst left #perl6
06:55 kaare joined #perl6
06:56 cx3180 joined #perl6
06:57 cx3180 left #perl6
07:03 uniejo joined #perl6
07:06 vamped lol.
07:08 snarkyboojum heh
07:18 wasmahen joined #perl6
07:18 wasmahen hi, i have created a url shortener, anyone would want it?
07:19 JimmyZ joined #perl6
07:20 wasmahen left #perl6
07:22 moritz_ good morning
07:23 vamped guten Tag moritz
07:26 JimmyZ good moring moritz_
07:26 Su-Shee joined #perl6
07:26 moritz_ colomon: feel free to move any failing tests from arith.t into overflow.t
07:27 moritz_ I'd do it, but I'm kinda lost without knowing which fail
07:41 masak joined #perl6
07:41 masak moritz_: heh. I might have checked on IRC whether you were awake before knocking... :)
07:41 masak anymoose; good morning, #perl6.
07:42 masak moritz_: breakfast soon?
07:42 moritz_ masak: breakfast after shower... I'll give you a ping
07:42 masak shower. goodish idea.
07:43 szbalint hah, (irc coordination)++
07:45 mikehh joined #perl6
07:53 moritz_ speaking of which... is arnsholt still in the hotel?
07:53 masak I think so.
07:53 masak don't know when he was to leave.
07:53 masak shall I text him?
07:53 moritz_ yes; maybe he's intersted in joined breakfast too
07:54 * masak makes it so
07:56 masak heh. it became a text message in Swedish/Norwegian/English :)
07:57 masak he replies. he's up for breakfast.
07:57 eiro joined #perl6
07:58 xabbu42 joined #perl6
07:59 moritz_ so am I
07:59 masak as am I.
07:59 masak jnthn wanted to sleep in, no?
07:59 moritz_ yes :-)
08:00 masak then we'll let him.
08:19 payload joined #perl6
08:24 Toony joined #perl6
08:37 JimmyZ good morning masak
08:45 iblechbot joined #perl6
08:47 JimmyZ rakudo: say "hello"
08:47 p6eval rakudo 213974: OUTPUT«hello␤»
09:04 Oracle joined #perl6
09:15 masak good morning, JimmyZ.
09:15 * masak moves down to the lobby area
09:20 m6locks /j perl6book
09:20 m6locks whops
09:25 payload joined #perl6
09:27 jnthn oh hai
09:27 jnthn oh masak oh masak where hacketh thee?
09:27 moritz_ jnthn: in the lounge (close to the elevators)
09:28 jnthn cool, will come join you in a moment :-)
09:28 colomon will there be group hacking today as well?
09:28 * colomon was impressed with yesterday's results.
09:29 moritz_ colomon: aye
09:29 colomon \o/
09:29 colomon moritz_: good suggestion on moving the tests from arith.t
09:29 colomon I take it arith.t is working perfectly on 64-bit platforms?
09:29 moritz_ it does
09:29 masak joined #perl6
09:29 * masak backlogs
09:30 colomon I'll take a stab at the reorganization sometime in the next few hours, then.
09:30 colomon (might go back to bed first.  :)
09:30 * moritz_ tries to fix the Parcel stringification bug
09:31 colomon moritz_: where do you think it's located?
09:31 * masak hack-ish-es on named enums
09:31 masak maybe this article on Scala will interest some people in here: http://enfranchisedmind.com/blog/posts/post-functional-scala
09:31 moritz_ colomon: I suspect it's because Parcel isa parrot;ResizablePMCArray so it gets the wrong vtable override
09:32 moritz_ and of course method Str() { self } in class Any is Just Wrong[tm]
09:33 jnthn moritz_: (vtable override) I know how to fix that one. :-)
09:33 * jnthn is heading down :-)
09:33 masak lolitsjnthn!
09:38 baest colomon: fyi, I kinda gave up on the float parsing yesterday. I submitted a patch which patrick wasn't too happy about (with valid reasons). The handling seem to be quite wrong. Now it dies parsing long floats and my patch at least fixes that.
09:43 colomon moritz_: with you 100% on Any.Str { self } being wrong wrong wrong.
09:43 * moritz_ blames jnthn++
09:44 moritz_ erm, git does :-)
09:44 * masak annotates jnthn++
09:44 colomon baest: went to bed thinking about this issue last night.  Are your code (and pmichaud's comments) posted somewhere?  I'd like to look at both when I properly wake up in a few hours.  :)
09:44 moritz_ it's in a nopaste somewhere in yesterday's backlog
09:46 moritz_ a ticket actually... http://irclog.perlgeek.de/perl6/2010-03-07#i_2073620
09:46 baest colomon: yes as moritz_ says. The patch is in #73392
09:46 colomon thanks guys!  see you in the morning...
09:46 baest I also did a loop which did * .1 instead of dividing
09:47 baest resulting in same precision. I can attach the diff to the ticket and then you can do whatever :)
09:48 * moritz_ conquered the Parcel
09:48 moritz_ waiting for the spectest to finish
09:51 moritz_ jnthn: http://github.com/moritz/rmp
09:55 masak how do I use custom operator precedence parsing from within Perl 6?
09:55 moritz_ you don't
09:55 moritz_ it's not specced
09:56 masak right.
09:56 masak shall I go ahead and spec it? :)
09:56 moritz_ please do
09:56 jnthn masak: EXPR rule in STD
09:56 jnthn Also in Rakudo master.
09:56 masak jnthn: right, but the EXPR is for Perl 6 expressions, no?
09:56 masak what if I want Java expressions?
09:57 moritz_ is <a b c> specced to return a Parcel
10:00 dalek rakudo: f56934d | moritz++ | t/spectest.data:
10:00 dalek rakudo: we now pass S09-typed-arrays/hashes.t again, arnsholt++
10:00 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f56934d25f68968d7584c248a393a9c098aa7795
10:02 barney joined #perl6
10:03 baest isn't the spectest status updated anymore?
10:03 baest on rakudo.org
10:04 masak baest: pmichaud has always done that manually, I think.
10:04 masak when he's busy/tied up, it lags.
10:04 baest of course
10:05 moritz_ more specifically, he updated docs/spectest-progress.csv
10:05 masak hm, yes.
10:05 moritz_ and a cron job on rakudo.de would generate the graphic
10:05 moritz_ which rakudo.org just uses inline
10:06 dalek rakudo: b1fd5d8 | moritz++ | src/builtins/Parcel.pir:
10:06 dalek rakudo: Fix RT #73128, stringifications of Parcel
10:06 dalek rakudo: since Parcel inherits from RPA first, it uses its vtable override instead of
10:06 dalek rakudo: the one defined in Mu. Another vtable override fixes that.
10:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b1fd5d8e5dc8fdc67fffc003266c78ed8c5515c2
10:07 baest moritz_: could that cronjob not run the spectest and update the csv file? Or is too much work for the server
10:08 moritz_ baest: it needs to go into the repo somehow anyway, and I won't set up a cronjob that commits to the repo
10:08 baest moritz_: no, that wouldn't be very good. Ok, it's not that important
10:09 moritz_ and I think pmichaud prefers to do it manually, to give him a feeling for what's going on
10:09 masak in theory and at a distance, thinks always look smooth and uncomplicated. when you actually realize things and build them in the World of Stuff, they get all knobbly and gnarly, sometimes with irreducible uglinesses or horrible corners that you didn't anticipate. I like that.
10:11 arnsholt masak: That's exactly the reason a friend of mine gives for Scheme not being useful in the real world =)
10:12 masak Lisp and Scheme have a fairly low preparedness for the world being gnarly.
10:12 dalek rakudo: df743fe | moritz++ | t/spectest.data:
10:12 dalek rakudo: run the new parcel.t file
10:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/df743fed85fea4552b0ac5806f62d59bdc588926
10:12 moritz_ rakudo: say sprintf '%x', [].WHERE
10:12 p6eval rakudo 213974: OUTPUT«2b8c1815f398␤»
10:12 arnsholt He also thinks that Common Lisp is very good at handling gnarly =)
10:12 masak hm :)
10:12 moritz_ low-hanging fruit: sprintf exists in rakudo master, but printf doesn't
10:13 masak CLOS certainly has a gnarlyish quan to it.
10:13 masak s/quan/qwan/
10:14 arnsholt CLOS is one of his prime examples, actually
10:14 masak aye.
10:14 * masak loves the metaobject protocol
10:14 arnsholt He's also introduced me to the writings of Naggum, which was an interesting experience
10:14 * masak googles
10:16 masak arnsholt: http://cpansearch.perl.org/src/PODMASTER/Acme-MJD-0.02/lib/Acme/MJD.pm
10:17 moritz_ arnsholt: http://perl.plover.com/IAQ/IAQlist.html
10:19 masak baest: you should see this: http://perl.plover.com/IAQ/IAQlist.txt -- the question 'How do I convert a string to a number?'. look familiar? :P
10:23 moritz_ rakudo: class A { }; say  A.WHAT.substr(0, -2)
10:23 p6eval rakudo f56934: OUTPUT«A␤»
10:23 moritz_ alpha: class A { }; say A.new
10:23 p6eval alpha 30e0ed: OUTPUT«A()<0x2b9ba4a70490>␤»
10:25 * moritz_ works on RT #73410 (in case that wasn't obvious... )
10:25 baest masak: heh, yes. Also that it doesn't handle overflow at all :) But Perl 6 version handles 1_000 numbers
10:26 baest 1_000 style numbers
10:27 orafu joined #perl6
10:28 masak baest: :)
10:28 * diakopter is not amused [by something OT]
10:34 masak std: my enum foo <a b c>
10:34 p6eval std 29993: OUTPUT«ok 00:01 107m␤»
10:34 moritz_ rakudo: say 5.Str.What
10:34 p6eval rakudo f56934: OUTPUT«Method 'What' not found for invocant of class 'Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
10:34 masak std: anon enum foo <a b c>
10:34 p6eval std 29993: OUTPUT«ok 00:01 105m␤»
10:34 moritz_ rakudo: say 5.Str.WHAT
10:34 p6eval rakudo f56934: OUTPUT«Str()␤»
10:34 masak std: state enum foo <a b c>
10:34 p6eval std 29993: OUTPUT«ok 00:01 105m␤»
10:34 masak o.O
10:37 moritz_ rakudo enum <foo bar>;
10:37 moritz_ rakudo: enum <foo bar>;
10:37 p6eval rakudo f56934:  ( no output )
10:37 moritz_ rakudo: enum <foo bar>; say bar
10:37 p6eval rakudo f56934: OUTPUT«Could not find non-existent sub &bar␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
10:37 baest I'm replying to a rt ticket (email), but my reply doesn't appear on the ticket. Weird. I'm including the [] stuff
10:37 moritz_ baest: it might take some time
10:38 baest moritz_: more than 2 hours?
10:38 moritz_ baest: usually not
10:38 baest ok, I haven't received any rejection or something like that
10:40 baest moritz_: ok, maybe I have spammed two tickets then
10:40 masak S32-setting-library/Abstraction.pod talks about Abstraction as a role, and then the classes Class, Role, Module, Package and Grammar doing that role.
10:40 masak which is all good and well, but it doesn't have much support in the rest of the spec, such as S02.
10:41 masak as far as I recall, the Class and Role classes have actually gone away over time from the spec.
10:41 moritz_ std: Class, Role, Abstraction, Module, Package
10:41 p6eval std 29993: OUTPUT«ok 00:01 105m␤»
10:41 masak huh.
10:41 jnthn :-)
10:41 moritz_ std: Foo, Bar
10:41 masak std: Enumeration
10:41 p6eval std 29993: OUTPUT«Undeclared name:␤      'Enumeration' used at line 1␤ok 00:01 104m␤»
10:41 p6eval std 29993: OUTPUT«Undeclared names:␤     'Bar' used at line 1␤     'Foo' used at line 1␤ok 00:01 105m␤»
10:42 jnthn rakudo: Class
10:42 p6eval rakudo f56934: OUTPUT«Could not find non-existent sub &Class␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
10:42 jnthn rakudo: Role
10:42 p6eval rakudo f56934:  ( no output )
10:42 moritz_ masak: the Abstraction role is what the :: sigil constraints to
10:42 masak moritz_: yes, I know.
10:42 masak moritz_: and do you agree that Enumeration should be an Abstraction?
10:44 moritz_ masak: I don't have the slightest idea
10:46 moritz_ rakudo: my %h; say %h.perl
10:46 p6eval rakudo df743f: OUTPUT«{}␤»
10:47 moritz_ rakudo: my @a = 1..20; say @a[*-1]
10:47 p6eval rakudo df743f: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
10:49 masak moritz_: I think it should, because nowadays it's sorta kinda a package. I'll go and read S12 in this light to see what falls out.
10:49 masak hm. it's Enum, it seems.
10:49 masak std: Enum
10:49 p6eval std 29993: OUTPUT«ok 00:01 104m␤»
10:49 masak rakudo: say Enum ~~ Abstraction
10:49 p6eval rakudo df743f: OUTPUT«0␤»
10:50 masak S12: "[...] it presents itself to the user's namespace as a typename package containing a set of constant declarations."
10:52 masak oh, it's not only Enum, but Enumeration, too.
10:52 Sarten-X joined #perl6
10:53 am0c joined #perl6
11:04 lisppaste3 moritz_ pasted "attempt to fix stringification of Any; for jnthn++" at http://paste.lisp.org/display/96090
11:07 lisppaste3 moritz_ annotated #96090 "error message" at http://paste.lisp.org/display/96090#1
11:17 sunnavy joined #perl6
11:25 TiMBuS joined #perl6
11:30 moritz_ rakudo: say ?{}
11:30 p6eval rakudo df743f: OUTPUT«1␤»
11:30 * moritz_ calls BUG
11:30 * moritz_ hilights masak
11:31 jnthn nqp: my $x := 'ee'; say $beer ~~ /$x/;
11:31 p6eval nqp: OUTPUT«Confused at line 1, near "say $beer "␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤»
11:32 jnthn nqp: my $x := 'ee'; say($beer ~~ /$x/);
11:32 p6eval nqp: OUTPUT«Symbol '$beer' not predeclared in <anonymous>␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
11:32 jnthn nqp: my $x := 'ee'; say('beer' ~~ /$x/);
11:32 baest jnthn: beer always seem to confuse nqp :)
11:32 p6eval nqp: OUTPUT«␤»
11:32 * masak submits rakudobug
11:33 masak I'm sure this comic can be related to Perl 6 in some way: http://abstrusegoose.com/249
11:43 moritz_ method Bool() {
11:43 moritz_ ?pir::getattribute__PPs(self, '$!storage');
11:43 moritz_ }
11:45 moritz_ masak: http://www.youtube.com/watch?v=YY6kElOYcd8
11:45 eswara joined #perl6
11:46 eswara left #perl6
11:47 ruoso joined #perl6
11:54 moritz_ rakudo: say { a => 3, b => 5).pairs
11:54 p6eval rakudo df743f: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
11:55 moritz_ rakudo: say { a => 3, b => 5}.pairs
11:55 p6eval rakudo df743f: OUTPUT«a  3b      5␤»
11:55 dakkar joined #perl6
11:57 masak rakudo: say { a => 3, b => 5 }.kv
11:57 p6eval rakudo df743f: OUTPUT«a3b5␤»
12:00 Chillance joined #perl6
12:02 masak lunch &
12:06 dalek rakudo: 393fcd4 | moritz++ | src/ (4 files):
12:06 dalek rakudo: fix stringification of Any, and thus RT #73410
12:06 dalek rakudo: Thanks to jnthn++ for helping me with this one.
12:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/393fcd41e25b6f106e5042e79c170c3adc598bc5
12:06 dalek rakudo: bd7c6f5 | moritz++ | src/core/Hash.pm:
12:06 dalek rakudo: implement method Bool in Hash
12:06 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/bd7c6f500659cfaa738137effe9be139b7411781
12:08 Oracle joined #perl6
12:14 Oracle joined #perl6
12:15 eiro joined #perl6
12:24 Oracle joined #perl6
12:47 colomon For a brief moment there, my still sleep-addled brain thought moritz_++ had reimplemented the Bool type as a Hash...
13:00 pmichaud good morning, #perl6
13:01 pmichaud I can only stay a minute or two at the moment
13:01 mathw hi
13:02 takadonet joined #perl6
13:02 pmichaud things have gotten very "interesting" here over the last 24h
13:02 takadonet morning all
13:03 colomon \o
13:03 * colomon hopes that's interesting in a practical sense, and not interesting in a ancient fake Chinese proverb sense...
13:03 pmichaud both.
13:04 pmichaud but also generally positive senses
13:05 pmichaud anyone heard anything from the copenhagen hackers this morning?
13:05 colomon yes, they've been posting all morning.
13:06 * colomon was talking to them at 4:30 am...
13:07 pmichaud okay.  I'll have to read the scrollback a bit later
13:07 pmichaud I hope to be back on in ~3h
13:07 colomon Don't know how much you backlogged, but it looks like they got about 1000 tests running yesterday.
13:07 pmichaud haven't backlogged at all yet
13:07 pmichaud will have to do it later
13:07 colomon There's a lot.  :)
13:07 pmichaud anyway, hope things are going well, will bbiaw
13:13 cls_bsd joined #perl6
13:28 mathw 1000 more tests? nice.
13:28 colomon 1000 more passing tests.  nice!  :)
13:34 * mathw treats himself to a new book
13:35 baest yeah, it must be a lot more than 1000 new tests.
13:42 rv2733 joined #perl6
13:43 bluescreen joined #perl6
13:52 nihiliad joined #perl6
13:52 karthi joined #perl6
13:52 karthi hi guys
13:52 colomon o/
13:53 takadonet hey
13:53 karthi so wats the big deal with perl 6..??
13:58 mberends joined #perl6
13:58 mberends ahoj #perl6
13:58 colomon o/
14:01 betterworld joined #perl6
14:02 SmokeMachine joined #perl6
14:03 mberends travel induced sleep deprivation is having a funny effect at $work today - the skull can feel that there's a brain in there, but the brain does not seem to feel that there's a mind inside ;-)
14:08 lichtkind joined #perl6
14:11 TiMBuS joined #perl6
14:14 athenot joined #perl6
14:21 ignacio_ joined #perl6
14:23 masak joined #perl6
14:24 masak arnsholt: http://perlcabal.org/~nothingmuch/harrorth/
14:25 krr joined #perl6
14:26 athenot joined #perl6
14:28 lichtkind masak: hej
14:28 masak lichtkind: moin
14:31 lichtkind :)
14:31 * masak is trying to understand what to do next in trying to get named enums to work
14:32 pugssvn r29994 | moritz++ | [t/spec] new file S02-builtin_data_types/parcel.t
14:32 pugssvn r29995 | moritz++ | [t/spec] work on context-forcers.t: use stricter comparison; test that Int.Str returns STr
14:42 * colomon is trying out some PIR to maybe fix int constant handling.  (sort of)
14:42 Oracle joined #perl6
14:46 TiMBuS joined #perl6
15:01 mathw masak: I would suggest writing the code that makes them work :P
15:01 masak mathw: I'll take that into serious consideration.
15:05 colomon mathw: actually had good reason to play five different whistles in public yesterday, which I think may be a personal record.
15:06 arnsholt std: /<?![abc]>/
15:06 p6eval std 29995: OUTPUT«ok 00:01 108m␤»
15:06 arnsholt std: /<!![abc]>/
15:06 p6eval std 29995: OUTPUT«ok 00:01 105m␤»
15:07 arnsholt Should that be legal?
15:07 TimToady std: /<!!!!!!!!!!!!!!!!!!!!!![abc]>
15:07 p6eval std 29995: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse metachar__S_478Lt_Gt; couldn't find final '>' at /tmp/JxcoLXpXal line 1:␤------> [32m/<!!![33m⏏[31m!!!!!!!!!!!!!!!!!!![abc]>[0m␤FAILED 00:01 105m␤»
15:07 TimToady std: /<!!!!!!!!!!!!!!!!!!!!!![abc]>/
15:07 p6eval std 29995: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse metachar__S_478Lt_Gt; couldn't find final '>' at /tmp/axbw9b3Px6 line 1:␤------> [32m/<!!![33m⏏[31m!!!!!!!!!!!!!!!!!!![abc]>/[0m␤FAILED 00:01 105m␤»
15:07 * moritz_ is not sure how the second ! is parsed
15:07 TimToady std: /<!!!!!!!!!!!!!!!!!!!!!!foo>/
15:07 p6eval std 29995: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse metachar__S_478Lt_Gt; couldn't find final '>' at /tmp/nENV53UcPR line 1:␤------> [32m/<!!![33m⏏[31m!!!!!!!!!!!!!!!!!!!foo>/[0m␤FAILED 00:01 105m␤»
15:07 TimToady hmm
15:07 TimToady it's supposed to just be recursive
15:07 arnsholt std: /<?!?![abc]>
15:07 p6eval std 29995: OUTPUT«[31m===[0mSORRY![31m===[0m␤Regex missing terminator at /tmp/Ni40AtpV6B line 1 (EOF):␤------> [32m/<?!?![abc]>[33m⏏[31m<EOL>[0m␤FAILED 00:01 105m␤»
15:08 arnsholt std: /<?!?![abc]>/
15:08 p6eval std 29995: OUTPUT«ok 00:01 105m␤»
15:08 TimToady maybe there's a prohibition on !!! n there somewhere
15:08 TimToady *in
15:08 masak by the way, why is <!!before ...> used in some places in STD.pm, rather than <?before ...> ?
15:08 arnsholt At least for the ! metaop, !!op is explicitly forbidden
15:09 TimToady S05:1452
15:09 TimToady and the problem is that !!! means something
15:09 masak TimToady: thanks.
15:10 TimToady but yeah, LTM ignores !! and continues looks for token after it
15:10 TimToady *looking
15:10 alester joined #perl6
15:10 TimToady while ? is considered the rest of the LT, and ignores what comes after
15:11 masak ah.
15:11 TimToady seems kinda strange, but that's how STD ended up working out
15:11 masak :)
15:11 masak one day I will recline in my chair, safe in the knowledge that I truly grok LTM. that day is not today.
15:12 TimToady I guess the alternative would have been to provide some way of saying which you want, but this way is pretty handy
15:14 moritz_ rakudo: say ().min
15:14 p6eval rakudo bd7c6f: OUTPUT«Inf␤»
15:15 moritz_ rakudo: say ().max
15:15 p6eval rakudo bd7c6f: OUTPUT«-Inf␤»
15:15 moritz_ rakudo: say ().min.defined
15:15 p6eval rakudo bd7c6f: OUTPUT«1␤»
15:15 dalek rakudo: d183ebe | moritz++ | t/spectest.data:
15:15 dalek rakudo: enable context-forcers.t
15:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d183ebe1fcb7c7581698997a897a44bef68df0fd
15:17 diakopter oh.  it's morning.
15:17 masak lolitsdiakopter!
15:17 mberends http://perl6.org/community/ lacks conferences and hackathons, which I tried to show someone today. I'll add something later today, unless someone (tm) beats me to it
15:18 jnthn mberends++ # good idea :-)
15:18 jnthn mberends: Survived day of training?
15:18 TiMBuS joined #perl6
15:18 nihiliad joined #perl6
15:19 TimToady it's pretty easy to type ™ with the compose key, actually... :)
15:19 TimToady at least on my machine, I suppose I should hedge it...
15:20 TimToady a little harder to remember how to do ®
15:20 TimToady I suppose that's appropriate :)
15:21 zostay joined #perl6
15:22 * diakopter remembers again why I switched away from C#/CLR 3 or 4 times ago... it's just as difficult to debug generated code that's generated by code I can't debug because it's generated at runtime as well.
15:22 mssm joined #perl6
15:23 baest dk
15:23 baest whoops
15:23 baest diakopter: as I remember it, it is difficult enough to debug one level of code generation
15:23 diakopter I got that figured out (finally)
15:24 * masak can type ® and © with the TeX input mode in Emacs but not ™
15:24 diakopter but I neglected to finish my sentence..
15:24 diakopter oops :)
15:24 diakopter to finish it:
15:24 mberends jnthn: sort of. the lights were on, but at times it looked like nobody was at home ;-)
15:24 PacoLinux joined #perl6
15:24 jnthn ;-)
15:24 jonafk joined #perl6
15:25 jnthn Glad you got there, anyways.
15:25 iblechbot joined #perl6
15:25 jnthn Hope you can get adequete sleep tonight.
15:25 diakopter ... as it is to debug generated JavaScript from generated JavaScript... and .. hmm.
15:25 jonasbn jnthn: hai
15:26 jnthn jonasbn: oh hai
15:26 TimToady hugme: Hug Trolls™
15:26 mberends how to type (tm) better on webchat.freenode.net in Firefox on Windows XP? Ugh...
15:26 masak diakopter: you remember the given/when idea for implementing gotos that I stole from you?
15:26 jonasbn the OSD ppl just called me back
15:26 masak diakopter: well, moritz_ took one look at it and said "you should use a hash of closures instead" :)
15:26 diakopter masak: I didn't remember you stealing it from me..
15:26 dalek rakudo: 54c983e | jonathan++ | src/ (3 files):
15:26 dalek rakudo: Start to be a tiny bit smarter about :auth and :ver - now we treat them as not just part of the name, but also something you can introspect on the meta-class.
15:26 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/54c983ee2754df82bbd48af58f0f177346f1c40e
15:26 dalek rakudo: 8f90546 | jonathan++ |  (2 files):
15:26 dalek rakudo: Translate much of moritz++'s prototype implementation of module location in NQP. Untested and unused so far.
15:26 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8f9054609509318e6d67ae8a91e29824e22f3a14
15:26 masak diakopter: and then he went away to benchmark the two variants.
15:26 jonasbn jnthn: the hotel should be figured out
15:26 masak diakopter: guess what? hashes and closures are not significantly faster in Rakudo :P
15:27 diakopter sigh
15:27 diakopter oh wait
15:27 diakopter thought you wrote "slower"
15:27 jnthn jonasbn: oh oops...see what I wrote in pm...
15:27 diakopter are they about the same?
15:27 masak diakopter: no, it's just that his speedup was not more than 10% or something.
15:27 masak not enough for me to switch.
15:27 diakopter hm
15:28 diakopter why would they be faster
15:28 masak diakopter: because there are far fewer string comparisons?
15:28 baest masak: the greater the number of whens the greater the speedup should be, right? Personally I prefer lookups
15:28 masak baest: yes.
15:29 mberends rakudo: my @a=1,2; my @b=3,4; my @c=@a,@b; @c.perl.say # hoping for something that doesn't flatten
15:29 p6eval rakudo bd7c6f: OUTPUT«[1, 2, 3, 4]␤»
15:29 TimToady that would depend on whether the switch was optimized
15:29 baest maybe there is something to gain in the hash implementation though
15:29 baest TimToady: creating a lookup behind the scene?
15:29 TimToady The way Perl 5 optimized switches, it could be faster than a hash
15:29 TimToady *4
15:30 TimToady esp if all your strings started with a different char
15:30 TimToady basically turned into a jump straight to the correct case
15:30 moritz_ I don't think rakudo does any of those optimizations yet
15:31 TimToady nor does Perl 5, last I heard :)
15:31 payload joined #perl6
15:31 pmurias joined #perl6
15:31 moritz_ perl 4 had switches? I never new that :-)
15:31 pmurias hi
15:31 TimToady it became more politically interesting to encourage people to use a dispatcher at that point, I guess
15:31 baest TimToady: but how would you do that when you could have a regex or a number of even a hash as when target?
15:32 pmurias moritz_: you mean command line switches?
15:32 TimToady well, you don't, for anything mutable
15:32 moritz_ pmurias: no, switch statements
15:32 k23z__ joined #perl6
15:32 TimToady a regex is immutable, though, and many regexen are anchored and know their first char
15:32 baest true
15:32 TimToady p4 made use of that info, if available
15:32 baest cool
15:32 pmurias moritz_: what was the syntax?
15:32 TimToady despite the fact that there was no syntax
15:33 mberends rakudo: my @a=1,2; my @b=3,4; my @c=\@a,\@b; @c.perl.say
15:33 p6eval rakudo bd7c6f: OUTPUT«[Capture.new(), Capture.new()]␤»
15:33 jonasbn when are ppl leaving Copenhagen tomorrow?
15:33 diakopter masak: wait, which given/when idea for implementing gotos did you steal?
15:33 TimToady instead, it would optmimize any conditional structure as if it were a switch
15:33 moritz_ pmurias: I don't know anyhting about them
15:33 jnthn jonasbn: Afternoonish I think.
15:33 jonasbn I work just next to the hotel, so I could invite the remains for lunch
15:34 * moritz_ remains until Wednesday morning - train leaves at 7:45 AM
15:34 Psyche^ joined #perl6
15:34 TimToady otoh, hashes with common short strings can also be optimized
15:34 jnthn .oO( the remains of the Perl 6 hackers... )
15:34 jonasbn jnthn: leftovers?
15:35 masak diakopter: the state loop in the generated regex code.
15:35 jonasbn let me know if you want to come by for lunch, it is a five minute walk by the harbour
15:35 jnthn jonasbn: those who are left
15:35 jnthn jonasbn: I'm in for lunch. :-)
15:35 moritz_ jonasbn: I'd love to
15:36 jonasbn masak: what about you?
15:37 jnthn we'll drag him along :-)
15:37 jonasbn super
15:38 jonasbn which one is the pastebot in here?
15:38 moritz_ http://paste.lisp.org/new/perl6 -> lisppaste3
15:40 justatheory joined #perl6
15:40 lisppaste3 jonasbn pasted "map to jonasbn@work" at http://paste.lisp.org/display/96106
15:40 jonasbn arnsholt: you still in Copenhagen?
15:41 moritz_ jonasbn: he just left us for the airport
15:41 jonasbn ah
15:41 jonasbn okay
15:41 moritz_ (actually first meeting a friend, then airport)
15:43 masak jonasbn: I'm more distracted than usual. yes, lunch together would be grand.
15:43 jonasbn masak: sounds good, go back to your distractions :)
15:45 k23z__ do extended Perl5-type regexes that allow code in the "replace" part exist in p6 also ?
15:46 mathw colomon: All in different keys? High and low? Four's not bad for one session given the lack of key range we usually get.
15:46 masak k23z__: yes. if you mean s/.../.../
15:46 k23z__ masak, yes that's what I mean
15:46 masak k23z__: there's also an assignment form s[...] = "new substring"
15:47 masak it's in S05 if you crave the exact details.
15:47 * k23z__ takes a look
15:47 masak (also, neither of these syntaxes are implemented in Rakudo currently)
15:47 k23z__ I was just wondering if one has a variable in the replace part if the regex is still immutable
15:48 masak hm.
15:48 k23z__ per what TimToady said above <TimToady> a regex is immutable, though, and many regexen are anchored and know their first char
15:48 moritz_ k23z__: if variables were immutable, you'd call them constants
15:49 moritz_ rakudo: my %h = (a => 3, b => 5); say %h.keys
15:49 masak in the case of .subst, one has to closurize any $/-related variables to get the ones from the substring match.
15:49 p6eval rakudo 8f9054: OUTPUT«ab␤»
15:49 diakopter masak: but... I never suggested using given/when
15:49 colomon mathw: from top to bottom, high D, C, A, G, and low D.
15:49 moritz_ rakudo: my %h = (a => 3, b => 5); say keys(%h)
15:49 p6eval rakudo 8f9054: OUTPUT«ab␤»
15:49 masak diakopter: no, you used switch in JS, I think.
15:49 moritz_ rakudo: my %h = (a => 3, b => 5); say sort  keys(%h)
15:49 p6eval rakudo 8f9054: OUTPUT«Could not find non-existent sub &sort␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
15:49 masak diakopter: or if/else if/else? I don't recall...
15:50 moritz_ rakudo: <b a c d>.sort.say
15:50 p6eval rakudo 8f9054: OUTPUT«abcd␤»
15:50 diakopter I was using switch/case in JS and CIL, which are translated to jump tables, because I used a continuous range starting from 0
15:50 baest k23z__: I think the immutable only refers to the search part, not the replacement
15:50 k23z__ baest, ah, then yes
15:50 masak pugs: my $a = 'foor'; $a ~~ s/foo/bar/; say $a
15:50 p6eval pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.14/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
15:51 k23z__ but if I have a variable in the search part, it will interpolate once and the regex be constructed with that value right ?
15:51 * baest would think so
15:51 masak pugs: say 'compiled OK'; s[foo] = 'bar';
15:51 p6eval pugs: OUTPUT«compiled OK␤Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.14/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapp…
15:51 masak Pugs implements both syntaxes, but is currently broken WRT regexes.
15:51 masak at least on the evalbot server.
15:51 moritz_ rakudo: Callable
15:51 p6eval rakudo 8f9054:  ( no output )
15:52 PerlJam greetings
15:52 moritz_ l\o/litsperljam!
15:52 PerlJam heh
15:53 ignacio_ joined #perl6
15:53 PerlJam you don't think the \ and / make good ell substitutes?
15:53 moritz_ I was just being verbose
15:53 moritz_ erm, charbose
15:53 TimToady oh noes, a new productive suffix
15:54 masak suffbose.
15:54 masak why's it called 'suffix' in linguistics but 'postfix' in Perl 6?
15:55 moritz_ because a postfix is syntactically distintict
15:55 TimToady though I suppse, technically, it should be -ose, since "verb" is the root
15:55 moritz_ so the lexer can easily find it
15:55 TimToady suffix technically is in the same word
15:56 TimToady but it's mostly arbitrary anyway
15:56 TimToady and for parallelism
15:56 masak nod.
15:56 TimToady most people don't think of sur as the opposite of pre
15:57 * masak .oO( subfix )
15:57 TimToady resumably short for super or some such
15:57 TimToady *pre
15:57 mberends rakudo: my @a=1,2; my @b=3,4; my @c=[@a,@b]; @c.perl.say
15:57 p6eval rakudo 8f9054: OUTPUT«[[1, 2, 3, 4]]␤»
15:57 mberends rakudo: my @a=1,2; my @b=3,4; my @c=[@a],[@b]; @c.perl.say
15:57 PerlJam TimToady: does that mean a prefeit is the opposite of a surfeit?
15:57 p6eval rakudo 8f9054: OUTPUT«[[1, 2], [3, 4]]␤»
15:57 am0c joined #perl6
15:58 masak mberends: maybe a parfait is.
15:58 TimToady ah, glo has looked it up in the amher, and it's from sub, not super
15:58 PerlJam amher?
15:59 PerlJam oh. never mind.
15:59 TimToady American Heritage dictionary
15:59 PerlJam yeah, I got it belatedly
15:59 TimToady which, despite its name, is very good at etymology
15:59 diakopter http://jaxenter.com/gilad-bracha-java-is-becoming-cobol-2-0-10456.html
15:59 mberends left #perl6
15:59 moritz_ rakudo: say (3 xx 5).perl
15:59 masak the 'su-' of 'suffix' is short for 'sub'? that's... unexpected.
15:59 p6eval rakudo 8f9054: OUTPUT«[3, 3, 3, 3, 3]␤»
15:59 TimToady glo blames the french, they don't have "post" as a prefix in french
16:00 TimToady linguistic affixes often mutate the nearby sounds
16:00 masak that's actually an inaccuracy in my talk from day before yesterday, then. I said it means 'on', I think.
16:01 TimToady and sometimes it even depends on the meaning, hence the field of "morphophonemics"
16:02 TimToady we try to avoid those kinds of things in Perl 6; variant sigils were are arguably a form of that
16:02 moritz_ TimToady: do we really want p5chomp as currently specced, being a method on a list?
16:03 TimToady the purpose of p5chomp os to do whatever p5's chomp does, that's all
16:03 TimToady *is
16:03 moritz_ then I don't see why it needs to exist as a method at all
16:03 TimToady I suppose one can interpret "do" on more than one level though
16:04 TimToady I envision it more at the syntactic level for someone translating p5 code to p6 who doesn't want to think
16:04 * moritz_ accepts and shuts up
16:04 lisppaste3 colomon pasted "Failed attempt at getting Rakudo to properly handle integer overflow..." at http://paste.lisp.org/display/96107
16:06 TimToady given that i/o handles autochomp, and that chomp in p5 uses a naughty global variable, I don't see then need to push it deep into p6's guts
16:06 TimToady *the need
16:13 moritz_ rakudo: multi a(&a) { }; multi a(&a) { }; a { };
16:13 p6eval rakudo 8f9054: OUTPUT«No applicable candidates found to dispatch to for 'a'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
16:13 moritz_ rakudo: multi a(&a) { }; multi a(&a) { }; a {; };
16:13 p6eval rakudo 8f9054: OUTPUT«No applicable candidates found to dispatch to for 'a'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
16:13 moritz_ rakudo: multi a(&a) { }; multi a(&a) { }; a sub { };
16:13 p6eval rakudo 8f9054: OUTPUT«Ambiguous dispatch to multi 'a'. Ambiguous candidates had signatures:␤:(&&a)␤:(&&a)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
16:13 * masak submits rakudobug
16:14 colomon woah.  http://perlcabal.org/syn/S32/IO.html hasn't regenerated since mid-February?
16:15 moritz_ ooops
16:16 colomon It changed last Friday, I believe.
16:16 colomon S03 is up-to-date there...
16:17 * moritz_ runs the update-syn script manually to see if it gives any helpful output
16:17 * masak has a new job title: 'statistics whore' :)
16:18 lisppaste3 moritz_ pasted "update from update-syn" at http://paste.lisp.org/display/96108
16:19 moritz_ it doesn't enlighten me.
16:19 colomon Doesn't even look like it's trying to do S32?
16:19 japhb Tene, any luck with 'use OpenGL :from<parrot>;' this weekend?
16:19 jnthn doesn't look into directories, perhaps?
16:19 colomon Is something in S22 breaking the process?
16:19 pugssvn r29996 | moritz++ | [t/spec] numerous unfudges for rakudo
16:19 masak jnthn: sounds plausible.
16:20 colomon but (judging by that) S26, S28, S29, and S31 are not getting processed either....
16:20 colomon *that paste
16:22 moritz_ actually it's S26 that contains defn blocks
16:22 masak ah.
16:22 masak S26 is the odd one, of course.
16:22 masak it's in Pod.
16:22 masak not POD.
16:24 moritz_ rakudo: say Array ~~ Seq
16:24 p6eval rakudo 8f9054: OUTPUT«1␤»
16:24 moritz_ it's odd how hard it is to add the sub form of sort()
16:25 colomon moritz_: what's the issue? (issues?)
16:26 jnthn moritz_: iirc in alpha we looked to see if the first thingy that was passed was a block rather than relying on multi-dispatch.
16:26 diakopter http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&amp;Sect2=HITOFF&amp;d=PALL&amp;p=1&amp;u=/netahtml/PTO/srchnum.htm&amp;r=1&amp;f=G&amp;l=50&amp;s1=6,368,227.PN.&amp;OS=PN/6,368,227&amp;RS=PN/6,368,227
16:26 jnthn I don't see why multi-dispatch shouldn't handle it though.
16:26 moritz_ http://nopaste.snit.ch/19879
16:27 colomon rakudo: sub foo(*@a) { say @a.WHAT }; foo(1, 2, 3)
16:27 p6eval rakudo 8f9054: OUTPUT«Array()␤»
16:28 colomon rakudo: sub foo(*@a) { say @a[0] }; foo(1, 2, 3)
16:28 p6eval rakudo 8f9054: OUTPUT«1␤»
16:28 colomon rakudo: sub foo(*@a) { say @a.sort }; foo(1, 2, 3)
16:28 p6eval rakudo 8f9054: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'␤current instr.: '!postcircumfix:<[ ]>' pc 10640 (src/builtins/Role.pir:90)␤»
16:28 colomon Indeed.
16:29 diakopter the S32s are ... hmm
16:29 colomon That error seems vaguely familiar to me, actually, now that I think about it.  I know for sure I've had frustrations with *@a arguments.
16:30 moritz_ rakudo: say grep { $_ !% 3 }, 1..5
16:30 p6eval rakudo 8f9054: OUTPUT«3␤»
16:31 * moritz_ looks to see how grep does it
16:31 TimToady grep doesn have to handle "grep 1,2,3"
16:31 TimToady *'t
16:31 moritz_ that's not the point
16:31 moritz_ the definition above wouldn't accept any ordering closure
16:31 colomon our proto sub grep($test, @values) { @values.grep($test); }
16:31 moritz_ 17:28 < colomon> rakudo: sub foo(*@a) { say @a.sort }; foo(1, 2, 3)
16:32 moritz_ rakudo: say grep { $_ !% 3 }, 1
16:32 TimToady it's just a positional argument, I'd think
16:32 p6eval rakudo 8f9054: OUTPUT«␤»
16:32 moritz_ why does it work with @values even if 1 is not Positional?
16:32 colomon rakudo: say grep { $_ !% 3 }, 1, 2, 3
16:32 p6eval rakudo 8f9054: OUTPUT«Too many positional parameters passed; got 4 but expected 2␤current instr.: 'grep' pc 246943 (src/gen/core.pir:6658)␤»
16:32 moritz_ oh.
16:32 * masak submits rakudobug
16:33 colomon max and min seem to work, though...
16:33 TimToady well, ~~ 1 is perfectly valid...
16:33 colomon our proto sub min($by, *@values) { @values.min($by); }
16:35 colomon rakudo: min({ $^a <=> $^b }, 1, 2, 3)
16:35 p6eval rakudo 8f9054:  ( no output )
16:35 colomon rakduo; say min({ $^a <=> $^b }, 1, 2, 3)
16:36 colomon rakudo
16:36 TimToady and :
16:36 colomon rakudo: say min({ $^a <=> $^b }, 1, 2, 3)
16:36 p6eval rakudo 8f9054: OUTPUT«1␤»
16:37 colomon rakudo: sub foo($str, *@a) {say $str; say @a.sort }; foo("hello", 1, 2, 3)
16:37 p6eval rakudo 8f9054: OUTPUT«hello␤No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'␤current instr.: '!postcircumfix:<[ ]>' pc 10640 (src/builtins/Role.pir:90)␤»
16:37 colomon just checking
16:37 colomon seems like it might actually be a bug in .sort?
16:39 moritz_ rakudo: say (@(1, 2, 3)).sort
16:39 TimToady it would be useful if "No applicable candidates" would tell you the nearest misses
16:39 p6eval rakudo 8f9054: OUTPUT«123␤»
16:39 colomon S03-operators/context-forcers.rakudo aborted 69 test(s) ?
16:39 jnthn TimToady: Heh. Then it's just deciding on what "nearest" means. :-)
16:39 moritz_ did I forget to push something?
16:39 colomon ok 24 - + context forcer works (5)
16:39 colomon Use of type object as value
16:40 colomon is what I get when I run the test by itself
16:40 colomon (I mean, minus 23 passing tests.)
16:40 moritz_ colomon: are you on latest spectests?
16:40 colomon oh, dear heavens, no.
16:40 colomon how did that many tests get changed already this morning?
16:41 dalek rakudo: e533f86 | moritz++ | t/spectest.data:
16:41 dalek rakudo: three more test files that we pass now that parcels stringify correctly
16:41 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e533f86f44214dbe2eb23c8c7c151a077c4fdefd
16:41 masak TimToady: I've been thinking the same thing at times. right now it just says "no, you're doin' it wrong", which can be frustrating sometimes.
16:41 colomon works fine after svn up
16:41 [particle] (thundering herd)++
16:41 TimToady it's one of those LTA things that is slowing people down but is unlikely to be on anyone's roadmap
16:41 moritz_ colomon: we've been hackathoning for about 7 hours (with a lunch pause inbetween), and I've split my time between test suite and rakudo
16:42 * colomon has been thinking that TimToady has the same syllable pattern as "Caldonia"...
16:42 colomon moritz_: hackathon++
16:43 TimToady "Something's wrong near line 1000, give or take a few hundred"
16:43 ash_ joined #perl6
16:44 jnthn Patches welcome. ;-)
16:44 jnthn Even from me. :-)
16:44 masak TimToady: that's still better than 'something's wrong'... :/
16:44 moritz_ TimToady: I just agreed with jnthn++ that listing all candidates which accept the right number of arguments would be a big win already
16:44 TimToady at this point, too much info would be better than too little
16:45 TimToady it can always be cut down later
16:45 TimToady once we have a working sort :)
16:45 moritz_ lol
16:45 masak *lol*
16:45 colomon :)
16:45 ash_ nqp-rx is a LALR type parser right? or is it just an LR parser?
16:46 colomon we do have a mostly working sort, though.  You just have the invoke it with the right magic.
16:46 TimToady eh?  It's more like LL, with ribbons
16:46 masak also, it's two parsers.
16:46 TimToady only bottom up in the operator precedence parser
16:46 TimToady the rest is top down
16:46 TimToady just like STD
16:47 masak with lookahead/lookbehind, custom actions, and backreferences...
16:47 TimToady and the opp is neither LR nor LALR
16:47 [particle] what about string processing?
16:47 TimToady +1
16:48 TimToady I like string processing
16:48 [particle] :)
16:48 * moritz_ too
16:48 moritz_ it's why I switchted from qbasic to perl :-)
16:48 masak I can get fed up with it sometimes.
16:48 TimToady that's string *cheese* processing
16:49 masak 哈哈
16:49 colomon ah, qbasic....
16:49 Psyche^ joined #perl6
16:49 [particle] why are you whispering?
16:50 [particle] QBASIC!
16:50 TimToady masak: re 哈, if it fits in your mouth, you're not sufficiently fed up yet
16:50 moritz_ [particle]: QBasic actually
16:50 masak actually, QBasic.
16:50 masak :)
16:50 jnthn OH NO
16:50 ash_ why would it do LL instead of LR?
16:50 [particle] urk, some languages have no respect for their predecessors
16:50 TimToady because LL is top down, but it's not really LL either
16:51 jnthn Parrot's stat opcode...throws exceptions on file not found. :-/
16:51 moritz_ colomon: the other day after $hackathon we remembered that qbasic used MID() instead of substr... how very intuitive :-)
16:51 TimToady it's just recursive descent, with most of the left-recursive issues solved by inserting a bottom-up parser in the middle
16:51 colomon moritz_: I actually did a couple of years of quasi-professional programming in QBasic, right at the beginning of my career...
16:51 TimToady that's pretty much all basic, not just qbasic
16:51 [particle] jnthn: there's been no design consistency enforced for parrot op error condition reporting mechanisms
16:51 [particle] it's a headache, for sure
16:52 colomon well, during high school, at any rate.
16:53 * jnthn hopes that the "does the file exist" mode won't return an exception on file not found too :-)
16:53 colomon jnthn: I was wondering about that.  Should we change the filetest operations to fail more gracefully when the file is not found?
16:54 jnthn colomon: I think so :-)
16:54 colomon oh other wise ones: what do you think?
16:55 jnthn We certainly shouldn't throw an exception in response to "is this thingy a directory".
16:55 jnthn Not existing is a perfectly valid way of not being a directory.
16:56 TimToady parrot's braindamaged exception happiness must be hidden behind p6's more consistent model
16:56 ash_ TimToady: when you say "inserting a bottom-up parser in the middle" you mean for operator precedence, right?
16:56 TimToady yes
16:56 TimToady but it could be any bottom-up parser
16:57 TimToady as long as it's guaranteed to advance at least one token, you fix left recursion
16:57 TimToady you could throw a yacc grammar in the middle too, but it would be differently flexible
16:57 ash_ is it possible to express p6 in a bottom-up parser?
16:57 masak the horror.
16:58 TimToady yes, but you'd be rerunning yacc every time the language tweaks itself, which is all over the place
16:58 TimToady and you still have to make sure all your rules reach sequence points where the language shifts
16:58 ash_ well, i am only trying to parse nqp, which is a fairly limited subset
16:59 TimToady or you'll have yacc guessing from information that is outside of what it should know via unwarranted lookahead
16:59 TimToady yes, reducing p6 to a subset makes it easier
17:00 TimToady especially if it isn't a mutable subset
17:00 TimToady but then you're not gonna have macros or new operators or...
17:01 ash_ my current goal is not a mutable subset, i mainly wanted to implement just basic control structures, single dispatch, classes and grammars, both of those being restricted to what nqp can handle
17:01 TimToady well, p5 uses a yacc grammar
17:02 moritz_ and an insane lexer
17:02 TimToady indeed, yacc is one of the reasons for that :)
17:02 ash_ i am starting to think i probably shouldn't use yacc
17:02 ash_ it looks like i might have to make my own LL-ish parser
17:02 TimToady yacc is one of those hammer things, which work pretty well on nails
17:03 PerlJam ash_: It seems to me that yacc would be fine if you were re-inventing NQP
17:03 masak ash_: what is your ultimate goal in reimplementing nqp?
17:03 TimToady but some of your nails are thumbnails
17:03 pmurias TimToady: would there be any benefits in parsing  Perl 6 bottom up?
17:03 moritz_ pmurias: can you even do that?
17:04 moritz_ I mean, predictively as it's specced to parse
17:04 ash_ masak: learning, i am doing an indepedant study at my college, i just choose nqp because it looked like enough of a challenge that i'd learn something, but also it seemed possible (at the time)
17:04 dalek rakudo: 49749c0 | masak++ | src/core/Signature.pm:
17:04 dalek rakudo: [Signature.pm] removed extra '&' for params in .perl
17:04 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/49749c0cdd389918a3fd6055229124eb000c12b0
17:04 TimToady pmurias: do you consider useless Syntax error messages to be a benefit?  :)
17:04 masak ash_: in Tardis, I hope to get a small Perl 6 runtime going. I implemented very simple assignment yesterday :)
17:05 ash_ Tardis? (other than a reference to doctor who)
17:05 TimToady "Something's wrong near line 42" is pretty much all the help you get from yacc
17:05 jnthn wow...masak fixed a bug as well as reporting it!
17:05 masak ash_: time-travelling debugger.
17:05 pmurias TimToady: got enough of those from python today ;)
17:05 masak ash_: http://github.com/masak/tardis
17:06 TimToady yes, well, that was state of the art for a couple decades
17:06 masak jnthn: Swedish proverb: "Undrens tid är inte förbi." -- "The time of wonders is not yet over." Meaning "Expect odd things at times."
17:06 moritz_ std: ( }
17:06 p6eval std 29996: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse parenthesized expression; couldn't find final ')' at /tmp/jAIWIQYWff line 1:␤------> [32m( [33m⏏[31m}[0m␤    expecting semicolon list␤FAILED 00:01 106m␤»
17:06 jnthn :-)
17:07 TimToady and bits of parrot still think that a car with a single "?" indicator will be sufficient to tell the user that he should figure out what's wrong.
17:07 TimToady I prefer my computer to work a little harder at telling me what's wrong.
17:08 ash_ kinda like clang's error messages?
17:08 moritz_ ash_: those are really good
17:08 skeptical_p joined #perl6
17:08 moritz_ ash_: showing both expanded and unexpanded macros is such a great idea for C++, I wonder why nobody else thought of it earlier
17:09 moritz_ (probably because compiler writers were glad not to touch the preprocessor...)
17:09 ash_ i'd say because of how daunting of a task it is to make a compiler
17:09 masak that's a good idea to remember for Perl 6 as well.
17:10 TimToady It's always easy to treat user-oriented engineering and Someone Else's Problem
17:11 jnthn oh heh. Parrot's stat op claims that "./" is not a directory and does not exist. :-/
17:12 ash_ umm
17:12 TimToady s/and/as/
17:12 ash_ that sounds like stat didn't dwim
17:12 colomon jnthn: ./ isn't, is it?
17:13 colomon it's just .
17:13 [particle] yeah, i'd argue that the trailing slash is incorrect there
17:13 jnthn how helpful.
17:13 moritz_ rakudo: say ?{}
17:14 p6eval rakudo e533f8: OUTPUT«0␤»
17:14 masak \o/
17:15 ash_ in bash, ls can take ./, also stat ./ works just fine
17:15 ash_ the trailing / might not be useful, but it seems valid to me
17:15 moritz_ ash_: jnthn is on windows
17:15 TimToady SysV actually treated '' as equivalent to . for just that reason
17:16 moritz_ where everything is weird[tm]
17:16 ash_ moritz_: i know, but doesn't parrot try to handle some of the differences in the fs layout?
17:16 moritz_ I don't really know
17:16 ash_ i guess that may be something thats hard to figure out then? /shrug
17:16 colomon jnthn: I'll try to take a look at making filetests not choke if the file doesn't exist this afternoon.
17:16 jnthn colomon: Cool
17:17 jnthn colomon: I'm akshually working on module location/loading atm rather than those.
17:17 quietfanatic joined #perl6
17:17 jnthn But ran into same issue there.
17:18 colomon I can try to bang it out in the next couple of minutes if it would be useful to you.  (Been working on moving failing arith.t tests to overflow.t.)
17:19 masak colomon: if it doesn't exist in the morning, it's fine? :P
17:19 colomon masak: in the morning, who cares if your code crashes?  :p
17:20 masak I love the smell of crashes in the morning :)
17:21 TimToady in that case, they're already swearing at you tomorrow in Japan
17:22 Trashlord joined #perl6
17:22 lisppaste3 joined #perl6
17:23 payload joined #perl6
17:25 colomon jnthn: so, for :z (is file zero length?) does it return true or false if the file does not exist?
17:26 moritz_ .oO( yes )
17:26 jnthn Hmm, that's maybe a trickier one. :-)
17:27 jnthn Well, could return an undefined value I guess
17:27 colomon A fail, or Mu, or Bool() ?
17:27 moritz_ undefined but True?
17:27 moritz_ colomon: we don't usually use Mu anymore, more likely Any
17:29 masak NaB
17:29 colomon NaB?
17:29 masak Not a Bool :P
17:29 colomon rakudo: say Bool()
17:29 p6eval rakudo e533f8: OUTPUT«Could not find non-existent sub &Bool␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
17:29 colomon rakudo: say Bool
17:29 p6eval rakudo e533f8: OUTPUT«Bool()␤»
17:30 masak hm.
17:30 masak strange error.
17:30 moritz_ it is kind of funny
17:30 jnthn why?
17:32 colomon jnthn: does rakudo have directory test operators yet?  if so, where?
17:34 moritz_ rakudo: say '/' ~~ :d
17:34 p6eval rakudo e533f8: OUTPUT«Method 'd' not found for invocant of class 'Perl6Str'␤current instr.: 'perl6;Enum;ACCEPTS' pc 362070 (src/gen/core.pir:50271)␤»
17:35 meppl joined #perl6
17:39 moritz_ rakudo: [[]].perl.say; [[]].''().perl.say
17:40 p6eval rakudo e533f8: OUTPUT«[[]]␤[]␤»
17:40 jnthn colomon: I think so
17:41 masak rakudo: Code.''
17:41 p6eval rakudo e533f8: OUTPUT«Quoted method name requires parenthesized arguments at line 11, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
17:41 masak rakudo: Code.''()
17:41 p6eval rakudo e533f8: OUTPUT«Use of type object as value␤current instr.: 'perl6;Perl6Exception;throw' pc 14523 (src/builtins/Seq.pir:77)␤»
17:41 masak rakudo: Code.new.''()
17:41 p6eval rakudo e533f8: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤current instr.: 'perl6;Code;new' pc 12663 (src/builtins/Num.pir:58)␤»
17:41 masak rakudo: Code.new.''(Code.new)
17:41 p6eval rakudo e533f8: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤current instr.: 'perl6;Code;new' pc 12663 (src/builtins/Num.pir:58)␤»
17:41 masak rakudo: Code.new.''(Code.new, Code.new)
17:41 p6eval rakudo e533f8: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤current instr.: 'perl6;Code;new' pc 12663 (src/builtins/Num.pir:58)␤»
17:41 masak :)
17:41 colomon rakudo: say 'etc' ~~ :d
17:41 p6eval rakudo e533f8: OUTPUT«Method 'd' not found for invocant of class 'Perl6Str'␤current instr.: 'perl6;Enum;ACCEPTS' pc 362070 (src/gen/core.pir:50271)␤»
17:42 masak Perl6Str? o.O
17:42 colomon rakudo: say '/etc/passwd' ~~ :d
17:42 p6eval rakudo e533f8: OUTPUT«Method 'd' not found for invocant of class 'Perl6Str'␤current instr.: 'perl6;Enum;ACCEPTS' pc 362070 (src/gen/core.pir:50271)␤»
17:42 colomon rakudo: say '/etc/passwd' ~~ :e
17:42 p6eval rakudo e533f8: OUTPUT«1␤»
17:42 colomon masak: pay not attention to the type behind the curtain
17:42 masak colomon: :)
17:43 masak colomon: 'Objectivist C is a "dynamically typed" language, which means that you can type in whatever you damn well like.'
17:43 moritz_ rakudo: my Int (Str $x); say $x.WHAT
17:43 p6eval rakudo e533f8: OUTPUT«Int()␤»
17:44 dalek rakudo: 9978b34 | jonathan++ | src/ (4 files):
17:44 dalek rakudo: Need to set up @*INC by BEGIN time, othrewise we'll not be able to use it in module loading. Kinda switch on new module locator code; gets us looking through @*INC again and should handle loading Foo::Bar style things.
17:44 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9978b34f66c52c3a5ebc480226e548fdc16771ba
17:44 moritz_ rakudo: $0
17:44 p6eval rakudo e533f8: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: '!postcircumfix:<[ ]>' pc 10640 (src/builtins/Role.pir:90)␤»
17:44 colomon implementing :d now....
17:45 TimToady remember we're likely taking .d etc away from strings and making the user do the .IO cast
17:45 moritz_ rakudo: sub foo($x where { $x == $y }, $y) { }; foo(1,2)
17:45 p6eval rakudo e533f8: OUTPUT«Use of type object as value␤current instr.: 'perl6;Perl6Exception;throw' pc 14523 (src/builtins/Seq.pir:77)␤»
17:45 masak yes, I think that's sane.
17:46 masak even though already that little piece of sanity hurts conciseness compared to Perl 5.
17:47 TimToady but $x.IO ~~ :r & :w & :x factors it out to some extent
17:47 TimToady also qp{/etc/passwd} probably makes something IOish
17:48 colomon is :z gone altogether, then?
17:48 TimToady yes
17:48 colomon argh.  hard to keep up.
17:48 TimToady makes for too many double negatives :)
17:48 masak std: sub foo($x where { $x == $y }, $y) { }
17:48 p6eval std 29996: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $y is not predeclared at /tmp/UwCqbZKpPp line 1:␤------> [32msub foo($x where { $x == $y[33m⏏[31m }, $y) { }[0m␤    expecting any of:␤     POST␤   postfix␤  postfix_prefix_meta_operator␤FAILED 00:01 109m␤»
17:48 masak std: my $y; sub foo($x where { $x == $y }, $y) { }
17:48 p6eval std 29996: OUTPUT«ok 00:01 107m␤»
17:49 masak TimToady: shouldn't STD.pm complain that I use both an outer $y and declaring an inner one?
17:49 TimToady ya'd think
17:49 masak so, STD-bug.
17:51 TimToady std: my $y; sub foo ($x where $x == $y, $y) { }
17:51 p6eval std 29996: OUTPUT«[31m===[0mSORRY![31m===[0m␤Preceding context expects a term, but found infix = instead at /tmp/zRaprddxcN line 1:␤------> [32mmy $y; sub foo ($x where $x =[33m⏏[31m= $y, $y) { }[0m␤    expecting any of:␤    an infix operator with precedence tighter than chaining␤
17:51 p6eval ..constraint␤       p…
17:51 masak This Uncyclopedia article reminds me of the discussion with lichtkind yesterday about side effects: http://uncyclopedia.wikia.com/wiki/Nonfunctional_programming
17:51 TimToady hmm
17:52 TimToady std: my $y; sub foo ($x where ($x == $y), $y) { }
17:52 p6eval std 29996: OUTPUT«[31m===[0mSORRY![31m===[0m␤Lexical symbol '$y' (from line 1) is already bound to an outer scope implicitly␤  and must therefore be rewritten explicitly as 'OUTER::<$y>' before you can␤  unambiguously declare a new '$y' in the same scope at /tmp/SbS1EUG74u line 1:␤------>
17:52 p6eval ..[32mm…
17:52 masak 'found infix ='?
17:52 TimToady it's the fact that you use the $y in its own little lexical scope that hides it
17:52 masak aye.
17:52 masak I realized that.
17:52 masak perhaps that even makes it OK.
17:52 TimToady mebbe, mebbenot
17:52 masak right.
17:53 masak still thinking about it :)
17:54 TimToady and yes, the found infix message is LTA
17:54 colomon rakudo: say "/etc".IO
17:54 p6eval rakudo 49749c: OUTPUT«Method 'IO' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
17:54 masak std: my $a; sub foo { say "OH HAI": { say $a }; my $a }
17:54 p6eval std 29996: OUTPUT«ok 00:01 107m␤»
17:54 masak I'd consider that not OK.
17:55 TimToady might not be a difficult fix
17:55 uniejo joined #perl6
17:55 masak \o/
17:56 cdarroch joined #perl6
17:56 cdarroch joined #perl6
17:58 perpetrator joined #perl6
17:59 mberends joined #perl6
18:00 * moritz_ is actually happy with the current behaviour
18:01 moritz_ because in my book the $y actually belongs to the scope of the block of the sub
18:01 moritz_ so it's not the same scope as the outer $y, thus no warning necessary
18:01 masak hm.
18:02 masak I don't have a strong argument for either view.
18:02 moritz_ signatures are the exception to the usual rule that scope = block
18:03 masak I just remembered that we once had a type of statement called 'nothing' in the spec. we could write things like 'repeat nothing while some-condition();'
18:03 TimToady I guess it depends on whether you think the inner scope is asking the intermediate scope for its definition of $y as a go-between
18:03 masak std: sub some-condition() {}; Whatever while some-condition();
18:04 p6eval std 29996: OUTPUT«ok 00:01 108m␤»
18:04 TimToady in any case, it could result in the same sort of confusion
18:04 masak troo.
18:04 TimToady so I'm still inclined to make someone say OUTER::OUTER::<$y> in that case
18:04 * moritz_ would use Nil instead of Whatever for that
18:04 TimToady seems like Nil would be fine
18:04 masak moritz_: aye, shorter and more exact.
18:05 masak TimToady: I also think it's the same case from the perspective of the confusion it creates.
18:05 TimToady user-oriented-engineering++
18:05 payload joined #perl6
18:06 TimToady it's not *quite* as easy a fix as I hoped, because I can't install OUTER aliases until I know what I'm aliasing to, so it takes another loop
18:06 TimToady or recursion
18:06 TimToady recursion is probably correcter
18:06 masak std: Nil until Whatever;
18:06 p6eval std 29996: OUTPUT«ok 00:01 104m␤»
18:07 moritz_ rakudo: say ?*
18:07 p6eval rakudo 49749c: OUTPUT«!whatever_dispatch_helper␤»
18:07 masak rakudo: say +?*
18:07 p6eval rakudo 49749c: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
18:07 masak hm.
18:08 masak alpha: say +?*
18:08 p6eval alpha 30e0ed: OUTPUT«get_number() not implemented in class 'Sub'␤in Main (file <unknown>, line <unknown>)␤»
18:08 masak rakudo: say ?Whatever
18:08 p6eval rakudo 49749c: OUTPUT«!whatever_dispatch_helper␤»
18:11 abra joined #perl6
18:11 ignacio_ joined #perl6
18:11 athenot left #perl6
18:14 moritz_ rakudo: say (4...^5).perl
18:14 p6eval rakudo 49749c: OUTPUT«GatherIterator.new()␤»
18:15 moritz_ rakudo: say 6 >== 2
18:15 p6eval rakudo 9978b3: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 16825 (src/builtins/Junction.pir:373)␤»
18:25 colomon t/01-sanity/99-test-basic.t failing for me?
18:25 * moritz_ tests
18:26 colomon Wynne:rakudo colomon$ ./perl6 t/01-sanity/99-test-basic.t
18:26 colomon stat failed: No such file or directory
18:26 * colomon looks at jnthn...
18:27 jnthn :-/
18:28 jnthn It works on Win32.
18:28 jnthn Looing at it with moritz++ here.
18:28 colomon could be my changes, but I'd be surprised at that error message...
18:29 moritz_ colomon: nope, jnthn++ has worked on module loading
18:29 colomon moritz_: right, but I've just rewritten rakudo's file tests locally...
18:30 moritz_ colomon: I get that error too
18:30 colomon which could conceivably be the problem (if you...
18:30 moritz_ colomon: I have local changes too, but they are completely unrelated
18:30 colomon well, then, make jnthn  fix it.  :)
18:32 Salada345 joined #perl6
18:33 quietfanatic joined #perl6
18:35 Salada345 left #perl6
18:37 ignacio_ joined #perl6
18:38 jnthn masak: PAST::Op.new( :pirop('get_namespace P') )
18:44 jnthn colomon: moritz_++ has got to the bottom of it, I think.
18:44 colomon \o/
18:45 jnthn It's finding an installed Test.pm over the local one
18:45 jnthn But then expects that to have been pre-compiled.
18:45 jnthn I don't have any installed though.
18:45 jnthn So never hit the issue.
18:45 colomon hmmmm
18:45 colomon where would it be looking?
18:45 moritz_ /home/moritz/rakudo/parrot_install/lib/2.1.0-devel/languages/perl6/lib/Test.pm
18:45 jnthn @*INC
18:47 colomon ah
18:47 jnthn nqp: my $match := "lol.123.pm" ~~ /^(<[\w\-\_]>)+\.\d+\.pm$/; say $match;
18:47 p6eval nqp: OUTPUT«Confused at line 1, near "say $match"␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤»
18:47 jnthn nqp: my $match := "lol.123.pm" ~~ /^(<[\w\-\_]>)+\.\d+\.pm$/; say($match);
18:47 p6eval nqp: OUTPUT«␤»
18:47 colomon it's in parrot
18:47 mberends rakudo: .say for @*INC # we discussed moving '.' to the top of the list
18:47 p6eval rakudo 9978b3: OUTPUT«/home/p6eval/.perl6/lib␤/home/p6eval//p1/lib/parrot/2.1.0-devel/languages/perl6/lib␤lib␤.␤»
18:47 jnthn nqp: my $match := "lol.123.pm" ~~ /^(<[\w\-_]>)+\.\d+\.pm$/; say($match);
18:48 p6eval nqp: OUTPUT«␤»
18:48 jnthn nqp: my $match := "lol.123.pm" ~~ /^(\w+\.\d+\.pm$/; say($match);
18:48 ignacio__ joined #perl6
18:48 p6eval nqp: OUTPUT«Confused at line 1, near "my $match "␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤»
18:48 jnthn nqp: my $match := "lol.123.pm" ~~ /^\w+\.\d+\.pm$/; say($match);
18:48 p6eval nqp: OUTPUT«lol.123.pm␤»
18:49 colomon suggested solution? (for test.pm)
18:50 moritz_ colomon: git pull
18:50 colomon \o/
18:52 masak nom &
18:52 dalek rakudo: e4e1a0d | (Jaume Martí)++ | src/Perl6/Grammar.pm:
18:52 dalek rakudo: Rewrite of parse_name in NQP
18:52 dalek rakudo: With many style fixes from moritz
18:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e4e1a0d5c197d5127dc9d4cc01e407216969cd62
18:52 dalek rakudo: e66c48d | moritz++ | src/ (4 files):
18:52 dalek rakudo: Merge branch 'master' of github.com:rakudo/rakudo
18:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e66c48d9996b5784a3de0ea86cf08e49402fc313
18:52 dalek rakudo: 086bed5 | moritz++ | src/Perl6/Compiler.pir:
18:52 dalek rakudo: fix using Test.pm by putting the . as the first entry in @*INC
18:52 dalek rakudo: That's slightly hacky, and needs to be reconsidered soon, but well... better
18:52 dalek rakudo: than not running any tests when there's a Test.pm installed
18:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/086bed573eb2d916ae1f36421c908069e9ab257e
19:04 rindolf joined #perl6
19:04 rindolf Hi all.
19:04 colomon o/
19:05 rindolf \o
19:05 ShaneC joined #perl6
19:09 rindolf rakudo: [1 .. 10].reverse
19:09 p6eval rakudo 9978b3:  ( no output )
19:10 hercynium joined #perl6
19:11 colomon rakudo: say [1..10].reverse
19:11 p6eval rakudo 9978b3: OUTPUT«10987654321␤»
19:20 Tene japhb: I got frustrated by what's there right now and how much I needed to put back together again, and by complaints about the API pmichaud replaced what was there before with, and didn't actually make any commits.  I pretty much know the order I need to go in now, though.
19:25 colomon woah, still massive test fail here.
19:26 colomon ...and they work when I run them by themselves?!
19:26 * colomon is getting annoyed at how hard it is being to spectest his relatively simple changes....
19:29 ash__ joined #perl6
19:29 Tene colomon: obviously the problem is that your changes are too simple.  Try something more-complex, and I bet testing becomes easier.  That's what the waterbed theory says, right?
19:29 mberends colomon: 'perl tools/test_summary.pl' is making more sense than 'make spectest' at the moment
19:29 colomon mberends: really?
19:29 mberends colomon: try it :-)
19:29 colomon but I'm halfway through a spectest run....
19:30 colomon make spectest, that is.
19:30 colomon I have been loving test_summary for finding LHF to work  on, mind you.
19:30 mberends ok, they should be able to run concurrently in different shells
19:30 mberends test_summary is going to get microbenchmarks very soon
19:31 colomon yes, but my poor laptop will beg for mercy if I do that
19:31 mberends heh
19:32 colomon I'm just logged into the quad core downstairs and I'm building rakudo there at the moment...
19:34 lichtkind mberends: still on that conference?
19:35 mberends lichtkind: no, back in .nl since this morning
19:37 colomon so is make spectest just hosed?  it looks like it's reporting a bunch of failures which aren't actually happening....
19:38 mberends the error message here is that the test script is returning a non 0 exit code after outputting all the right 'ok' lines...
19:41 ash__ so... i just saw the new file  docs/S11-Modules-proposal.pod, some umm interesting things in it, for instance, all parts of the path are considered, so the order of the parts of the lookup path doesn't matter anymore... that seems interesting, but kinda scary... if you have a Foo.pm in your library folder and in the system library with the exact same version information it says it will arbitrarily pick one, which seems like an od
19:42 rindolf left #perl6
19:45 mberends ash__: it seemed easier at  the time to scare the programmer into writing different version numbers into the various copies of the file.
19:46 mberends we don't want to make it harder than necessary to implement versioning in Rakudo *, by adding even more rules for ambiguities.
19:47 ash__ yeah, that does seem like an easy way to resolve the ambiguity, but when you say your arbitrarily choosing things it seems like there should be some sort of "better way" but that better way may be to scare the programmer into using a version number
19:47 mberends the "arbitrary" is a threat, indeed
19:47 iblechbot joined #perl6
19:48 ash__ are they supposed to be 2 part or 3 part versions? or has that been decided?
19:48 mberends we forgot to discuss that, but the examples were all 3 part
19:49 mberends as long as the v-strings are not run through Google we should be ok ;)
19:49 ash__ i know some projects get some really wacky naming convetions with versions, like 1.2.3_r123b
19:49 ash__ vs 1.2.3_r123c
19:50 mberends omg pleez no
19:50 ash__ yeah, those seem overly crazy IMO, why not 1.2.124  or something, but hey, i don't make those rules, it would be kinda nice to have some sort of standard, possibly extendable, speced out
19:52 mberends 1.2.124 is a great format, certainly good enough for Rakudo *. We really need to keep it simple enough that the implementation goes quickly and well.
19:53 ash__ CPAN seems to be mostly 2 part, Major.Minor or something, but i don't know if thats what you want to do for Rakudo *
19:54 mberends there is probably very little extra coding to go from 2 part to 3 part, and that matches Parrot, so should be worth it. A fourth part, otoh, does not improve the system very much.
19:56 dalek rakudo: f0a5552 | (Solomon Foster)++ | src/ (2 files):
19:56 dalek rakudo: Remove obsolete Str.z and Str.filebytes functions.  Add Str.d, Str.f, and Str.s functions.
19:56 dalek rakudo: In the long run these functions should be on Str.IO.
19:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f0a5552655bcdd9baa59fdb59ce8fee587d9e646
19:56 dalek rakudo: d928a86 | (Solomon Foster)++ | src/Perl6/ (2 files):
19:56 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
19:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d928a86f3b5f96518b048eedd3322c885a5490cc
19:56 dalek rakudo: 45b806a | (Solomon Foster)++ | src/builtins/Str.pir:
19:56 dalek rakudo: Port :l from alpha.
19:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/45b806a35df15d9dba09cb7f81b1e6aa80b7cefe
19:56 mberends colomon++
19:58 quietfanatic I thought perl's handling of version strings was specced somewhere.
19:59 colomon oh, bother, didn't push the right version of :l
20:00 mberends yes, it's in S11: Anything matching v? [\d+ '.']* \d+ is treated as a version number
20:02 dalek rakudo: ec9b0df | (Solomon Foster)++ | src/builtins/Str.pir:
20:02 dalek rakudo: Tweaks to :l to make it work (more or less).
20:02 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/ec9b0dfff22d9218ebc05d18d98681e6e940d3b4
20:02 quietfanatic Ah.  I remember a while back there was some specification for dealing with versions that had alphabetic characters in them, but it must not be there anymore.
20:03 quietfanatic It was basically: assume a . between numbers and letters, and sort letters before numbers.
20:03 quietfanatic It was years ago I read it though.
20:14 ash__ joined #perl6
20:24 m6locks what's that imcc in Compiler.pir
20:24 m6locks caused an error while building rakudo
20:30 lichtkind mberends: like posted most of my edits are now not visible, i just wanted addk you if you help translate of write this other implementation article ?
20:31 mberends lichtkind: ok, which article URL?
20:32 lichtkind mberends: i ments the one you wanted write, i think elf or so
20:32 lichtkind mberends: or what you asking for?
20:33 mberends lichtkind: I was asking what you were asking me to help translate
20:34 lichtkind mberends: i made polish of http://www.perlfoundation.org/perl6/index.cgi?perl_6_intro_tablet and the other stuff will coe in now
20:34 lichtkind s/coe/come/
20:37 krr joined #perl6
20:37 pugssvn r29997 | lwall++ | [STD] rebound OUTER::OUTER:: variables can also make their OUTER:: ambiguous
20:37 mberends ah. well, I'm not feeling awake enough to write a new description of Elf, because I would need to research the details as well.
20:37 lichtkind mberends: great
20:38 lichtkind mberends: and maybe a line more on http://www.perlfoundation.org/perl6/index.cgi?martin_berends
20:40 mberends lichtkind: I hope we can support the wiki idea of people not editing articles about themselves. I don't mind answering questions that another editor may wish to ask, though.
20:41 lichtkind mberends: i understood that already but some people see that pages as personal space :)
20:43 mberends lichtkind: ok, that is obviously not the way I look at it :)
20:43 lichtkind mberends: social wiki lacks a userspace
20:43 lichtkind one of the reasons i proposed to develope november into a replacement
20:43 lichtkind but no devs for it now
20:43 mberends lichtkind: what is your attitude to the page about yourself?
20:44 lichtkind mberends: you think its toomuch on it?
20:45 TimToady std: my $y;␤sub foo ($x where {$x == $y},␤$y) { }
20:45 p6eval std 29996: OUTPUT«ok 00:01 109m␤»
20:47 lichtkind mberends: my attitude is that the page is somewhat owned by the person written about, just in case abandoned written by others
20:48 ignacio__ joined #perl6
20:49 mberends lichtkind: your page is just the right size to fill a netbook browser window without starting to need scrolling. Therefore I think the amount of information is just right.
20:52 mberends lichtkind: your page describes your Perl 6 related work in a good, neutral-point-of-view way. It's well written.
20:53 lichtkind thank you
20:56 ash__ joined #perl6
20:57 lichtkind mberends: excuse if i ask twice , you didnt found missing itmes in timeline
20:59 mberends lichtkind: I like the timeline a lot already. Nothing obvious seems missing, but I'll give it another careful look now :)
21:02 masak joined #perl6
21:03 mberends masak: haz u eated nom?
21:03 masak saluton, #perl6!
21:03 masak mberends: I haz. we all haz.
21:03 mberends \o/
21:04 masak mberends: jnthn is asking 'why is mberends awake?' ;)
21:04 mberends bio-clock FAIL
21:04 pmichaud good afternoon, #perl6
21:05 masak good evening, pmichaud.
21:05 mberends good afternoon pmichaud
21:05 jnthn oh hai all
21:05 ash__ has anyone else ever wondered why apachectl uses -k for commands? I feel like i am using a fake russian accent or something , "Kommand"
21:06 masak ash__: it's actually not short for "command" at all, but for "off topic"...
21:06 masak ;)
21:06 ash__ yup, i know :P
21:06 masak (which is relatively OK here, as you also know)
21:06 jnthn oh hai, pmichaud
21:11 Tene I reas "OK" as "Off Topic" the first few times I read that comment, masak.
21:13 masak Tene: you're thinking of "Off Koptic". that's when diakopter does his evalbot thing... :P
21:14 TimToady std: my $y;␤sub foo ($x where {$x == $y},␤$y) { }
21:14 p6eval std 29997: OUTPUT«[31m===[0mSORRY![31m===[0m␤Lexical symbol '$y' is already bound to an outer symbol (see line 1);␤  the implicit outer binding at line 2 must be rewritten as OUTER::OUTER::<$y>␤  before you can unambiguously declare a new '$y' in this scope at /tmp/PvpjsoCGCz line 3:␤------>
21:14 p6eval ..[3…
21:15 masak TimToady++
21:15 masak TimToady: I'm starting to understand why you don't need an RT for STD.pm. you have very nice bug-to-fix turnaround.
21:15 ash__ ooo, fancy error messages are fancy is that an error or a warning?
21:16 masak of course, it helps not being encumbered by a runtime... :P
21:16 masak ash__: error.
21:16 masak ash__: when it starts with 'SORRY!', it's a syntax error.
21:16 ash__ got ya
21:16 masak or at least a parse-time error.
21:16 moritz_ fsvo "syntax" :-)
21:16 masak right.
21:17 lichtkind hello pmichaud
21:17 * masak just noticed how awesomely awesome that error message is
21:17 masak TimToady++
21:18 TimToady it took a while to get all the line numbers straight, and to get the actual name that it needed in the inner scope, not just the scope where it found the collision
21:18 masak std: my $y; { say 1; { my $y }; $y }
21:18 p6eval std 29997: OUTPUT«ok 00:01 105m␤»
21:18 jnthn std: my $y; {{{{{{{{{{ sub bar(($x where {$x == $y}) { } }}}}}}}}}}
21:18 p6eval std 29997: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse signature; couldn't find final ')' at /tmp/G9IAKphMBI line 1:␤------> [32m{{{{{{{{{ sub bar(($x where {$x == $y}) [33m⏏[31m{ } }}}}}}}}}}[0m␤    expecting any of:␤ constraint␤       param_sep␤       trait␤FAILED 00:01 108m␤»
21:18 jnthn std: my $y; {{{{{{{{{{ sub bar($x where {$x == $y}) { } }}}}}}}}}}
21:19 p6eval std 29997: OUTPUT«ok 00:01 108m␤»
21:19 masak :/
21:19 TimToady that's fine
21:19 TimToady you didn't redeclare it
21:19 masak :P
21:19 jnthn std: my $y; {{{{{{{{{{ sub bar(($x where {$x == $y}, $y) { } }}}}}}}}}}
21:19 p6eval std 29997: OUTPUT«[31m===[0mSORRY![31m===[0m␤Lexical symbol '$y' is already bound to an outer symbol (see line 1);␤  the implicit outer binding at line 1 must be rewritten as OUTER::OUTER::OUTER::OUTER::OUTER::OUTER::OUTER::OUTER::OUTER::OUTER::OUTER::OUTER::<$y>␤  before you can unambiguously
21:19 p6eval ..d…
21:19 masak *lol*
21:19 jnthn Yes, that's what I was after. :-)
21:19 masak jnthn++
21:20 masak STD.pm++
21:20 Tene (++)++
21:20 PerlJam insane
21:21 pmichaud std: insane
21:21 ash__ is there a way to jump to the outer most layer? i suppose if you did module foo; then did foo::<$y> ?
21:21 p6eval std 29997: OUTPUT«Undeclared routine:␤   'insane' used at line 1␤ok 00:01 104m␤»
21:21 PerlJam ash__: my $tmp = $y; ... where { $x == $tmp }
21:22 TimToady std: my $y; {{{{{{{{{{ sub bar(($x where {$x == UNIT::<$y>}, $y) { } }}}}}}}}}}
21:22 p6eval std 29997: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unable to parse signature; couldn't find final ')' at /tmp/zBXtyxuJVk line 1:␤------> [32mb bar(($x where {$x == UNIT::<$y>}, $y) [33m⏏[31m{ } }}}}}}}}}}[0m␤    expecting any of:␤ constraint␤       param_sep␤       trait␤FAILED 00:01 108m␤»
21:22 ash__ PerlJam: i was more wondering if there was if maybe ::<$y> worked or something
21:22 moritz_ ash__: modules and lexicals are orthogonal
21:22 TimToady std: my $y; {{{{{{{{{{ sub bar($x where {$x == UNIT::<$y>}, $y) { } }}}}}}}}}}
21:22 p6eval std 29997: OUTPUT«ok 00:01 108m␤»
21:22 ash__ UNIT seems to be the missing thing i was searching for, cool
21:22 TimToady mind you, it's not actually doing UNIT lookups correctly there
21:23 ash__ oh
21:23 ash__ std: my $y; {{{{{{{{{{ sub bar($x where {$x == ::<$y>}, $y) { } }}}}}}}}}}
21:23 p6eval std 29997: OUTPUT«ok 00:01 108m␤»
21:23 TimToady doesn't do OUTER:: lookups right yet either--I'm working on that
21:23 PerlJam ash__: but "outer most scope" isn't always the one you want anyway  :)
21:24 TimToady most of your scopes will generally have a name
21:24 mssm joined #perl6
21:25 ash__ doesint :: infront of the package name make it go to the outer most scope?
21:25 TimToady no, that's p5-think
21:26 ash__ ah, okay
21:26 TimToady it's GLOBAL:: or some such if you really want global
21:27 TimToady or some named lexical scope
21:27 TimToady UNIT, SETTING, CORE, or some inner package name
21:27 TimToady (all the inner package names are in fact aliased lexically as well)
21:28 ash__ so, if you did class Foo; class Bar::Foo; and did ::Foo it wouldn't always give you the first Foo, right?
21:28 TimToady it would search outward for the first Foo it could find
21:29 TimToady one can always say GLOBAL::Foo to force it to the global package
21:29 ash__ gotya
21:29 ash__ is there a like *Foo (thinking of the twigil) way of calling it?
21:30 TimToady well, $*Foo::x could probably be made to look for a dynamic package Foo containing x
21:30 TimToady doubt that works at the moment
21:31 ash__ i suppose you could say my $a = &*Foo::new; if i wanted a new GLOBAL::Foo
21:31 ash__ err, &*Foo.new
21:31 TimToady well, not unless Foo is declared dynamic
21:32 TimToady but mostly we're trying to discourage global names
21:32 TimToady when you say 'use Foo', it imports a Foo alias into your current lexical scope
21:32 TimToady that's what Foo::bar usually finds
21:32 TimToady most of the long names have auths and versions anyway
21:33 ShaneC joined #perl6
21:33 TimToady so you want the short name in your lexical scope to be bound to something more specific outside of it
21:33 ash__ yeah, that makes sense
21:34 hercynium joined #perl6
21:36 TimToady bbl &
21:42 moritz_ masak, jnthn: I'm afraid I'm too tired for hacking already :(
21:42 masak moritz_: 's ok.
21:42 jnthn moritz_: No worries.
21:42 moritz_ but I look forward to another session tomorrow :-)
21:42 jnthn Sleep well :-)
21:42 masak moritz_: are you up for a walk to the top floor? we're thinking of making one to admire the view.
21:43 masak if not, that's fine too.
21:45 Tene roofhacking?
21:45 masak got roof?
21:47 m6locks hmm t/spec/S32-io/file-tests.t fails
21:48 m6locks also t/spec/S32-str/uc.rakudo
21:49 moritz_ m6locks: uc.rakudo fails and passes fairly randomly here
21:49 m6locks aye
21:52 colomon sorry, I forgot to commit the changes to file-tests.t
21:52 colomon one sec.
21:53 pugssvn r29998 | colomon++ | [t/spec] Change to be a little bit closer to the spec.
21:53 moritz_ happened so often to me these past days...
21:54 colomon uc.t has been randomly todo passing here... it never seems to fail, but sometimes it has todo passes and sometimes it doesn't.
22:01 masak loliblogged! http://use.perl.org/~masak/journal/40232
22:02 mathw \o/
22:04 masak ...therefore, I propose we rename the language to Perl 68.
22:04 ash__ 2068, its from the future
22:04 masak will we make it till then?
22:05 masak sounds a bit rushed.
22:05 Tene I keep reading "loli" as http://en.wikipedia.org/wiki/Lolita_fashion whenever you say that, masak.
22:05 masak Tene: don't think you can shock me; I'm Swedish. :)
22:05 ash__ masak: i think we might have just enough to release 'Rakudo' ** 68
22:05 cotto_work joined #perl6
22:06 Tene I don't understand what you'd think was implied as shocking.
22:06 colomon Rakudo ** 68 is the April 1st release, right?  ;)
22:06 masak Tene: hm. maybe it isn't. I actually havn't clicked the link to investigate what Lolita fashion is.
22:07 ash__ i wonder how you raise a string to a power...
22:07 masak Tene: I'm just extrapolating from what I know of that cluster of terms.
22:07 Tene masak: well, it really just reminded me of that cluster of terms, so close enough.
22:07 Tene I chose one randomly from the WP disambiguation page.
22:07 masak Tene: ISTR there's a "Lolicon" in relation to that.
22:08 Tene Yes.
22:08 masak s/con/Con/
22:09 * masak relents and clicks on the link
22:10 pmichaud unless things go all haywire here (as they have for the last two^Wfour^Weight days)  I should be around tomorrow during any hacking sessions (up until about 11am CST)
22:11 colomon \o/
22:13 pmichaud ...but I think I'm betting on "haywire".  :-\
22:13 masak Tene: actually, finding out that the subculture has nothing to do with the eponymous book by Nabokov (something that I just had assumed until now) makes the whole subculture seem very non-shocking.
22:16 jnthn pmichaud: If you are able to make it, that's when we'll be around too. If not, no worries - I'm sure we'll continue to be productive and pun relentlessly.
22:16 masak we've been and done so thus far.
22:16 masak just for reference, we've renamed "metaphor" into "moving van".
22:16 jnthn pmichaud: Quick question. What's the easiest way to do a parse but associate it with different Actions?
22:17 jnthn (parse with Perl6::Grammar, that is)
22:18 colomon rakudo: say 0.14285714285714
22:18 p6eval rakudo ec9b0d: OUTPUT«0.14285714285714␤»
22:18 colomon > say 0.14285714285714
22:18 colomon 2.36232865590783
22:19 colomon oh bother, another 32-bit issue?
22:19 moritz_ 32bit ints vs. 64bit ints
22:19 moritz_ yes
22:19 arnsholt jnthn: The usual .parse($text, :actions($actions)) doesn't work?
22:19 mberends jnthn: if you're thinking of parsing every module.pm with Grammar.pm just to obtain :auth and :ver, I humbly think that massively expensive overkill. You can't stop it descending all the way down :(
22:19 * colomon feels his sanity slowly slipping away...
22:20 masak is there a way to abort a whole parse successfully from within an action method?
22:20 jnthn Yes, throw an exception.
22:20 jnthn mberends: What do you propose instead?
22:20 masak jnthn: doesn't just an exception propagate upwards out of the .parse method?
22:20 jnthn (Keeping in mind that in the future we'll be able to populate a cache.)
22:20 mberends jnthn: a teeny grammar
22:20 jnthn masak: Yes, and we catch it in the module locator.
22:21 masak jnthn: you're not planning to use an exception to return normally, are you?
22:21 jnthn Yes. :-P
22:21 masak jnthn: that's a mortal sin, you know...
22:21 jnthn Kill me now!
22:21 jnthn mberends: But that may miss all kinds of things. :-/
22:22 mberends jnthn: getting :auth and :ver is all you want for candidate selection
22:22 masak jnthn: no, 'kill me now' is the modus operandi that caused you to choose exceptions for this in the first place. :P
22:22 moritz_ "Backtracking over a C<< <commit> >> assertion causes the entire match
22:22 moritz_ to fail outright, no matter how many subrules down it happens"
22:23 masak moritz_: but we want it to succeed outright.
22:23 masak moritz_: and from within an action method.
22:23 moritz_ succeed. Oh.
22:23 moritz_ that's.... not very gramary
22:23 jnthn mberends: If we don't parse using the proper Perl 6 grammar, it'll not be long before somebody finds a way confuse it.
22:23 masak moritz_: true.
22:23 moritz_ for aborting when you found the first module definition?
22:23 * jnthn glances over at masak
22:23 masak moritz_: yes.
22:24 mberends jnthn: doctor, it hurts when I do this... ;)
22:24 moritz_ masak: for such an exceptionally evil thing using an exception is just appropriate
22:24 masak :)
22:24 masak p'haps.
22:24 mberends jnthn: once the correct module file has been chosen, parse it with the main Perl/Grammar.pm
22:25 masak moritz_: it's a bit as if in Prolog there was a construct for saying "oh well, just skip the rest of the details and declare a match here" :)
22:25 jnthn mberends: Yes, but how do you construct said teeny grammar and have any confidence it'll not get upset over full Perl 6?
22:26 mberends jnthn: I was guessing it would be simple, in the same way Perl6/Grammar.pm skips all of Pod.
22:27 pmichaud sorry, was away for a moment
22:27 moritz_ Pod doesn't need so much predictive parsing as Perl 6 does
22:27 pmichaud associate with different actions is simply provide another :actions object to .parse
22:28 jnthn moritz_: Yes, that's kinda my concern.
22:28 pmichaud one can fail a match outright by using    :::<!>
22:28 pugssvn r29999 | colomon++ | [t/spec] Move tests that have 32-bit overflow issues from arith.t to overflow.t.
22:28 pmichaud oh, wait
22:28 pmichaud that'd be   <commit> <!>
22:28 Tene pmichaud: are you going to be around in about 3 hours?
22:28 pmichaud Tene: hard to say.
22:28 jnthn I dunno, I just got a very bad feeling about making another "fake" Perl 6 grammar.
22:28 * Tene nods.
22:28 masak pmichaud: yes, but one cannot succed a match outright, because that (almost) doesn't make sense.
22:28 mberends jnthn: ok. I did write (how?) for a reason... ;)
22:29 jnthn We might as well do a regex like /[class|role].../ :-)
22:29 masak jnthn: if you make a "fake" Perl 6 grammar, I *will* break it.
22:29 mberends jnthn: that was another thought, yes
22:29 Tene jnthn: set the desired :auth and :ver in a dynamic var, and have the grammar throw an exception containing the detected :auth and :ver when found if they don't match.
22:29 jnthn mberends: masak WILL break that.
22:29 mberends so?
22:29 jnthn Tene: Yes, that's kinda my plan.
22:30 * masak accidentally a sledgehammer
22:30 moritz_ mberends: it basically contradicts the Perl 6 philosphy too deeply to be acceptable
22:30 Tene The *whole* sledgehammer‽
22:30 mberends forget trying to make things masak proof
22:30 masak Tene: a sledgehammer.
22:31 masak Tene: I take back everything I took back about you saying shocking things :P
22:31 pmichaud I agree with Tene's answer, for the moment.
22:31 jnthn pmichaud: About ver and auth, or sledgehammers?
22:32 pmichaud set the desired :auth/:ver somewhere, and have the grammar throw an exception when it reaches the module/class/whatever statement and they don't match.
22:32 masak what's not to agree with about sledgehammers?
22:32 jnthn pmichaud: +1
22:32 masak as long as we all agree that it's evil to communicate through the call stack using explicit exceptions like that.
22:33 jnthn Evil can be beautiful.
22:33 moritz_ we agree, and do it anyway
22:33 pmichaud I'm not sure I agree to that.
22:33 masak exceptions are made for *exceptional* circumstances. hence the name.
22:33 masak this is a normal return.
22:33 pmichaud Seems to me that much of Perl 6 is being designed to use exceptions to communicate through the call stack.
22:33 masak a continuation would have been fine.
22:33 pmichaud even normal returns are exceptions.
22:33 pmichaud so I'm not so sure that the exception mechanism is all that exceptional.
22:34 mberends then that's a terminological fail
22:34 masak and a break in tradition.
22:34 masak it's a sort of cargo non-culting.
22:35 * Tene finally clues in that you guys are talking about library loading, and that he might want to pay attention to avoid stepping on toes when working on HLL library interop.
22:36 pmichaud in particular, the way that a called routine communicates to its stack of calling routines is by throwing exceptions
22:36 pmichaud because the notion of "exception" is very context sensitive
22:36 pmichaud things that should be fatal in one context are "business as usual" in another context.
22:36 moritz_ Tene: you might want to look at docs/S11-Modules-proposal.pod in the rakudo repo
22:36 Tene moritz_: I read it, yes.
22:37 moritz_ Tene: and if you happen to implement lexical imports, that would be very welcome :-)
22:37 masak pmichaud: do we pass along the extracted values with the exception?
22:37 Tene moritz_: I'm more concerned right now with getting rakudo able to load parrot libraries, and other HLL interop.
22:37 Tene masak: yes.
22:38 masak Tene: jnthn has another plan here, it seems.
22:38 kensanata joined #perl6
22:38 TimToady I think exceptions have turned into hammers here
22:38 masak Tene: just set attributes in the action class, and then throw the exception.
22:39 masak TimToady: we should rename them 'hammers'. sort of parallel to 'phasers'.
22:39 masak "And then we just throw a hammer..."
22:39 masak see? it works!
22:39 colomon throw a brick.
22:39 jnthn And failures are just like thos foam hammers.
22:39 jnthn soft.
22:39 colomon unless we're all Thor or something...
22:39 moritz_ Thor really threw a boomerang in disguise
22:40 Tene moritz_: no, Mjolnir is just a resumable hammer.
22:40 masak moritz_: I'm sure there's a pun in there somewhere.
22:40 masak oh, look. there was.
22:40 colomon (Actually, there is a hammer toss in the highland games, isn't there?)
22:40 * moritz_ thought they were throwing trees, not hammers. Could be wrong, though
22:40 masak colomon: the trick is to throw from the High Lands, so that it lands on those in the Low Lands.
22:41 masak moritz_: no, tree throwing is a Druid tradition.
22:41 masak not Vikings.
22:41 IllvilJa joined #perl6
22:41 moritz_ what have trees got to do with your board game?
22:42 masak moritz_: I would explain, but it would blow the pun stack.
22:43 jnthn .oO( I knew we should adopt Continuation Punning Style )
22:43 masak in CPS, you never 'return', you just 're-pun'.
22:44 masak using a continuation pointing to the puns not yet executed.
22:48 wknight8111 joined #perl6
23:05 Limbic_Region joined #perl6
23:05 Limbic_Region f00li5h - ping
23:13 ash__ left #perl6
23:17 Tene masak: not sure if you saw it, but http://irclog.perlgeek.de/perl6/2010-03-08#i_2075199 might be of minor interest to you.
23:17 masak Tene: thanks. yep, saw it.
23:19 lichtkind goodnight
23:19 masak I told k23z__ I wasn't sure he was not a troll. since then he's threatened never to come back, and then recanted a bit and instead vowed never to express opinions on the channel.
23:20 masak then we hugged, and after that he has even expressed tendencies to fit in.
23:20 masak so the development so far is better than mst's experience.
23:22 Tene Yeah, I saw that.  I was there.
23:22 payload joined #perl6
23:24 TimToady the most redemption response to oppositional behavior is not always to be oppositional yourself.  :)
23:25 TimToady *redemptive
23:25 masak I sometimes think about how to scale a culture like Perl 6's.
23:26 masak one of my nightmares is to wake up one day, and to see the channel flooded with newbies, and with no regulars left who can give sensible answers to newbie questions. :P
23:26 masak so all the answers given are wrong or cargo-culted in some way.
23:27 TimToady well, sometimes new wine needs new wineskins...
23:27 masak aye.
23:29 masak I guess what I'm saying is that it's hard to extract what good aspects of the Perl 6 culture are due to it having a small graph radius, and what good aspects are due to the members being wholecloth people.
23:31 masak s/wholecloth/wholesome/ :)
23:31 * masak is not a native English speaker
23:40 daemon joined #perl6
23:44 wallberg joined #perl6
23:46 masak wallberg: hello there.
23:47 pugssvn r30000 | lwall++ | [STD] remove mention of *.notdef in favor of :!defined
23:47 pugssvn r30000 | change some debugging says to use the more official .deb method
23:47 masak TimToady++ # *.notdef gone
23:50 masak wallberg: are you perchance a colleague of viklund's?
23:51 pmichaud (notdef gone)   \o/
23:51 * masak .oO( you don't need to shout, I'm notdef )
23:52 jnthn *groan*

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

Perl 6 | Reference Documentation | Rakudo