Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-04-23

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 angelolicastro joined #perl6
00:05 dalek rakudo/nom: 5541810 | pmichaud++ | / (5 files):
00:05 dalek rakudo/nom: Update all &infix:<cmp> operators to return Order::Decrease/Same/Increase.
00:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5541810090
00:06 dalek roast: d09de35 | pmichaud++ | integration/advent2009-day20.t:
00:06 dalek roast: Modify spectest for new .perl output
00:06 dalek roast: (we should probably eliminate the test altogether...
00:06 dalek roast: but it seems reasonable to keep for a while longer.)
00:06 dalek roast: review: https://github.com/perl6/roast/commit/d09de353e1
00:06 dalek roast: 2b52ada | pmichaud++ | S (7 files):
00:06 dalek roast: Merge branch 'master' of git://github.com/perl6/roast
00:06 dalek roast: review: https://github.com/perl6/roast/commit/2b52ada8ec
00:06 dalek roast: fa3ea8f | pmichaud++ | S03-operators/cmp.t:
00:06 dalek roast: [S03] Add Inf/Pair cmp tests.
00:06 dalek roast: review: https://github.com/perl6/roast/commit/fa3ea8fd87
00:14 lestrrat joined #perl6
00:30 replore_ joined #perl6
00:33 havenn joined #perl6
00:56 Psyche^ joined #perl6
00:59 scott_ joined #perl6
01:26 vlixes joined #perl6
01:40 sisar joined #perl6
01:49 Khisanth joined #perl6
01:54 Enstyne joined #perl6
01:55 ens_ joined #perl6
02:46 kst` joined #perl6
02:46 machine5 joined #perl6
02:47 pochi_ joined #perl6
02:48 ens joined #perl6
02:57 envi_ joined #perl6
02:58 orafu joined #perl6
02:58 FACEFOX-DOT-COM joined #perl6
03:02 FACEFOX joined #perl6
03:05 machine1 joined #perl6
03:25 ponbiki joined #perl6
04:00 mdupont joined #perl6
04:00 cotto joined #perl6
04:00 tkr joined #perl6
04:00 arnsholt joined #perl6
04:00 yeltzooo7 joined #perl6
04:01 cognominal joined #perl6
04:08 cognominal joined #perl6
04:10 FACEFOX-DOT-COM joined #perl6
04:11 FACEFOX-DOT-COM joined #perl6
04:35 cognominal joined #perl6
04:49 lestaway joined #perl6
04:50 mathw_ joined #perl6
04:50 moritz_ joined #perl6
04:50 [Coke]_ joined #perl6
04:51 BooK__ joined #perl6
04:51 FACEFOX joined #perl6
04:51 pjcj_ joined #perl6
04:51 domidumont1 joined #perl6
04:56 ocharles- joined #perl6
04:59 infosophy joined #perl6
05:01 machine1 joined #perl6
05:06 FACEFOX-DOT-COM joined #perl6
05:07 replore_ joined #perl6
05:07 FACEFOX joined #perl6
05:09 birdwindupbird joined #perl6
05:12 geistteufel joined #perl6
05:12 revdiablo joined #perl6
05:12 sudokode joined #perl6
05:12 huf joined #perl6
05:12 SHODAN joined #perl6
05:12 BinGOs joined #perl6
05:12 Woodi joined #perl6
05:12 dju joined #perl6
05:12 zostay joined #perl6
05:13 daniel-s joined #perl6
05:14 14WAAPLCK joined #perl6
05:14 HarryS joined #perl6
05:14 pochi_ joined #perl6
05:14 DarthGandalf joined #perl6
05:14 integral joined #perl6
05:14 jlaire joined #perl6
05:14 mikemol joined #perl6
05:14 cj joined #perl6
05:14 jrockway joined #perl6
05:14 xenu joined #perl6
05:15 bip` joined #perl6
05:18 GlitchMr joined #perl6
05:20 FACEFOX joined #perl6
05:23 machine1 joined #perl6
05:38 birdwind1pbird joined #perl6
05:47 dalek perl6-bench: 96cb3a1 | (Geoffrey Broadwell)++ | bench:
05:47 dalek perl6-bench: s/_cmd/_run/g in preparation for handling compilers with separate compile and run passes
05:47 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/96cb3a13ad
05:47 dalek perl6-bench: f8fad85 | (Geoffrey Broadwell)++ | bench:
05:47 dalek perl6-bench: Handle compilers that need separate compile and run passes; factor out config for name/path of various VMs; only run enabled compilers; add p5.js_v8, p6.js_v8, and p6.pl compilers; whitespace cleanups
05:47 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/f8fad8514d
05:50 japhb phenny, tell fglock As of this latest push, it looks like perlito5.js running on node.js is failing completely ('node.js:63 throw e;'), but perlito5.js running on d8 is working well.
05:50 phenny japhb: I'll pass that on when fglock is around.
05:52 harukomoto joined #perl6
05:52 japhb phenny, tell fglock Also, perlito6.pl is failing on rc-forest-fire ('Missing value after operator > at lib5/Perlito6/Expression.pm line 286.') but works fine on the easier stuff.  perlito6.js running on d8 hangs at 100% CPU on rc-forest-fire but again, works on the easy stuff.
05:52 phenny japhb: I'll pass that on when fglock is around.
05:55 japhb Wheee, that's 9 combinations of language/compiler/VM that perl6-bench is testing.  Now I just need to get pugs working locally and being tested by perl6-bench, and I think that will cover that particular line of development pretty well.  Then of course there's the whole "adding more tests" dimension ....
05:56 kaleem joined #perl6
05:56 wtw joined #perl6
05:57 japhb phenny, tell fglock Correction: perlito6.js running on d8 appears to hang during *compile*.  Perhaps I just need to let it run a lot longer ....
05:57 phenny japhb: I'll pass that on when fglock is around.
05:57 japhb Resting brane &
05:58 HarryS joined #perl6
06:00 mucker joined #perl6
06:15 lestrrat joined #perl6
06:25 nebuchadnezzar joined #perl6
06:53 sisar joined #perl6
07:25 mucker joined #perl6
07:29 mucker joined #perl6
07:33 jaffa4 joined #perl6
07:33 jaffa4 hi
07:34 jaffa4 how to set the include path for niecza?
07:34 sorear -I
07:34 jaffa4 And inside the p6?
07:35 jaffa4 sorear:WHy did you modidy std.p6?
07:35 sorear Because TimToady didn't have enough tuits
07:36 jaffa4 tuit?
07:36 sorear I think 'use lib' works
07:37 jaffa4 tutoriak?
07:38 sorear tuit is a well established pun
07:38 sorear I will do this when I get around to it
07:38 sorear I will do this when I get a round tuit
07:39 * DrEeevil throws a round "tuit" at sorear
07:39 DrEeevil now do it! kekeke
07:41 jaffa4 manana?
07:44 jaffa4 sorear: have you though about using some kind of caching mechanism?
07:45 jaffa4 for compilation?
07:45 sorear thought about it?  I did it more than a year ago
07:45 jaffa4 How to use it?
07:46 jaffa4 Something along the line of  precompiled headers
07:46 sorear it's completely automatic.
07:46 jaffa4 precompiled modules
07:46 sorear you cannot not use it.
07:48 jaffa4 so it means the second compilation is always faster, does not it?
07:50 sorear jaffa4: if you are using modules, yes
07:53 jaffa4 sorear: great, I can see it is working
07:55 fhelmberger joined #perl6
08:02 jaffa4 sorear: I cannot use your std.pm... I get an error Unable to resolve method cursor_fresh in class STD
08:03 sorear my STD.pm6 is designed to be the frontend to a compiler, nothing more
08:04 jaffa4 Meaning what? I should not be able to parse perl 6 with it?
08:05 sorear Meaning that using it outside of niecza will be *hard*
08:06 replore_ joined #perl6
08:08 daxim joined #perl6
08:13 jaffa4 sorear: because?
08:15 huangjs joined #perl6
08:22 sorear jaffa4: you've already started to see it - you'll have to write your own cursor_fresh and a thousand other interface routines
08:22 frettled masak++ nice blog entry
08:23 * sorear -> sleep
08:23 jaffa4 sorear: bye
08:25 frettled masak: both, really
08:28 masak ;)
08:28 masak morning, #perl6
08:28 dakkar joined #perl6
08:30 frettled indeed!
08:30 frettled With any luck, moritz has now listened to Damian's talk at GoOpen 2012.
08:31 Guest93445 was it filmed?
08:32 infosophy ...the keynote, I mean.
08:32 frettled Damian usually does not permit his talks to be recorded, IIRC.
08:33 infosophy aye - remembered him saying so at the necrolinguaphilia talk.  but a keynote could be a bit different.
08:34 masak I've seen a recording of an earlier version of the talk he gave on Thursday.
08:35 frettled Ah, wait, he was supposed to start at 10:10 and finish at 10:40, I misremembered the times.
08:35 xenu joined #perl6
08:35 frettled masak: oh!
08:36 frettled I know someone who would like to see that, hee-hee.
08:39 huf joined #perl6
08:40 frettled Google to the rescue!
08:40 infosophy was that an introductory talk as well?
08:40 rafl joined #perl6
08:41 infosophy chould we expect an advanced presentation on temporally quaquaversal virtual nanomachine programming in multiple topologically connected quantum-relativistic spacetimes?
08:42 infosophy s/chould/should/
08:46 masak I'd *attend* one, but I doubt it's forthcoming.
08:55 infosophy he could seek sponsorship from major pharmaceutical companies... the topic is sure to bring on major headaches
08:55 frettled It might help in making LSD legal.
08:56 infosophy I find myself having been being having a migraine level headache just thinking about it.
08:56 cognominal joined #perl6
08:59 masak lichtkind: er. what kind of git setup do you have that adds Emacs backup files before a commit? :)
09:05 sisar joined #perl6
09:15 flussence whoa, stuff's been happenin'
09:25 xinming joined #perl6
09:26 masak yes.
09:26 masak there's been a hackathon.
09:30 frettled and people have been hacking
09:32 fglock joined #perl6
09:36 jaffa4 that is a crime
09:36 masak not in the sense used in programmer circles.
09:37 jaffa4 By the way, how would you parse perl 6 using niecza?
09:37 fglock o/
09:37 phenny fglock: 22 Apr 23:10Z <japhb> tell fglock Oooh, good news!  Erm, unfortunately perlito5.js doesn't seem to be running under node.js anymore.  I get "\nnode.js:63\n    throw e;\n    ^\n"
09:37 phenny fglock: 05:50Z <japhb> tell fglock As of this latest push, it looks like perlito5.js running on node.js is failing completely ('node.js:63 throw e;'), but perlito5.js running on d8 is working well.
09:37 phenny fglock: 05:52Z <japhb> tell fglock Also, perlito6.pl is failing on rc-forest-fire ('Missing value after operator > at lib5/Perlito6/Expression.pm line 286.') but works fine on the easier stuff.  perlito6.js running on d8 hangs at 100% CPU on rc-forest-fire but again, works on the easy stuff.
09:37 phenny fglock: 05:57Z <japhb> tell fglock Correction: perlito6.js running on d8 appears to hang during *compile*.  Perhaps I just need to let it run a lot longer ....
09:37 fglock looking...
09:38 jaffa4 masak: any ideas?
09:39 masak I would say "hacking" is used in senses 4 and 5 from http://www.hackersdictionar​y.com/html/entry/hack.html
09:39 masak jaffa4: no, but sorear would know.
09:39 jaffa4 masak: I was just joking
09:40 jaffa4 and in rakudo?
09:43 cognominal joined #perl6
09:43 jaffa4 masak: what about rakudo?
09:44 masak jaffa4: well, "that is a crime :-P" would have made it clear you were joking. without the smiley, it wasn't clear.
09:44 masak jaffa4: you used to be able to get ASTs out in Rakudo, in alpha or ng. but they were useless, or Rakudo would crash.
09:44 masak I haven't tried it in nom. feel free to try.
09:48 jaffa4 The code of std: which is working on the channel? Can it be found somewhere?
09:50 jaffa4 masak.
09:50 frettled jaffa4: if it can be found somewhere, I would not be surprised if it was on github in the perl6 repo
09:50 masak it is.
09:51 masak https://github.com/perl6/std
09:51 masak https://github.com/perl6/std/blob/master/STD.pm6
09:51 am0c joined #perl6
09:52 cognominal joined #perl6
09:54 frettled If you were to look at how I sometimes turn a phrase, it would not be entirely implausible to deduce that there is a certain roundabout manner to it.
09:55 cognominal how come, when I type "panda list", I don't see zavolaj?
09:55 cognominal I did a "panda update"
10:00 masak frettled: how autopunny :)
10:00 frettled (:
10:02 tadzik o/
10:03 frettled yay, tadzik++
10:03 fglock phenny, tell japhb I can't reproduce the problem with perlito5.js; about perlito6, it will take some time to catch up
10:03 phenny fglock: I'll pass that on when japhb is around.
10:04 frettled Time for lunch.  Less fancy and more expensive than the ones at the hackathon. :-/
10:04 tadzik cognominal: try NativeCall
10:04 tadzik masak, masak, idea
10:05 tadzik a macro turns perl6 ast into perl6 ast
10:05 tadzik so if it takes a string, it's effectively a compiler (to perl 6)
10:05 tadzik so could you implement slangs using macros?
10:06 jaffa4 What were the prices like?
10:06 cognominal tadzik: can you be more specific?
10:07 jaffa4 What were the prices like at hackaathon?
10:07 cognominal NativeCall is part of zavolaj. How can it help me to install it?
10:08 tadzik cognominal: zavolaj is in the module ecosystem under a name "NativeCall"
10:09 cognominal ok. tadzik++
10:09 tadzik jaffa4: quite high from my pov, but otoh I'm from Poland, so finding a place where I'll consider stuff cheap could be pretty hard :)
10:11 cognominal tadzik: it does not install on macosx lion :  t/01-argless.t ......... dyld: lazy symbol binding failed: Symbol not found: _dlLoadLibrary
10:11 cognominal Referenced from: /Users/stephanepayrard/git/rakudo/install/lib/p​arrot/4.3.0-devel/dynext/nqp_dyncall_ops.bundle
10:11 cognominal Expected in: flat namespace
10:12 jaffa4 std.p6 does not compile in niecza
10:12 tadzik no eye deer, you'll have to ask jnthn or arnsholt
10:12 tadzik cognominal: ^
10:14 cognominal I am not the first one to have the same problem :  http://irclog.perlgeek.de/​perl6/2012-02-13#i_5142113  Apparently was not solved
10:15 jaffa4 cognominal:  that sounds bad, you are only the second one.
10:16 cognominal jaffa4: meaning?
10:16 jaffa4 cognominal: nothing special...
10:17 tadzik cognominal: bbkr eventually published his GeoIP module, so I guess he solved is problem somehow
10:17 cognominal "expect in: flat namespace" seems a common error message according to Google
10:35 cognominal sounds to be that issue :  https://github.com/jnthn/zavolaj/issues/7
10:38 cognominal nope
10:47 arnsholt cognominal: I've not had that particular problem on OS X (but a couple of others)
10:47 arnsholt Which OS X Are you on?
10:48 arnsholt But AFAIK bbkr_ has gotten it to work
10:49 cognominal arnsholt: 10.7.3
10:49 arnsholt But I think dlLoadLibrary is from dyncall (which is bundled with NQP)
10:49 arnsholt Which NQP/Rakudo do you have?
10:50 spider-mario joined #perl6
10:50 cognominal last git version
10:51 arnsholt That's odd
10:51 Trashlord left #perl6
10:52 arnsholt My currently installed version is lagging a bit, since I'm working on some stuff in a branch, so it could be very recent breakage
10:52 arnsholt But I have to admit I'd be surprised if that were the case
10:53 cognominal it seems people have that problem with old bundles lying around. I will check that
10:53 arnsholt Yeah, that could be it
10:54 arnsholt Try wiping out install and recompiling
10:58 lestrrat joined #perl6
10:58 snearch joined #perl6
10:59 masak today's autopun: http://twitter.com/sixthformp​oet/status/194056507644583936
11:00 masak tadzik: yes. macros are "little compilers". I tend to think of them as routines you hook into the regular compiler.
11:01 masak slangs (in the sense of "sublanguages") are more about creating/substituting a whole parser/grammar/actions class, I think. 'course, subclassing ought to make it possible to use that procedure for minor changes as well.
11:01 masak like, adding a new keyword into the main Perl 6 slang, or something.
11:02 masak but we're well into the realm of speculation here.
11:02 tadzik yes, that's where I wanted to get :
11:02 tadzik :)
11:02 * tadzik back home o/
11:02 masak \o/
11:02 colomon \o/
11:02 masak which is why we should usher in this era as soon as possible. to get through the sludgy parts.
11:03 masak tadzik: maybe there'll turn out to be some "functional equivalence" between deriving a grammar of the current slang, and a macro. we'll see.
11:04 tadzik interesting
11:05 pernatiy joined #perl6
11:10 frettled tadzik: I forgot to ask: where do people from Poland go for cheap shopping?  Norwegians go to Sweden (and almost anywhere else), Swedes go to Denmark, Danes go to Germany, Germans go to Poland…
11:11 frettled masak: d'oh, I forgot to hang over your shoulder and watch while you performed grammar magic.  :)
11:12 frettled s/grammar/macro/
11:12 * frettled confumbled the words.
11:13 tadzik frettled: heh, Poland? :P
11:13 tadzik I, for one, go to Lidl for cheap shopping :P
11:14 frettled tadzik: heh :)
11:14 tadzik or Tesco if it's after 21
11:14 frettled Someone once suggested Slovakia to me, but…
11:15 tadzik what kind of shopping do you look for?
11:16 frettled I'm not exactly looking, but the thing is that there is significant cross-border shopping of e.g. alcohol, foodstuffs (meat in particular), candy, soda, etc.
11:16 frettled And it's typically so that people are willing to cross at most one border for that, since there are limits to how far you can drive on a day or weekend trip and still save money on your shopping.
11:17 frettled I'm sure this can be turned into a coding contest challenge!
11:18 tadzik a beer in a bar is like 12 NOK here :)
11:19 frettled Okay, still more expensive than certain parts of Prague in 2004 :)
11:19 cognominal reinstalled rakudo from scratch and NativeCall installs correctly
11:20 frettled tadzik: 12-18 CZK for a beer, or (at that time), 3-5 NOK
11:20 frettled cognominal: \o/
11:20 tadzik okay, that's cheap :)
11:22 cognominal nice, but intellectually frustrating.
11:23 frettled cognominal: yes, there is some room for improvement ;)
11:27 spider-mario I’ve forgotten how to submit a rakudobug?
11:27 spider-mario (that one’s minor, but still)
11:28 tadzik spider-mario: http://rakudo.org/how-to-help/
11:28 spider-mario thanks
11:35 flussence NativeCall doesn't install through panda for me at all, it always fails the compiled-C tests :/
11:37 spider-mario there
11:37 spider-mario bug 112584
11:38 flussence while I'm at it, does rakudo have a -MCarp=verbose equivalent? I want to figure out what causes these -
11:38 flussence ==> Building NativeCall
11:38 flussence use of uninitialized value of type Any in string context  in method Str at src/gen/CORE.setting:670
11:39 tadzik flussence: update your rakudo
11:39 tadzik I fixed it like yesterday
11:40 arnsholt cognominal: Thanks for the update. Then it was probably some confusion in the installed libs section
11:40 tadzik r: my $a; say "lala$a"; CONTROL { say $_.backtrace.full }
11:40 p6eval rakudo 554181: OUTPUT«  in sub warn at src/gen/CORE.setting:439␤  in method Str at src/gen/CORE.setting:670␤  in method Stringy at src/gen/CORE.setting:677␤  in block <anon> at /tmp/4EyzeyHHEu:1␤  in <anon> at /tmp/4EyzeyHHEu:1␤␤use of uninitialized value of type Any in string context  …
11:40 tadzik flussence: ^
11:40 flussence er... I'm on 2012.04-50-g5541810 and git pull says I'm up to date
11:40 spider-mario oh, I forgot to include my rakudo version in my bug report.
11:40 spider-mario oops.
11:42 arnsholt flussence: What kind of failure?
11:42 zhutingting joined #perl6
11:43 arnsholt If it has problems finding the compiled libs, it's fairly easy to get working
11:43 flussence t/01-argless.t ......... Cannot locate native library '01-argless.so'
11:43 tadzik flussence: https://github.com/rakudo/rakudo/commit/19370a16
11:44 arnsholt Yeah, that's the one
11:44 arnsholt export LD_LIBRARY_PATH=. and try again
11:44 arnsholt Or DYLD_LIBRARY_PATH=. is you're on OS X
11:44 arnsholt (But you're not, since it's .so, not .bundle)
11:46 flussence tadzik: that's weird, this should work then...
11:46 tadzik make install? :)
11:47 masak frettled: is there something I can tell you or help you with now, regarding macros? or was it important that it happen in Oslo?
11:47 flussence hm, maybe "make all install" doesn't do what I think it does, 'cause running make install is doing stuff now...
11:48 frettled masak: I was hoping for osmosis through direct observation :)
11:48 masak hehe.
11:48 frettled masak: but judging from your blog, I feel confident that new opportunities will arise
11:48 masak oh yes.
11:49 flussence arnsholt: thanks, worked
11:50 masak r: macro foo { say 2; quasi { say 4 } }; BEGIN { say 1 }; say 3; foo
11:50 p6eval rakudo 554181: OUTPUT«1␤2␤3␤4␤»
11:50 masak frettled: that's a good start towards understanding macros ;)
11:50 frettled masak: and possibly also quasi
11:52 cognominal_ joined #perl6
11:53 masak like this. a string is a piece of text that you can put in a variable and print whenever you want. a closure is a piece of compiled code that you can put in a variable and call whenever you want. a quasi is a piece of *un*compiled code that you can put back into your code and compile whenever you want.
11:55 masak just like qq strings can contain mentions of variables which are interpolated into the string as the string is evaluated, so quasis contain "unquasi slots" which are interpolated as the quasi is evaluated.
11:57 frettled So, essentially, what happens in the above code is: 1) say 1 is executed first, because it's in a BEGIN block.  2) say 3 is not executed (but it is parsed), 3) foo is parsed and because it's a macro, say 2 is immediately executed while quasi { say 4 } is compiled.  Because foo is after say 3, say 3 happens before say 4.
11:57 frettled Is that an adequate understanding?
12:00 masak yes. \o/
12:00 masak in a very real sense, the contents of the quasi has replaced the 'foo' call in the code.
12:01 masak it happens on the AST level, not on the code-as-text level, but other than that, that's what happens.
12:04 masak what's being sent to and from a macro are AST tree fragments.
12:04 masak r: macro foo($x) { quasi { say "It's an $x.WHAT()" } }; foo("I'm a string")
12:04 p6eval rakudo 554181: OUTPUT«use of uninitialized value of type AST in string context  in method Str at src/gen/CORE.setting:670␤␤It's an ␤»
12:04 sunfinite joined #perl6
12:04 masak huh.
12:04 masak r: macro foo($x) { quasi { say "It's an $x" } }; foo("I'm a string")
12:04 p6eval rakudo 554181: OUTPUT«It's an AST<1603438779>␤»
12:04 * masak wonders why .WHAT doesn't work there
12:05 GlitchMr joined #perl6
12:10 mtk joined #perl6
12:10 masak I'd like to take the time to put in a good word for NPW 2012: http://act.yapc.eu/npw2012/
12:11 masak sign up, submit talks -- and have the appropriate amount of fun!
12:12 frettled r: macro foo($x) { quasi { say "It's an ", $x.^name } }; foo("I'm a string")
12:12 p6eval rakudo 554181: OUTPUT«It's an AST␤»
12:13 * frettled picked up one thing.
12:13 pernatiy joined #perl6
12:13 frettled hmm
12:17 tokuhirom joined #perl6
12:18 spider-mario joined #perl6
12:18 frettled And, not surprisingly:
12:19 frettled r: macro foo(Str $x) { quasi { say "It's an ", $x.^name } }; foo("I'm a string")
12:19 p6eval rakudo 554181: OUTPUT«===SORRY!===␤Nominal type check failed for parameter '$x'; expected Str but got AST instead␤»
12:19 * frettled just had to test :)
12:19 masak :)
12:19 masak it *looks* like a call to the macro foo with a Str.
12:19 masak but it isn't.
12:20 masak it's a call to the macro foo with an AST object containing a parsed string literal.
12:20 masak the Str doesn't exist because it's too early in the program lifecycle for runtime objects.
12:20 masak well, sorta.
12:21 masak as we enter the macro, we do switch gears from compile/parse mode to run mode.
12:22 masak and that transition seems to be why we see everything as AST objects from inside the macro. we're inside a bubble of run mode, looking out over a barren desert of parse-mode objects.
12:23 frettled with the odd tumbleweed of comments
12:24 masak well, comments are just whitespace from a parser perspective ;)
12:25 spider-mario joined #perl6
12:26 frettled easily ignorable line noise
12:26 dalek tablets: 74f768a | (Herbert Breunung)++ | README.md:
12:26 dalek tablets: adding format rules
12:26 dalek tablets: review: https://github.com/perl6/tablets/commit/74f768af9e
12:31 masak a boy wants to give an apple to a girl. to get to her, he has to pass through five gates, each with a guard. he bribes each guard with half of his apples, plus one. after he's given the apple to the girl, he has no apples left. how many did he have to begin with?
12:32 arnsholt A lot? =)
12:32 tadzik ALL THE APPLES
12:33 frettled arnsholt: I'd think he only had many.
12:33 masak seems the easiest way to solve the problem is to run the guy backwards in time.
12:34 masak we know he has 1 apple just before he gives it away to the girl.
12:34 flussence 25
12:34 flussence ish :)
12:34 tadzik hmm
12:34 tadzik I think that can be solved using a sequnce operator
12:34 masak now run him backwards. he takes 1 apple from the guard, and then he takes as many as he has, that is, 2.
12:34 masak so now he has 4.
12:35 spider-mario joined #perl6
12:35 masak this is possible because both of the operations performed here (halving, subtracting 1) are invertible, and their composition is invertible (adding 1, doubling).
12:36 tadzik r: (1, { ($^a + 1) * 2 } ...)[^10].perl.say
12:36 p6eval rakudo 554181: OUTPUT«===SORRY!===␤Confused␤at /tmp/lLIoOw9HGP:1␤»
12:36 tadzik r: (1, { ($^a + 1) * 2 } ... *)[^10].perl.say
12:36 p6eval rakudo 554181: OUTPUT«(1, 4, 10, 22, 46, 94, 190, 382, 766, 1534)␤»
12:36 frettled masak: whoa, whoa, whoa, there, unit test first!
12:36 masak :P
12:36 masak so, 94 apples?
12:36 masak tadzik++
12:36 tadzik provided there are no bugs
12:36 masak looks right to me.
12:37 frettled only 1 left
12:37 frettled (oh ha ha)
12:37 tadzik r: (1,(*+1)*2...*)[6].say # golf'd!
12:37 p6eval rakudo 554181: OUTPUT«190␤»
12:37 tadzik eek, what
12:37 masak 5
12:37 tadzik r: (1,(*+1)*2...*)[5].say # golf'd!
12:37 p6eval rakudo 554181: OUTPUT«94␤»
12:37 tadzik there
12:37 mikec if i was the girl, i'd want to know why the first guard got way more apples
12:37 flussence r: say (1534, { $^a / 2 - 1 } ... *)[^5]
12:37 p6eval rakudo 554181: OUTPUT«1534 766 382 190 94␤»
12:38 masak mikec: this is how corruption works.
12:38 frettled mikec: because he was the most corrupt one, obviously
12:38 mikec hehe
12:38 masak it would be fun to have a module where the problem could be specified forwards, and it would reverse it for us.
12:38 masak an abstract algebra module.
12:38 masak that could solve linear equations.
12:38 frettled masak: I believe Damian has nailed that one.
12:38 tadzik hehehe
12:38 masak :P
12:39 tadzik . o O ( There's a pararell universe for that! )
12:39 masak so you do 'sub guard($n) { $n / 2 - 1 }; solve (my $x), 1 == guard(guard(guard(guard(guard($x)))))'
12:40 masak or something of that order.
12:40 masak perhaps 'my Var $x'
12:40 frettled That ought to be guard^5($x)
12:40 tadzik hmm, there is this bfs variant that goes backwards as well as forwards
12:41 masak frettled: well, you could define a higher-order function (or operator) to do that.
12:41 masak tadzik: all we need here is to build the linear equation, and solve for $x
12:41 tadzik aye
12:41 frettled Maybe just abuse Unicode a bit: guard⁵($x)
12:41 tadzik :)
12:42 masak we could even make 'solve for $x' the default :)
12:42 masak or 'solve for the Var object in this expression'.
12:42 frettled So now we just need a operator that knows which Unicode chars are superposed numbers
12:42 frettled an operator
12:42 frettled I refactored that sentence too many times too quickly without testing.
12:44 dalek nqp/cstruct-work: 3bf5590 | (Arne Skjærholt)++ | src/6model/reprs/CArray.c:
12:44 dalek nqp/cstruct-work: Make sure out-of-bounds accesses on managed CArrays don't do stupid things.
12:44 dalek nqp/cstruct-work: review: https://github.com/perl6/nqp/commit/3bf55905fd
12:45 lichtkind joined #perl6
12:45 sisar joined #perl6
12:45 masak arnsholt++
12:46 arnsholt Thanks. Now let's see what happens when I merge in master
12:46 bluescreen10 joined #perl6
12:46 masak arnsholt: is INTVAL signed? then you should perhaps check whether't be >= 0 too...
12:47 * [Coke]_ sees pics of moritz and masak and everyone.
12:47 arnsholt masak: Hmm. Good point
12:47 * [Coke] thinks jnthn has a different style of victorian beard every time I see a picture!
12:47 * [Coke] expected masak to look a little more... crazed?
12:47 * [Coke] grins.
12:48 arnsholt In my defence, jnthn never checks for negative indices =)
12:48 arnsholt But what's the correct answer for a negative index again? Invalid?
12:49 masak in... C?
12:49 dalek tablets: 8fe801c | (Herbert Breunung)++ | docs/appendix- (2 files):
12:49 dalek tablets: some rather subtle format fixes
12:49 dalek tablets: review: https://github.com/perl6/tablets/commit/8fe801c9c2
12:49 masak I guess.
12:50 arnsholt No, in Perl 6. In C I know what happens =)
12:51 masak yes, .[-1] is always an error.
12:53 arnsholt Cool. Then I can just chuck in a check at the top of all the functions
12:53 arnsholt Cheers!
12:54 machine1 joined #perl6
12:55 masak r: class Var {}; class Equation { has $.lhs; has $.rhs; method solve { $.rhs } }; multi infix:<==>(Var $lhs, Any $rhs) { Equation.new(:$.lhs, :$.rhs) }; say ((my Var $) == 42).solve
12:55 p6eval rakudo 554181: OUTPUT«===SORRY!===␤Variable $.lhs used where no 'self' is available␤at /tmp/U6qwXgK4yk:1␤»
12:55 masak r: class Var {}; class Equation { has $.lhs; has $.rhs; method solve { $.rhs } }; multi infix:<==>(Var $lhs, Any $rhs) { Equation.new(:$lhs, :$rhs) }; say ((my Var $) == 42).solve
12:55 p6eval rakudo 554181: OUTPUT«===SORRY!===␤Contextual $*GOAL not found␤»
12:55 masak r: class Var {}; class Equation { has $.lhs; has $.rhs; method solve { $.rhs } }; multi infix:<==>(Var $lhs, Any $rhs) { Equation.new(:$lhs, :$rhs) }; say ((my Var $x) == 42).solve
12:55 p6eval rakudo 554181: OUTPUT«42␤»
12:55 masak \o/
12:55 masak this has potential.
12:57 PacoAir joined #perl6
12:57 masak you could generalize this to arbitrary operators, and arbitrary occurrences of the variable on both sides of the equation.
12:57 masak and you could still detect whether it's a linear equation or not, and if it is, you could solve it.
12:58 masak and then you write a nice blog post about the boy and the five guards, with tadzik++'s nice sequence operator, and then this equation package ;)
12:58 arnsholt Well volunteered? ;)
12:59 masak I can do it, and I see the way forward.
12:59 masak but I'm kinda hoping someone else will pick it up ;)
12:59 masak perhaps in vain. the world is structured such that if you want something done, most of the time you have to do it yourself ;)
13:00 masak I'll see what I can do today after $work. shouldn't be that difficult.
13:00 masak but anyone is welcome to task-steal this one.
13:00 flussence .oO( now if only we could generalise it so we could feed it a serialised program state and some code then say "go back to here"... :)
13:00 frettled masak: would be lovely to do so, but all my tuits are dodecahedrons, apparently.
13:01 masak :P
13:02 JimmyZ joined #perl6
13:13 infosophy frettled: is there a difference between an up and a down tuit?
13:14 * masak .oO( first generation of tuits )
13:14 frettled infosophy: there certainly are strange tuits
13:19 arnsholt masak: In case you wondered, the out-of-bounds check is done before the index arrives in the C-code, so it turns out I don't really have to do it =)
13:20 frettled arnsholt: perhaps you can convert that into a charm tuit.
13:21 infosophy frettled: I can see someone getting down tuit and another feeling up tuit - how do the charm and strange tuits work?
13:22 masak r: role Expr {}; class Var does Expr {}; class Op does Expr { has $.op; has $.l; has $.r }; multi infix:</>(Expr $l, $r) { Op.new(:op</>, :$l, :$r) }; multi infix:<->(Expr $l, $r) { Op.new(:op<->, :$l, :$r) }; sub guard { $^x / 2 - 1 }; say guard(Var).perl
13:22 p6eval rakudo 554181: OUTPUT«Op.new(op => "-", l => Op.new(op => "/", l => Var, r => 2), r => 1)␤»
13:22 masak arnsholt: ah, ok.
13:23 masak another cool thing would be to take the above AST and produce the inverse -- totally doable.
13:25 masak hm, but it occurs to me that this is just a linear equation solver in the small ;)
13:26 JimmyZ_ joined #perl6
13:26 dalek Heuristic branch merge: pushed 16 commits to nqp by arnsholt
13:27 frettled infosophy: well, if you bring some charm tuit, people involved tend to feel a bit better about it.  If you think there is something strange tuit, then you're probably right.
13:28 * masak 's pun detector twiddles
13:28 frettled There is definitively a pun tuit here.
13:31 spider-mario_ joined #perl6
13:37 skids joined #perl6
13:40 * infosophy fervently agrees
13:40 infosophy I'm going to start saving for a nothing tuit right away
13:41 uniejo joined #perl6
13:41 masak the nothing tuits are massively overpriced, if you ask me.
13:43 frettled that reminds me that there are at several kinds of risk tuits.
13:43 frettled You have these, at least: certain, massive, no
13:46 frettled arnsholt: but be careful so you don't get too many used tuits
13:52 * infosophy hands freddled an end tuit
13:57 frettled touché
13:58 infosophy s/dd/tt/
13:58 infosophy sowwy
13:59 frettled Id's an undersdandable misdake.
13:59 infosophy must be the soft consonants we were talking about on Sunday
14:01 flussence Stage parse: 538.949 # observation: rakudo's string handling/parsing/regexy bits are *slow*
14:01 flussence (and not just on core.setting)
14:02 cognominal___ joined #perl6
14:03 [Coke] I don't know. I think this whole pun thing has a certain ring tuit.
14:05 masak flussence: don't read too much into those numbers.
14:06 masak flussence: you'll note that the AST step two lines down takes 0.000
14:06 masak flussence: while the reality is that parsing and AST building are intertwined
14:06 flussence I thought those looked odd...
14:08 frettled r: say "odd" if 538949 % 2
14:08 p6eval rakudo 554181: OUTPUT«odd␤»
14:09 masak r: say "odd" if 538949 !%% 2
14:09 p6eval rakudo 554181: OUTPUT«odd␤»
14:10 [Coke] masak: I was in the middle of typing that. ;)
14:10 flussence ok, I'm going to try this the long way - `git clean -dfx`'ed rakudo, reinstalled it, rm -r ~/.perl6 ~/.panda; panda bootstrap.sh and then reinstall NativeCall from that. If that doesn't get rid of that warning I don't know what will
14:11 [Coke] # 04/22/2012 - niecza++ ; pugs (44.63%); rakudo (0.03%)
14:11 [Coke] looks like rakudo has been failing for 3 days now.
14:11 masak [Coke]: moritz_ and I end up typing the same things all the time nowadays. I've had occasional resonances with pmichaud and jnthn now and then, too.
14:11 colomon [Coke]: wait, niecza's ahead again?
14:12 masak [Coke]: how do you mean, "has been failing for 3 days now"?
14:12 masak I'm pretty sure Rakudo has been in more heavy use lately than in quite a while.
14:12 masak [Coke]: most likely it's some parrot or nqp revision that you need to give a little shake.
14:13 [Coke] colomon: look at rakudo's percentage there.
14:13 colomon I see it, but I don't know what it means.  (Or maybe I'm looking at the wrong thing?)
14:14 masak colomon: < [Coke]> looks like rakudo has been failing for 3 days now.
14:14 colomon is it really passing fewer tests that niecza?
14:14 colomon I mean, pugs?
14:14 masak colomon: < [Coke]> looks like rakudo has been failing for 3 days now.
14:14 [Coke] colomon: it's passing about 6 tests in my checkout.
14:14 colomon !!!!!!!
14:15 masak question is, why?
14:15 * masak builds Rakudo locally
14:15 [Coke] yes. so clearly it's just me or someone else would have noticed.
14:15 flussence now I'm curious... which 6 tests?
14:16 flussence I'd have thought a completely broken perl6 wouldn't pass any...
14:16 colomon btw (dunno if anyone was listening when I said it) current rakudo is failing to build my modules when my previous two month old rakudo (and niecza) handled them easily
14:16 colomon however, I did get a fairly complete and mostly passing spectest run out of my updated rakudo build.
14:17 flussence argh! panda's still giving me that "uninitialized value" warning
14:17 [Coke] Could not find Test in any of: /home/coke/.perl6/lib, /home/coke/sandbox/perl6pass/rakudo/install/​lib/parrot/4.3.0-devel/languages/perl6/lib, .
14:18 [Coke] so, that would do it. some tests don't use Test, but very few.
14:18 colomon ooo, I think that was one of the issues I was seeing.
14:19 [Coke] r: use Test; say "eek"
14:19 p6eval rakudo 554181: OUTPUT«eek␤»
14:19 colomon rakudo seemed to be completely ignoring the -I command line option to set "include" paths.
14:19 colomon (That was only a minor issue, though, since I just switched to using PERL6LIB, which worked fine.)
14:20 masak flussence: apparently, those are really challenging to track down.
14:20 colomon but yeah, after celebrating getting ABC running on both Rakudo and Niecza, I upgraded my Rakudo and the module promptly stopped working.
14:20 [Coke] this is in an uninstalled rakudo; should be able find it's own Test, neh?
14:21 [Coke] I can try to bisect this later. (bisecting rakudo runtime is slooow. ;)
14:21 masak [Coke]: (quoting moritz_) "Rakudo doesn't work if it's not installed. If you get it working without installing it, that's basically an accident."
14:22 arnsholt Excellent quote =D
14:23 arnsholt Right. Both NQP and Zavolaj are now updated. Have the appropriate amount of fun =)
14:23 masak \o/
14:26 [Coke] masak: I shouldn't have to install rakudo to run the tests.
14:26 [Coke] should I?
14:27 masak no, it sounds wrong.
14:27 [Coke] never had to before 3 days ago, anyway.
14:27 masak nevertheless, that's what moritz_ said, as late as two days ago.
14:28 [Coke] patches to https://gist.github.com/1476841#file_spec_r welcome.
14:28 masak running spectests now. already far more than 6 tests passed ;)
14:28 [Coke] (git rb == git pull --rebase)
14:28 * [Coke] will blow away the NQP/parrot directories and try one more time.
14:32 [Coke] iwbni if there was a git mode where you could say "clone this repository, but only get the last year's worth of data. If I ask for something earlier than that, you can fetch it then."
14:32 [Coke] (we'd be downloading a lot less parrot at that point.)
14:33 arnsholt Hmm. Lazy-evaluation git? ^_^
14:33 timotimo git can actually do something like that
14:33 timotimo it should totally be possible to do with grafting and shallow clones (i believe they are called)
14:41 [Coke] removing npq/ parrot/ install/ didn't help. same failure.
14:41 masak ooc, what's the failure?
14:41 [Coke] Could not find Test in any of: /home/coke/.perl6/lib, /home/coke/sandbox/perl6pass/rakudo/install/​lib/parrot/4.3.0-devel/languages/perl6/lib, .
14:42 tadzik right
14:42 tadzik lib removed from @*INC
14:42 masak oh!
14:43 masak so [Coke] is running Rakudo in some way that it doesn't find Test.pm
14:43 tadzik aye
14:43 [Coke] so when running tests locally, I need to manually add lib back in?
14:46 [Coke] ./perl6 -Ilib t/spec/S02-types/whatever.rakudo
14:46 [Coke] (same error)
14:46 colomon [Coke]: see my comment earlier that -I apparently doesn't work any more
14:46 frettled To modify the include path, you can set the PERL6LIB environment variable:
14:46 frettled
14:46 frettled From ./perl6 -h
14:47 frettled PERL6LIB="lib" perl6 example.pl
14:47 frettled (thanks to imarcusthis++)
14:47 colomon try PERL6LIB=lib ./perl6 t/spec/S02-types/whatever.rakudo
14:47 masak did -I ever work on Rakudo?
14:47 [Coke] masak: no clue. didn't need to until 3 days ago. ;)
14:47 masak it does on Niecza, but I've never seen it work on Rakudo.
14:47 colomon it certainly seemed too in the version I was using last week
14:47 colomon *to
14:47 frettled I think it may have worked before nom.
14:47 frettled But as I've left myself out of the loop for a year or so, don't trust me.
14:48 masak I don't remember it doing so.
14:48 colomon though I guess if it was always including "lib" as a path and not returning an error about an incorrect command line argument, I would never have known it didn't work
14:48 masak I've always used PERL6LIB, and not 'cus it's fun :)
14:50 colomon perl6 -Ilib does *not* return an error message, it just doesn't work
14:50 colomon Wynne:Math-Prime colomon$ perl6 -I t/01-basic.t
14:50 colomon No such option -I
14:50 colomon versus
14:50 colomon Wynne:Math-Prime colomon$ perl6 -Ilib t/01-basic.t
14:50 colomon ===SORRY!===
14:50 colomon Could not find Math::Prime in any of: /Users/colomon/.perl6/lib, /Users/colomon/tools/rakudo/install/lib/​parrot/4.3.0-devel/languages/perl6/lib, .
14:50 [Coke] ok. tests passing as expected again. spec_r updated to deal with the change. next test run should be more indicative of real stats.
14:51 [Coke] moritz++, masak++, colomon++, frettled++
14:51 fglock [Coke]++
14:51 frettled (++)++
14:53 spider-mario is it possible to mark a bug report for rakudo as minor?
14:53 fglock phenny, tell phenny tell phenny tell phenny++
14:53 phenny Hey, I'm not as stupid as Monty you know!
14:53 fglock :P
14:53 spider-mario I’ve made a report earlier but it doesn’t seem really important to me
14:53 [Coke] phenny, tell aloha msg phenny: tell Coke "hah"
14:53 phenny [Coke]: I'll pass that on when aloha is around.
14:53 [Coke] aloha, what?
14:53 [Coke] seen coke?
14:53 aloha coke was last seen in #parrot 2 days 19 hours ago saying "(you'd have to setup 2 logins, I suppose.)".
14:53 phenny aloha: 14:53Z <[Coke]> tell aloha msg phenny: tell Coke "hah"
14:54 [Coke] CloseButNoRecursion.
14:56 masak bots that allow for such recursion are designed wrong.
14:59 dalek roast: 7f5a8bb | coke++ | test_summary:
14:59 dalek roast: Note new rakudo requirement
14:59 dalek roast: review: https://github.com/perl6/roast/commit/7f5a8bb155
15:00 JimmyZ_ joined #perl6
15:05 dalek roast: 0d5bc79 | masak++ | S32-list/sort.t:
15:05 dalek roast: [S32-list/sort.t] removed test
15:05 dalek roast:
15:05 dalek roast: This test has no support from the spec, nor did it ever.
15:05 dalek roast: There's absolutely nothing that guarantees that otherwise
15:05 dalek roast: identical objects get sorted into memory-address order, or
15:05 dalek roast: indeed that those objects were *created* in memory-address
15:05 dalek roast: order.
15:05 dalek roast: review: https://github.com/perl6/roast/commit/0d5bc795da
15:12 JimmyZ joined #perl6
15:17 NamelessTee joined #perl6
15:19 fhelmberger joined #perl6
15:22 kaare_ joined #perl6
15:25 [Coke] ooh, one less test to pass. woot.
15:25 JimmyZ moritz_:  where is your code that contains many '*'?
15:26 flussence JimmyZ: http://perlgeek.de/blog-en/perl-6/starry-obfu.html
15:26 JimmyZ flussence: thanks
15:27 JimmyZ it's not easy to find it
15:29 jnthn o/ from Stockholm :)
15:30 masak jnthn! \o/
15:30 masak speaking of self-referential questionnaires: http://www.maa.org/mathhorizons/Puz​zles/Feb05-SRAT/original_puzzle.htm
15:37 jnthn Note that Rakudo's t/harness sets $ENV{'PERL6LIB'} these days, after lib got removed from the default @*INC
15:37 jnthn Any other test-running script probably needs to do the same.
15:37 dalek tablets: e36f858 | (Herbert Breunung)++ | docs/appendix- (2 files):
15:37 dalek tablets: linking letter headings
15:37 dalek tablets: review: https://github.com/perl6/tablets/commit/e36f8583a3
15:39 JimmyZ r: https://gist.github.com/2471737
15:39 p6eval rakudo 554181:  ( no output )
15:40 JimmyZ hmm, looks Starry Perl 6 obfu doesn't outputs anything on rakudo star
15:41 TimToady we broke it when we changed the meaning of *+* from {$_ + $_} to {^$a + $^b}
15:44 JimmyZ :)
15:46 masak but moritz_++ has since fixed it on his blog, no?
15:46 TimToady in old blog post or in a new one?
15:46 masak hm, maybe I dreamt that.
15:48 Psyche^ joined #perl6
15:48 JimmyZ r: constant @primes = 2, 3, -> $p { ($p+2, $p+4 ... -> $n { $n %% none @primes ... * >= sqrt $n })[*-1] } ... *; say @primes[^20];
15:48 p6eval rakudo 554181: OUTPUT«===SORRY!===␤Variable @primes is not declared␤at /tmp/UX44hFAfpo:1␤»
15:49 dalek tablets: a9543c2 | (Herbert Breunung)++ | docs/appendix- (2 files):
15:49 dalek tablets: cleaning up conditionals
15:49 dalek tablets: review: https://github.com/perl6/tablets/commit/a9543c21ed
15:51 masak JimmyZ: known bug.
15:53 JimmyZ aye
15:55 zhangkaizhao joined #perl6
15:55 jnthn Yeah, before I fixed it I wanted to discuss the whole "constant @a = 1,@a" thingy with Pm. :)
15:55 masak did you reach a conclusion that makes the above legal?
15:55 jnthn (Which happened at hackathon++)
15:55 jnthn masak: Which above? :)
15:56 jnthn masak: The @primes one should work.
15:56 masak \/
15:56 masak er, \o/
15:56 masak sorry, lost my head there for a bit.
15:56 jnthn And we can't think of any sane model where the other one works.
15:57 jnthn Actually, I'm not sure we came up with an insane one where it did either... :)
15:59 * TimToady hopes that hamming numbers can also be made to work right
15:59 TimToady constant @hamming = 1, dedup (@hamming X* 2) M (@hamming X* 3) M (@hamming X* 5);
15:59 colomon infix:<M> ?
15:59 TimToady where M is a lazy infix merge
15:59 colomon ah
15:59 jnthn TimToady: If you can get a closure around your references to @hamming on the RHS then it stands a chance.
16:01 masak jnthn: "if you can get a closure around..."? are you asking TimToady to change his code, or are you talking about things the compiler might be able to do?
16:01 TimToady in a sense the right side of = could be considered a thunk
16:01 TimToady (and must be for 'has')
16:01 jnthn TimToady: Yes, that we execute before we bound @hamming.
16:01 jnthn e.g. to get the value to bind to it.
16:02 jnthn So that doesn't help
16:02 TimToady what if you bind it to as the 'push' instead of the whole array
16:02 arnsholt jnthn: Is there any particular reason child strings can't be stuck in the child_objs array in CStruct?
16:02 * masak decommutes
16:02 jnthn masak: I'm saying that I can only see the above working if dedup were a macro, and thus managed to defer the @hamming lookup
16:03 jnthn TimToady: push onto...what?
16:03 TimToady @hamming.push: ...
16:03 TimToady er, .plan
16:03 TimToady sorry, need more coffee
16:03 jnthn ...
16:04 * jnthn gives up for now
16:07 thou joined #perl6
16:10 snearch joined #perl6
16:13 mspaulding joined #perl6
16:14 cognominal_ joined #perl6
16:15 alester joined #perl6
16:21 TimToady the = in 'constant @array = 1..*' is not a binding, it's a definition thunk that we can use however we want (one of the reasons the declarator now parses the =)
16:22 TimToady in this case, it's more like 'my @array; @array.plan: lazy 1..*'
16:22 TimToady the identity of @array doesn't change in that
16:22 TimToady unlike in a binding
16:22 TimToady s/identity/referent/
16:22 TimToady that's what I'm trying feebly to say
16:23 TimToady to the extent that we are limited to binding, that turns out to be a side effect that prevents some FP-style programming
16:25 TimToady if we can't close the definitional loop on lazy lists, we've got a too-operational view of definitions somewhere or other
16:25 TimToady shower &
16:36 thelazydeveloper joined #perl6
16:39 cognominal_ joined #perl6
16:45 kaleem joined #perl6
16:53 * masak home
16:53 masak to the extent I understand the forces at play here, I agree with TimToady ;)
16:56 jnthn I guess I could try and do it as TimToady++ is suggesting. But I know what comes next: an RT ticket because you get unhappy that your so called constant array is actually full of scalar containers that can be mutated. :)
16:57 masak well, that issue is deeper than just constant declarations.
16:57 jnthn Right.
16:57 jnthn constant is a bad name for it in that sense.
16:57 masak no-one has yet presented a consistent/complete model for "one level down" readonliness.
16:58 PacoAir joined #perl6
16:58 jnthn We could call it "computed_at_compile_time_and_not_rebindable" or something :)
16:58 * masak doesn't even think that's cute today :P
16:58 jnthn Well, the conclusion on that tends to be "cures considered worse than disease" :)
16:58 jnthn I wonder if you can .plan on a List, mind.
17:01 jnthn lol...there's an Indisk near my hotel called "Holy Cow" :D
17:02 jnthn er, wrong window...
17:04 arnsholt jnthn: Did you see my question above about child_objs vs child_strs?
17:07 jnthn arnsholt: oh, yeah, then promptly forgot to answer 'cus I'm tied up with course prep for tomorrow
17:07 jnthn arnsholt: Short answer: strings are STRING*, not PMC*, and you need to make sure you call the correct GC mark function on each one.
17:07 jnthn arnsholt: If you can make sure of that while keeping just one store, you're fine.
17:07 arnsholt Oh, right. That makes sense
17:08 arnsholt A separate list is probably easiest
17:08 masak TimToady: jnthn makes a good point. if we do like you propose, I *will* submit an RT ticket about constant arrays being mutable.
17:09 arnsholt It costs an extra INTVAL in the repr_data I suppose, but it's not immediately obvious how to unify the two lists
17:10 arnsholt And a unified list would probably require more complex logic
17:11 * jnthn -> dinner, bbl
17:16 cognominal joined #perl6
17:25 TimToady until we get the details of OKness smoothed out, $x ~~ s:g/// should probably return a Match that numifies to the number of times matched, since a Match is the best OK container we have at the moment
17:28 cognominal joined #perl6
17:32 * moritz_ home
17:32 tadzik \o/
17:35 Chillance joined #perl6
17:43 mucker joined #perl6
18:01 dalek rakudo/nom: d6ce081 | moritz++ | tools/build/NQP_REVISION:
18:01 dalek rakudo/nom: bump NQP revision to get nativecall improvements
18:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d6ce081291
18:02 Psyche^ joined #perl6
18:16 dalek nqp: a9dc3fa | moritz++ | src/6model/reprs/CArray.c:
18:16 dalek nqp: [CArray] avoid mixing declaration and code, for pedantic compilers
18:16 dalek nqp: review: https://github.com/perl6/nqp/commit/a9dc3fa448
18:16 dalek rakudo/nom: b64c1e9 | moritz++ | tools/build/NQP_REVISION:
18:16 dalek rakudo/nom: bump NQP revision again, to get compilation fix
18:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b64c1e969d
18:29 ajs_work joined #perl6
18:31 tadzik blogged I, lol
18:31 tadzik http://ttjjss.wordpress.com​/2012/04/23/back-from-oslo/
18:35 colomon tadzik: how exactly did you solve the "lib" problem?
18:36 tadzik colomon: like this: https://github.com/rakudo/ra​kudo/commit/ac2b2ae3998c753
18:37 tadzik turns out it was there only to make 'make (spec)test' easier
18:37 vlixes joined #perl6
18:37 tadzik anyone with github/rakudo/rakudo admin right?
18:39 moritz I think only pmichaud has admin rights there
18:39 tadzik ah. I've asked github support about the commit hook which doesn't work for my name, and I'm supposed to "press Test Hook" somehow
18:49 moritz tadzik: if you do a roat commit, I can press the button there
18:49 tadzik roat? roast?
18:49 moritz roast, yes
18:49 moritz sorry
18:49 tadzik I think it was broken for me too, yes
18:50 tadzik okay, can you press it now?
18:51 masak tadzik++ # blog post
18:51 moritz tadzik: shouldn't you do a commit to roast first?
18:51 tadzik I have no idea. The Github guy said "please press Test Hook and paste me the output of the following curl command"
18:52 tadzik I'm not sure what this button is supposed to do
18:52 moritz it re-sends the last two commits or so to the hook
18:52 moritz which is why it would make sense for you do to commit first
18:53 tadzik moritz: how about perl6/ecosystem? The last commit there is mine
18:54 dalek ecosystem: cc1b79f | (Filip Sergot)++ | META.list:
18:54 dalek ecosystem: Text::Markdown
18:54 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/cc1b79fd06
18:54 dalek ecosystem: b1299b0 | (Geir Amdal)++ | META.list:
18:54 dalek ecosystem: Test::Junkie
18:54 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/b1299b026d
18:54 dalek ecosystem: 854f487 | tadzik++ | META.list:
18:54 dalek ecosystem: Merge pull request #8 from gam/master
18:54 dalek ecosystem:
18:54 dalek ecosystem: Added Test::Junkie to META.list
18:54 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/854f487a20
18:54 tadzik huh
18:54 dalek ecosystem: cc1b79f | (Filip Sergot)++ | META.list:
18:54 dalek ecosystem: Text::Markdown
18:54 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/cc1b79fd06
18:54 dalek ecosystem: b1299b0 | (Geir Amdal)++ | META.list:
18:54 dalek ecosystem: Test::Junkie
18:54 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/b1299b026d
18:54 dalek ecosystem: 854f487 | tadzik++ | META.list:
18:54 dalek ecosystem: Merge pull request #8 from gam/master
18:54 dalek ecosystem:
18:54 dalek ecosystem: Added Test::Junkie to META.list
18:54 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/854f487a20
18:55 mikemol joined #perl6
18:55 moritz pressed it twice
18:55 tadzik seems to work this way
18:55 tadzik let me do some commit
18:55 s1n joined #perl6
18:55 moritz because the first didn't give me any feedback
18:56 tadzik I did it to tadzik/panda, and it doesn't give me any feedback either
18:57 tadzik http://host04.appflux.net:5​000/dalek?t=freenode,perl6 is the right url?
18:57 benabik Didn't it move to one of the feathers?
18:58 tadzik no eye deer
18:59 tadzik moritz?
19:02 ggoebel__ joined #perl6
19:03 birdwindupbird joined #perl6
19:06 dalek tablets: 742545e | (Herbert Breunung)++ | docs/appendix-a-index.txt:
19:06 dalek tablets: fine format fixes for section f
19:06 dalek tablets: review: https://github.com/perl6/tablets/commit/742545e1f8
19:13 japhb fglock, what version of node.js are you running?
19:13 phenny japhb: 10:03Z <fglock> tell japhb I can't reproduce the problem with perlito5.js; about perlito6, it will take some time to catch up
19:14 fglock japhb: v0.4.11
19:15 fglock (updating now)
19:16 japhb fglock, it actually may be that my node.js is just way too *old*, not new.  :-)
19:17 japhb I'll try to build from source today and see if that gets things working.
19:19 fglock works with v0.6.15, quite slow though (maybe because perlito5 now uses many more exceptions)
19:20 japhb fglock, slower than older perlito5, or slower than older node.js?
19:20 japhb (Wasn't quite sure which direction to parse that)
19:22 machine1 joined #perl6
19:23 fglock slower than older perlito5
19:23 japhb Gotcha.
19:24 ajs_work r: sub foo($a, $b) { $a + $b } ; foo( a => 1, b => 2);
19:24 p6eval rakudo b64c1e: OUTPUT«Not enough positional parameters passed; got 0 but expected 2␤  in sub foo at /tmp/ngWySJuGAr:1␤  in block <anon> at /tmp/ngWySJuGAr:1␤␤»
19:24 ajs_work Is that right?
19:24 ajs_work Am I misreading http://perlcabal.org/syn/S0​6.html#Required_parameters ?
19:25 fglock ajs_work: why?
19:25 tadzik that may be a fossil
19:26 tadzik I think we got rid of passing positionals by name
19:26 [Coke] r: sub foo (:$a, :$b) {$a+$b}; foo( a => 1, b => 2);
19:26 p6eval rakudo b64c1e:  ( no output )
19:26 [Coke] r: sub foo (:$a, :$b) {$a+$b}; foo( a => 1, b => 2).say
19:26 p6eval rakudo b64c1e: OUTPUT«3␤»
19:27 [Coke] tadzik: I believe so. (That way lies coldfusion)
19:27 ajs_work So, you have to explicitly declare a named parameter, now? Wow, when did that happen?
19:27 [Coke] sometime in the past 10 years. ;)
19:28 [Coke] could probably suss it out by examing roast git logs.
19:28 masak last year, by the Neva.
19:28 [Coke] Neva?
19:28 masak St Petersburg.
19:28 [Coke] the river in Russia?
19:28 masak my memory is mostly scenic/episodic.
19:28 [Coke] ah.
19:29 masak there's a gist. hold on.
19:29 ajs_work That seems like a pretty structural change... how much should I be trusting the synopses these days?
19:29 masak https://gist.github.com/984783
19:29 ajs_work Thanks for the link
19:30 * masak gets ahold of the relevant spec commits as well
19:30 moritz arnsholt: there's something wrong with the test plan in t/05-arrays.t
19:31 arnsholt moritz: I broke it?
19:32 masak https://github.com/perl6/specs/commit/7​4b208c3d7dc6bc3fb913be3376492e2d72733f6
19:32 masak https://github.com/perl6/specs/commit/e​881c784d657bc70127078d5c81a2bdfc5ebca0c # reverts the first one
19:32 masak https://github.com/perl6/specs/commit/9​4d01246e7d286bb2a4df32ba9c2ba733d0aec04 # current state
19:32 moritz arnsholt: I'm fixing it now...
19:32 ajs_work Is there an index that would, in some way, map synopses to external documents which revise them or visa versa?
19:32 arnsholt Ah, cool. What'd I break?
19:33 fglock japhb: this slowness may as well be a bug, in perlito5 or in v8, or something new in perlito5 that disabled the v8 optimizer
19:33 moritz arnsholt: the C side emitted 3 tests
19:33 moritz arnsholt: but without the numbers
19:33 moritz arnsholt: and the test plan expected 2
19:33 brrt joined #perl6
19:33 arnsholt Yeah, I thought I'd pushed the fix for that
19:33 arnsholt Turns out I'd only made the change, not committed and pushed
19:34 arnsholt Ooops =)
19:34 arnsholt moritz++ # Fixing my mess
19:34 japhb fglock, nodnod
19:34 arnsholt Omitting the test numbers in the C code is intentional, FWIW
19:34 arnsholt It's so that adding tests in the Perl code won't require updating the C code
19:36 moritz arnsholt: except that prove whines about that
19:36 machine1 joined #perl6
19:37 arnsholt Odd, haven't noticed anything about that here
19:37 arnsholt Test.pm outputs a diag at the end complaining, but that's all
19:38 moritz might depend on the prove/TAP::Harness version
19:39 arnsholt Yeah. Or maybe it's just the harness outputting the diag messages? I know some versions do that
19:40 moritz oh, if the test plan it fix, it does indeed not complain
19:40 moritz so I'll revert the part that adds the numbers
19:40 arnsholt Good idea to add the comment about the C call running tests, BTW
19:42 jnthn tadzik++ # awesome blog post
19:42 moritz fwiw SQLite can now connect to the DB
19:43 tadzik awesome!
19:43 tadzik should I start writing Bailador::Plugin::Database now? :)
19:43 jnthn Yes! ;)
19:43 moritz sure :-)
19:44 jnthn moritz: What does it do after it's connected to the DB? ;)
19:44 arnsholt moritz: Cool!
19:45 moritz jnthn: it segfaults!
19:45 moritz no, just kidding
19:45 tadzik lol
19:45 tadzik I just wanted to say that
19:45 moritz the parts that I've implemented so far seem to run fine
19:45 [Coke] rotfl!
19:45 arnsholt I'm looking into strings in structs now as well, in case you need that
19:45 jnthn heh, I was expecting the answer to actually be "it segfaults!" :D
19:46 jnthn moritz++, anyways :)
19:46 moritz hm, it hangs after test 16
19:46 moritz sqlite has this oddity that it doesn't have a separate execute function
19:47 moritz it just has 'step', which gets the next row, and executes if necessary
19:47 ajs_work Looking over S06 more carefully: it's definitely a bit confused. I have something else to do, but I might have to dig into this later. There's some notes about proto/only that I can't make sense of right now...
19:47 moritz so I can imagine that leading to a loop if handled wrongly from within p6 land
19:47 arnsholt jnthn: Speaking of strings. When I do something like $!memb = "foo" will bind_attribute_boxed's value parameter be a STRING pointer in disguise, or some kind of PMC wrapper around it?
19:48 jnthn arnsholt: Neither
19:48 jnthn Well, it depends
19:48 jnthn arnsholt: If it's using the _s variant of the op it actually well end up in _ref
19:48 arnsholt Aha
19:48 arnsholt Good thing I asked then
19:49 jnthn Well, it's a type issue
19:49 jnthn The boxed one gets a PMC *
19:49 jnthn STRING * ain't one of those
19:50 japhb fglock, It looks like node.js git (v0.7.9-pre) works fine, but node.js from Ubuntu 11.04 (v0.2.6) does not.  I'm guessing v0.2.6 doesn't support the exceptions you're throwing around now (NPI).
19:51 arnsholt Right. Looking at CArray again, it looks like I'll get away with only handling strings in _boxed
19:51 machine1 joined #perl6
19:53 fglock oh, that's bad
19:54 fglock it needs to be optimized again anyway, that should bring the number of exceptions down again
19:56 dalek roast: dbbbce7 | moritz++ | S (6 files):
19:56 dalek roast: rakudo unfudges
19:56 dalek roast: review: https://github.com/perl6/roast/commit/dbbbce7d44
19:56 * moritz blug again: http://perlgeek.de/blog-en/perl-​6/2012-oslo-hackathon-rest.html
19:57 fglock (these are "control" exceptions - return/next/redo/last)
19:59 fglock hmm - actually "next" is easy to optimize, I'll take a look later (but now &sleep)
19:59 * [Coke] wonders if all these blugs are in the sixperl blugroll
19:59 thelazydeveloper joined #perl6
20:00 raiph joined #perl6
20:00 masak "In the evening we had very tasty Vietnamese food, and generally a good time." # nice zeugma you got going there :)
20:01 jnthn jnthn encountered a X::Pub::ClosedWhileStillWantingBeer at the end of the evening.
20:01 jnthn It was a fun time :)
20:02 sjn \o
20:02 * sjn just came home from Go Open
20:02 sjn Damian had two great talks that day
20:02 masak /o
20:02 sjn and, thanks for the hackathon, I had a great time! ^^
20:04 sjn It was especially fun at the Norwegian Open Source Prize ceremony, where there (for some reason) were several made a point out of their background with Perl. :)
20:04 masak sjn++ # enabler
20:04 jnthn sjn: Thanks *so* much for your role in organizing it.
20:05 tadzik sjn++, it was an awesome experience. Thank You!
20:06 machine1 joined #perl6
20:07 raiph masak: your basics explanation for frettled worked for me. and left me unhappy with the name "macro".
20:08 raiph masak: to the degree p6 is akin to lisp for the masses, it recasts some things. one is to rename things if appropriate.
20:08 raiph masak: what about s/macro/nowandthen/ ?
20:08 tokuhirom joined #perl6
20:09 masak raiph: no, it's really a macro.
20:09 masak that's what macros are.
20:09 raiph masak: what's a macro?
20:09 masak a code template.
20:09 masak a compiler hook.
20:10 masak a routine that runs during the parse of your program.
20:10 masak a way to fold complexity under the carpet of an abstraction
20:10 masak all of the above :)
20:10 araujo joined #perl6
20:10 araujo joined #perl6
20:10 raiph masak: like "now"
20:10 masak I don't understand.
20:11 raiph masak: you're describing its benefits, what u can use it for
20:11 masak I'm not the person to answer that question. :/
20:11 masak I'm just implementing them.
20:11 raiph masak: but what is it, at a basic level? it's what u explained to frettle.
20:12 masak but I bet I would be just as stumped had someone asked me what to use `[*]` and other reduction operators for, or the sequence operator. and yet I use them all the time for useful, real things.
20:12 raiph it's a bit of code that runs immediately on being encountered, now, plus some stuff that's inserted at the point of call to be executed then.
20:12 masak raiph: what is a macro, at a basic level? a routine. the routine takes AST parameters and returns an AST.
20:13 masak raiph: well, so is a Lisp macro.
20:14 masak and a Julia macro. and a Scala macro. and an <X> macro, for lots of languages <X>
20:14 masak so I don't see why the naming bothers you, to be honest.
20:15 raiph cuz the name makes me think it's something to do with the big picture, or a zoom lens
20:15 moritz well, it kinda is
20:15 moritz if you use a macro, the compiler zooms in on the macro definition
20:16 moritz applies it, and then zooms out again
20:16 masak I bet that's the etymology of "macro instruction", yes.
20:16 masak it's a single instruction which abstracts over several more primitive ones.
20:16 doy "The term is used to make available to the programmer, a sequence of computing instructions as a single program statement, making the programming task less tedious and less error-prone.[1][2] (Thus, they are called "macros" because a big block of code can be expanded from a small sequence of characters)."
20:17 masak there you go.
20:17 raiph but that doesn't imply the now/then aspect
20:17 masak no, that's implied by macros in all languages that have them.
20:21 lichtkind hai hackorz
20:21 tadzik hai lichtkind
20:21 raiph o/ lichtkind
20:21 masak light be on thee, child
20:21 lichtkind it is :)
20:22 * masak hopes it isn't like headlights unto a deer ;)
20:24 raiph masak: so i just absorbed the takes and returns ast args bit.
20:25 raiph masak: so rather than now/then parts it's more like compiletime/runtime parts, right?
20:26 masak well, it's a funny little runtime island in an ocean of compile.
20:26 araujo joined #perl6
20:27 doy they are basically the next step beyond BEGIN blocks - BEGIN blocks let you run runtime code at compile time, macros let you run runtime code at compile time in order to generate code to run at runtime
20:28 masak aye. that's a nice way of putting it.
20:28 masak macros have BEGIN semantics in that they run ASAP.
20:28 jnthn It's not the macro itself that has BEGIN semantics, it's the usage of the macro that magically does.
20:29 masak aye. it's the macro invocation.
20:29 masak triggered by parsing a call to the macro.
20:29 jnthn Right.
20:29 jnthn BEGIN at a distance :)
20:29 lichtkind raiph: we slowly getting where i wanted to be
20:30 raiph r: macro foo { say "bar" } ; say "no call to foo so no bar gets printed"
20:30 p6eval rakudo b64c1e: OUTPUT«no call to foo so no bar gets printed␤»
20:32 timotimo can macros be used dynamically,too? like decide at runtimewhich of two macros to use ro something?
20:32 timotimo not really sure if what i'm asking for makes any sense
20:32 raiph r: macro foo { say "bar" quasi { say "qux" } } ; say "waldo" ; END { foo }
20:32 p6eval rakudo b64c1e: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2␤»
20:32 raiph r: macro foo { say "bar" ; quasi { say "qux" } } ; say "waldo" ; END { foo }
20:32 p6eval rakudo b64c1e: OUTPUT«bar␤waldo␤qux␤»
20:33 raiph r: macro foo { say "bar" ; quasi { say "qux" } } ; say "waldo" ; BEGIN { foo }
20:33 p6eval rakudo b64c1e: OUTPUT«bar␤===SORRY!===␤Could not find sub &say␤»
20:33 bluescreen10 joined #perl6
20:34 timotimo oh? that's interesting
20:35 jnthn Very.
20:35 jnthn Decidedly a bug. I bet it'll be "fun" to find.
20:36 raiph r: macro foo { state $a; say ++$a ; quasi { say "qux" } } ; say "waldo" ; END { foo ; foo }
20:36 p6eval rakudo b64c1e: OUTPUT«1␤2␤waldo␤qux␤qux␤»
20:41 arnsholt jnthn: In CArray, every time a Str element is accessed, we create a PMC and stuff. Would it make sense to cache those like we do with CArray/CStruct/CPointer stuff?
20:43 jnthn arnsholt: Yes.
20:43 jnthn arnsholt: Well...
20:43 jnthn Yeah, it does :)
20:44 masak hm, macro in BEGIN... :) raiph++
20:44 jnthn I heard you like BEGIN time...
20:44 masak timotimo: "at runtime" is too late, 'cus the macros have already run then.
20:45 arnsholt jnthn: Cool. I'll add that to my TODO list (although that means we have to create the PMC on bind as well
20:45 raiph what about unifying BEGIN blocks and macros?
20:45 masak timotimo: but as for multi-dispatch -- yes, macros can dispatch based on the arguments going into them. they're just routines, after all.
20:45 masak raiph: what about it? it sounds like a bad idea to me :)
20:45 masak BEGIN blocks and macros are too different.
20:46 jnthn If raiph means a "unify the underlying mechanism for running bits of stuff at compile time", then they already are fairly unified, fwiw.
20:46 masak right.
20:48 raiph masak: thx for your patience. bear with me. BEGIN is done as the first part of runtime, right?
20:49 raiph er, no. back to doy
20:50 ajs_work Runtime for the parse, not your program....
20:50 ajs_work *parser
20:50 raiph right
20:50 masak raiph: a BEGIN block is run as soon as its '}' has been parsed.
20:50 masak i.e. ASAP
20:50 raiph what about macro { ...... } ;
20:50 raiph same?
20:51 masak not at all.
20:51 masak just as a sub isn't run upon definition.
20:51 masak in macros (as in subs), definition is separate from call.
20:52 masak but yes, the *call* is made as soon as its last argument has been parsed.
20:52 dorlamm joined #perl6
20:52 raiph ok, hence unifying BEGIN and macro is nonsensical. ok.
20:53 masak unifying them beyond the degree to which they are already unified is probably nonsensical, yes.
20:53 masak they do share certain features, such as access to the COMPILING:: namespace.
20:56 raiph apologies if the following goes awry, but i'll share it so u see my thought process as i try to grok this
20:57 raiph let's say i've got a some book text that i'm going to read to rehearse, then speak out loud
20:57 raiph i read it, and encounter a footnote [1].
20:59 raiph (struggling to understand myself, give me a moment :)
21:00 dalek tablets: 1b3e922 | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
21:00 dalek tablets: explaining unicode (that should prpably do someone with more clues about it)
21:00 dalek tablets: review: https://github.com/perl6/tablets/commit/1b3e922532
21:00 tadzik t/spec/S32-list/sort.rakudo, TODO passed:   33. Anyone else>?
21:00 masak raiph: no problem. it sounds interesting.
21:00 masak tadzik: I already removed that one. pull roast.
21:02 lichtkind raiph: your in oslo too?
21:02 tadzik oh, I've had unpushed roast changes
21:02 masak classic.
21:03 tadzik that explains why pmichaud++ has to fix integration/advent2009-day20.t
21:06 dalek tablets: 4744509 | (Herbert Breunung)++ | docs/appendix- (2 files):
21:06 dalek tablets: small fixes
21:06 dalek tablets: review: https://github.com/perl6/tablets/commit/474450936b
21:07 raiph lichtkind: would that i were that lucky (no). masak: i'm dealing with (pleasant) distractions here too (kid's b'day). i'll collect my thoughts then finish the line i started.
21:11 raiph r: sub foo { say 1; BEGIN { say 2 } } ; sub bar { say 3; END { say 4 ] } ; say 5
21:11 p6eval rakudo b64c1e: OUTPUT«2␤===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2␤»
21:11 raiph r: sub foo { say 1; BEGIN { say 2 } } ; sub bar { say 3; END { say 4 } } ; say 5
21:11 p6eval rakudo b64c1e: OUTPUT«2␤5␤4␤»
21:12 raiph r: macro duck { say "duck" ; foo } ; sub foo { say 1; BEGIN { say 2 } } ; sub bar { say 3; END { say 4 } } ; say 5; duck
21:12 p6eval rakudo b64c1e: OUTPUT«2␤duck␤1␤===SORRY!===␤Macro did not return AST at line 1, near ""␤»
21:13 brrt joined #perl6
21:13 raiph r: macro duck { say "duck" ; foo ; quasi { say "q" } } ; sub foo { say 1; BEGIN { say 2 } } ; sub bar { say 3; END { say 4 } } ; say 5; duck
21:13 p6eval rakudo b64c1e: OUTPUT«2␤duck␤1␤5␤q␤4␤»
21:14 raiph r: macro duck { say "duck" ; bar ; quasi { say "q" } } ; sub foo { say 1; BEGIN { say 2 } } ; sub bar { say 3; END { say 4 } } ; say 5; duck
21:14 p6eval rakudo b64c1e: OUTPUT«2␤duck␤3␤5␤q␤4␤»
21:28 [Coke] # 04/23/2012 - rakudo++ ; niecza (94.21%); pugs (42.09%)
21:28 [Coke] "niecza",     20303,    69,   747,  1524, 22643, 24152
21:28 [Coke] "pugs"  ,      9072,    17,  3333,  1599, 14021, 24013
21:28 [Coke] "rakudo",     21550,    30,   638,  1972, 24190, 24162
21:28 [Coke] cutting in to my pugs percentage! ;)
21:29 masak heh :)
21:29 jnthn 42 \o/
21:29 masak [Coke]++
21:29 japhb Speaking of pugs, I guess it's time to try to get pugs running locally ... any hints before I go down blind paths?
21:30 harukomoto joined #perl6
21:31 masak well, a few of us have been getting a certain error, and it's not entirely clear why we're getting it.
21:31 masak but the fix seems to be to pull down things using cabal in a certain way.
21:31 masak ...I think.
21:33 japhb Are there notes somewhere on a "presumed working" build/install sequence?  pugscode.org just points to hackage ...
21:34 masak https://github.com/perl6/P​ugs.hs/blob/master/HACKING
21:34 [Coke] japhb: grab github -> perl6/Pugs.hs
21:35 vlixes joined #perl6
21:36 [Coke] if you have any troubles, ping us here. if you're starting with a fresh cabal install, you'll probably be fine.
21:36 [Coke] if not, you might have to wipe it.
21:37 dorlamm joined #perl6
21:37 [Coke] jnthn: down from 42.31%!
21:38 bjarne joined #perl6
21:38 japhb [Coke], well, given that the system doesn't even have ghc on it yet, I'm thinking I'm good there.  :-)
21:39 jnthn [Coke]: I'd say sorry, but I'm happy Rakudo is progressing :P
21:40 [Coke] jnthn: ok, fine. :)
21:49 dalek tablets: bfc97cc | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
21:49 dalek tablets: explain capture subrule and set links for the contexts
21:49 dalek tablets: review: https://github.com/perl6/tablets/commit/bfc97ccc9f
21:49 dalek tablets: 0a0b44e | (Herbert Breunung)++ | docs/appendix- (2 files):
21:49 dalek tablets: clear unless and until and some minor stuff
21:49 dalek tablets: review: https://github.com/perl6/tablets/commit/0a0b44ef3d
21:51 gfldex p6: say *;
21:51 p6eval niecza v16-23-gaa61ed5: OUTPUT«Whatever.new(...)␤»
21:51 p6eval ..pugs: OUTPUT«Inf␤»
21:51 p6eval ..rakudo b64c1e: OUTPUT«*␤»
21:51 jnthn 'night, #perl6
21:51 gfldex there seams to be disagreement
21:51 japhb o/ jnthn
21:52 masak gfldex: yes. Pugs is wrong. the other two do variations on a theme.
21:53 gfldex r: say *.perl;
21:53 p6eval rakudo b64c1e: OUTPUT«WhateverCode.new()␤»
21:54 gfldex is .perl meant to be compatible between implentations?
21:54 brrt why is that a whatevercode rather than whatever
21:55 jaffa4 joined #perl6
21:55 jaffa4 hi
21:56 gfldex std: my @a = 1,2,3; @a>>.{ $_ };
21:56 p6eval std 3d13d53: OUTPUT«ok 00:00 43m␤»
21:57 jaffa4 I would like to capture this @<bracket1>=('(' <.ws>)*
21:57 japhb brrt, because performing an operation on * actually forms a code block.  It allows us to write things like:
21:57 japhb r: say 2, * ** 2 ... 256
21:57 p6eval rakudo b64c1e: OUTPUT«2 4 16 256␤»
21:58 donaldh joined #perl6
21:58 masak 'night, #perl6
21:59 gfldex std: my @a = 1,2,3; @a>>.{ say $^a };
21:59 p6eval std 3d13d53: OUTPUT«[31m===[0mSORRY![31m===[0m�Placeholder variable $^a may not be used outside of a block at /tmp/IVlJQVpV1J line 1:�------> [32mmy @a = 1,2,3; @a>>.{ say [33m�[31m$^a };[0m�Check failed�FAILED 00:00 43m�»
21:59 japhb o/ masak
21:59 jaffa4 that seems to be ok
21:59 gfldex if @a>>.{ ... } is not a block, what is it?
22:00 dalek roast: db06fbd | coke++ | S (5 files):
22:00 dalek roast: pugs fudge
22:00 dalek roast: review: https://github.com/perl6/roast/commit/db06fbdc5c
22:00 [Coke] colomon, sorear: 69 failing spectest for niecza now.
22:00 colomon platform?
22:01 jaffa4 masak: how to capture repetition, I have tried couple of forms, to no avail
22:01 [Coke] colomon: feather.
22:01 [Coke] I'll get you the test run output.
22:02 [Coke] http://perlcabal.org/~coke/ -> niecza
22:02 [Coke] arglebargle.
22:02 [Coke] feather admins, http://feather.perl6.nl/~coke is down.
22:03 colomon perlcabal.org seems to be down, too...
22:03 [Coke] colomon: do you have an account on feather?
22:03 colomon nope
22:03 [Coke] colomon: yah, same thing.
22:03 [Coke] momentito
22:04 [Coke] colomon: https://gist.github.com/2474191
22:06 harukomoto joined #perl6
22:08 TimToady gfldex: that's a STD buglet
22:10 cognominal joined #perl6
22:18 dalek roast: 10a70c6 | (Solomon Foster)++ | S03-operators/context.t:
22:18 dalek roast: Fudge new test.
22:18 dalek roast: review: https://github.com/perl6/roast/commit/10a70c621d
22:21 colomon r: [1,2,3].join<abc>
22:21 p6eval rakudo b64c1e:  ( no output )
22:21 colomon r: say [1,2,3].join<abc>
22:21 p6eval rakudo b64c1e: OUTPUT«postcircumfix:<{ }> not defined for type Str␤  in method gist at src/gen/CORE.setting:8667␤  in sub say at src/gen/CORE.setting:6555␤  in block <anon> at /tmp/4CKLofnt8Z:1␤␤»
22:21 colomon n: say [1,2,3].join<abc>
22:21 p6eval niecza v16-23-gaa61ed5: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Str␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 320 (Any.at_key @ 7) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/cxorkH04CZ line 1 (mainlin…
22:22 colomon n: say [1,2,3].join<abc> ~~ Failure
22:22 p6eval niecza v16-23-gaa61ed5: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared name:â�¤        'Failure' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1366 (die @ 3) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 33) â�¤  at /hom…
22:22 sorear good * #perl6
22:23 japhb o/ sorear
22:23 dalek std: fab64fc | larry++ | STD.pm6:
22:23 dalek std: hash subscript should temp $*CURLEX
22:23 dalek std: review: https://github.com/perl6/std/commit/fab64fca95
22:24 TimToady gfldex++
22:24 dalek roast: 939d046 | (Solomon Foster)++ | S02-literals/listquote.t:
22:24 dalek roast: Fudge new test for niecza.
22:24 dalek roast: review: https://github.com/perl6/roast/commit/939d046bed
22:24 bluescreen10 joined #perl6
22:25 sorear whee, an incomprehensible niecza bug report.
22:25 japhb [Coke], masak: It appears to be important to 'unset GHC' before running 'sh bootstrap.sh' for cabal-install.  Perhaps the GHC variable at the top of the installing-onto-Debian instructions should be 'GHC_SRC' or somesuch that does not collide with bootstrap.sh's internals?
22:25 tyatpi joined #perl6
22:25 TimToady evalbot rebuild std
22:25 p6eval OK (started asynchronously)
22:25 TimToady does that work again yet?
22:26 [Coke] I never installed on debian.
22:26 gfldex after looking at http://rosettacode.org/wiki/Search_a_list#Perl_6 and S32 I found it rather strange that there is no .index method
22:26 gfldex would that break lazy lists?
22:27 japhb ... whee, and now failed further into the cabal-install bootstrap at the time of 'Linking Setup ...', complaining of missing dependencies.
22:27 sorear niecza: #<<< foo
22:27 p6eval niecza v16-23-gaa61ed5:  ( no output )
22:27 gfldex r: say List.^methods.grep: /pos/;
22:27 p6eval rakudo b64c1e: OUTPUT«at_pos␤»
22:28 vlixes left #perl6
22:28 gfldex r: say List.^methods.grep: /index/;
22:28 p6eval rakudo b64c1e: OUTPUT«␤»
22:28 sorear n: say +""
22:28 p6eval niecza v16-23-gaa61ed5: OUTPUT«0␤»
22:29 dalek roast: 03211aa | (Solomon Foster)++ | S02-types/catch_type_cast_mismatch.t:
22:29 dalek roast: Fudge new test for niecza.
22:29 dalek roast: review: https://github.com/perl6/roast/commit/03211aa098
22:30 japhb Anyone know what to do about this: https://gist.github.com/2474289
22:30 japhb (cabal-install failure)
22:30 dalek tablets: 6e47b90 | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
22:30 dalek tablets: adding logical ops
22:30 dalek tablets: review: https://github.com/perl6/tablets/commit/6e47b906e1
22:30 dalek tablets: afe0ec8 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
22:30 dalek tablets: overhaul multi and only + minor stuff
22:30 dalek tablets: review: https://github.com/perl6/tablets/commit/afe0ec893e
22:30 sorear would I be a bad person to close https://github.com/sorear/niecza/issues/120 with no further action?
22:31 cognominal joined #perl6
22:32 colomon Is the issue just that the error message he's getting doesn't have a line number?
22:32 TimToady looks like a leftover from the days in which #<<< was a valid comment beginner
22:32 colomon n: say +"**"
22:32 p6eval niecza v16-23-gaa61ed5: OUTPUT«Unhandled exception: Cannot parse number: **␤  at /home/p6eval/niecza/lib/CORE.setting line 1364 (die @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3403 (ANON @ 10) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3405 (NumSyntax.str2num @ 4) ␤  at /…
22:32 TimToady and we temporarily had a #<<< detector, which we subsequently removed (I think)
22:32 TimToady std: #<<< foo
22:32 p6eval std fab64fc: OUTPUT«ok 00:00 39m␤»
22:33 colomon TimToady: I think he was just using #<<< to show where his problem is.
22:33 sorear colomon: I think the main issue is that English is not his first language, which makes me really apprehensive to do anything with it
22:34 TimToady when I run it, I do get: at /home/larry/perl6/niecza/foo line 0 (mainline @ 1)
22:35 colomon Yeah.  But I'm pretty sure he was trying to complain that when he runs that program, the error message he gets does have any line number info better than
22:35 colomon at /Users/colomon/tools/niecza/frip.pl line 0 (mainline @ 1)
22:35 TimToady the line 0 is wrongish
22:35 colomon at least, that's what I get when I try it.
22:35 TimToady jinx
22:36 sorear It's been the same behavior for months and it's impossible to fix without incurring a runtime penalty
22:36 sivoais joined #perl6
22:37 TimToady the lack of a line number seems to be precisely the complaint, according to the title
22:38 TimToady and I'll note that p5 does take a run-time hit in order to set the current line number (in an instruction that also clears the tmp stack, so not an extra dispatch)
22:39 colomon sorear: might it make sense to make that an option?  ie  --debug (or something) turns on the line number storage even though that slows things down.
22:40 TimToady a real compiler could, presumably, reverse engineer the line number from the return address
22:42 lichtkind TimToady: im bit confused over temp, on one side its the new local on other side just temporarely overwerites values
22:45 dalek tablets: 41208f3 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
22:45 dalek tablets: fix $*PERL and $*PID lines + new formating rule for P5 comparison
22:45 dalek tablets: review: https://github.com/perl6/tablets/commit/41208f340e
22:49 dalek tablets: ef0b626 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
22:49 dalek tablets: linkfix for :Perl5 and :p adverbs
22:49 dalek tablets: review: https://github.com/perl6/tablets/commit/ef0b626f9a
22:52 skids joined #perl6
22:53 mikemol joined #perl6
22:58 dalek tablets: b18b418 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
22:58 dalek tablets: clear map example
22:58 dalek tablets: review: https://github.com/perl6/tablets/commit/b18b4184df
22:59 brrt left #perl6
23:00 tyatpi joined #perl6
23:06 raiph joined #perl6
23:14 dalek tablets: 55de143 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
23:14 dalek tablets: reformat :p and :path
23:14 dalek tablets: review: https://github.com/perl6/tablets/commit/55de143458
23:15 cognominal joined #perl6
23:16 sorear so.... what was the verdict?  what should I do with 120?
23:17 dalek tablets: 0e4194f | (Herbert Breunung)++ | docs/appendix-a-index.txt:
23:17 dalek tablets: repair $*UID entry
23:17 dalek tablets: review: https://github.com/perl6/tablets/commit/0e4194f036
23:17 colomon "colomon: sorear: might it make sense to make that an option?  ie  --debug (or something) turns on the line number storage even though that slows things down."
23:17 sorear colomon: I was looking for a "yes" or a "no"
23:17 lichtkind good night
23:18 colomon if that's impractical, then I guess 120 should just get a nice explanation of why it's not desirable to store the line numbers.
23:18 sorear of course it makes sense to have an option, but my current tuit supply allows onl "close" and "don't close"
23:18 colomon it's really a less-than-awesome, not a bug.  want me to write a short explanation and close it?
23:19 sorear I'm chronically conflicted over whether LTAs belong in the bug queue
23:20 fgomez joined #perl6
23:20 sorear If you have a better explanataion, by all means post it
23:22 ranguard joined #perl6
23:23 cognominal joined #perl6
23:23 colomon "The error is what we would expect to get, but the error message would ideally have the line number of the problem.  Unfortunately, tracking line numbers in this case would cause a hit on Niecza's performance.  While we hope to improve this situation in the future, this is not a bug."
23:23 colomon I've got that typed into the box there, will hit enter if you approve.  :)
23:24 sorear +1
23:24 colomon commented and closed
23:44 flussence_ joined #perl6
23:45 alester_ joined #perl6
23:48 japhb phenny, tell fglock See https://gist.github.com/2474657 -- even if it will be some time before perlito6.js can compile rc-forest-fire, it would be nice to stop it from endlessly looping the same error messages.  :-)
23:48 phenny japhb: I'll pass that on when fglock is around.
23:50 whiteknight joined #perl6
23:58 FACEFOX joined #perl6
23:59 machine1 joined #perl6

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

Perl 6 | Reference Documentation | Rakudo