Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-06-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:09 cog_ joined #perl6
00:30 adu joined #perl6
00:43 tokuhirom joined #perl6
01:05 xinming joined #perl6
01:08 cognominal joined #perl6
01:14 cognominal joined #perl6
01:24 jaldhar joined #perl6
01:39 mcglk joined #perl6
01:58 cognominal joined #perl6
02:24 orafu joined #perl6
02:42 tokuhirom joined #perl6
02:52 tyatpi joined #perl6
03:07 mcglk_ joined #perl6
03:25 leprevost joined #perl6
03:32 mikemol joined #perl6
03:43 vlixes joined #perl6
03:50 kaare_ joined #perl6
04:02 stephenlb joined #perl6
04:38 thou joined #perl6
05:13 sisar joined #perl6
05:21 cog_ joined #perl6
05:25 cog__ joined #perl6
06:33 GlitchMr joined #perl6
06:50 tokuhirom joined #perl6
06:52 moritz \o
06:54 moritz yesterday afternoon we were in the zoo with the small one, and this morning we read that while we were there, a small cheetah broke out :-)
06:57 moritz r: say 1
06:58 moritz is feather down?
07:05 sorear o/ moritz
07:06 moritz \o sorear
07:09 brrt joined #perl6
07:27 Timbus joined #perl6
07:32 sivoais joined #perl6
07:43 cog__ joined #perl6
07:59 Juerd joined #perl6
07:59 p6eval joined #perl6
08:00 pmichaud joined #perl6
08:00 Util joined #perl6
08:00 dalek joined #perl6
08:01 masak joined #perl6
08:01 PerlJam joined #perl6
08:01 [Coke] joined #perl6
08:01 hugme joined #perl6
08:02 p6eval joined #perl6
08:03 moritz r: say 1
08:03 p6eval rakudo 06a730: OUTPUT«1␤»
08:04 diakopter wb feather
08:10 sorear sleep&
08:14 ajs_home joined #perl6
08:15 ajs_home Having to re-build my rakudo environment at home... wow, a clean checkout does take a bit to build, don't it?
08:16 moritz it does
08:16 moritz try a fresh gcc checkout for comparison :-)
08:16 ajs_home the identifier "stage0" is somewhat demoralizing in nqp ;-)
08:17 ajs_home mortiz: ah, I remember the day. I used to kick off a gcc build on an Apollo Domain/OS box and go out for a long lunch ... at home ... and a nap
08:18 ajs_home http://xkcd.com/303/ -- ah the heady days of mis-spent youth
08:23 brrt joined #perl6
08:25 tadzik joined #perl6
08:28 benabik joined #perl6
08:30 araujo joined #perl6
08:36 sergot joined #perl6
08:36 sergot hi o/
08:36 sergot :)
08:36 ajs_home hey sergot
08:37 fgomez joined #perl6
08:37 fgomez joined #perl6
08:40 sporous joined #perl6
08:56 PacoAir joined #perl6
09:18 masak morning, #perl6
09:19 diakopter halyoy
09:19 diakopter er, hello/ahoy
09:20 masak :)
09:21 * masak .oO( how did the small cheetah break out? probably by bending the rules a little )
09:23 masak today's autopun spotting: http://twitter.com/codinghorror/status/216428667730018304
09:23 masak I hasten to add that bipolarity doesn't always merit a laugh. I know that.
09:25 * masak is a little curious if Jeff Atwood actually is bipolar, or whether he was just making the joke
09:25 spider-mario joined #perl6
09:27 masak this looks interesting for our infrastructure champs: http://lucumr.pocoo.org/2012/6/22/hate-hate-hate-everywhere/ http://news.ycombinator.com/item?id=4146847
09:31 au . o O { At the neuronal level, we're all bipolars (in more than one sense). }
09:33 birdwindupbird joined #perl6
09:35 masak au! \o/
09:35 masak yeah, biprobably.
09:35 moritz biopolarity
09:36 masak is that when you polarize light through an organism? :)
09:37 au "bears for polar biopolarity"
09:37 au or perhaps it's just polar bioplurality...
09:38 moritz now where did the polar bears come from, all of a sudden?
09:38 jnthn morning :-)
09:38 diakopter o/
09:39 jnthn uh-oh...there's polar bears?!
09:39 au 🐻/
09:39 moritz jnthn: biopolar plurality bears
09:39 moritz \o diakopter, jnthn
09:40 jnthn .oO( should not come here before coffee...too many hard words... :) )
09:41 * masak .oO( bipolar polar bears are so popular! )
09:41 moritz now don't get me started with populism
09:41 masak it's all polar bear propaganda.
09:42 diakopter I'm bipopular
09:42 masak polar bears are bipartisan.
09:42 au or bearly partisan
09:43 masak *lol*
09:44 masak urs, I can't bear the puns.
09:44 au but you can pun the bears just fine
10:19 snearch joined #perl6
10:47 grondilu joined #perl6
11:01 grondilu_ joined #perl6
11:18 Juerd masak: Was "urs" a play on the latin word for bear? ursus, ursa. ;)
11:19 tadzik morning
11:19 * moritz is pretty sure it was
11:21 masak Juerd: of curs :)
11:21 Juerd :)
11:23 cog_ joined #perl6
11:25 jnthn That's o so clever.
11:26 moritz clever enough for the cleaver?
11:27 masak phenny: "oso"?
11:27 phenny masak: "bear" (es to en, translate.google.com)
11:27 * masak tho so
11:31 tadzik aak
11:33 Juerd It's sometimes confusing when someone talks about beer in English, when there are Dutch people around.
11:47 sergot joined #perl6
11:47 masak Juerd: pardon? :P
11:52 Juerd Horses!
12:03 asperge joined #perl6
12:03 asperge hi
12:06 fgomez joined #perl6
12:14 masak asperge: oh hai
12:14 masak phenny: fr en "asperge"?
12:14 phenny masak: "asparagus" (fr to en, translate.google.com)
12:15 * masak refrains from any asparaging remarks
12:15 asperge :)
12:25 birdwindupbird joined #perl6
12:26 birdwindupbird joined #perl6
12:43 pmichaud good morning, #perl6
12:44 moritz \o pmichaud
12:45 jnthn o/
12:45 tadzik good morning pmichaud
12:45 szabgab hi tadzik
12:46 tadzik hey szabgab
12:46 moritz the nqp repo's docs/release_guide.pod misses instructiong for creating a tar ball
12:46 szabgab I am looking at panda and I see a number of modules without a friendly panda face on the right
12:46 moritz which is why release managers don't create tarballs, and i have to do that after the fact when making a star release :(
12:46 szabgab it seems these are the same modules that don't have a source-url
12:47 szabgab can anyone help me understand why are some without panda and why no source-url?
12:48 moritz szabgab: the probably follow and outdated standard, or are even older than panda itself
12:48 moritz s/the/they/
12:48 mustapha joined #perl6
12:48 moritz and since nobody has updated them, you can imagine how well maintained they are... :/
12:49 tadzik it doesn't always mean so
12:49 tadzik GlitchMr++ recently found some my modules following the old standard, and they were quite well maintained, but I'm probably biased :)
12:50 tadzik szabgab: generally, emmentaler is probably the best way to see how well a module is maintained these days
12:50 tadzik alghough it should probably also point out if a module has no tests at all; now it just says "yeah, passes"
12:51 szabgab emmentaler?
12:54 szabgab ok, found it
12:58 tadzik where, ooc?
13:02 mtk joined #perl6
13:02 cog_ jnthn,  have created an engine to highlight any code using a json of the parse tree (ie the Match object).   https://github.com/cognominal/codeview
13:03 cog_ The whole point of the exercise was to do that on Perl 6 files but there is no way to dump the parse tree of a Perl6 file
13:03 cog_ can you fix that?
13:04 szabgab tere used to be flag for that
13:04 szabgab that was created for padre but I could not find it now
13:05 cog_ I have yet to segragate the json dumper in a library. It is here    https://github.com/cognominal/codeview/blob/master/bin/jsonParseTree
13:06 cog_ Right now I parse a json file (but that could be anything that genereate a Perl 6 Match) and generate a json file, that I load using ajax in a html file.
13:07 cog_ szabgab: it has been broken for almost a year if not much.
13:07 grondilu joined #perl6
13:09 cog_ szagab: currently I am able to do classic static highlighting, and show the parse path that was used to reduce some code when I hover over the corresponding html element.
13:11 cog_ jnthn, I would like to show the tool for the french perl workship
13:11 whiteknight joined #perl6
13:11 moritz currently Perl6::Grammar creates NQP match objects, not Perl 6 match objects
13:12 moritz not sure how easy that is to change
13:13 cog_ moritz: the problem seem that when --target=parse is used, some stuff is not yet set up correctly to call whatever filter.
13:14 Psyche^ joined #perl6
13:17 moritz oh right
13:17 moritz jnthn, pmichaud, PerlJam: there's a small problem: nqp's VERSION is not bumped. That way non-git builds report version 2012.05, which breaks rakudo star
13:18 moritz what should be do about it? a nqp 2012.05.1 point release with a bumped VERSION?
13:18 cog_ moritz: probably some World.pm internal
13:19 cog_ $ perl6 --target=parse -e '0'  # indeed :  ===SORRY!=== Could not locate compile-time value for symbol StaticLexPad
13:22 leprevost joined #perl6
13:22 pmichaud moritz: looking
13:26 dalek rakudo/nom: dba6e9c | moritz++ | docs/release_guide.pod:
13:26 dalek rakudo/nom: mention nqp VERSION bump in rakudo's release_guide.pod
13:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dba6e9c4a2
13:27 pmichaud moritz: really, though, bumping VERSION should've been done as part of step 2.
13:30 moritz pmichaud: maybe it's better to remove the overlapping information altogether
13:30 pmichaud well, step 2 is in the wrong place anyway.  We shouldn't cut a nqp release immediately after parrot release; it should be immediately before rakudo release.
13:31 pmichaud but I do want nqp version management held in nqp's release guide, not in rakudo's.  Other than rakudo's release guide might have reminders to check certain things.
13:32 jnthn cognominal: I suspect the --target=parse issue at least for that particular case is because it's not triggering setting loading when the actions are not run.
13:32 moritz we should automate as much of that as possible
13:33 pmichaud moritz: yes, that would make sense also; perhaps the tagging step can be a makefile target
13:33 pmichaud anyway, let me think about it one issue at a time for a bit... starting with what to do for the star release
13:34 pmichaud the easiest thing to do for star is to simply have it fix the file coming from the tarball after it unpacks it
13:34 pmichaud having distributions "patch" the upstream sources isn't unheard of.
13:35 pmichaud I think I'm also fine with creating a 2012.06.1 tarball for nqp/star
13:39 cognominal jnthn, I would like to be able to call my Match dumper-in-json at this stage so I could highlight Perl 6 code.
13:39 cognominal Doing it for nqp would be nice but least important to me.
13:40 pmichaud cognominal: it's almost impossible to produce a parse tree for Perl 6 using --target=parse because Perl 6 parsing _requires_ executing some of the code (which requires stages after --target=parse)
13:40 cognominal pmichaud: I don't mind being handed the parse tree after other stages have been executed.
13:41 PacoAir joined #perl6
13:41 pmichaud at one time I had a special target for that... just a sec
13:41 cognominal Anyway, sooner or later people will want to write Perl 6 highlighter.
13:42 masak basically, only a Perl 6 grammar can hand you that parse tree.
13:43 masak or rather, I'd like to see something that isn't a Perl 6 grammar try ;)
13:43 cognominal pmichaud: that would be cool.
13:44 cognominal My tool is very pedagogical too. Using the parse tree, it can display the parse path used to reduce any part of code.
13:44 masak PPI basically cheats in a way that's sometimes useful. Alias++ has sometimes driven by here and stated that this kind of useful cheating will be much harder for Perl 6.
13:45 masak because Perl 6 embraces language modding to a much greater extent.
13:45 cognominal I will soon display the used rule too. Well it will soon cheat to do so for JSON grammars.
13:46 cognominal by "used rule", I mean the rule used to reduce the code the mouse is hovering over.
13:48 pmichaud okay, I don't think the issue is with --target=parse itself, but rather with the resulting parse tree not having sufficient information/runtime loaded to display itself.
13:48 pmichaud ...but that's just a guess.
13:49 jnthn pmichaud: Does it attempt to dump the $!ast also?
13:49 jnthn That would probably cause issues...
13:49 pmichaud jnthn: I don't know what it's attempting to dump.  But I think it's a dumping issue more than a staging issue.
13:50 pmichaud by way of comparison, try    ./perl6 --target=past -e 0
13:51 pmichaud so, my guess is that we need to clean up dumping.  There are some preliminary dumper capabilities in nqp that we should probably use; I suspect HLL::Compiler is still trying to use Parrot's Data::Dumper
13:51 pmichaud since rakudo is now using QRegex for parsing/compilation, we ought to be able to avoid Data::Dumper altogether
13:51 jnthn Indeed
13:52 pmichaud it would also be very nice to eliminate Data::Dumper as a runtime requirement altogether
13:53 mikemol_ joined #perl6
13:53 cognominal pmichaud/jhntn: I did not want to push you before I was ready to use that dumping feature. Now that I am, I am very eager to show it at the french perl workshop.
13:54 daemon joined #perl6
13:54 pmichaud moritz: I vote we create a 2012.06.1 release of nqp to be used in star.  I don't think we need a separate rakudo release or to do anything to the rakudo repo.  Does that sound sane?
13:54 cognominal Also my Match json dumper is nice. I think one can reconstruct a Match from it.
13:55 cognominal I don't know about World serialization of Matches  but a json serialization is nice.
13:56 moritz pmichaud: sounds sane
13:56 moritz pmichaud: should I do it?
13:56 moritz pmichaud: and if so, from master, or branch off from 2012.06 ?
13:56 moritz I don't think master breaks anything, so we could it from master
13:58 pmichaud moritz: looking.  I think there have been some nqp commits since the release.
14:00 moritz r: say 1.HOW ~~ Any
14:00 p6eval rakudo 06a730: OUTPUT«True␤»
14:00 pmichaud I think I prefer from 2012.06.  I don't want to have to deal with a possible variation between rakudo 2012.06 and star 2012.06 relating to the nqp changes.
14:00 pmichaud I know it's unlikely; but ... *sigh*
14:01 moritz aye
14:01 moritz I gravitated the same way
14:02 dalek nqp/release-2012.06.1: 8a787d6 | moritz++ | VERSION:
14:02 dalek nqp/release-2012.06.1: bump VERSION
14:02 dalek nqp/release-2012.06.1: review: https://github.com/perl6/nqp/commit/8a787d6320
14:02 JimmyZ joined #perl6
14:04 dalek star: 8b15e79 | moritz++ | / (2 files):
14:04 dalek star: bump NQP version to 2012.06.1
14:04 dalek star:
14:04 dalek star: 2012.06 had a wrong VERSION file
14:04 dalek star: review: https://github.com/rakudo/star/commit/8b15e7965e
14:05 Pleiades` joined #perl6
14:09 pmichaud ...star might need 2012.06 as its version requirement, not .1
14:11 pmichaud oh, nm, looks like the $(NQP) variable isn't used anyway.  :)
14:11 pmichaud (in skel/tools/build/Makefile.in)
14:12 pmichaud I have to leave shortly; later today I will review the release_guide.doc files and make some updates.
14:13 pmichaud (others are free to do the same, also :)
14:17 Juerd
14:29 pmichaud afk, meetings
14:30 Juerd Away from keyboard and meetings?
14:31 cognominal for people attending the french perl workshop, don't forget to send your id number to eiro before tuesday. That's a necessary (and moronic) condition to access the wifi at epitech
14:32 cognominal in Rome do what the romans do…
14:33 cognominal si fueris Romae, Romano vivito more; si fueris alibi, vivito sicut ibi  # apparently the original quote
14:35 Juerd Do you think they'd know if you'd make something up?
14:35 tadzik that makes me consider using Tor there
14:35 Juerd I'd make me consider buying a local SIM
14:35 tadzik that too
14:36 Juerd But alas, I'm not going to the FPW at all :(
14:36 tadzik shame :/
14:36 Gesh joined #perl6
14:45 cognominal joined #perl6
14:45 _jaldhar joined #perl6
14:55 masak I think we're living in an age where people are throwing away their privacy like it was pocked lint.
14:55 masak I wonder if that will just become the default (and we'll consider it the price we pay for all the useful interconnectedness), or if there'll be a pendulum swing and people will rise up against governments and Facebook.
14:57 huf both!
14:57 huf people will rise up but ultimately nothing will change
14:58 cognominal masak, stuff like small federated wikis (I pointed it earlier) will be way to discuss and organize and make centralized information repositories (à la fesse bouc, or G+)
14:58 cognominal … make them optionnal
14:59 cognominal ho, btw, fesse bouc is the usual French pun on Facebook.
14:59 masak oh, of course.
14:59 masak phenny: "la fesse bouc"?
14:59 phenny masak: "buttock goat" (fr to en, translate.google.com)
14:59 masak :P
15:00 huf oh good, everyone has some pun for facebook :)
15:00 masak phenny: sv en "fejan"?
15:00 phenny masak: "your face" (sv to en, translate.google.com)
15:00 _jaldhar joined #perl6
15:01 moritz phenny: de en "fratze"?
15:01 phenny moritz: "grimace" (de to en, translate.google.com)
15:07 masak r: say (1, 2 Z 3, 4).perl
15:07 p6eval rakudo dba6e9: OUTPUT«((1, 3), (2, 4)).list␤»
15:07 masak r: say (1, 2 Z, 3, 4).perl
15:07 p6eval rakudo dba6e9: OUTPUT«((1, 3), (2, 4)).list␤»
15:07 masak \o/
15:08 Chillance joined #perl6
15:12 Gesh r: say (1, 2, 3 Z, 4, 5, 6 Z, 7, 8 ,9).perl
15:12 p6eval rakudo dba6e9: OUTPUT«(((1, 4), 7), ((2, 5), 8), ((3, 6), 9)).list␤»
15:14 moritz that looks wrong
15:16 * masak submits rakudobug
15:16 masak moritz++
15:16 masak er, and Gesh++
15:16 masak Gesh: hi, are you new here?
15:16 asperge left #perl6
15:16 Gesh masak: yep)
15:16 masak Russian?
15:16 Gesh yes
15:16 masak I'm a lucky guesser today)
15:17 Gesh huh
15:17 sisar Gesh: welcome !
15:17 masak Я немного говорю по русский, но я хотел бы говорить лучше.
15:17 flussence I'm not sure that code's wrong...
15:17 Gesh Thanks. I didn't really had an idea what i executed -.-
15:18 masak Gesh: you just found a bug, and it got reported. congratulations.
15:18 masak you are now part of a small but warm-hearted community of Perl 6 contributors.
15:18 Gesh Because first of all I even don't have an idea whether perl6 is reasonable to use nowdays.
15:18 moritz ((1, 4, 7), (2, 5, 8), (3, 6, 9)).list would be correct
15:19 masak depends on your definition of reason.
15:19 Gesh yep. I wanted to obtain that
15:19 masak and your definition of use.
15:19 Gesh masak: у тебя неплохо получается :)
15:19 masak me and Google Translate, we work well together ;)
15:19 sisar phenny: en "у тебя неплохо получается" ?
15:19 moritz masak: I was just about to say that (though I'd have said definition of reasonable). Stop being so disturbing :-)
15:20 masak sisar: no, not 'en', 'ru'.
15:20 masak sisar: and no space before the '?'
15:20 sisar phenny: ru "у тебя неплохо получается"?
15:20 phenny sisar: "you have pretty well" (ru to en, translate.google.com)
15:20 sisar masak++
15:20 flussence r: say (1..3 Z, 4..6 Z, 7..9).perl
15:20 p6eval rakudo dba6e9: OUTPUT«(((1, 4), 7), ((2, 5), 8), ((3, 6), 9)).list␤»
15:20 flussence r: say (1..3 Z, (4..6 Z, 7..9)).perl
15:20 p6eval rakudo dba6e9: OUTPUT«((1, 4), (2, 7), (3, 5)).list␤»
15:20 flussence well that's just weird.
15:21 masak moritz: when co-thinking happens, we're both equally disturbing :P
15:21 Gesh s/have/do it/
15:21 flussence r: say (1..3 Z, (4..6 Z, 7..9 , )).perl
15:21 p6eval rakudo dba6e9: OUTPUT«((1, 4), (2, 7), (3, 5)).list␤»
15:21 masak moritz: we should ride a tandem bicycle some day :)
15:22 masak Gesh: some people would say we try to avoid answering the question by saying "depends on your definition of..."
15:22 masak Gesh: let's just say many of us here would love to be able to say "yes". and we don't want to say "no", because that also doesn't cover it.
15:23 Gesh masak: That's seem to be correct anyway
15:23 masak so we say "depends", and then we try to work on the bits that don't allow us to say "yes" unreservedly.
15:23 masak thing is, turns out this is a big project. who knew.
15:24 Gesh Well, i have several simple scripts written in perl5 that make my work easier. Though I had some fun rewriting them in python and ruby I still prefer perl/ And i even don't know why.
15:25 masak :)
15:25 tadzik it's mostly a matter of preference, I think
15:25 masak yeah.
15:25 masak but just like there are cat people and dog people, it seems that there are Perl people and Python people and Ruby people.
15:26 masak thought the Perl/Ruby groups might be the ones that are closest to each other.
15:26 masak though*
15:27 Gesh So, my question should sound more like 'is perl6 stable enough?' that must be followed by questions about literature, but I think i'll just google it. I'm not going to use it for some kind of enterprice and production
15:27 masak perl6.org
15:27 masak if you're not using it for very fancy/demanding things, I'd say it's ready/stable enough for you.
15:28 masak but if I'm wrong on that point, we'd like to hear about it.
15:29 Pleiades` joined #perl6
15:30 * tadzik has been pondering an idea to write a bayesian text classifier in Perl 6
15:32 sisar raiph++ #replying to http://rakudo.org/2012/05/23/rakudo-star-2012-05-released/#comment-1665
15:32 cognominal joined #perl6
15:32 Gesh Ok :) I'll try it.
15:40 masak the challenge in getting started is still finding the good bits of information; tutorials, blog posts, documentation.
15:40 moritz that's what perl6.org was supposed to help you with, back in the days when I started with it
15:40 masak right.
15:40 masak and it does help.
15:41 masak but we're still far from actually having something of perldoc quality.
15:47 pmichaud r:  (1,2,3 Z 4,5,6 Z 7,8,9).perl.say
15:47 p6eval rakudo dba6e9: OUTPUT«((1, 4, 7), (2, 5, 8), (3, 6, 9)).list␤»
15:47 pmichaud r:  (1,2,3 Z+ 4,5,6 Z+ 7,8,9).perl.say
15:47 p6eval rakudo dba6e9: OUTPUT«(12, 15, 18).list␤»
15:47 pmichaud hmmmmm
15:48 Gesh r: say (1, 2, 3 Z, 4, 5, 6 Z, 7, 8 ,9).perl
15:48 p6eval rakudo dba6e9: OUTPUT«(((1, 4), 7), ((2, 5), 8), ((3, 6), 9)).list␤»
15:48 Gesh r: say (1, 2, 3 Z 4, 5, 6 Z 7, 8 ,9).perl
15:48 p6eval rakudo dba6e9: OUTPUT«((1, 4, 7), (2, 5, 8), (3, 6, 9)).list␤»
15:49 Gesh commas
15:49 pmichaud r: say ([,] 1,2,3).perl
15:49 p6eval rakudo dba6e9: OUTPUT«(1, 2, 3)␤»
15:49 pmichaud yes, I'm trying to decide how to distinguish them.
15:49 cog_ joined #perl6
15:49 jnthn pmichaud: Is it not a little like the [|] fix you did not so long ago?
15:51 pmichaud jnthn: it might be... but I'm not sure why it's not working in the first place.... and I'm not convinced that it's wrong.
15:52 masak I got the title wrong. was 'Z', should be 'Z,'. changed now. http://rt.perl.org/rt3/Ticket/Display.html?id=113800
15:52 masak pmichaud: depends. is infix:<,> a list infix op?
15:52 masak if it is, then arguably infix:<Z,> should be too.
15:53 pmichaud other that the fact that S03 explicitly says that Z, should work that way.
15:53 Pleiades` joined #perl6
15:53 pmichaud infix:<,> has list associativity, yes.
15:54 masak ah. yes. that's probably what I meant.
15:54 pmichaud it's not %list_infix precedence.
15:54 masak I see from the S03 precedence table that it... right.
15:54 pmichaud %comma is tighter than %list_infix
15:54 masak nod.
15:54 pmichaud anyway, I'm at a meeting now; I'll look into it more later
15:55 pmichaud (if someone doesn't beat me to it)
15:55 pmichaud bbl
15:58 moritz r: say (<a b c> Z <d e f> Z <g h i>).tree.perl
15:58 p6eval rakudo dba6e9: OUTPUT«Not enough positional parameters passed; got 1 but expected between 3 and 4␤  in method new at src/gen/CORE.setting:5016␤  in method tree at src/gen/CORE.setting:5272␤  in block <anon> at /tmp/2tCaEc_m1b:1␤␤»
15:58 moritz masak: wanna submit?
15:58 moritz r: say (<a b c> Z <d e f> Z <g h i>).lol.perl
15:58 p6eval rakudo dba6e9: OUTPUT«LoL.new(ListIter.new())␤»
15:58 moritz masak: wanna submit?
15:59 moritz r: say .join('|') for (<a b c> Z <d e f> Z <g h i>).lol
15:59 p6eval rakudo dba6e9: OUTPUT«a|d|g|b|e|h|c|f|i␤»
15:59 moritz r: say .join('|') for (<a b c> Z <d e f> Z <g h i>).lol.map(*.item)
15:59 p6eval rakudo dba6e9: OUTPUT«a|d|g|b|e|h|c|f|i␤»
15:59 moritz r: say .join('|') for (<a b c> Z <d e f> Z <g h i>).tree(*.item)
15:59 p6eval rakudo dba6e9: OUTPUT«Not enough positional parameters passed; got 1 but expected between 3 and 4␤  in method new at src/gen/CORE.setting:5016␤  in method tree at src/gen/CORE.setting:5283␤  in block <anon> at /tmp/MNSpCE3r4I:1␤␤»
15:59 kurahaupo joined #perl6
16:01 moritz r: say (<a b c>, <d e f>, <g h i>).tree.perl
16:01 p6eval rakudo dba6e9: OUTPUT«LoL.new($("a", "b", "c"), $("d", "e", "f"), $("g", "h", "i"))␤»
16:01 moritz r: say (((1, 2), 3), 4).tree.perl
16:01 p6eval rakudo dba6e9: OUTPUT«LoL.new($((1, 2), 3), 4)␤»
16:02 moritz then I don't understand why .tree carps at the return value from Z
16:12 dalek perl6.org: 9739149 | moritz++ | source/ (3 files):
16:12 dalek perl6.org: general cleanup; remove links to outdated resources
16:12 dalek perl6.org:
16:12 dalek perl6.org: also state that up-to-dateness is more important than comprehensiveness
16:12 dalek perl6.org: review: https://github.com/perl6/perl6.org/commit/9739149c1d
16:18 ponbiki joined #perl6
16:23 vmspb joined #perl6
16:24 pupoque joined #perl6
16:32 pupoque joined #perl6
16:36 _jaldhar joined #perl6
16:39 * masak submits rakudobug
16:39 * masak submits rakudobug
16:39 masak sorry, was out :)
16:41 masak r: say (<a b c> Z <d e f>).tree.perl
16:41 p6eval rakudo dba6e9: OUTPUT«Not enough positional parameters passed; got 1 but expected between 3 and 4␤  in method new at src/gen/CORE.setting:5016␤  in method tree at src/gen/CORE.setting:5272␤  in block <anon> at /tmp/9HJzWnbf7k:1␤␤»
16:41 masak r: say <d e f>.tree.perl
16:41 p6eval rakudo dba6e9: OUTPUT«LoL.new("d", "e", "f")␤»
16:42 masak r: say (1,2 Z 3,4).tree.perl
16:42 p6eval rakudo dba6e9: OUTPUT«Not enough positional parameters passed; got 1 but expected between 3 and 4␤  in method new at src/gen/CORE.setting:5016␤  in method tree at src/gen/CORE.setting:5272␤  in block <anon> at /tmp/3NFL8gcjvK:1␤␤»
16:43 masak r: say (<a b c> Z <d e f> Z <g h i>).lol.perl
16:43 p6eval rakudo dba6e9: OUTPUT«LoL.new(ListIter.new())␤»
16:43 masak moritz: what's the bug in ^
16:43 masak ?
16:45 masak diakopter: when marking up some RT ticket as being a dupe of some other RT ticket, it's very helpful for those of us who can merge tickets if the id of that other ticket is provided ;)
16:45 masak anyway, diakopter++ for lots of RT triaging while I was away.
16:50 ajs_home so, right now, nothing calls DESTROY?
16:50 masak I assume people here on #perl6 either have seen this already, or will want to be blown away by it: http://xahlee.org/math/recursive_game_of_life.html
16:51 masak ajs_home: could you please be more specific?
16:51 masak ajs_home: there are several implementations of Perl 6.
16:51 ajs_home r: class A { method DESTROY { say "Gone" } }; given A.new() { }
16:51 p6eval rakudo dba6e9:  ( no output )
16:54 ajs_home As part of the IO buffering change I mentioned yesterday, I'm trying to make sure that self.flush() is called when an IO goes away, but DESTROY never gets called, so I don't know how to force that to happen...
16:54 moritz r: say eval('LoL.new(ListIter.new())').perl
16:54 p6eval rakudo dba6e9: OUTPUT«LoL.new(ListIter.new())␤»
16:54 swapnil joined #perl6
16:54 moritz r: say eval('LoL.new(ListIter.new())').list
16:54 p6eval rakudo dba6e9: OUTPUT«␤»
16:54 moritz masak: the .perl output produces an empty LoL
16:54 masak it's not empty, it's just not unrolled yet.
16:54 Pleiades` joined #perl6
16:54 masak but yes, I think I agree that's wrong.
16:55 moritz what does "not unrolled yet" mean?
16:56 masak that the list iterator hasn't been, I dunno, .gimme'd yet.
16:56 ajs_home so, grepping for DESTROY in src shows nothing. I'm guessing that either it's been renamed or it's just NYI...
16:56 masak or something. I'm no listiter expert.
16:56 masak ajs_home: it's NYI, at least in Rakudo.
16:56 cognominal joined #perl6
16:57 ajs_home ok, is there any way to hook object destruction at all in the short-term, or should I just put a scary NYI comment around my DESTROY method?
16:59 masak I'd be happy to hear about your use case. I don't see how DESTROY methods can ever be practical in Perl 6.
16:59 masak I think your best bet is to call a destructor manually.
16:59 masak might as well call it .DESTROY ;)
17:01 ajs_home masak: I don't understand. Can you explain how you think it should be called manually? Currently, in my implementation, DESTROY calls self.flush to clear any buffered output. Who would manually call that?
17:04 flussence I guess you'd have to manually reference-count the object in all scopes it's used in, and have LEAVE emulate a "real" destructor in each place.
17:05 ajs_home flussence I don't really have access to user scopes from IO.pm, do I?
17:06 flussence hm, every user's going to have to do it themselves in that case
17:06 masak aye.
17:06 masak which is less than awesome.
17:07 masak the nicest solution I've seen is something like `my $fh will leave { .flush }`
17:07 masak but the onus is still on the end user programmer.
17:07 masak ...and I don't know that with a GC (as opposed to refcounting), we'll ever be able to improve on that.
17:07 ajs_home yeah, i think it's a reasonable expectation that, for example, a socket that goes out of scope will flush its contents....
17:08 masak ajs_home: it's a reasonable expectation with a refcounting deallocator.
17:08 jnthn Well, apart from it may be referenced by something other than the lexical it was declared it.
17:08 ajs_home But that's a special case, in my current example this writes nothing to the file: given open("test.foo",:w) { .buffer_type(:full); .say("test") }
17:08 jnthn So end of scope isn't a sane default really.
17:08 ajs_home and that just feels wrong
17:08 masak jnthn: that's not even the problem. the problem is that collection isn't timely.
17:09 masak ajs_home: I agree. I would very much like to see a solution to this. I just don't know one.
17:09 jnthn masak: That doesn't contradict what I said.
17:09 masak jnthn: right. what you said is just an extra complication that isn't necessary to make this a hard problem.
17:10 jnthn masak: My point was that if you have non-timely collection then end of scope reached != known the thing is unused.
17:10 jnthn And no good way to know.
17:10 masak what you said is valid in a refcounting environment as well.
17:10 jnthn With a refcoutning GC you have a way to know.
17:10 masak oh, I see what you mean.
17:10 cognominal joined #perl6
17:11 masak well, the thing seems easy and "maybe we could do some clever analysis", but then one remembers threads.
17:11 jnthn So only the programmer understands the lifetime well enough to know if end of scope is a good time to do final-ish things, and the will leave... thing is a way to mark that.
17:12 ajs_home At some point, though, some piece of the infrastructure does clean up unused items, though, right? Or does A.new() allocate RAM that will only be freed when the parrot process calls a C exit(2)?
17:12 jnthn ajs_home: Something will clean up, yes. But it could be in 10 miliseconds, or 10 hours.
17:13 jnthn (if you have a process that runs that long)
17:13 ajs_home jnthn: that's less than ideal, but it would be a better time to call .DESTROY than never, wouldn't it?
17:13 masak I think cleanup is guaranteed at exit, but .DESTROY isn't. which is what makes .DESTROY particularly useless.
17:13 masak I could be wrong on this.
17:14 ajs_home reading http://whiteknight.github.com/2012/05/23/destructors_are_hard.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+afwknight-parrot+%28Whiteknight%27s+Parrot+Blog%29
17:15 jnthn ajs_home: Sure, it should get called at some point, afaik.
17:15 jnthn The real reason that DESTROY isn't implemented is because of Parrot not currently solving the ordering problem or the resurrection problem.
17:16 jnthn (Which are hard problems.)
17:16 masak what are those? curious.
17:16 masak a URL is fine.
17:17 ajs_home I think http://whiteknight.github.com/2012/05/23/destructors_are_hard.html is a good reference which is why I linked it.
17:17 ajs_home "Parrot does have destructors, of a sort, in the form of the destroy vtable. That routine is called by the GC when the object is being reclaimed, during the sweep pass."
17:17 masak ok; thank you.
17:17 jnthn Don't have one handy, but basically, resurrection means that the DESTROY could bring dead objects back to life.
17:17 jnthn And I suspect the other link explains the ordering issue
17:17 masak ok.
17:18 ajs_home heh, "Turning off GC finalization leads to the problem above where data written to the FileHandle is not not flushed before program exit. You are probably now starting to understand the bigger picture here." --- boy howdy, I wish I'd read this first
17:19 masak :)
17:23 Pleiades` joined #perl6
17:27 ajs_home Hmm... tried asking if that's been implemented on #parrot, but crickets so far...
17:28 ajs_home I'll do some testing
17:28 moritz iirc they recently separated destruction vtables and actual deallocation
17:28 moritz (or did it in a branch at least)
17:28 moritz oh, that's what the link was talking about
17:29 moritz never mind, I should not half-backlog and then babble about it
17:29 ajs_home yeah
17:29 ajs_home heehee
17:29 ajs_home Yep, that article sounds very promising (and mentions you, moritz) but it wasn't clear if it's been implemented yet
17:33 swapnil left #perl6
17:42 thou joined #perl6
17:50 vmspb left #perl6
17:52 tadzik re DESTROY and flushing buffers, Go has no destructors and seems to use defer statement, which is similar to our LEAVE
17:53 ajs_home In Python, I can take the value of foo.x where foo is an object and x is a method name. What I get is a sort of functor that knows its invocant is foo and when invoked calls the method x.
17:53 ajs_home is there anything like that in Perl 6?
17:53 masak tadzik: 'defer' seems to be a LEAVE for functions.
17:54 ajs_home Obviously I can make one explicitly by defining a closure, but I was wondering if there was something simpler... it rings a bell, but I can't keep %*SPECS in my head
17:54 moritz *.method ?
17:54 masak nr: class Foo { method x { say "OH HAI" } }; my $foo = Foo.new; my &c = -> { $foo.x }; say "not called yet"; &c()
17:54 p6eval rakudo dba6e9, niecza v18-7-ga660099: OUTPUT«not called yet␤OH HAI␤»
17:54 masak \o/
17:54 masak ajs_home: goodenuf?
17:55 ajs_home masak, moritz, thanks!
17:55 moritz r: say <a b c>.map: *.uc
17:55 p6eval rakudo dba6e9: OUTPUT«A B C␤»
18:01 cognominal joined #perl6
18:06 sorear good * #perl6
18:06 Pleiades` joined #perl6
18:09 moritz \o sorear
18:09 sorear o/ moritz
18:09 moritz p6: role A { }; say A ~~ Mu
18:09 p6eval rakudo dba6e9, niecza v18-7-ga660099: OUTPUT«True␤»
18:15 masak sorear! \o/
18:15 masak huh? what about Pugs?
18:16 sorear masak! \o/
18:16 masak pugs: say "you there?"
18:16 p6eval pugs: OUTPUT«you there?␤»
18:16 masak p6: say "OH HAI"
18:16 p6eval rakudo dba6e9, niecza v18-7-ga660099: OUTPUT«OH HAI␤»
18:16 masak so 'p6' and 'rn' are synonymous now?
18:16 sorear 2012.06.22.13.52.16 < dalek> evalbot: 61a54c0 | moritz++ | evalbot.pl:
18:16 sorear 2012.06.22.13.52.16 < dalek> evalbot: remove pugs from p6/perl6 targets
18:16 moritz masak: I've removed it from the 'perl6' target, because it spews errors on every regex invocation
18:16 masak ok.
18:16 moritz rnp: say 'but I am here too'
18:16 p6eval rakudo dba6e9, niecza v18-7-ga660099, pugs: OUTPUT«but I am here too␤»
18:17 ajs_home rn: every regex invocation
18:17 p6eval rakudo dba6e9: OUTPUT«===SORRY!===␤Malformed regex␤at /tmp/dl00QH_6cu:1␤»
18:17 p6eval ..niecza v18-7-ga660099: OUTPUT«[31m===[0mSORRY![31m===[0m��Methods must be used in some kind of package at /tmp/hNfoeI8Idj line 1 (EOF):�------> [32mevery regex invocation[33m�[31m<EOL>[0m��Malformed block at /tmp/hNfoeI8Idj line 1 (EOF):�------> [32mevery regex invocation[33m�…
18:17 sorear rpn: say "hi"
18:17 p6eval rakudo dba6e9, niecza v18-7-ga660099, pugs: OUTPUT«hi␤»
18:17 sorear prn: say "hi"
18:17 p6eval rakudo dba6e9, niecza v18-7-ga660099, pugs: OUTPUT«hi␤»
18:17 moritz ... and I've added all 6 permutations :-)
18:17 ajs_home seems rn has the same problem. You should fix the "every regex invocation" bug
18:18 ajs_home I'm assuming it should execute all possible regexen? Or perhaps just print "go fish" to $*OUT...
18:18 tadzik :)
18:19 ajs_home OK, now I'm way off in the weeds...
18:19 masak pn: say "Pugs and Niecza! \\o/"
18:19 masak aww :)
18:19 ajs_home I'm trying things like: Mu.HOW.add_parrot_vtable_mapping(Mu, "destroy", ->($self){ $self.DESTROY }); Mu.HOW.publish_parrot_vtable_mapping(Mu); class A { has $.i; method DESTROY { say "Gone ", .i } } ; for 1..1 -> $i { say "Step $i"; my $tmp = A.new(:$i) }
18:19 ajs_home which, btw, doesn't work
18:20 moritz it needs support in the 6model layer first
18:21 jnthn I suspect adding that first needs destruction vs. deallocation stuff figuring out too
18:21 ajs_home ah ok, I was hoping it was a trivial thing to rip Mu's guts out and replace them with whatever I liked... this, in retrospect, is a crazy assumption
18:21 moritz fwiw the rakudo star is now releasable; just needs an announcement, and somebody doing it
18:22 ajs_home Q:PIR { $lunch.invoke() }
18:22 masak moritz++
18:22 jnthn (R*) I can probably find tuits for that in the next couple of days, but anybody who fancies making the release can feel free to beat me to it :)
18:22 sftp joined #perl6
18:24 dalek doc: 709d140 | moritz++ | lib/Mu.pod:
18:24 dalek doc: add so basic Mu docs
18:24 dalek doc: review: https://github.com/perl6/doc/commit/709d140d34
18:24 moritz LHF: improve the wording of the 'clone' docs
18:27 MayDaniel joined #perl6
18:41 sisar doing `perl Configure.pl --gen-nqp` gives me "NQP has been built and installed. ===SORRY!=== NQP revision 2012.06-11-gfcc9a23 required (currently 2012.05-203-g7176d14)." What's wrong?
18:42 moritz that's weird
18:42 sisar It seems that '--gen-nqp' is not building the latest nqp, as it is supposed to.
18:42 moritz sisar: is there an older NQP in $PATH maybe?
18:42 sisar moritz: i'll check
18:42 moritz I don't think it should matter, but maybe it does
18:45 sisar moritz: yes there is an older version, but I thought '--gen-nqp' will replace it automatically.
18:46 sisar (found using /rakudo/install/nqp --version)
18:46 sisar err, rakudo/install/bin/nqp --version
18:47 moritz sisar: it does, usually
18:47 sisar "usually" ? :-)
18:47 moritz "works for me" :-)
18:48 sisar "has always worked for me" ;-)
18:48 moritz sisar: I'm curious, if you call   Configure.pl --gen-parrot   does it rebuild nqp?
18:48 dalek nqp: 8a787d6 | moritz++ | VERSION:
18:48 dalek nqp: bump VERSION
18:48 dalek nqp: review: https://github.com/perl6/nqp/commit/8a787d6320
18:48 dalek nqp: c7f76bc | moritz++ | VERSION:
18:48 dalek nqp: Merge branch 'release-2012.06.1'
18:48 dalek nqp: review: https://github.com/perl6/nqp/commit/c7f76bcd89
18:49 sisar moritz: yes it rebuilds nqp
18:50 sisar moritz: will ^^ these commits help ?
18:51 moritz sisar: I doubt it. Talking about NQP versions just made me remember that I should have merged the release branch
18:51 sisar moritz: oh.
18:52 * sisar tries --gen-parrot again
19:01 sisar yup, same error again :|
19:02 tadzik who wants to write an urldecode implementation? :)
19:02 sisar moritz: can I just manually delete the nqp execulablt in rakudo/install/bin ?
19:02 tadzik oh, URI has one
19:02 tadzik ask, and the answer will magically turn out
19:02 flussence tadzik: does it do utf-8-encoded things properly?
19:03 tadzik flussence: I'll check
19:03 tadzik flussence: tests seem to indicate that it does
19:05 sisar moritz: if this helps, here is my build log for `perl Configure.pl --gen-parrot` https://gist.github.com/2979501 . The error is at the end.
19:06 flussence the url escape thing bundled in Pod::To::HTML doesn't quite do it right, if that works then maybe I'll swap it
19:06 tadzik flussence: see https://github.com/ihrd/uri/blob/master/t/escape.t
19:06 sisar huh, i just found out, nqp REPL too !
19:06 flussence tadzik: looks like exactly what I'm looking for :D
19:06 sisar *there is nqp REPL too !
19:07 tadzik yep
19:07 tadzik but it's a bit lta
19:08 masak rn: my @a = [1, 2, 3], [4, 5, 6]; @a.push(@a».reverse); say @a.perl
19:08 p6eval niecza v18-7-ga660099: OUTPUT«Unhandled exception: Unable to resolve method reverse in type Int␤  at /tmp/ZUtci_oCmp line 1 (ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3051 (hyperunary @ 66) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3042 (hyperunary @ 36) ␤  at /hom…
19:08 p6eval ..rakudo dba6e9: OUTPUT«Array.new([1, 2, 3], [4, 5, 6], [1, 2, 3], [4, 5, 6])␤»
19:09 * masak submits rakudobug
19:09 masak r: say [1, 2, 3].reverse
19:09 p6eval rakudo dba6e9: OUTPUT«3 2 1␤»
19:10 masak oh wait.
19:10 moritz >> is hyper
19:10 moritz and descends into arrays
19:10 masak it's not a bug, it's the crappy spec'd behavior of »
19:10 tadzik flussence: yeah, verified on Bailador
19:11 masak I shouldn't say "crappy". I just never understood what problem TimToady was solving with that spec change.
19:11 masak maybe if I did I would think it was great.
19:11 masak oh well. &map works like I want.
19:12 moritz if somebody wants to hack a bit of fun and useful Perl 6, write a script that HTMLifies the .pod files in github.com/perl6/doc/
19:12 sorear i'm with masak here insofar as rationales are one of the most important parts of userdocs
19:12 masak r: my @a = [1, 2, 3], [4, 5, 6]; @a.push(map &reverse, @a); say @a.perl
19:12 p6eval rakudo dba6e9: OUTPUT«This type cannot unbox to a native integer␤  in method reify at src/gen/CORE.setting:5059␤  in method reify at src/gen/CORE.setting:4958␤  in method reify at src/gen/CORE.setting:4958␤  in method gimme at src/gen/CORE.setting:5342␤  in method push at src/gen/CORE.s…
19:12 masak wtf
19:12 * masak submits rakudobug
19:13 moritz r: ~<a b c>.map: &reverse
19:13 p6eval rakudo dba6e9: OUTPUT«This type cannot unbox to a native integer␤  in method reify at src/gen/CORE.setting:5059␤  in method reify at src/gen/CORE.setting:4958␤  in method reify at src/gen/CORE.setting:4958␤  in method gimme at src/gen/CORE.setting:5342␤  in method eager at src/gen/CORE.…
19:13 moritz masak: long known
19:13 masak ok.
19:13 masak long in RT, too? :)
19:13 moritz masak: it's when you pass a callable with slurpy positional to map
19:13 moritz yes
19:14 masak ah.
19:14 moritz it tries to unbox_i(&code.count)
19:14 moritz which is Inf
19:14 moritz I thought that pmichaud++'s map branch had fixed that
19:14 moritz but maybe it was only an early version that fixed it
19:15 masak `map { [.reverse] }` does what I want.
19:16 moritz *.reverse.item might also work
19:17 brrt joined #perl6
19:17 moritz I wonder if map + slurpy should warn
19:18 moritz or if it should act as if the .count was 1
19:19 moritz because map + slurpy is the same as just calling the slurpy with the whole list, which means you could have left out the map altogether. If you did write the map, you likely expected something else
19:20 geekosaur warn is probably best.  personally I'd expect something like a type mismatch in that case, unless it's a list of lists
19:21 moritz usually warnings are the worst solution
19:21 moritz they stigmatize patterns that might still be useful one way or another
19:22 moritz which is why I'm not going straight ahead and implementing or speccing a warning, but rather discuss it here :-)
19:31 birdwindupbird joined #perl6
19:43 masak I keep reimplementing perms.
19:44 masak rn: sub insert-everywhere($e, @a) { map { [@a[^$_], $e, @a[$_..*]] }, 0..@a }; multi perms() { [] }; multi perms($hd, *@tl) { map { insert-everywhere($hd, $_) }, perms |@tl }; say perms(1,2,3).perl
19:44 p6eval niecza v18-7-ga660099: OUTPUT«(timeout)»
19:44 p6eval ..rakudo dba6e9: OUTPUT«([1, 2, 3], [2, 1, 3], [2, 3, 1], [1, 3, 2], [3, 1, 2], [3, 2, 1]).list␤»
19:44 masak this might possibly be the nicest implementation I've written so far.
19:45 masak Niecza seems to hiccup on that one.
19:47 masak r: say |[1, 2, 3, 4, 5, 6]
19:47 p6eval rakudo dba6e9: OUTPUT«123456␤»
19:47 masak r: say |(1..6)
19:47 p6eval rakudo dba6e9: OUTPUT«No such method 'FLATTENABLE_LIST' for invocant of type 'Range'␤  in block <anon> at /tmp/QoQTK6Marz:1␤␤»
19:47 masak could I request such a method in Range?
19:48 jnthn Should be pretty easy.
19:48 * masak submits rakudobug
20:16 flussence I'm not having much luck with perl6 lately... now panda seems to be broken for me and I can't even reinstall it :(
20:16 flussence "resolve stage failed for panda: Dependency resolution has failed: stage test failed for File::Tools"
20:19 masak that's unfortunate.
20:19 masak are you able to debug the error in any way.
20:20 masak s/.$/?/
20:20 flussence I'm getting:
20:20 flussence t/01-file-find.t    (Wstat: 0 Tests: 7 Failed: 6) Failed tests:  1-3, 5-7
20:20 flussence I've no idea why it'd fail though
20:22 flussence it's testing for existence of certain test files, and they *are* there...
20:22 * moritz tries
20:22 moritz same here
20:23 flussence oh! maybe it's because of the dir IO change
20:23 masak sorry about that.
20:23 mj41 joined #perl6
20:23 moritz eeks
20:24 flussence .oO( that might also explain why my already-installed panda didn't install anything even when the output showed success... )
20:25 * masak .oO( pro tip: when making API changes to upstream, consider the downstream effects )
20:25 masak masak--
20:25 flussence no need to be so hard on yourself, things have to break sometimes. :)
20:25 birdwindupbird joined #perl6
20:26 moritz masak: I guess the right lesson is just not to do it shortly before the release
20:26 spider-mario .u þ
20:26 phenny U+00FE LATIN SMALL LETTER THORN (þ)
20:26 masak moritz: right. Star hasn't been released yet, has it?
20:27 moritz masak: correct, it hasn't
20:27 masak oh phew
20:27 masak flussence++ # discovering
20:27 flussence I think someone else would've complained before me if it had :)
20:27 moritz masak: second lesson: note API breakages in docs/ChageLog
20:28 masak ooh, good idea.
20:28 masak may I do that now?
20:28 moritz sure
20:28 * masak does it
20:29 vmspb joined #perl6
20:30 masak will it go under 2012.06 or 2012.07?
20:30 moritz 2012.06
20:30 masak ok
20:30 masak (git commit --amend)++
20:30 dalek rakudo/nom: 85d88b3 | masak++ | docs/ChangeLog:
20:30 dalek rakudo/nom: [docs/ChangeLog] &dir API changed
20:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/85d88b3403
20:31 moritz hm, File::Tools isn't fixed by simply adding .path to the return values of dir()
20:32 masak that would be because .path gives the full path, whereas &dir used to return only filenames.
20:32 moritz ok, how do I get only the file name from IO?
20:32 masak I didn't spec or implement that.
20:32 masak but one way would be .split('/')[*-1], I guess.
20:33 thou joined #perl6
20:34 moritz masak: have you patched ufo already?
20:34 masak um, no.
20:35 masak I can do that.
20:35 moritz it probably simplifies the code a bit
20:35 masak aye, looks like.
20:36 masak it needs a patch to dirwalk at the end.
20:36 masak I'm on it.
20:36 moritz modularization++
20:37 moritz tadzik: http://moritz.faui2k3.org/tmp/0001-fix-find-for-newest-rakudo-changes.patch
20:42 masak moritz++
20:48 MayDaniel joined #perl6
20:49 moritz masak: would you please set up dalek notifications for ufo?
20:49 masak somehow I thought ufo would have them already.
20:49 masak where's dalek again?
20:50 masak hm, whiteknight's repos?
20:50 moritz the instructions are in mu
20:50 masak oki, thanks.
20:50 moritz misc/dalek-push.txt or so
20:51 moritz jnthn: I tried to add two lines to Range.pm
20:51 moritz +    method FLATTENABLE_LIST() { nqp::getattr(self.flat, List, '$!items') }
20:51 moritz +    method FLATTENABLE_HASH() { nqp::hash() }
20:52 moritz but  f(|$range) gives me "flattened parameters must be a hash or array"
20:52 jnthn moritz: Does .flat actually reify the thing?
20:53 moritz nqp: say (1..5).flat.WHAT
20:53 p6eval nqp: OUTPUT«Confused at line 2, near "say (1..5)"␤current instr.: 'nqp;HLL;Grammar;panic' pc 22164 (src/stage2/gen/NQPHLL.pir:8486) (src/stage2/gen/NQPHLL.pm:326)␤»
20:53 moritz r: say (1..5).flat.WHAT
20:53 p6eval rakudo dba6e9: OUTPUT«List()␤»
20:53 moritz r: say (1..5).flat.gimme(1)
20:53 p6eval rakudo dba6e9: OUTPUT«1␤»
20:53 jnthn No :)
20:53 jnthn maybe needs .eager too
20:54 moritz ah, that's a parrot error
20:54 jnthn yes
20:55 * moritz tries again, eagerly this time
20:57 dalek ufo: e55c146 | moritz++ | bin/ufo:
20:57 dalek ufo: fix up installation mkdir
20:57 dalek ufo: review: https://github.com/masak/ufo/commit/e55c14626e
20:57 dalek ufo: db12dc5 | moritz++ | bin/ufo:
20:57 dalek ufo: handle installing scripts
20:57 dalek ufo: review: https://github.com/masak/ufo/commit/db12dc598c
20:57 dalek ufo: c863621 | moritz++ | bin/ufo:
20:57 dalek ufo: install .pod files
20:57 dalek ufo: review: https://github.com/masak/ufo/commit/c863621f02
20:57 dalek ufo: 45773b2 | moritz++ | bin/ufo:
20:57 dalek ufo: handle dependencies to modules not in the current distribution (ie ignore them)
20:57 dalek ufo: review: https://github.com/masak/ufo/commit/45773b2aac
20:57 dalek ufo: e889d21 | moritz++ | bin/ufo:
20:57 dalek ufo: do not rely on the "find" executable
20:57 dalek ufo:
20:57 dalek ufo: based on dirwalk code by not_gerd++
20:57 dalek ufo: review: https://github.com/masak/ufo/commit/e889d21c3b
20:57 dalek ufo: a644578 | (Carl Mäsak)++ | bin/ufo:
20:57 dalek ufo: [bin/ufo] chased Rakudo &dir API change
20:57 dalek ufo:
20:57 dalek ufo: A simplifying change to &dirwalk. &dir now dresses
20:57 dalek ufo: up the path as an IO object.
20:57 dalek ufo: review: https://github.com/masak/ufo/commit/a644578d79
20:57 masak hook seems to be working.
20:57 masak moritz++
20:58 moritz masak: is it noremal that it reports (Carl Mäsak)++ instead of masak++?
20:58 moritz ah, in rakudo you're "Carl Masak"
20:59 masak hrm.
21:01 dalek rakudo/nom: 582c906 | moritz++ | / (2 files):
21:01 dalek rakudo/nom: allow ranges to interpolate into argument lists
21:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/582c906316
21:02 moritz remote: fatal: bad object b9c2e9529d1d17ef5158a67a65cc2bf1ef14a547
21:02 moritz remote: aborting due to possible repository corruption on the remote side.
21:02 moritz I got this during a rakudo 'git pull'
21:02 moritz second one worked
21:03 moritz but that's a scary error message :-)
21:04 Woodi good * :) there is nice bear vs newest & expensives Nikon thread. info from fredmiranda.com:  http://www.dpreview.com/news/2012/05/21/Grizzly-Bear-Attacks-Photographer-Rented-Nikon-D4
21:05 thou joined #perl6
21:06 moritz was it a bipolar bear?
21:07 moritz nr: .say for Iterable, Iterator
21:07 p6eval niecza v18-7-ga660099: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared name:â�¤ 'Iterable' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1401 (die @ 5) â�¤  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) â�¤  at /hom…
21:07 p6eval ..rakudo dba6e9: OUTPUT«Iterable()␤Iterator()␤»
21:07 masak or did it object to the bipolar objectives in the camera?
21:10 moritz r: class A { has $.x; method succ { A.new(x => $.x + 1) } }; say (A.new(x => 3)..A.new(x => 5)).list.perl
21:10 p6eval rakudo dba6e9: OUTPUT«(A.new(x => 3),).list␤»
21:11 Woodi ppls definitly states that that grizzli prefer Canon over Nikon or Nikon over Canon so bipolarity here :)
21:14 tadzik moritz++ # thanks, applied
21:14 tadzik ah, I need a new enough Rakudo to test it :)
21:17 moritz r: say ('a' ^.. 'f').list
21:17 p6eval rakudo 582c90: OUTPUT«b c d e f␤»
21:17 pupoque joined #perl6
21:20 masak r: say ('q' ^..^ 'q').list
21:20 p6eval rakudo 582c90: OUTPUT«␤»
21:23 szabgab how can I make a push NOT flatten the hash ?    @a.push( %h )
21:23 masak %h.item
21:23 masak or $%h
21:24 masak r: my @a; my %h = 1..4; @a.push(%h); say @a
21:24 p6eval rakudo 582c90: OUTPUT«1 2 3     4␤»
21:24 masak r: my @a; my %h = 1..4; @a.push(%h.item); say @a.perl
21:24 p6eval rakudo 582c90: OUTPUT«Array.new({"1" => 2, "3" => 4})␤»
21:24 masak r: my @a; my %h = 1..4; @a.push($%h); say @a.perl
21:24 p6eval rakudo 582c90: OUTPUT«===SORRY!===␤Invalid hard reference syntax at line 2, near "%h); say @"␤»
21:24 masak oh, forget about $%h for now :)
21:24 szabgab masak: yeah I saw that :)
21:25 szabgab thanks for the .item though
21:25 masak np
21:33 herbert_ joined #perl6
21:34 dalek doc: 04c86cc | moritz++ | lib/Range.pod:
21:34 dalek doc: initial Range docs
21:34 dalek doc: review: https://github.com/perl6/doc/commit/04c86cc0bb
21:35 masak those look like excellent docs.
21:36 masak I'm more inclined to jump in now that I see the standard of them.
21:42 dalek panda: b78a5a0 | tadzik++ | ext/File/Find.pm:
21:42 dalek panda: Update File::Find for new Rakudo
21:42 dalek panda: review: https://github.com/tadzik/panda/commit/b78a5a0976
21:42 tadzik moritz: btw, did you look at the panda/p6doc issue?
21:49 tadzik my new ufo doesn't work with my new rakudo
21:49 spider-mario I just got an LTA error message
21:49 spider-mario “Can not get non-existent attribute '$!ex' on class 'Exception'”
21:49 tadzik https://gist.github.com/2980176
21:49 tadzik "Can not"?
21:50 sergot tadzik: there are some "can_not"s. :)
21:51 sergot tadzik: if that's what you mean.
21:51 tadzik I thought is was to be unified as "cannot" everywhere
21:51 tadzik spider-mario: code?
21:51 spider-mario I may be able to reproduce it here
21:51 spider-mario r: sub test(%?faulty){}
21:51 p6eval rakudo 582c90: OUTPUT«===SORRY!===␤In signature parameter %?faulty, it is illegal to use the ? twigil␤at /tmp/oK01bLjizh:1␤»
21:51 sergot nqp/src/6model/reprs/P6opaque.c:472 - that's this error message
21:52 tadzik indeed
21:52 sergot or nqp/src/6model/reprs/CStruct.c:406
21:53 tadzik and jnthn wrote that, so I assume it's correct :)
21:53 jnthn The error is a bit of an "internal" one.
21:54 jnthn Most likely wrong use of nqp::getattr(...) somewhere.
21:55 mikemol_ joined #perl6
21:57 masak good night, butterflies.
21:57 diakopter o
21:58 tadzik goonight
21:58 sergot good night :)
22:08 pupoque joined #perl6
22:14 jnthn 'night, #perl6
23:32 pmichaud good evening, #perl6
23:32 tadzik good evening pmichaud
23:32 sorear good evening pmichaud and jnthn
23:33 sorear *tadzik
23:34 pmichaud r: sub xyz(*@a) { say @a.join('|'); };  my $c = 3;  xyz(|$c);
23:34 p6eval rakudo 582c90: OUTPUT«No such method 'FLATTENABLE_LIST' for invocant of type 'Int'␤  in block <anon> at /tmp/7qU3SLJsLk:1␤␤»
23:36 dalek doc: 58486e8 | moritz++ | lib/Range.pod:
23:36 dalek doc: [Range] add some examples
23:36 dalek doc: review: https://github.com/perl6/doc/commit/58486e8f3a
23:41 pupoque joined #perl6
23:44 pmichaud r:  shell('ls');
23:44 p6eval rakudo 582c90: OUTPUT«shell is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting:2␤  in sub shell at src/RESTRICTED.setting:7␤  in block <anon> at /tmp/Qz_TdeuUls:1␤␤»
23:45 pmichaud \o/
23:52 * skids finds himself wishing there was adverbial pair sugar like unto :adverbkey⌈This value is a string with spaces⌉
23:53 pmichaud :adverb("This value is a string with spaces")  #  :-)
23:53 pmichaud you need more sugar than that???
23:55 skids Need? no. but when my string contains ' and ", :x(q«...») gets clunky.
23:56 pmichaud just a sec, checking
23:58 pmichaud could do:   :adverb(「my string here」)
23:58 pmichaud .u 」
23:58 phenny U+FF63 HALFWIDTH RIGHT CORNER BRACKET (」)
23:59 pmichaud and it wouldn't surprise me too much if   :adverb「my string here」  could be made to work.
23:59 skids Well, it's probably only because :x<array of identifiers> is sitting there taunting me that I pay it any mind :-)

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

Perl 6 | Reference Documentation | Rakudo