»ö« | perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is your friend!
Set by Tene on 14 May 2009.
00:05 frew|work joined, frew|wor2 joined 00:06 unitxt left 00:09 jferrero left 00:12 hanekomu joined, DanielC left 00:15 synth left 00:18 synth joined 00:19 hanekomu left, exodist left 00:24 frew|wor2 is now known as frew 00:29 bacek joined, amoc joined 00:30 frew|work left, justatheory left 00:35 synthEEEE left 00:43 Limbic_Region left 00:45 synthEEEE joined, synthEEEE left 00:46 synthEEEE joined 00:51 justatheory joined 00:52 ZuLuuuuuu left 00:55 synth left, Limbic_Region joined 00:59 Chillance left 01:07 agentzh joined 01:08 frew|work joined 01:17 frew|work left 01:28 davidad joined, davidad left 01:41 icwiener_ left 01:43 justatheory left 01:48 rewt left 01:52 Whiteknight left 01:53 rewt joined 01:55 stepnem left, stepnem joined 02:02 rhr joined
Util Whiteknight: I think you need `git pull origin`. If that is not enough, then run `git branch -r`, choose the branch, and `git pull origin/branchname`. Caution: I may be quite wrong. Taken from www.kernel.org/pub/software/scm/git...-pull.html and www.sourcemage.org/Git_Guide . 02:08
02:12 justatheory joined 02:16 rhr_ left 02:19 Limbic_Region left 02:25 payload left
meppl good night 02:26
02:27 meppl left 02:41 payload joined 02:42 payload left 03:03 lisppaste3 left, lisppaste3 joined 03:19 stepnem left 03:20 donaldh left, stepnem joined, donaldh joined 03:51 hercynium left 04:01 stepnem left
jdv79 anyone know the transportation options to get to the parrot/p6 workshop from the dorms? 04:07
04:09 synthEEEE left 04:10 synth joined 04:17 unitxt joined 04:31 snarkyboojum left 04:40 skids left 04:47 FurnaceBoy left 04:55 ssm left 04:57 ssm joined, cj joined, cj_ left 05:00 shinobi-cl joined 05:01 unitxt left, sri_kraih left 05:09 shinobi-cl left 05:11 davidad joined 05:12 frew left, davidad left 05:28 stepnem joined 05:52 justatheory left 05:59 TimToady sets mode: +o japhb, TimToady sets mode: +o cognominal, TimToady sets mode: +o Tene 06:00 TimToady sets mode: +o Matt-W 06:01 TimToady sets mode: +o szabgab 06:03 Maghnus_ joined, TimToady sets mode: +o xinming 06:04 Maghnus left 06:09 Maghnus joined 06:24 unitxt joined 06:25 Maghnus_ left 06:46 baest_ left 06:47 baest joined 06:49 DemoFreak joined 06:57 eMaX joined 06:58 unitxt left 06:59 araujo left 07:01 iblechbot joined 07:02 yves joined 07:14 araujo joined 07:20 donaldh left, donaldh joined 07:23 dakkar joined 07:35 TimToady left, TimToady joined 07:44 icwiener joined 08:01 barney joined 08:08 finanalyst joined 08:09 davidad joined, davidad left 08:14 tulcod joined 08:16 snarkyboojum joined 08:23 viklund joined 08:25 eMaX left 08:28 eMaX joined 08:48 DanielC joined 08:49 hcchien left
DanielC Moring. 08:49
*Morning
08:49 clkao left 08:50 clkao joined
viklund Morning 08:52
08:53 snarkyboojum left
DanielC waves 08:53
viklund ~~ 08:54
08:54 hcchien joined
Matt-W hi DanielC 08:56
wow
DanielC hi Matt-W
Matt-W where did I get a snail from?
DanielC ?
Matt-W That can't be right 08:57
Oh, apparently TimToady set +o 08:58
DanielC Ah, you are an op.
viklund perl6: my @a="".split(":"); @a.push(1);say "Hej", @a.join(":")
p6eval elf 26994: OUTPUT«Hej1␤»
..pugs, rakudo c907d3: OUTPUT«Hej:1␤»
viklund perl6: my @a="".split(":"); @a.push(1);say @a.join(":") 08:59
p6eval pugs, rakudo c907d3: OUTPUT«:1␤»
..elf 26994: OUTPUT«1␤»
viklund hmm
08:59 xomas_ joined
viklund that must be a bug in pugs and rakudo 08:59
Matt-W that is slightly strange
quick, go file a bug before masak notices and does it for you 09:00
viklund ;)
he has filed a few bugs for me already actually... 09:01
but this works (in rakudo)
perl6: my @a="".split(":");say @a.join(":")
p6eval elf 26994, pugs, rakudo c907d3: OUTPUT«␤»
viklund and this: 09:02
perl: my @a=();@a.push(1);say @a.join(":")
it's only when you split first ;)
perl6: my @a=();@a.push(1);say @a.join(":")
p6eval elf 26994, pugs, rakudo c907d3: OUTPUT«1␤»
viklund oh, well... 09:03
viklund files bug
09:05 masak joined
DanielC o/ masak 09:05
masak DanielC: \o
viklund masak: I found a bug in rakudo ;) 09:06
before you ;)
DanielC heh
masak viklund: that tends to happen... occasionally.
09:08 bacek left
viklund perl6: my @a="".split(":"); @a.push(1);say @a.join(":") 09:08
p6eval pugs, rakudo c907d3: OUTPUT«:1␤»
..elf 26994: OUTPUT«Permission denied at ./elf_h line 324.␤»
masak viklund: did you file it yet?
ah, you did. 09:09
(dang!)
viklund I did??
when...
masak [09:03] * viklund files bug
viklund it's still rakudobug, right?
masak aye. 09:10
viklund ahh, I just realized I should search for it before I submit it
(didn't find it)
09:14 barney left
viklund perl6: "".split(":").elems.say 09:14
p6eval pugs, rakudo c907d3: OUTPUT«1␤» 09:15
..elf 26994: OUTPUT«0␤»
viklund perl6: "".split("snuffe").elems.say
p6eval pugs, rakudo c907d3: OUTPUT«1␤»
..elf 26994: OUTPUT«0␤»
viklund perl6: "".split("").elems.say
p6eval elf 26994, pugs, rakudo c907d3: OUTPUT«0␤»
viklund ;)
masak DanielC: could you summarize to me the smallest possible change that you think would advance the ver-auth-modules branch in Rakudo?
DanielC masak: I'm not sure I understand your question... 09:17
masak DanielC: ok, rephrasing: 09:18
DanielC: I would like to change the 'use' sub we looked at so it starts to recognize version and/or author information. right now we're at zero.
viklund bug filed
masak viklund++
DanielC: what's the smallest possible such change you can conceive of that would still be an improvement? 09:19
DanielC masak: Reading the version as a string, without any searching, and ignoring the author. That would be an improvement.
It would be enough to start playing with package management.
masak perfect, thanks. 09:20
what should Rakudo do on disk, instead of just plain looking in @*INC?
DanielC masak: I was hoping we could talk about that :-)
masak we can. :)
DanielC I have an incomplete prototype for a package manager, and I just hit precisely that question. 09:21
viklund dang, I can't send mail to perl.org. It rejects my messages since the "envelope sender is in my [perl.org] badmailform list"
where do I complain??
masak good question.
maybe ask on #perl on irc.perl.org?
viklund hmm, worth a try 09:22
masak or maybe it's obra you should contact. he maintains RT, I think. 09:23
09:23 ZuLuuuuuu joined
DanielC masak: I am thinking of installing module Foo::Bar in @*INC[$i]/Foo/Bar-v1.2.0/lib <-- I add the 'lib' so that there can be another subdirectory, META-INF, with metadata. 09:23
masak: But I haven't thought thoroughly about all the implications. 09:24
viklund masak: I also get this problem when I try to send to perl.org based mailing-lists
DanielC viklund: The list archive page says to send comments to Ask Bjørn Hansen at [email@hidden.address] 09:26
masak won't that one be rejected also? 09:27
DanielC Depends on whether it's a problem with the mailing list or all of perl.org 09:28
viklund DanielC: problem is, I can't send mail to perl.org ... 09:30
DanielC :(
viklund masak: can you send my mail to ask if I forward it to you?
masak viklund: yes, I can. 09:31
DanielC Or use a google mail address just for this communication.
viklund DanielC: I am using my gmail account...
DanielC ok, hotmail then ...
viklund >.<
masak oh please no. not hotmail.
09:33 eMaX left
masak DanielC: fwiw, I agree about the tone being somewhat too harsh on p6l right now. and it's not just you. 09:34
viklund masak: you've got it now
masak DanielC: OTOH, I'm not surprised. these are big, important questions, and they will not find answers quickly. of course people will dig themselves down into different camps.
DanielC masak: I seem to have had a few communication issues on the list. 09:36
masak DanielC: you're a brave person entering into this kind of discussion from the beginning. :)
DanielC :)
masak DanielC: look what happened to the Pod discussions in 2006, for example.
DanielC I guess those were problematic too. 09:37
masak DanielC: yes, see use.perl.org/~masak/journal/38644
DanielC *click* 09:38
It seems weird that people would argue about things like this... 09:39
masak why? 09:40
DanielC I keep thinking "it's just pod... how could that bother anybody?"
viklund It's just a modulename... 09:41
DanielC I know...
viklund: I was surprised that my email sparked criticism... and then I lost patience myself :-P
masak I think it's a combination of (1) everybody has used it, so they feel entitled to an opinion and (2) those are really big questions, and it's hard to get compass directions in the issues.
same reasons for people arguing about politics and religion, incidentally. 09:42
DanielC And (3) it's a non-technical question, ripe for bikeshedding.
masak oh, right. yes.
DanielC "The vocal opposition, headed (in some sense) by Mark Overmeer" ... That's the guy I was arguing with earlier about CPAN6, right? 09:43
masak yes. 09:44
DanielC ok
masak I don't dislike the guy, but he has a tendency to work on his own, and then express very strong opinions during this type of discussion. he often seems unwilling to compromise or take the other person's view. 09:45
DanielC That's the impression I got of him, based on my limited experience. 09:46
masak DanielC: on a totally unrelated note, you might want to look at this video: video.google.com/videoplay?docid=-4...1522818645 09:47
DanielC I used to be like that a lot. After spending a lot time thinking about a problem I would be confident I had the best solution, so I had very strong opinions about the solution. Eventually I kind of learned to "release early" and thus be less attached to my proposals. 09:48
*click*
masak well, as TimToady said on-list, we're all working on different time scales here.
DanielC masak: Ok, I'll watch that. And maybe I'll get a tip how not to become a poisonous person myself. I'm sure that most "poisonous people" don't mean bad. 09:49
09:49 presh left
masak working solo for several years and then springing forth with a complete solution is not a priori a bad idea. but it does give a certain disadvantage when the agile people wake up and start their early-often cycling. 09:50
DanielC yeah
Matt-W It's a good way to get resentful when people spring on your glorious design and rip it to pieces
It's happened to me before
And I must admit I've done it to other people 09:51
DanielC Matt-W: Same here (been on both sides)
09:51 Maghnus_ joined
Matt-W Including a fairly recent project at work, where we've had to gradually convince the guy who wrote it that while it might be gloriously flexible, it's entirely unusable because it's so bloody obscure 09:51
masak it can also be seen as slightly arrogant to go "don't you people worry, I got it covered. go and do something else; I'll be done in a year or two".
09:51 Maghnus left 09:52 eMaX joined, Maghnus_ is now known as Maghnus
Matt-W yes and then people just say "But we want it next week" 09:52
But it is always tempting to retreat and do it and present it fully-formed to the world
I found it quite hard to put Form up on github straight away
Of course, nothing's happening there at the moment, sorrya bout that :)
DanielC Yeah. As I said, I used to do that a lot, and a friend pointed out to me that this was a source of argument, so I started releasing more often. 09:53
masak Matt-W: that's ok. just be aware that I'm looking forward to ever new feature you add. :)
Matt-W masak: I think the main reason for delay at the moment is that I'm not really looking forward to tackling numbers
masak Matt-W: want some help? 09:54
Matt-W I would never say no :)
(to anybody who writes decent code)
masak let's set a meeting. for a small online hackathon.
Matt-W okay 09:55
masak well, my Perl 6 coding is still evolving, but I've written a bunch of popular modules, so I dare say it's at least decent.
:)
Matt-W I'm sure in some ways it's better than mine 09:56
Possibly in all ways
anyway, I just gave you access to the form repo
now when shall we have our hackathon
masak this week? 09:57
DanielC Matt-W: What's the hackathon about?
masak Friday?
Matt-W Form.pm
specifically the provision of number formatting
masak: when?
masak: I think your time zone is an hour ahead of mine 09:58
masak Matt-W: something like that, yes. it's 12 o'clock here now.
Matt-W yes it's 11 here
that does ease the scheduling constraints somewhat :)
09:58 jferrero joined
Matt-W now obviously I can't do it while I'm at work 09:58
09:59 synth left
masak which leaves...? 09:59
Matt-W friday evening! 10:01
masak aye. 10:02
viklund DanielC: re module naming conventions, I think that Johns point was that saying that it's in C isn't enough, you need to say C/Rakudo or C/Perl6ImplemenationX 10:03
DanielC viklund: *AHHHHH*
viklund: I had no idea that that's what he meant.
masak Matt-W: I usually dine at 7 or 8 in the evenings. sometime after that would be fine.
viklund it might be
DanielC It might be.
viklund: I assumed that there would be some sort of agreement on what the C bindings should look like. 10:04
viklund: Otherwise, the modules are obviously a lot less useful.
viklund DanielC: I don't think there will be 10:05
DanielC For precisely the reason you said.
This could be a problem, don't you think?
10:06 pjcj_ joined
DanielC It would make the modules with C bindings a lot less useful, and those modules are important. 10:06
All the high-performance modules use C.
Matt-W masak: yes that sounds about right
masak Matt-W: so, let's make it 19:00 UTC? 10:08
which translates to 20:00 your time and 21:00 my time.
Matt-W sounds good 10:11
masak how much time do we need? an hour? 10:12
10:12 presh joined
Matt-W depends how much we want to do really 10:12
if we aim to sketch out a way of doing the numeric formatting sanely, an hour may well prove sufficient to get something outlined 10:13
DanielC masak: Watching the video... say say that a derailing technique of poisonous people is to reply to every single email on a thread... Hm.. I tend to reply a lot but I don't do it in order to derail the discussion.
s/say say/says/ 10:14
masak DanielC: you started many of those threads. it's a bit different. :) I think. 10:15
DanielC :-)
Matt-W sometimes that's a valid thing to do 10:16
masak but it might be a good idea to combine replies when possible. the longer a thread gets, the more people on the list will defect and go read something else.
DanielC Combining replies is good advice. 10:17
10:17 payload joined
DanielC I don't normally combine replies, but there is no reason why I couldn't. 10:17
masak also, thought it's very difficult, it sometimes helps to leave the per-paragraph reply style, take a step back and look at the whole discussion. I should do that more often myself. 10:18
Matt-W you could fight against doing it based on the integrity of the threading information in the list archive :)
10:19 pjcj left
Matt-W masak: yes that can help, it's easy to get bogged down on the details and forget the wider view 10:19
DanielC I think that most flames would be helped a lot by doing what masak just said.
The flame wars that I have seen and/or participated in were like that. People replying paragraph per paragraph to individual details. 10:20
masak the most powerful debate technique I know in email discussions is spending ten minutes imagining that you hold the other person's views. and then replying.
viklund personally though, I dont' see it as a big problem that some ppl use ::PurePerl, some ::Perl and some nothing..., TemplateToolkit uses XS if it can and otherwise perl for example... 10:21
masak viklund: nod.
I don't think that implementation/bindings should be a part of the module name.
DanielC masak: In principle, I agree, but unless something changes, they will be (Foo::PurePerl) 10:22
masak and what's wrong with that?
it works for CPAN.
viklund but I don't have any strong opinions here
DanielC masak: It's not wrong.
masak then let's not try and fix it. :) 10:23
DanielC masak: And yes, it works. My earlier post was meant to be a simple suggestion: use a common way to denote this.
e.g. Instead of some being ::Perl an others ::PurePerl, maybe we can pick one or the other an make them all the same. 10:24
viklund I guess that some conventions are better if they are silent
masak DanielC: there are so many other, necessary, pieces of this puzzle that need conscious design. let's focus on those. :)
DanielC But it was a very minor suggestion.
masak: Sure. There are more important things to do.
masak build the simplest thing that could possible work. and then we can expand from that.
DanielC I didn't expect to seen an argument about the module name. It's not worth arguing about, so I think I'll just drop it. 10:25
viklund ;)
masak a working module says more than a thousand bikeshedding list emails.
DanielC That's a good way to look at it. 10:26
You can skip the whole bikeshedding discussion by just writing the <xyz> yourself.
Peaking of which, I have a rough prototype for a package manager for Perl modules. 10:27
masak cool.
DanielC I should think about posting it somewhere. What's the normal place to post this?
masak use.perl.org? perl-users?
CPAN?
depends on the type of 'posting it somewhere'. 10:28
DanielC I was thinking more like github.
Or per6-examples
masak that's certainly an option. 10:29
DanielC Most people seem to post their work in github. Is that the standard place to put new work for Perl 6? 10:30
DanielC starts making a new repository in github 10:31
Project name... Is that the full name with spaces? Like "Perl Package Manager"?
masak DanielC: no, it's the 'unix name' of the project 10:33
DanielC Or is that the short name, like "PPM" ?
ok
masak the Discription is the long name.
DanielC Will that name end up in the URL? Should I pick PPM or ppm ?
masak ppm. yes. 10:34
DanielC And what's the Home Page URL field for? Is it *my* home page? Like my blog?
masak leave it blank. 10:35
DanielC k
masak it's for projects that already have a home page elsewhere.
DanielC ah
DanielC is setting up his repository
viklund masak: this seems to be another place where we, inadvertently, set a standard ;) 10:37
github for perl6 stuff... 10:38
masak viklund: maybe. or we were simply the first ones in an inevitable trend. 10:39
github is a very good place. 10:40
DanielC Is there a way to recursively 'git add' every file in a directory?
masak DanielC: yes.
DanielC 'git add -r *' ?
viklund yes, ror++
git add .
masak DanielC: just add the directory.
viklund git add <dir>
masak no flags needed.
DanielC ok, thanks
masak DanielC: also, RTFM. it's not that long.
:P
DanielC ok 10:41
masak 'git help add'
DanielC ok
viklund or, 'git add --help' or 'man git-add'
masak or google for git-add.
viklund timtowtdi++ 10:42
masak lunches
DanielC \o/ it works 10:45
github.com/dcarrera/ppm/tree/master
Now I have my first ever git repository.
viklund DanielC: Congratulations!!
DanielC :-D
10:49 abra joined 10:51 ZuLuuuuuu left 10:56 payload left, ssm left 10:58 abra left 11:06 ssm joined 11:10 kimtaro joined 11:20 donaldh left, donaldh joined
masak DanielC: added ppm to proto's projects.list, and added you as a proto contributor (in the even that you'd like to change something) welcome aboard! 11:27
DanielC masak: :-D
masak: Thanks.
masak there are now 20 projects in that list, excluding pseudo-packages. 11:30
DanielC That's pretty good.
masak I expect proto will have played out its role before we reach 100.
DanielC More than I'd expect for a language that technically doesn't exist yet.
masak let the world wait. I'm coding Perl 6 today, and I don't see what all the Christmas fuss is about. 11:32
viklund masak: smth for the quote file! 11:34
masak :)
granted, I too want Perl 6 to be in some sense "prepared" for the world out there. that's why I'm reporting Rakudo bugs, writing user documentation, working on a package manager and a web framework, and complaining loudly about unacceptable technical deficiencies. 11:37
DanielC masak: Let me know if you get a chance to glance a the program. Right now I'm just going for a simple prototype so we can experiment a bit.
masak looks
DanielC In particular, it is packed with Unix commands (run "xyz"). 11:38
masak './proto install ppm' -- aah. :)
DanielC :-)
masak DanielC: that goes for many of the Perl 6 projects out there right now.
DanielC: we're not yet at a point where we can be very platform independent.
DanielC yeah...
Even chdir() doesn't work. 11:39
11:39 DemoFreak left
masak DanielC++ # code 11:39
DanielC :) 11:40
masak ready for a quickie review?
DanielC sure
masak %params{'verbose'} better written as %params<verbose>
no biggie, just nicer.
DanielC thanks 11:41
DanielC changes %params{'dir'} too
masak and %params{'sign'} 11:42
DanielC found it
masak I don't see much else to nag about actually. good job. 11:43
DanielC :-)
Matt-W applauds 11:52
11:53 clintongormley joined 11:54 flexibeast left 11:56 payload joined 11:57 payload1 joined, payload left
DanielC masak: I just finished watching the video. It was very interesting. Thanks for the link. 12:07
masak you're welcome. I got it from an email from allison on the parrot-dev list.
some dev had just written an uncharacteristically acerbic post. 12:08
DanielC .ety acerbic
phenny Can't find the etymology for "acerbic". Try etymonline.com/?search=acerbic
masak hm, might be English Fail on my part...
DanielC I suppose there isn't a dictionary bot here.
Anyways, I get your meaning. 12:09
masak ah, no. there is such a word: dictionary.reference.com/browse/acerbic
DanielC harsh
masak aye.
DanielC Anyways... on a different topic: did you glance at the Pod documentation for ppm? Do you think I'm going in the right direction? 12:10
I'm planning to use a SQLite db to track dependencies, and the packages I think I'll install in @*INC[$x]/Foo/Bar-v1.2.0--$count 12:12
masak only glanced. didn't read.
DanielC ok
masak will peruse later, with delight.
DanielC Thanks.
masak DanielC: here's the acerbic thread: groups.google.com/group/parrot-dev/...f86517fed# 12:13
DanielC *click*
masak allison++ # tough-skinned 12:15
Matt-W that is a wonderfully cool, calm and professional reply 12:20
12:20 synth joined, ZuLuuuuuu joined
DanielC masak: Before reading the Pod, update the repository so you get best documentation. 12:26
12:26 jferrero left 12:27 hanekomu joined
masak oki. 12:28
'./proto update ppm' :)
12:33 ssm left 12:36 pmurias joined 12:39 FurnaceBoy joined 12:50 pyrimidine joined 12:53 jferrero joined 12:54 ssm joined
pyrimidine DanielC re: my p6l reply on modules, my response wasn't just aimed at you, but at the discussion as a whole. 12:56
DanielC pyrimidine: Hi. 12:57
pyrimidine o?
DanielC Thanks. I thought it was just me.
pyrimidine Hi
No, it wasn't just you.
12:57 mizioumt joined
DanielC In any case, I'll try to be more careful on the list. 12:57
12:58 pmurias left
pyrimidine I've fallen into the same trap. With bioperl we have a 'whoever codes it first implements it', which sort of drives the problem you are seeing re:CPAN6 12:59
12:59 pmurias joined
pyrimidine OTOH, it also drives the work to get done faster 12:59
DanielC If I may change topic... what is bioperl? It sounds interesting. 13:00
13:00 Scorp1us left
pyrimidine search.cpan.org/~cjfields/BioPerl-1.6.0/ 13:00
13:00 Scorp1us joined
DanielC *click* 13:00
pyrimidine www.bioperl.org/wiki/Main_Page
DanielC cool 13:01
I had heard that Perl was popular in biotech.
Is biotech the right name for DNA sequencing?
pyrimidine Not just sequencing 13:02
DanielC ok
pyrimidine anythinh sequence-based
*anything
actually, anything that could represent something relevant to biology 13:03
Trees, sequences, alignments, blah blah blah
DanielC "bioinformatics" is the term I was looking for.
pyrimidine ye
*yes
DanielC Very interesting stuff.
I always thought of Perl as a language for the web an system administration. I only recently learned that it is big in biology. 13:04
pyrimidine what I would like is to get others in the field interested in perl 6
DanielC Do you use bioperl for work? 13:06
pyrimidine but it's tricky to get a biologist to learn more than one computer language
yes
13:06 jferrero left
pyrimidine (note the author for the cpan release) 13:06
DanielC What other language do they use besides Perl?
pyrimidine python, ruby, java
smattering of C/C++ 13:07
DanielC I wouldn't think that those would match Perl, since sequencing is fundamentally text searching.
pyrimidine yes, but the problem we face is parsing through very large files/databases
masak pyrimidine: I can already attest to Rakudo being more fit for that purpose in at least one instance. :) 13:08
DanielC Can python/ruby/java do that better than Perl? I thought Perl was supposed to be mighty fast at text searching.
pyrimidine perl is popular b/c of 'whipuptitude', perl 6 more so
masak I'm going to be teaching BioPerl this summer, by the way.
pyrimidine and I think it will eventually solve the speed issue
masak: cool!
13:09 payload1 left
DanielC pyrimidine: So Perl is actually slower? 13:09
masak the other day I read that someone was into BioPerl and even porting it to Perl 6. now where did I read that?
pyrimidine there is some cruft in the code ;)
that would be me
(re: bioperl -> bioperl6)
github.com/cjfields/bioperl6/tree/master
DanielC It's on github! 13:10
Quick, masak, add it to proto
:)
pyrimidine nothing really there yet
but working on it
masak pyrimidine: it is you! :)
masak adds to proto
21 projects and counting.
pyrimidine \o/ 13:11
DanielC I was the 20th project :-D
pyrimidine I've been playing with Moose a bit to test out conversion of interfaces to roles (also on github)
github.com/cjfields/biomoose/tree/master 13:12
a bit more work on that one 13:13
masak I also think that proto is the Perl 6 project with the highest number of committers: 17
pyrimidine nice
masak but that might have something to do with the fact that I force-add everyone. :)
pyrimidine: speaking of which, welcome aboard! :) 13:14
DanielC :-)
he he
pyrimidine thanks!
DanielC masak: I know you only mean proto to be a temporary tool, but I think that it has some seriously good ideas (using git) that could be useful in the long term. 13:15
masak DanielC: sure, why not? 13:16
proto dies, some ideas live on.
that's ok by me. :)
DanielC Or proto itself might leave on.
I mean... Linux was only meant to be a quick hack for a kid at school. 13:17
s/leave/live/ :-)
pyrimidine going to work
DanielC stoopid English phonetics.
13:17 snarkyboojum joined, cmarcelo joined
masak DanielC: I don't know why people find the idea of proto living on comforting. I certainly don't. it's based on at least three core concepts that will cease to hold as Perl 6 matures. 13:18
DanielC What are those core concepts? 13:19
masak 1. PERL6LIB
2. no multiple versions, no multiple authors
DanielC oh, right...
13:20 Scorp1us left
masak 3. no thought at all given to different platforms, Perl 6 implementations, etc. 13:21
DanielC I don't know what PERL6LIB is, but I understand the others.
13:21 snarkyboojum left
DanielC Ok, then an offspring of proto can carry on its legacy. :-) 13:21
masak in effect, proto is the dead end you get if you just implement a package manager without caring about the known requirements. :)
DanielC: you sound exactly like mberends. :P 13:22
13:22 Scorp1us joined
pyrimidine PERL6LIB is somewhat equiv to PERL5LIB 13:22
DanielC Yeah, but what is PERL5LIB?
masak pyrimidine: better known as PERLLIB, I think.
pyrimidine yes
DanielC Do you use it to embed Perl in your programs?
s/programs/C programs/
Matt-W no it's an environment variable which tells perl where to find modules
masak DanielC: it's a way of injecting paths into @*INC.
DanielC ah 13:23
ok
masak it's a time bomb, to be deprecated sometime before Christmas.
pyrimidine and it's 'replacement' is ...? 13:24
masak pyrimidine: ...what we're discussing at the moment. :)
DanielC Does proto use @*INC at all? I checked yesterday and in Rakudo @*INC is just ['lib', '.'] which is not very useful.
masak pyrimidine: see also S11.
DanielC: that's because PERL6LIB isn't set to anything useful on that server.
DanielC pyrimidine: I'm working on some ideas for that. github.com/dcarrera/ppm/tree/master
pyrimidine I was also guessing this relates to the current threads on p6l 13:25
masak DanielC: proto makes use of PERL6LIB during building of modules.
pyrimidine: aye.
pyrimidine hence the drama (discussed in backlog)
DanielC pyrimidine: Yes. Many of my posts on p6l were inspired by discussions here.
masak pyrimidine: well, people care deeply about module distribution, packaging, and management. 13:26
DanielC And everyone has an opinion... 13:27
13:27 Util left
pyrimidine masak: yes, particularly since perl begat CPAN (thus making it that much easier to install what you need) 13:28
masak and there's no clear right or wrong...
pyrimidine yes
just very passionate folks
DanielC y
masak pyrimidine: CPAN is great, so no wonder people want it for Perl 6 too.
DanielC Life would be much simpler if everyone would just realize that I'm always right :-)
masak pyrimidine: some people want to rebuild it from scratch, the CPAN people want an adaption path...
pyrimidine no other language has anything to really match it 13:29
and there isn't really a decent middle ground
seems like some of the logjam we're finding ourselves in atm (with bioperl)
DanielC What's happening at bioperl atm? 13:30
pyrimidine everyone's adopted it, so no one wants to break the code, deprecation has become a pita
DanielC ah
masak time for a clean break.
pyrimidine sound familar?
DanielC yeah...
masak yup. 13:31
pyrimidine reading lots of chromatic's Modern Perl blog lately
Anyway, bioperl (v5) is still anchored to p 5.6.1 b/c we have users bound via sysadmins to that version (usually on large clusters) 13:34
and thus: biomoose, bioperl6
clean break
masak pyrimidine++
pyrimidine thinking about sneaking Modern::Perl into Bio::Moose 13:35
but I'm actually thinking a better use of my time is to start porting more to perl 6 13:36
DanielC If you port to Perl 6 you can help find bugs in Rakudo.
pyrimidine already foudn a few 13:37
*found
I have a few tickets in RT
Matt-W yay!
pyrimidine and contributed the .trans operator (transliteration)
(though it really needs to be reimplemented as an alternating grammar) 13:38
13:38 unitxt joined, payload joined
pyrimidine rakudo: my $str = 'ATGCATGAT'; $str .= trans('ATGC'=> 'TACG'); say $str; 13:39
p6eval rakudo c907d3: OUTPUT«TACGTACTA␤»
13:39 skids joined, zamolxes joined
pyrimidine really going to work this time! 13:40
pmichaud good morning, #perl6 13:42
masak gm, pm.
DanielC o/
13:42 mizioumt1 joined
pyrimidine morning 13:42
13:43 ZuLuuuuuu left, pyrimidine left 13:47 Patterner left, hudnix left, avar left, rhr left, lambdabot left, frew|wor1 left, krakan left, Tene left, szabgab left, Sark left, andreasg_ left, masak left, dakkar left, araujo left, cj left, sjn left, meteorjay left, kane__ left, pastorn left, literal left, nnunley left, DanielC left, kolibrie left, omega left, nsh left, tarbo2 left, ashizawa left, TimToady left, [particle]1 left, Matt-W left, lumi left, frettled left, JDlugosz left, cotto left, shachaf left, betterworld left, breinbaas left, drbean left, BinGOs left, unitxt left, FurnaceBoy left, zev left, antiphase left, pugs_svn left, patmat left, jiing left, Caelum left, pnu left, mizioumt1 left, kimtaro left, cognominal left, Jedai left, c9s left, synth left, yves left, iblechbot left, [particle]- left, mj41 left, ascent_ left, Eevee left, broquaint left, elmex left, silug left, cavelife^ left, mizioumt left, Maghnus left, yahooooo left, Maddingue left, gbacon left, revdiablo left, hcchien left, finanalyst left 13:48 japhb left, buubot left, phenny left, Infinoid left, hanekomu left, buu left, dalek left, mkfort left, allbery_b left, frodwith left, ssm left, agentzh left, amoc left, estrabd left, jrockway left, kst left, Helios left, gfldex left, stepnem left, Aisling left, REPLeffect left, payload left, Scorp1us left, pjcj_ left, baest left, cls_bsd left, dfort left, lucs left, r0bby left, Woody2143 left, mtve left, zamolxes left, skids left, viklund left, PacoLinux left, charsbar left, jdv79 left, kcwu left, Lorn left, PerlJam left, cxreg left, pmurias left, clintongormley left, eMaX left, xomas_ left, sjohnson left, bloonix left, jnthn left, pochi left, ilbot2 left, sbp left, rafl left, awwaiid left, pasteling left, icwiener left, renormalist left, edenc left, AzureStone_ left, Grrrr left, s1n left, arnsholt left, StephenPollei left, donaldh left, rewt left, dukeleto left, windsok left, nbrown left, xinming left, presh left, felipe left, pmichaud left, hexmode left, mattp left, scrottie left, DQuest left 13:49 clkao left, jiing_ left 13:50 hatseflats left 13:55 cmarcelo left 13:56 japhb joined, cmarcelo joined, hatsefla1s joined, jiing_ joined, clkao joined, barney joined, mizioumt1 joined, zamolxes joined, skids joined, payload joined, unitxt joined, Scorp1us joined, pmurias joined, mizioumt joined, ssm joined, FurnaceBoy joined, hanekomu joined, synth joined, clintongormley joined, donaldh joined, kimtaro joined, presh joined, pjcj_ joined, eMaX joined, Maghnus joined, masak joined, xomas_ joined, hcchien joined, DanielC joined, viklund joined, finanalyst joined, icwiener joined, TimToady joined, dakkar joined, araujo joined, yves joined, iblechbot joined, baest joined, stepnem joined, cj joined, rhr joined, rewt joined, agentzh joined, amoc joined, avar joined, Patterner joined, hudnix joined, [particle]1 joined, mkfort joined, REPLeffect joined, irc.freenode.net sets mode: +o japhb, estrabd joined, PacoLinux joined, [particle]- joined, lambdabot joined, cognominal joined, buubot joined, sjn joined, sjohnson joined, phenny joined, dukeleto joined, jrockway joined, yahooooo joined, bloonix joined, buu joined, jnthn joined, charsbar joined, Maddingue joined, dalek joined, windsok joined, felipe joined, Sark joined, pastorn joined, meteorjay joined, nnunley joined, kane__ joined, literal joined, frew|wor1 joined, krakan joined, Tene joined, szabgab joined, irc.freenode.net sets mode: +oooo cognominal jnthn Tene szabgab, andreasg_ joined, Matt-W joined, shachaf joined, lumi joined, frettled joined, breinbaas joined, betterworld joined, BinGOs joined, JDlugosz joined, drbean joined, cotto joined, zev joined, jiing joined, Caelum joined, patmat joined, antiphase joined, pugs_svn joined, pnu joined, tarbo2 joined, irc.freenode.net sets mode: +o Matt-W, kolibrie joined, ashizawa joined, nsh joined, omega joined, nbrown joined, renormalist joined, Jedai joined, c9s joined, mj41 joined, pochi joined, xinming joined, ascent_ joined, broquaint joined, elmex joined, Eevee joined, cls_bsd joined, jdv79 joined, dfort joined, kcwu joined, allbery_b joined, gbacon joined, frodwith joined, kst joined, edenc joined, revdiablo joined, silug joined, cavelife^ joined, ilbot2 joined, sbp joined, DQuest joined, lucs joined, Lorn joined, r0bby joined, Gothmog_ joined, moritz_ joined, PZt joined, diakopter joined, cosimo joined, gabiruh joined, zostay joined, Bucciarati joined, nothingmuch joined, rjh joined, Trey joined, Khisanth joined, ingy joined, obra_ joined, integral joined, PerlJam joined, AzureStone_ joined, gfldex joined, Infinoid joined, Aisling joined, irc.freenode.net sets mode: +oo xinming PerlJam, Helios joined, Grrrr joined, pmichaud joined, s1n joined, Woody2143 joined, mtve joined, cxreg joined, pasteling joined, awwaiid joined, rafl joined, StephenPollei joined, arnsholt joined, scrottie joined, mattp joined, hexmode joined, irc.freenode.net sets mode: +o pmichaud
pmichaud 08:59 <viklund> perl6: my @a="".split(":"); @a.push(1);say @a.join(":") 13:57
08:59 <p6eval> pugs, rakudo c907d3: OUTPUT«:1␤»
Not a bug.
masak viklund: <nelson>ha ha!</nelson>
13:59 snarkyboojum joined 14:00 pmurias left 14:04 mizioumt1 left 14:05 mizioumt left, `alpha joined
`alpha hello 14:05
14:05 mizioumt joined
`alpha would it be possible in perl 6 to get $1 out of grep ? 14:05
Tene eh? 14:06
`alpha well
this does not compute in perl5
pmichaud my @a = <apple beta gamma delta>; my @b = grep /e./, @a; say @b.perl;
`alpha perl -e '$v=sub {print shift};$v->($1) for grep {/(c)/} ("aa","bbcd","cdde");'
pmichaud rakudo: my @a = <apple beta gamma delta>; my @b = grep /e./, @a; say @b.perl;
p6eval rakudo c907d3: OUTPUT«["beta", "delta"]␤»
pmichaud rakudo: my @a = <apple beta gamma delta>; my @b = grep /(e.)/, @a; say @b.perl; 14:07
p6eval rakudo c907d3: OUTPUT«["beta", "delta"]␤»
pmichaud rakudo: my @a = <apple beta gamma delta>; my @b = grep /e(.)/, @a; say @b.perl;
p6eval rakudo c907d3: OUTPUT«["beta", "delta"]␤»
pmichaud rakudo: my @a = <apple beta gamma delta>; my @b = grep /e(.)/, @a; for @b { say $_[0]; }
p6eval rakudo c907d3: OUTPUT«Method 'postcircumfix:[ ]' not found for invocant of class 'Str'␤»
pmichaud ...Str? Hmmpf. 14:08
oh, yes.
map is probably your friend here
`alpha yes I know
but grep has regex
I just wonder why that regex does not provide $1
pmichaud so does map
`alpha grep is better 14:09
pmichaud rakudo: my @a = <apple beta gamma delta>; my @b = map /e(.)/, @a; for @b { say $_[0] if $_; }
p6eval rakudo c907d3: OUTPUT«t␤l␤»
`alpha it's like
grep = map + if
more suitable for some things
pmichaud rakudo: my @a = <apple beta gamma delta>; my @b = grep { /e(.)/ && $_ = $0 }, @a; for @b { say $_[0]; } 14:10
p6eval rakudo c907d3: OUTPUT«Attempting to do sub operation on non-Sub.␤in method Any::grep (/tmp/tWuyKoLBB3:2)␤called from sub grep (src/gen_setting.pm:134)␤called from Main (/tmp/tWuyKoLBB3:2)␤»
pmichaud I have no clue what that means.
`alpha rakudo: say for <win rar>;
p6eval rakudo c907d3: OUTPUT«say requires an argument at line 2, near "for <win r"␤in Main (src/gen_setting.pm:2420)␤»
`alpha rakudo: say $_ for <win rar>; 14:11
p6eval rakudo c907d3: OUTPUT«win␤rar␤»
`alpha rakudo: say ($_,$1) for grep {/i/} <win rar>;
p6eval rakudo c907d3: OUTPUT«Statement not terminated properly at line 2, near ">;"␤in Main (src/gen_setting.pm:0)␤»
`alpha rakudo: say ($_,$1) for grep {/i/}, <win rar>;
p6eval rakudo c907d3: OUTPUT«winUse of uninitialized value␤␤»
`alpha mk 14:12
so it still fails
:(
pmichaud because $1 isn't defined there
(1) you didn't capture anything
(2) anything that gets captured by /i/ is going to be local to its closure
`alpha okay
pmichaud (3) a parenthesis capture will go first to $0
`alpha orly
masak yarly 14:13
`alpha: see S05.
`alpha rakudo: my$x;say ($_,$x) for grep {/i/ && $x=$0}, <win rar>;
p6eval rakudo c907d3: ( no output )
`alpha clueless
pmichaud rakudo: say $_[0] if $_ for map /(i)/ , <win rar>;
p6eval rakudo c907d3: OUTPUT«i␤»
`alpha sigh 14:14
pmichaud rakudo: say $_[0] if $_ for map /(i.)/ , <win rar trie simple>;
p6eval rakudo c907d3: OUTPUT«in␤ie␤im␤»
`alpha grep must be capable of it.
I dont know why it isnt. 14:15
bummer.
pmichaud rakudo: my $x; say $x for grep { /i/ && $x=$/ }, <win rar>;
p6eval rakudo c907d3: ( no output )
pmichaud rakudo: my $x; say $x for grep { /i/ && $x=~$/ }, <win rar>;
p6eval rakudo c907d3: OUTPUT«Use of uninitialized value␤Use of uninitialized value␤»
14:15 decasm joined
pmichaud rakudo: my $x; say $x for grep { /i/ && ($x=$/) }, <win rar>; 14:15
p6eval rakudo c907d3: ( no output )
pmichaud weird. 14:16
`alpha yes it is
:(
and does not compute in perl 5 too
pmichaud my $x; for (grep { /i/ && $x=$_ }, <win rar>) { say $x; }
oh, I know why.
grep isn't lazy yet. 14:17
dakkar uh? it runs the closure for each element of the list, setting $x for each element
then prints the last assignemnt
pmichaud so the entire grep is completing before the for loop starts.
right.
`alpha O.o
why?
dakkar I would have been surprised of a different behaviour
`alpha: because grep has to build its result before returning it
pmichaud all of the iterations of grep are occurring before the "for" loop even starts. 14:18
`alpha I see.
bad bad bad/
dakkar it ends up equivalent to: for <win rar> -> $_ { $x=$_ if /i/ }; say $x
pmichaud my @x; grep { /i/ && @x.push($/) }, <win rar>; .say for @x;
rakudo: my @x; grep { /i/ && @x.push($/) }, <win rar>; .say for @x; 14:19
p6eval rakudo c907d3: OUTPUT«Use of uninitialized value␤␤»
dakkar now, this is a different problem :/
pmichaud rakudo: my @x; grep { /i/ && @x.push(~$/) }, <win rar>; .say for @x;
p6eval rakudo c907d3: OUTPUT«Use of uninitialized value␤␤»
`alpha tries in p5
dakkar hmmm.
pmichaud rakudo: my @x; grep { @x.push(~$/) if /i/ }, <win rar>; .say for @x; 14:20
p6eval rakudo c907d3: OUTPUT«Use of uninitialized value␤␤»
dakkar rakudo: "test" ~~ /(e.)/; say $/
p6eval rakudo c907d3: OUTPUT«es␤»
14:20 REPLeffect left
pmichaud anyway, doing the 'if' inside of the grep is equivalent to using map+if, so grep doesn't buy anything there. 14:20
`alpha works in p5
the push trick
dakkar rakudo: my $x="test";given $x { /(e.)/; say $/ }
p6eval rakudo c907d3: OUTPUT«Use of uninitialized value␤␤» 14:21
pmichaud yes, but if doing the push trick, might as well use map.
dakkar pmichaud: rakudobug?
`alpha true pmichaud
not interesting
:>
pmichaud dakkar: yes, that looks like a rakudo bug to me. Either that or I'm not following something obvious.
14:22 snarkyboojum left
pmichaud rakudo: my $x = "test"; given $x { say $_; /(e.)/; say $/ } 14:22
p6eval rakudo c907d3: OUTPUT«test␤Use of uninitialized value␤␤»
dakkar rakudo: my $x = "test"; given $x { say $_; $_ ~~ /(e.)/; say $/ }
p6eval rakudo c907d3: OUTPUT«test␤es␤»
dakkar ok, I'd say this is a minimal test case
pmichaud oh!
`alpha ah I know the solution 14:23
pmichaud /(e.)/ isn't evaluating the regex because it's not in boolean context.
`alpha haha
pmichaud That's probably the rakudobug.
`alpha for p5
pmichaud rakudo: my $x = "test"; given $x { say $_; ?/(e.)/; say $/ }
p6eval rakudo c907d3: OUTPUT«test␤Use of uninitialized value␤␤»
pmichaud rakudo: my $x = "test"; given $x { say $_; ?(/(e.)/); say $/ }
`alpha grep {/reg(ex)/ and func($_,$1)} @list
p6eval rakudo c907d3: OUTPUT«test␤Use of uninitialized value␤␤»
pmichaud hmmm, that's not it either, I guess.
dakkar `alpha: that works, but it's rather ugly
`alpha well it is
heh 14:24
pmichaud note that (ex) captures to $0, not $1
`alpha yes I got it
I'm still p5 guy
viklund pmichaud: Not?
pmichaud viklund: Not.
dakkar I mean, you're doing a half-obfu of: for (@list) { func($_,$1) if /reg(ex)/ }
viklund ;)
`alpha :>
true dakkar
pmichaud depending on whether the return value of func() is intended to be a selector to the grep 14:25
viklund ahh, I get the string
pmichaud viklund: yes.
dakkar pmichaud: right, in that case the 'func inside grep' is useful
viklund luckily, I can't mail perl.org...
dakkar rakudo: my $x = "test"; given $x { say $_; /(e.)/ and say "ok\n$/" } 14:26
p6eval rakudo c907d3: OUTPUT«test␤Use of uninitialized value␤ok␤␤»
dakkar !
14:27 DanielC left
dakkar it's not matching against $_ 14:27
14:28 sri_kraih joined
`alpha dropped grep altogether 14:29
/reg(ex)/ && $cref->($_,$1) for @list 14:30
kthxbai
14:30 `alpha left
pmichaud rakudo: my $x = "test"; given $x { say $_; m/(e.)/; say $/ } 14:30
p6eval rakudo c907d3: OUTPUT«test␤Use of uninitialized value␤␤»
pmichaud bug.
gotta run -- back later 14:31
14:31 payload left
masak submits rakudobug 14:31
dakkar: unless you're already on it, of course. 14:32
dakkar masak: go on
I should be working :)
masak rakudo: $_ = 'test'; say $_; m/(e.)/; say $/ 14:33
p6eval rakudo c907d3: OUTPUT«test␤Use of uninitialized value␤␤»
masak bit simpler.
dakkar rakudo: $_ = 'test'; say $_; m/(e.)/; say "result: >$/<" 14:36
p6eval rakudo c907d3: OUTPUT«test␤Use of uninitialized value␤result: ><␤»
dakkar better shows that the problem is in the match operation, not in the match/result object
masak how so? 14:38
14:42 tulcod left 14:43 justatheory joined 14:46 Psyche^ joined, icwiener_ joined 14:47 zamolxes left, icwiener left 14:48 barney left 14:49 barney joined
dakkar masak: it could have looked like the "uninitialized value" were $/ 14:50
14:50 lichtkind joined
masak but it does. 14:50
dakkar uh… really?
rakudo: $_ = 'test'; say $_; m/(e.)/;
p6eval rakudo c907d3: OUTPUT«test␤»
dakkar ok, I'm stupid :) 14:51
masak probably just momentarily confused. :)
jnthn Good afternoon
masak oh hai jnthn!
Matt-W jnthn! 14:53
jnthn pmichaud: (not-reading-any-email over the past 3-4 days / p6l) I'd save your time and not bother. ;-) 14:54
I wish I hadn't.
Hi Matt-W :-)
14:54 Patterner left, Psyche^ is now known as Patterner
jnthn So, today's tasks...try and get mberends++ Temporal.pm into Rakudo. 14:55
And maybe look at BUILD, and try and work out some of the deferal test fails.
masak yay! 14:56
does that mean it's some kind of Rakudo day today?
jnthn No, just that I have a grant. :-) 14:57
masak has a deja vu
jnthn BUILD is sort of in the stuff in my grant.
And deferal certainly is.
.oO( deferal? deference? meh, my English sucks )
14:58
masak deferral, I'd guess. 15:02
masak checks
hm, deferral or deferment, it seems. 15:03
learn Esperanto today! :) the language that doesn't put up with this kind of crap. 15:04
jnthn masak: Too bad, I'm learning Slovak instead. ;-) 15:05
masak yes, it's probably a good idea not to mix. 15:07
15:08 ruoso joined
jnthn Esperanto may have been an easier option. 15:08
masak ya think?
anyway, I don't condone learning other languages.
just saying Esperanto helped my meta-learning of languages a lot. 15:09
jnthn 'cus it's logical?
masak fsvo logical, yes.
Tene esperanto isn't logical.
it's... it has issues. 15:10
masak no, it's not logical like, say, logic is.
Tene google for 'ranto' for a good summary.
masak a summary, at least.
Tene I'm a fan of lojban, though, so I have different biases. :)
masak the critiques in that one range from the on-the-spot to the very silly.
lojban seems nice. but it's for a completely different target group than Esperanto. 15:11
Tene yeah
jnthn should read up on them at some point to try and get the point/what they're about. 15:12
Tene esperanto's "language neutral" claim seems silly when you notice that it's very very european, with no notice whatsoever of asia.
Patterner ' as a character is strange.
masak Tene: that comes up a lot. I won't try to defend it. however, it is interesting to note that Eo has many isolating qualities, just like Mandarin and Japanese. 15:13
e.g. 'hospitalo' works as well as 'mal-san-ul-ejo' (place for people who are not well) 15:14
15:16 nihiliad joined
Tene The other part that bugs me is the standard esperanto claim of an extremely simple language definition, when the language definition imports huge amounts (uses terms like "noun" and "verb" without defining them 15:16
)
But, I'm rather picky. :)
masak indeed. the sixteen rules are just a facade. real grammar books are rather thicker. 15:17
Tene: on the other hand, the largest obstacle for me to learning Lojban is the complete reinvention of all grammatical terms.
I've started looking at it at times, and it's... different. 15:18
Tene I wouldn't be working on Perl 6 if I wasn't very opinionated about languages. :)
15:18 mizioumt left
jnthn So, but Temporal into the setting and we build. yay. :-) 15:19
15:20 donaldh left
masak \o/ 15:20
jnthn temporal.t currently contains a fully copy of the module.
Ah, with a comment saying that should go...
Tene What's this temporal thing?
15:20 ssm left 15:21 donaldh joined
jnthn Tene: Date/time handling. 15:21
Tene Relevant to this channel, I had a translation of the lojban grammar into perl 6 rules, but I lost it on a crashed HD.
jnthn Aww. :-(
Oh noes...we fail test 18. 15:22
Tene rakudo: say "mu xagji sofybakni cu zvati le purdi" ~~ Lojban::#ridi
p6eval rakudo c907d3: OUTPUT«Could not find non-existent sub Lojban␤»
Tene Bridi
Quite right, p6eval. Could not find indeed. 15:23
[particle]- that's kind of a funny error message 15:25
masak [particle]-: Rakudo thinks that all undeclared things are subs.
[particle]- success: non-existant sub Lojban found! 15:26
15:26 _REPLeffect joined
jnthn masak: That's 'cus they are ;-) 15:26
[particle]- masak: yeah, they are :)
15:26 _REPLeffect left
masak nonexistent things are subs? 15:26
[particle]- all of them.
15:26 REPLeffect joined
masak Perl 6 never ceases to amaze me. 15:27
jnthn rakudo: world-peace
[particle]- :)
p6eval rakudo c907d3: OUTPUT«Could not find non-existent sub world-peace␤»
jnthn See?
masak jnthn: do you agree that the error message is a bit tautological, though?
15:27 meppl joined
masak of course we could not find the sub, it's non-existent! 15:27
[particle]- we'll get better error messages with std 15:28
masak ah, so we should just give up trying to improve them and wait for STD? :P
[particle]- can't wait for next week, when he can start actively developing again 15:29
masak: don't give up submitting bug reports!
masak of course no, don't be silly. :) 15:30
but I can't decide if there's something wrong with the error message or not...
[particle]- i kinda like how your bug reports are a de facto "this week in #perl6"
the error message is silly. of course you can't find something that's non-existant 15:31
and if it's non-existant, how do you know it's a sub?
masak so, how should it read, then?
[particle]- silly compiler.
masak "green colourless ideas sleep furiously." 15:32
[particle]- 'world-peace' cannot be found. give up, and go home.
jnthn The original quote I think had colourless first. :-)
15:32 alester joined
jnthn
.oO( gah, I shouldn't know that )
15:33
masak jnthn: you're probably right.
[particle]- s/ideas/dreams/
but we know what you meant :)
masak yup: en.wikipedia.org/wiki/Colorless_gre..._furiously
[particle]-: no, ideas.
[particle]- hrmm
future. i just got back from the 15:34
masak laughs at the subsection "Attempts at meaningful interpretations" 15:35
15:36 mizioumt joined
pugs_svn r26995 | jnthn++ | [t/spec] Fudging of defer-call.t that I forgot to check in yesterday. Ooops. 15:37
jnthn oh, gah, I had an out of date temporal.t 15:40
So actually we pass all.
mberends++
viklund is glad that november now has reported bugs 15:43
masak indeed. lichtkind++ 15:44
now we just need to get back to hacking on november again. :)
the last big thing I did was to add a nightly smoke. feather.perl6.nl/~masak/november-smoke.html 15:45
need to upgrade the rakudo version I smoke against, now that it's possible.
would be nice to smoke both against latest-release and bleeding every night. 15:46
15:46 jan_ joined
viklund hmm, why not smoke all proto projects that have tests? 15:46
s/proto projects/projects proto knows about/ 15:47
masak viklund: that's a really cool idea. 15:48
but I am old and weak, and lack a sense of initiative...
viklund how does one smoke?
masak oh, how I wish there were young, entrepreneurial souls on this channel who like a good challenge!
viklund: see my ~/bin on feather. 15:49
viklund ok
and then you put that in cron?
seems straight forward...
masak it is.
15:51 payload joined 15:57 frew|wor1 left
pugs_svn r26996 | jnthn++ | [t/spec] Re-fudge something I prematurely unfudged. 15:59
pmichaud 15:31 <[particle]-> the error message is silly. of course you can't find something that's non-existant 16:02
15:31 <[particle]-> and if it's non-existant, how do you know it's a sub?
we know it's a sub because all undeclared barewords are assumed to be subs.
16:02 frew joined
jnthn pmichaud: I think the issue was more about the "couldn't find" and "non-existent" :-) 16:03
16:03 frew left
masak exactly. 16:03
[particle]- pmichaud: yes, that i know, jnthn is correct
pmichaud std: world-peace
p6eval std 26995: OUTPUT«Undeclared routine:␤ world-peace used at 1 ␤ok 00:02 35m␤»
jnthn But that's a compile time warning rather than a runtime error.
pmichaud at some point we'll be able to issue that warning as well, yes.
16:03 frew joined
dalek kudo: 304ae9b | jnthn++ | t/spectest.data:
Add defer-call.t and defer-next.t to spectest.data.
16:03
kudo: 11c1c84 | jnthn++ | :
Merge branch 'master' of [email@hidden.address]
kudo: e5c8a34 | jnthn++ | (2 files):
Add Temporal.pm to the setting. mberends++
jnthn Aye.
16:03 frew left
kudo: 12a6019 | jnthn++ | t/spectest.data:
Add temporal.t to spectest.data.
jnthn Whee.
pmichaud: I'm looking at re-working BUILD a bit to be more like a sub-call kinda thing.
pmichaud jnthn: that's fine.
jnthn pmichaud: The main issue is that the default BUILD then doesn't quite know what the current class is so easily.
16:04 frew joined
pmichaud oh, hmmm. 16:05
jnthn smop seems to solve it by using a $*BUILD context var.
erm,
sorry
$*CLASS
pmichaud I'm okay with using a context var for that for now.
jnthn See BUILD in svn.pugscode.org/pugs/v6/smop/src-s1p/Object.pm
OK. It may even make sense as the long term solution.
pmichaud were you going to do BUILD in PIR or P6? 16:06
jnthn PIR
pmichaud either way, it's no problem to get at the context var
find_caller_lex does what you want.
jnthn I think we need it available for compiling the setting.
Oh, The Awesome.
The other thing I was going to ask you about on this topic...
pmichaud find_caller_lex will find any lexical, not only those that are marked "is context"
jnthn S12:
Whether you write your own C<BUILD> or not, at the end of the C<BUILD>,
any default attribute values are implicitly copied into any attributes
that haven't otherwise been initialized.
How do we text not-otherwise-initialized? 16:07
*detect
pmichaud My approach had been that attributes would be left as PMCNULL until initialized
jnthn That epic fails though. :-(
pmichaud ...because?
jnthn And is the reason I already did the refactor of CREATE.
masak set them in the beginning of the BUILD. :)
jnthn Because submethod BUILD { $!name = "fido" } # oops, null PMC access 16:08
16:08 hanekomu left
pmichaud okay. 16:08
viklund hah, I had almost forgotten how to read a file in perl5...
jnthn Also because of the refactor to CREATE already to use a kind of "proto-instance" so we'll be able to do the traits on containers later on.
pmichaud then this is what you want
(more)
viklund parental leave and only perl6 hacking... 16:09
pmichaud currently we initialize things to Perl6Scalar
by default the Perl6Scalar references a common Failure object
jnthn (Or Perl6Array or Perl6Hash or whatever the "is" is)
pmichaud instead, we should make the Perl6Scalar reference some common "I'm not initialized yet" object. 16:10
[particle]- ProtoFailure
pmichaud or for that matter, make a Perl6Scalar that points to PMCNULL
null $P0
$P1 = new ['Perl6Scalar'], $P0
jnthn I suspected that's where you were going, but it doesn't handle an uninitialized array or hash or other thingy.
pmichaud the only other option I can see is an "uninitialized" property on the PMC then 16:11
jnthn And assignment clears it?
pmichaud yeah, but I'd hate for assignment to have to do that every time.
jnthn Yeah. :-|
[particle]- yeah, that's weighty
pmichaud I'm about to implement Proxy objects, though -- perhaps it can be done with a form of proxy. 16:12
jnthn That could work.
Alternatively
We already have to check if it's rw
erm, ro
but you plan to flip that
pmichaud yes, but flipping that depends on proxy
16:12 dakkar left
pmichaud (which in turn depended on fixing self-method calls, which I did yesterday :-) 16:12
jnthn OK 16:13
pmichaud anyway, you're correct, we already have to check it's rw.
jnthn But my thought is that when we'd give an error, we then as a fallback check another property.
a "to_be_inited_attribute"
pmichaud We could have a special value of "rw" that means "rw but uninitialized"
jnthn At whcih point we clear that and enable rw
So we're only doing one check as usual, and before we go to error we can check this other case. 16:14
pmichaud actually, I can envision several values of rw
"rw but constant" being another
[particle]- write-once
jnthn Aye.
OK, my sense is that if I put anything in now it'll only make you refactor more soon.
pmichaud I do like the "check on error"
16:14 masak left
pmichaud I think we'll go for that approach. 16:14
jnthn And we're not going to get More Wrong than we are now by skipping this step now. 16:15
pmichaud I do expect my refactors to land soonish.
jnthn So I think best is I leave you go for the refactor you plan, and then one of us gets this in afterwards.
And in the meantime, I'll just do the refactor to make BUILD work more like spec.
pmichaud that sounds like we have an excellent plan.
jnthn But not initialize the uninitializeds.
pmichaud And now I plan to head to lunch.
jnthn Wow, so many good plans! :-)
pmichaud (have to run -- I'm not in a place conducive to long discussions anyway). 16:16
bbiah
16:17 finanalyst left, pmurias joined
pmurias ruoso: is incremenatly adding features a good idea or should i follow some specific direction with my gsoc project? 16:18
ruoso: hi
16:20 barney left 16:23 hanekomu joined
jnthn > class Foo { has $.answer; submethod BUILD { $!answer = 42 } } 16:25
> my $x = Foo.new; say $x.answer;
42
lambdabot <no location info>: parse error on input `class'
<no location info>: parse error on input `='
jnthn \o/
ruoso hi pmurias 16:26
Tene masak: I see you were talking about a branch trying to parse ver info on modules? 16:28
oh, enomasak
ruoso pmurias, let's take a look at the original roadmap 16:29
16:29 DanielC joined
pmurias ruoso: you mean the gsoc schedule? 16:30
ruoso yes
pmurias it seems to suggest expanding Signature 16:31
16:32 pyrimidine joined
pmurias or i could make mildew support $! and finish Failures 16:33
ruoso pmurias, let's take the gsoc schedule to the wiki, so we can detail it a bit more 16:34
ruoso creating a wiki page 16:35
16:35 Patterner left
Tene jnthn: sweet 16:35
pmurias bjj& # i'll be back later today 16:36
16:36 pmurias left
ruoso @tel pmurias www.perlfoundation.org/perl6/index...._gsoc_2009 16:37
lambdabot Consider it noted.
Tene jnthn: if that works now, it'll be your fault that I start working on my POE clone again. 16:39
16:40 Psyche^ joined, Psyche^ is now known as Patterner
jnthn Tene: I found to pass BUILD.t I needed to do methods having a default *%_ too 16:41
Tene: Which was part of my grant, and which is now sufficiently done to pass the tests.
spectesting now, the two changes :-) 16:42
Also, I'm very happy to be to blame for progress on your POE clone. ;-)
Tene I have too much to work on... maybe I should quit my job. 16:43
16:45 donaldh left, ZuLuuuuuu joined
ruoso @tell pmurias I think we don't need to support $! properly for starts, because this depends on the handling of additional closures in each block. I think we just need to throw exceptions, and that you already done... 16:45
lambdabot Consider it noted.
Tene jnthn: did we ever get sufficient tests for exception behavior for me to implement it better? 16:47
16:52 lichtkind left
jnthn Tene: Well, one big issue (though I'm not sure about tests for it) is that at least return, maybe all control exceptions, are meant to be lexically, not dynamically scoped. 16:55
rakudo: sub foo { (1,2,3).map({ return "wtf" }); say "lolz I'm still here" }; foo() 16:56
p6eval rakudo 12a601: OUTPUT«Type check failed on return value␤in method Any::map (src/gen_setting.pm:30)␤called from sub foo (/tmp/SPYK9F0sms:2)␤called from Main (/tmp/SPYK9F0sms:2)␤»
jnthn We there tried to return from the map, but should instead have returned from the lexically enclosing foo. 16:57
Tene ah, that.
pugs_svn r26997 | jnthn++ | [t/spec] Unfudge for Rakudo an enum test we've been passing since the dispatch refactor. 16:58
jnthn I think TimToady++ clarified another bit of the S04 recently too. 16:59
That related to exceptions.
pugs_svn r26998 | jnthn++ | [t/spec] Various corrections to BUILD.t. 17:03
17:05 mizioumt left
dalek kudo: 05a4a1c | jnthn++ | src/parser/actions.pm:
Initial cut of giving methods and submethods a *%_ unless they already have a slurpy hash parameter, to meet Interface Consistency section of S12.
17:09
kudo: a17b297 | jnthn++ | src/ (2 files):
Refactor BUILD to be more in line with the spec. This should resolve the most common issues people run into.
pugs_svn r26999 | jnthn++ | [t/spec] Unfudge 4 tests that now pass after Rakudo started conforming to interface consistency section of S12.
pyrimidine \o/ 17:10
dalek kudo: 7cfa196 | jnthn++ | t/spectest.data:
Add S12-construction/BUILD.t to spectest.data; we now pass all of it.
17:14
17:18 DemoFreak joined, cmarcelo left
jnthn std: say 1.infix:<+>(1) 17:22
p6eval std 26999: OUTPUT«ok 00:02 36m␤»
17:22 mizioumt joined 17:24 japhb left 17:28 iblechbot left
pmichaud jnthn++ # BUILD fixes and improvements 17:28
jnthn pmichaud: For RT 64930, I don't think we can do a great deal. 17:29
pmichaud: I think best is to add a note on the Get Rakudo page about the workaround for the bug.
And then resolve the ticket.
17:30 estrabd left
jnthn It's a GCC bug, affecting a specific (and prerelease) version. So I'm not inclined to waste any more time looking for a workaround. 17:30
pmichaud agreed.
btw, I assigned a couple more tickets to your id yesterday. :-P
jnthn (I already did try on the laptop of a local friend to work around it and no fun...)
oh noes! 17:31
erm, no luck
Sark std: say 'this is a test' 17:32
p6eval std 26999: OUTPUT«ok 00:02 35m␤» 17:33
Sark std: loop(my $i=0;$i<= 100000;$i++){}; say 'im finish' 17:34
p6eval std 26999: OUTPUT«##### PARSE FAILED #####␤Unable to parse quote-words subscript; couldn't find right angle quote at /tmp/zIKeGymg9y line 1:␤------> ␤FAILED 00:02 36m␤»
Sark tz 17:35
is perl6 on a loop faster than perl5 ? 17:37
pmichaud rakudo is slower at the moment. 17:38
perhaps even much slower
17:39 DanielC left
StephenPollei rakudo: loop(my Int $i=0;$i<= 100;$i++){}; say 'im finish' 17:39
p6eval rakudo 12a601: OUTPUT«im finish␤»
TimToady that shouldn't work
two ways
needs whitespace after loop and before <= 17:40
rakudo's parser is being too forgiving there
StephenPollei rakudo: loop (my Int $i=0; $i <= 100;$i++){}; say 'im finish' 17:41
p6eval rakudo 12a601: OUTPUT«im finish␤»
17:41 DanielC joined
TimToady std: loop (my Int $i=0; $i <= 100;$i++){}; say 'im finish' 17:41
p6eval std 26999: OUTPUT«ok 00:02 36m␤»
jnthn pmichaud: done
TimToady perl 6 distinguishes control stuctures from ordinary sub calls, and loop() would be a sub call 17:42
*structures
DanielC Is Perl 6 going to have C bindings like Perl 5? Is it hard to get all the implementations to have the same C bindings?
I'm thinking of all the performance-intensive modules that use C.
TimToady eventually
DanielC Oh, and the modules that hook up to C libraries... 17:43
TimToady but also eventually, we hope to be able to compile Perl down to nearly as fast as C
17:43 estrabd joined
DanielC perl as fast as C == good 17:43
TimToady if you're willing to supply sufficient type info
jnthn And somebody is willing to write a sufficiently good type based optimizer. ;-)
TimToady will probably also need pragmas to tell it where it's allowed to cheat 17:44
PerlJam jnthn: looks like you're set for grant money for the next decade or so ;)
pmichaud PerlJam: I think the bottleneck there may be "having sufficient grant resources"
but assuming they're available, then yes, jnthn++ is set :-)
DanielC That means that you won't have to go to the Parrot level for performance either...
But in any case, you still need C bindings to use all the C libraries that are around. 17:45
PerlJam perhaps. TPF has always seemed to come up with "grant resources" one way or another.
DanielC So I'm wondering if having multiple implementations would create a problem for C bindings (e.g. having each implementation do it differently). 17:46
pmichaud PerlJam: I have about 4+ years of working on Parrot/Perl6 that says otherwise :-)
make that 3+ years 17:47
StephenPollei well swig can make binding for different languages, so I think you could make it work with multiple different binding styles, but then again you could try to standardize on one style
DanielC StephenPollei: So I guess that if nothing else, people can at least use swig. 17:49
[particle]- as long as swig has the right emitter 17:50
17:50 pmichaud sets mode: +o TimToady
StephenPollei emitter(s) , it would be helpful for them to not duplicate similar emitters 17:50
jnthn rakudo: class P { submethod foo() { say "wtf" } }; class C is P { }; C.new.foo 17:53
p6eval rakudo 7cfa19: OUTPUT«Method 'foo' not found for invocant of class 'C'␤»
jnthn Yay.
rakudo: class P { }; class C is P { submethod foo() { say "wtf" } }; P.new.foo 17:54
p6eval rakudo 7cfa19: OUTPUT«Method 'foo' not found for invocant of class 'P'␤»
jnthn Good.
goto DINNER; 17:55
17:56 Chillance joined
pmichaud jnthn: be sure to take a continuation so that you can easily get back here!!! :-) 18:03
18:07 elmex left
rjh it's too late, he's already left this lexical scope 18:09
DanielC S30 (Standard Library) is not written yet. Does that mean that currently there is no definition of such functions as open() and chdir() ?
StephenPollei rakudo: chdir('.') 18:10
p6eval rakudo 7cfa19: OUTPUT«Could not find non-existent sub chdir␤»
pmichaud DanielC: S32 has most of it. 18:11
DanielC thanks
pmichaud fwiw, I can easily write a chdir() but I'm not sure what package it belongs in.
DanielC rakudo: open("/etc/passwd") 18:12
p6eval rakudo 7cfa19: OUTPUT«operation not permitted in safe mode␤in Main (lib/Safe.pm:25)␤»
[particle]- DINNER: 18:13
DanielC Well, looks like open() is available.
[particle]- is jnthn back now? ;)
pmichaud I think it might be a lazy goto. 18:14
[particle]- buubot: spack chdir
buubot [particle]-: Sorry, I couldn't find any matches for: chdir
DanielC How do I get the file handle out of open()? Is it $FH = open("foo.txt",true) ?
pmichaud my $fh = open('foo.txt', :r) 18:15
DanielC thanks
and then I print with print $fh,"hello world"?
say $fh,"hello" 18:16
pmichaud $fh.print('hello world')
DanielC thanks
pmichaud $fh.say('hello world')
StephenPollei so does that mean there might be a 'os' and/or 'posix' package so the global namespace doesn't get too polluted?
pmichaud I don't know if the functional form of printing to a filehandle works yet (ever?)
StephenPollei: well, I'm more interested in knowing the Package so I know what source file in Rakudo should receive the code :-) 18:17
[particle]- say $fh: 'hello' 18:18
is there prior art in pugs? 18:19
rjh Is it okay that Junction.eigenstates returns a ResizablePMCArray? Or is that a fudge until you have a read-only Perl 6 list object
[particle]- that should not be a native parrot pmc, but i don't know the reason it is that way now 18:20
StephenPollei rakudo/src/builtins/io.pir has open, but I don't think chdir should go there
rakudo/src/builtins/posix.pir maybe? 18:21
DanielC Can I run $fh.slurp? 18:26
18:27 justatheory left 18:28 japhb joined 18:29 payload left 18:30 payload joined
pmichaud I'm wanting chdir() (and eventually open()) to appear in src/setting/ somewhere. 18:33
we're trying to move things out of src/builtins except for those things that _have_ to be there (i.e., are too specific/complex to be handled in src/setting/)
StephenPollei ok yes I see IO/ and IO.pm there now and lots of things that appear to be associated with types 18:34
IO.pm has close but not open 18:35
setting/IO/Socket and setting/IO/Socket.pm .. so I still don't think chdir and many of the old perl5 functions that were posixy should go there 18:37
18:37 iblechbot joined
StephenPollei "chdir", "chmod", "chown", "chroot", "fcntl", "ioctl", "link", "lstat", "mkdir", "open", "opendir", "readlink", etc etc .. some of the old perl5 functions were very posixy 18:39
pmichaud oh, I think that open() belongs in IO, definitely. 18:41
I haven't gotten around to moving that one yet.
StephenPollei sure but what about ioctl, chroot, getpwent, waitpid 18:43
pmichaud right, I don't know where those belong. 18:44
I'm not opposed to creating IO::POSIX for now as a place for them. 18:45
StephenPollei yes open should go in IO.pm most likely, I just wonder about the rest, even chdir could go in IO if you strentch IO to be all file related stuff
pmichaud or even just POSIX
doesn't have to be "official" yet -- this is one of those places where any implementation (even if it's ultimately wrong) probably trumps "no working implementation"
It's easy enough to change later, too.
StephenPollei OS::POSIX OS::WIN maybe 18:46
pmichaud I'll go with that for now.
well, I don't want to get too os-specific yet.
StephenPollei k and perl5 did emulate the other functions on other platforms iirc 18:47
pmichaud correct, as does Parrot.
besides, iirc POSIX describes an API, not an OS.
StephenPollei true true api not os .. otherwise it would be OS:Unix and OS:Win 18:48
DanielC rakudo: pack() 18:51
p6eval rakudo 7cfa19: OUTPUT«Could not find non-existent sub pack␤»
DanielC Are pack() / unpack() gone in Perl 6 or just not implemented in Rakudo?
pmichaud I seem to recall a leaning towards "gone" 18:52
I think this came up recently either here or on p6l
DanielC I don't need pack(). I just want to know if it's ok to make a function called pack() and want to know if it'll conflict.
jnthn pmichaud: Error: continuation trying to jump from runloop 'relax' to runloop 'perl6'
;-)
pmichaud jnthn: D'oh!
Those parrot runloops are always causing us trouble!
TimToady actually, the original goto had an undefined label; needed goto 'DINNER' for forward ref 18:53
pmichaud jnthn: BTW, I have to take a brief moment to say "Wow." on getting the new dispatch stuff in place.
That is a truly impressive achievement, in my book.
jnthn pmichaud: You like it? 18:54
pmichaud I haven't looked at the code (don't necessarily want to :-), but the fact that it works at all is.... nice. 18:55
jnthn It's probably more right than wrong, and it's certainly more right than before. :-)
I've got a good bit of thinking to do on the roles stuff. 18:56
pmichaud if it weren't for the fact that you said you were going to do it, I would've doubted it could be done at all in current Parrot.
jnthn TimToady: Actually, you may have some thoughts here.
The issue I ran up against that I'm not happy I've a good answer to yet is:
"What methods on a role are punned?"
For example. We can't pun ACCEPTS, otherwise we blow away type checking on the role. 18:57
We run into issue with .WHAT too, but that one goes away when we make it really a macro and not a method.
Ah, and .Scalar and .list got us into trouble too... 18:58
TimToady perhaps ACCEPTS is only ever called on defined patterns
pmichaud .Scalar is a rakudo-only thing.
jnthn .list isn't...
pmichaud correct.
hopefully .Scalar will disappear in the capture/list refactors. 18:59
jnthn At the moment I kinda have a pun blacklist.
But Perl 6 + special list = oh noes, generally.
I have the same kinda situation with Whatever too.
Generally, a method call on it should make a closure.
But equally *.ACCEPTS doing that gets us into all kinds of bother. 19:00
pmichaud for Whatever methods, it might be worth thinking about autoload semantics.
jnthn And again, a blacklist controls it.
pmichaud: Maybe - can you elaborate?
TimToady well, I've wondered whether *.foo in general should be hardwired at compile time
pmichaud there's a way to autoload methods 19:01
for classes
i.e., $foo.bar( ) could refer to a method that needs to be autoloaded at runtime
if that's the case, then *.bar() is something of a "generate this method at runtime" sort of thing.
jnthn pmichaud: Been there, tried it that way too. :-(
pmichaud: Whatever ~~ Any
pmichaud: Any has a bunch of methods that we'd rather like to make closures out of. 19:02
19:02 mberends joined
TimToady I think *.foo wants hardwiring because of the arguments anyway 19:02
19:02 justatheory joined
jnthn Unless the AUTOLOAD takes precedence over the method search rather than being a fallback. 19:02
TimToady otherwise you eval the args too early
pmichaud TimToady: very good point, thanks.
Yes, it does sound like *.foo is syntactical then.
TimToady *.foo(bar()) wants to be { $^a.foo(bar()) } 19:03
pmichaud I think we also ran into a similar thing
jnthn TimToady: That's a really good point, though we've only moved the blacklist to the compiler.
pmichaud where *.foo.bar wants to be { *.foo.bar } and not { *.foo }.bar
jnthn (No bad thing for performance of course. But still doessn't solve the Other Issue.)
pmichaud: We could probably deal with transforming the whole chain at compile time. 19:04
TimToady I think there's a defined/undefined criterion on parameters that determines whether they will bind abstractly or concretely
jnthn TimToady: Sorry, I don't follow.
TimToady multi method ACCEPTS ($self where {not .defined}: $targ) is the abstract interface 19:05
multi method ACCEPTS ($self where {.defined}: $targ) is the concrete interface
but perhaps with sugar
pmichaud or perhaps even
multi method ACCEPTS (Defined $self: ... )
jnthn OK, but if we're saying we're going to do the Whatever transformation int he compiler, we can't statically know whether we have something defined. 19:06
Oh, or maybe it's not a problem there...
pmichaud or, for that matter
jnthn Since we'd never write *.ACCEPTS when we wanted to type check.
TimToady *.foo is just sugar, doesn't have anything to do with dispatch now
jnthn Or smart-match
Right.
pmichaud multi method ACCEPTS (Abstraction $self: ... } # abstract interface
jnthn OK, so that solves the whatever problem.
19:06 REPLeffect left
jnthn The role punning one is still interesting though. :-) 19:07
TimToady remember we once had a discussion about meta vs method vs metamethod, but I see them as parameter constraints now
pmichaud Yes, that seems to work for me.
I like the notion of using the Abstraction role to distinguish.
jnthn I agree with that. 19:08
pmichaud but defined/undefined works for me too.
TimToady may be unifiable
jnthn I agree it solves the problem of ACCEPTS on type-y things vs none-type-y things.
I'm just not quite straight on how it solves the role punning issue yet.
ruoso the Abstraction role would mean that the undefined object is of a different type from the defined object 19:09
jnthn ruoso: It already is in Rakudo anyway.
We've always had the proto-object as "an instance plus a role"
ruoso I'm aware of that... but I thought we already had agreed that this poses a problem... 19:10
pmichaud however, it's possible for us to make Abstraction into a subset instead of a role, though.
jnthn ruoso: I'm struggling to remember exactly why.
19:11 elmex joined
ruoso jnthn, Dog{ :name<Fido> } 19:11
pmichaud ruoso: that by itself doesn't pose a problem for us.
19:11 REPLeffect joined
ruoso conceptually, the only difference between Dog{ :name<Fido> } and Dog is the WHENCE 19:11
pmichaud Sure, no problem. 19:12
jnthn Right.
pmichaud unless we say that Dog{ :name<Fido> } isn't an Abstraction.
ruoso well... it certainly isn't a "Abstraction"
in a semantic sense
it's a soon-to-be object
pmichaud afaik, it's still not a specific concrete instance, though. 19:13
anyway, we could naively start with the notion that subset Abstraction where { .defined }
TimToady that's correct, the Dog role may be impossible to pun into a class on its own
not defined
pmichaud sorry, where !defined
19:14 lichtkind joined
TimToady Dog{} is also related to lvalues that can autovivify somehow 19:14
pmichaud well, Dog is that way too, yes?
my Dog $x; $x is something that can autovivify to a concrete Dog
TimToady there's extra potential work to be done by the closure
to install itself into the array/hash where it's missing
mberends viklund: should november-wiki.org be down? (it is) 19:15
lichtkind mberends: started you any effort ? :) 19:22
19:22 mizioumt1 joined
jnthn Does my $x = Dog{}; $x.method cause $x to become an instance, then? 19:22
lichtkind jnthn: did you said anything after the laughter? 19:23
pmichaud S12:
my $dog = Dog{ :name<Fido> };
defined $dog or say "doesn't exist"; # Fido doesn't exist
$dog.wag() # Fido wags his tail
jnthn OK, and then defined $dog is true? 19:24
lichtkind: No, I just laughed.
mberends lichtkind: it was your arrival today that made me curious about your tutorial pages. I would like to help you with some content there.
lichtkind jnthn: thats healthy
mberends: allright you mean some bits in the perl 6 kompendium not translate? 19:25
pmichaud S12 doesn't say that, but I suspect "yes".
jnthn pmichaud: OK. That's not so hard to handle.
pmichaud it's much easier now with our custom dispatcher :-) 19:26
jnthn Yeah, quite.
I don't see how it gets in the way of us doing proto-objects being plus a role though.
pmichaud Agreed.
mberends lichtkind: both, probably, small things initially as we find out what is needed.
jnthn I might try and get that in place at some point in the not too distant future anyway. 19:27
Just so we Know We Can.
pmichaud Good.
or better
+1
lichtkind mberends: good last days i put my p6 tutorial onlike and konverted it from pod to wiki syntax 19:28
mberends: maybe you can translate the appendices that can be done in small portions
pmichaud opensourcebridge.org/ # huh?!? This got schedule on top of YAPC::NA ?!?
jnthn pmichaud: By the way, we are now down to only one =head1 level section of S12 that we don't have coverage of in Rakudo yet.
19:28 pmurias joined
jnthn pmichaud: (As in, no coverage at all. Not implying we have complete coverage of all the others!) 19:29
pmichaud oh, I guess it's not directly on top of YAPC::NA, just tight for PVWM folks.
StephenPollei jnthn, thats good for me as I was seriously thinking of helping write some tests 19:30
pmichaud Tests++
ruoso pmichaud, jnthn, Dog{...} is not defined... but my point was about semantics...
lichtkind mberends: you know what i mean? 19:31
pmichaud ruoso: I tend to think of Dog{ :name<fido> } as still not being a complete dog, and thus it's an abstract concept.
but I can see the other side of it as well.
pmurias back
lambdabot pmurias: You have 2 new messages. '/msg lambdabot @messages' to read them.
[particle]- pmichaud: so tight, i couldn't give a talk there :(
pmichaud I hadn't even heard of it until a few minutes ago (got a message from one of the python lists) 19:32
ruoso pmichaud, usually I'm not going to use Dog{...} to create new objects... it is already the object that is going to be completed
[particle]- perl 6 desperately needs tests. rakudo is passing >68% of spectests
ruoso i.e.: Dog === Dog{...} is false
mberends lichtkind: ok, are you referring to Perl (6) Tablets at perlfoundation.org?
[particle]- who thinks rakudo is >68% done?
lichtkind mberends: yes
19:33 REPLeffect left
jnthn [particle]-: Define "done". 19:33
mberends lichtkind: fine, got an account there recently, so translating/editing should be fine :)
TimToady Dog{} is like Dog.assuming({}) or some such
[particle]- jnthn: passing STD.pm:ver<6.0.0>
er, *using* 19:34
and passing all spec tests.
pmichaud Who thinks that Perl 6.0.0 is >68% done? ;-)
[particle]- exactly!
lichtkind mberends: so you begin with appendix A ?
TimToady I think it's >68.5% done
ruoso TimToady, hm? I would expect that to be more implementation specific than that... i.e. using the REPR API
[particle]- timtoady: Perl 6.0.0? or STD.pm.
pmurias sub my_first ($x, $, $ ) { $x };
is valid Perl 6? 19:35
TimToady I said it was "like"
ruoso std: sub my_first ($x, $, $ ) { $x };
jnthn std: sub my_first ($x, $, $ ) { $x };
p6eval std 26999: OUTPUT«ok 00:02 37m␤»
jnthn Yes.
I thought so.
rakudo: sub my_first ($x, $, $ ) { $x };
p6eval rakudo 7cfa19: ( no output )
jnthn rakudo: sub my_first ($x, $, $ ) { $x }; say myfirst(2,3,4);
p6eval rakudo 7cfa19: OUTPUT«Could not find non-existent sub myfirst␤»
ruoso that simply requires the parameters but don't use it?
jnthn rakudo: sub my_first ($x, $, $ ) { $x }; say my_first(2,3,4);
mberends lichtkind: yes, that's a useful one to start with, and it is ok to do it in little pieces.
p6eval rakudo 7cfa19: OUTPUT«2␤»
jnthn ruoso: yes
pmichaud \o/ # rakudo ftw 19:36
rakudo: sub my_first ($x, @, @) { $x }; say my_first(2,3,4);
p6eval rakudo 7cfa19: OUTPUT«Parameter type check failed; expected something matching Positional() but got something of type Int() for @ in call to my_first␤in sub my_first (/tmp/Dtc4t6XKCQ:2)␤called from Main (/tmp/Dtc4t6XKCQ:2)␤»
ruoso pmurias, if I were to set a first goal for Multis would be to allow native type checking only...
pmurias, full type checking is probably better done after we bootstrap ClassHOW
jnthn rakudo++
Sark use perl6 the parrot VM maschine? 19:37
jnthn Sark: Rakudo uses the Parrot VM.
Sark: Perl 6 is the language spec, not an implementation. But Rakudo is a Perl 6 implementation using Parrot. 19:38
lichtkind mberends: and it will be an advantage to have a nice operator table for perl 6 downside is only that we make the chapter later and have than to touch alle links again
Sark: ertappt
19:40 REPLeffect joined 19:41 justatheory left
jnthn pmichaud: Pondering doing Rakudo day on Friday (tomorrow is way too many distractions) - will you be about at all? 19:41
pmichaud yes, I think Friday is good for me also.
jnthn OK 19:42
Any interest in trying to work together on getting context vars in?
pmichaud I think tomorrow is okay, too, but my schedule may get really weird over the next few weeks
context vars isn't that hard, I don't think.
But I think we might want 'rw' first
jnthn Ah, OK.
pmichaud anyway, my plan is that "my $x is context" creates two entries in the lexpad 19:43
pmurias ruoso: i think i'll first flesh out Signature, what i'm unsure if i should add syntactic support to mildew now
pmichaud one for $x, another for $*x
jnthn Ooh, that's an interesting idea.
mberends lichtkind: :-) there are sure to be more downsides if that sort. You can get help for your operator table from this excellent Periodic Table: www.ozonehouse.com/mark/periodic/
jnthn Then we look for $*x?
Cunning!
pmichaud the $*x entry is an ObjectRef to $x
jnthn I really like that.
pmichaud or it may just be bound 19:44
ruoso pmurias, some support, yes...
pmichaud bound actually works, I guess
jnthn What about re-binding of one? It should affect the other (managable).
ruoso pmurias, maybe it's a good idea to point out which Signature features you plan to implement
pmichaud anyway, a lookup is then a call to a function that does find_caller_lex, followed by looking in various globals, followed by looking in %*ENV
ruoso pmurias, eventually we choose a subset of features that will enable the ClassHOW bootstrap
lichtkind mberends: i know that one my boy im in this buisness for ages :) but the idea behind appendix A is to have all command operators and terms explained in one index so every time someone thinks i dunno he can loopup there, i would like to have switches on top: just ops and so on 19:45
jnthn pmichaud: Sounds good.
lichtkind mberends: plus we have links in our table where everyting is explained in more detail
pmichaud that's how I expect it to ultimately work in the PCT/NQP case, at any rate, even if it doesn't work out that way for Rakudo in the long term.
jnthn pmichaud: (schedule) I'm not going to notice some of the next few weeks anyway, since I'm here for about a week more and then gone for vacation. 19:46
pmichaud right. My schedule is tricky because it can change for me with little notice
jnthn OK, we can take it as it comes. 19:47
19:47 mizioumt left 19:48 justatheory joined
pmurias ruoso: slurpies, named, optional and mandatory positionals and a type check should be for most of our needs 19:50
ruoso native type check suffices
?
pmichaud in fact, if I disappear suddenly from the channel -- more likely then not I've been called a way from the keyboard for something "urgent"
s/a way/away/
s/then/than/
s/pmichaud/someone who can't seem to spell or type correctly anymore/ 19:51
ruoso pmurias, one thing about Failures that we could do would be to replace the UNKNOWN_METHOD and missing lexical thingy to throw a proper exception instead of simply abort()'ing 19:52
pmurias ruoso: the distinction between native and non-native type check depends on the object that the Param has as it's .type attribute 19:53
ruoso pmurias, I would say we could have a special param type for natives 19:54
since its checking is so different... I mean... no need for calling .ACCEPTS
and you also can know at compile time that (int $x) is a signature asking for a native type
lichtkind mberends: do you currently editing? 19:56
mberends lichtkind: just opened Appendix A in edit mode, no changes to save yet. 19:57
lichtkind mberends: because i fix some formating thing currently
just 10 min
mberends np :)
ruoso pmurias, so anyway... I think having those features pointed, it would be nice to have'em implemented in mildew too
19:58 REPLeffect left
[particle]- will miss the phone call today 19:59
pmichaud phone 20:01
[particle]- hopes jnthn makes it today 20:02
20:02 REPLeffect joined
jnthn Who? Me? What? :-/ 20:05
jnthn still needs to sort out the hardware for that
20:13 silug left
pmurias how can i make git show a diff for a resolved file (i called git mergetool) 20:13
20:14 amoc left
Tene pmurias: what exactly do you want to show? 20:17
lichtkind mberends: ready now and if you finished today you can keep on with wiki.perl-community.de/cgi-bin/fosw...felAnhangB :) 20:18
20:21 levooe joined 20:22 amoc joined
mberends lichtkind: Appendix A will not be finished today ;) You've done an outstanding and huge job, and I need some time to check many of the terms that are listed which I may not understand yet. 20:22
levooe so nobody talks haskell in here anymore?:/
lichtkind mberends: yes its german :) 20:23
mberends: thanks
20:23 pmurias left
lichtkind mberends: sorry just pressed save now 20:23
20:24 pmurias joined
pmurias Tene: i don't want git diff to ignore the resolved file 20:24
20:27 amoc left 20:29 amoc joined
mberends lichtkind: ok, I'll start at the bottom and work my way up, so that English readers don't get a shock on the way down. It's not only the German that's sometimes hard, it's also the Perl ;) 20:30
20:31 levooe is now known as erool, erool is now known as slve
lichtkind mberends: you can also ask me, next days i will put my perl 6 tutorial (its written more like story) also into the english and come later back 20:31
Tene pmurias: git diff --cached?
mberends lichtkind: excellent 20:32
20:32 pyrimidine left
lichtkind mberends: its here wiki.perl-community.de/cgi-bin/fosw...l6Tutorial 20:32
20:33 amoc left
mberends lichtkind++: Wow, that's a tremendous opus! We need that in English! 20:34
lichtkind mberends: you read it? 20:35
mberends lichtkind: Skimming :) Well done. Have you any experience with machine translation? 20:37
lichtkind mberends: no
mberends I'll try babelfish, not sure how good it will be, but it might speed the process. 20:38
20:39 amoc joined 20:40 tulcod joined 20:42 silug joined, slve left
lichtkind i prefer manual 20:43
mberends: unfortunately TPF didnt want give a grant in other way it would be translated long ago 20:44
20:45 clintongormley left 20:47 unitxt left
mberends lichtkind: uk.babelfish.yahoo.com/ did fairly well, but it definitely needs manual correction. The generated output is also not wiki formatted. 20:48
lichtkind mberends: is that text good? www.perlfoundation.org/perl6/index....6_tutorial
20:49 unitxt joined
pmichaud @a[2,3,4] versus @a[2;3;4] 20:51
lambdabot Unknown command, try @list
mberends lichtkind: >98% good :) "for $foo magazine" "until autumn 2009" "editing is being done" "if you would like" 20:52
lichtkind mberends: thanks thatswhy i need help, but i think afterwards i have better english skills and you better german 20:54
20:54 sri_kraih left
mberends yes, definitely :-) 20:54
lichtkind mberends: now all is fixed www.perlfoundation.org/perl6/index....6_tutorial 20:58
mberends lichtkind: looks 100% perfect to me :) 20:59
Tene pmichaud: ping 21:00
lichtkind mberends: except this teil i tranlated it to part :)
mberends of course, overlooked 'Teil' completely 21:02
jnthn ~~ es ist mein teil...nein! ~~ # I learned my German from Rammstein...
lichtkind mberends: and when we finished we translate my wxperl tutorial :)
Tene jnthn: how much do you currently have swapped in about how to inform the rakudo parser about new type names? 21:03
lichtkind jnthn: to be context sensitive you have to translate teil with penis :) 21:04
jnthn Tene: What are you needing to do?
Tene ... Ah, there it is.
jnthn Tene: Making the thing you want to be a type Do Abstraction can be OK if it's already in the NS.
Tene jnthn: I'm trying to inform the parser about a foreign class when I load a foreign library.
jnthn Alternatively, you need to put it into a table for a block.
OK, use is eval'd at compile time.
21:05 szabgab left
Tene I'm able to put the namespace in the right place, but when I try to say Foo.new(), it thinks that Foo is a function. 21:05
jnthn Are you making a proto-objecty thingy for the class?
Tene there's an add_type method on Perl6::Grammar that can do it for me.
jnthn: yes.
I'm using P6object
jnthn Oh, hmm.
Tene Although that might not necessarily be true for every language, I guess.
jnthn Are you doing the import at compile time too?
Tene yes 21:06
jnthn: I'm doing it in 'use'()
jnthn Right. Oddness. The proto-objectness is normally enough.
Tene Which is called from actions.pm
actually, 'sec, lemme try something
I guess I'm expecting to be able to have Foo.new() call .new() on the class... 21:08
if I get_class the namespace, and call .new() on it, it works right. 21:09
but .new() isn't in the namespace itself... so get_hll_global won't work.
jnthn OK, but you're installing the class in the Foo entry in the namespace in Perl 6 when you import? 21:11
Tene I'm copying the namespace over directly. I tried editing the rakudo-generated pir to call get_class on the namespace after loading the library, and it worked. 21:12
jnthn Ah, copying the NS probably won't work out. 21:13
As Rakudo doesn't know to do get_class on the namespace.
Tene rakudo generates:
get_hll_global "Foo"
for a Foo class it knows about 21:14
jnthn Right.
Tene for a class just shoved in the namespace, it generates Foo()
lichtkind mberends: your not into wx ?
jnthn What are you shoving in the namespace though?
The other namespace?
That alone won't be enough.
You'll need to shove in the proto-object too. 21:15
In fact, you maybe only need the proto-object since it should be associated with the original namespace back in the other HLL.
21:16 kate21de joined
Tene will putting a proto in the namespace be enough? 21:16
it looks like rakudo modifies data structures used by the parser.
DanielC Off topic: Anybody interested in a 1TB external disk for 77EUR or a 16GB USB key for 19 EUR? www1.conrad.de/scripts/wgate/zcop_b...width=1280
Sorry for the OT, but I though it was a very good price. 21:17
jnthn Tene: It might well be.
Tene: You certaily need to put the proto in the namespace though.
I can't see it working without doing that.
And once you put the proto it, Rakudo should start recognizing it as a type name.
And yes, for sure Rakudo fudges stuff into @?BLOCKS - but at parse time (also in eval but again, only to then have them consumed by the parser). 21:18
mberends lichtkind: not yet, but wxperl looks very appealing. szabgab++ motivated me to install it for padre++. Do you think wxperl for parrot/rakudo will be a difficult or an easy link to make?
lichtkind mberends: yes 21:19
Tene jnthn: I modified the generated pir to be the same, and it works.
so the proto is in the relevant ns
lichtkind mberends: i mean difficult because wx is complex, and i write also an editor in fact padre took a lot drim kephra
DanielC mberends: Is padre good? I saw the web page. It said it was for new Perl users. I'm not a new Perl user, so I ignored it. 21:20
jnthn Tene: At parse time though? For certain?
Tene jnthn: the parse for recognized types is different.
jnthn Yes, I know.
Tene jnthn: check out grammar.pg:704 21:21
21:21 justatheory left
Tene it modifies @?BLOCKS at parse time 21:21
do I need to do that?
lichtkind DanielC: padre is not that bad
DanielC: but like i said i write a perl editor too :)
Tene oh, I can say ::Foo.new()
and it works
mberends DanielC: Padre is excellent for Perl 5. The Perl 6 plugin is new and a bit flaky but promising. 21:22
StephenPollei rakudo: say $?KERNEL;
p6eval rakudo 7cfa19: OUTPUT«Symbol '$?KERNEL' not predeclared in <anonymous> (/tmp/oaNw4JAhn8:2)␤in Main (src/gen_setting.pm:3200)␤»
jnthn Tene: OK, but the important bit is not just that but also on line 902
DanielC lichtkind: What is it exactly? Just a text editor? What does it do?
jnthn Tene: is_type does more than just look at the blocks.
DanielC mberends: Ok. What does it do? The only features I think I use are syntax highlighting and code folding.
lichtkind DanielC: its called kephra its more an editor but does a lot of neat tricks which help me to be fast
DanielC: he does both
pmichaud note that "is_type" is likely to change anyway. 21:23
DanielC ok
pmichaud In STD.pm it's (now) is_name
jnthn Tene: Note that it does
$I0 = isa check_symbol, 'P6protoobject'
21:23 masak joined
jnthn Which means if you have the protoobject available in the NS early enough that will catch it. 21:24
masak good evening, grammar camels.
lichtkind DanielC: the folding part is also easy controlable with keyboard
DanielC lichtkind/mberends: Coincidentally, just today I was searching for a good text editor for Perl...
mberends lichtkind: both Kephra and Padre are based on Scintilla, so they have lots in common. The emphasis in Padre is on detecting subtle coding errors, and providing appropriate context sensitive help.
jnthn good, evening the masak
lichtkind DanielC: mberends has nothing to do with kephra
jnthn <- grammar camel fail
DanielC o/ masak
Tene jnthn: I can give you an example in PIR in just a sec...
mberends yo masak 21:25
masak DanielC: \o
DanielC mberends: Detecting subtle coding errors sounds good, but it won't work with Perl 6... but you said that there is a Perl 6 plugin...
masak I was going to stay away from the siren call of #perl6 tonight, but then I found a serialization bug in Match.perl...
rakudo: say ?("say <OH HAI>" ~~ /<Perl6::Grammar::TOP>/); say $/.perl
DanielC lichtkind: Are you involved in kephra?
p6eval rakudo 7cfa19: OUTPUT«1␤No result object␤in method Match::!_perl (src/gen_setting.pm:788)␤called from method Match::perl (src/gen_setting.pm:754)␤called from Main (/tmp/ygcAcyzQNz:2)␤» 21:26
masak submits rakudobug
pmichaud masak: it's almost certain that won't work (for a while)
lichtkind DanielC: im main dev :)
pmichaud right now Rakudo can't parse without its action methods.
but one can do
masak pmichaud: oh. why not?
DanielC lichtkind: Ok, so I know who to blame for bugs :-)
pmichaud because the action methods are what enter symbols into the parser's symbol table.
lichtkind DanielC: yes
pmichaud and do other various things. 21:27
masak I see.
21:27 Limbic_Region joined
lichtkind DanielC: but please use recent version (0.4.1) 21:27
DanielC lichtkind: How would you compare Padre and Kephra? I have never used either of them. I'm just about to download both.
pmichaud maybe
masak and here I thought I had a quick-and-easy way to parse Perl 6 in Perl 6. :)
mberends DanielC: yes azawawi++ and szabgab++ make the Perl 6 plugin for Padre, there is also #padre on freenode
pmichaud rakudo: my $match = Perl6::Grammar::TOP.parse("say <OH HAI>", :action(Perl6::Grammar::Actions.new));
p6eval rakudo 7cfa19: OUTPUT«too few arguments passed (0) - 2 params expected␤in Main (src/gen_setting.pm:0)␤»
pmichaud or something like that. 21:28
oh
dalek kudo: 77db80c | tene++ | src/ (2 files):
Fix loading foreign libraries.
pmichaud rakudo: my $match = Perl6::Grammar.parse("say <OH HAI>", :action(Perl6::Grammar::Actions.new));
p6eval rakudo 7cfa19: OUTPUT«Method 'parse' not found for invocant of class ''␤»
lichtkind DanielC: padre is bit more aggressive both in marketing also in get thing running and making sane architecture later
pmichaud I might be able to get that to work.
jnthn Tene: You figured it?
masak pmichaud: I encountered that when I tried also.
pmichaud: that would be awesome.
Tene jnthn: no, I didn't. making a PIR demo. 21:29
jnthn Tene: OK. :-)
pmichaud since I now understand the relationship between Cursor, Match, and Grammar a bit better, getting it to work there is much more likely.
(TimToady++ for explanations)
jnthn masak: oh btw...
masak jnthn: mm?
jnthn rakudo: class Foo { has $.answer; submethod BUILD { $!answer = 42 } }; my $the = Foo.new; say $the.answer 21:30
p6eval rakudo 7cfa19: OUTPUT«42␤»
21:30 japhb left
masak jnthn++ 21:30
jnthn masak: You can haz working-er BUILD. :-)
masak wohay!
21:31 jferrero joined
masak that means Druid, proto and perhaps a few other projects can now be rewritten to take advantage of that. 21:31
jnthn :-)
Tene rakudo error reporting lies...
claims there's a null pmc access in src/gen_setting.pm:441 21:32
which is, in its entirety: # vim: ft=perl6
jnthn fail
Is that the last line of the setting by any chance?
pmichaud it doesn't lie
Tene not the last line 21:33
pmichaud that's just the last annotation in the source
(okay, that's lying, I suspect)
jnthn :-)
I also suspect that once we fall out of annotated code, then the annotation holds for any code that follows.
pmichaud yes.
jnthn So yes, it really lies. :-)
But it does its best not to. 21:34
21:34 pjcj_ is now known as pjcj 21:35 skids left 21:37 pmurias left 21:44 justatheory joined 21:46 decasm left 21:48 PhatEddy joined
masak viklund: ping. 21:49
21:50 justatheory left 21:52 justatheory joined
mberends masak: viklund must be afk, notified him that november-wiki.org was down but no reaction yet 21:54
masak ok.
november-wiki.org is down? :/
mberends 500 internal server error
masak ay ay. :( 21:55
21:55 justatheory left
Tene I (again) wish there was a way to ask rakudo to allow pir-level backtraces 21:55
:( :( :(
masak rakudo: my $x; $x.HOW.say 21:56
p6eval rakudo 77db80: OUTPUT«Method 'say' not found for invocant of class 'P6metaclass'␤»
masak pmichaud: is P6metaclass outside of the Object hierarchy somehow?
jnthn Tene: All you do is comment out the push_eh trap and the pop_eh below it in perl6.pir
masak my immediate reaction is for $x.HOW.say to print something, not to fail. 21:57
Tene jnthn: oh, right
jnthn masak: What exactly would you want it to print? :-S
masak: But once you're playing in HOW territory, then probably most bets are off. 21:58
masak jnthn: I dunno. P6metaclass<0xCAFEBABE> or something. just not fail.
jnthn masak: It is outside the Object hierarchy, but I'm not completely sure I could that as a bug.
*count
masak ok. I have to claim ignorance myself here.
jnthn Having the metaclass a subclass of Any kinda presents a bootstrapping problem. ;-) 21:59
Or Object for that matter.
Though it may be a solvable one.
Not sure. Not quite got the brain cycles to think it through at the moment either. :-) 22:00
masak ah. starting to see the problems now. :)
masak closes that ticket
StephenPollei rakudo: my $x; say $x.HOW 22:01
p6eval rakudo 77db80: OUTPUT«␤»
PhatEddy rakudo: sub b { { say @_[ 0 ] } }; b(5);
p6eval rakudo 77db80: OUTPUT«Null PMC access in isa()␤in sub b (/tmp/iYWJ5fUYhT:2)␤called from Main (/tmp/iYWJ5fUYhT:2)␤»
masak PhatEddy: nice one!
PhatEddy rakudo: sub b {say @_[0]; if 1 { say @_[ 0 ] } }; b(5);
p6eval rakudo 77db80: OUTPUT«5␤Use of uninitialized value␤␤»
masak PhatEddy: was that an original Null PMC access, or did you pull it from an RT ticket? 22:02
PhatEddy I think these are variants of RT #60408
masak ah, ok.
PhatEddy will probably append the variants and a workaround to the ticket 22:03
masak excellent.
PhatEddy++
PhatEddy rakudo: sub b {my @a = @_; say @_[0]; if 1 { say @_[ 0 ]; say @a[0] } }; b(5);
p6eval rakudo 77db80: OUTPUT«5␤Use of uninitialized value␤␤5␤»
pmichaud There's still an issue in rakudo that any use of @_ in a block makes it act like a parameter. 22:05
Haven't fixed that one yet.
I ended up having to fix something else first, although I forget what that "something else" was now. 22:06
22:07 tulcod left 22:10 hanekomu left 22:11 sri_kraih joined
[particle]- just noting that in the ticket might help 22:11
mebbe phateddy can do that, too
22:14 nihiliad left
[particle]- pmichaud: rakudo is in its own hll now, right? 22:14
masak is there a way to bind methods without declaring them?
something like method foo() { ... }; &bar ::= foo; 22:15
uh, &bar ::= &foo;
what I'm after is a way of declaring method synonyms. 22:16
PhatEddy [particle-]: will do so - thx
[particle]- aliases?
masak [particle]-: yes, I think so.
how?
22:16 ruoso left
[particle]- hrmm, i'd need to reread S11 carefully on that one 22:17
22:18 japhb joined
Tene jnthn: gist.github.com/123283 22:18
jnthn: try changing ::lolcat.new() to lolcat.new().
masak next question: how do I declare a user-defined operator as chained? the synopses don't seem to say.
[particle]- has to run :( 22:20
Tene pmichaud: any ideas about what I'm asking with gist.github.com/123283 ? Can you confirm whether or not I need to poke at the compiler's @?BLOCKS to register a type name? 22:21
mberends afk & sleep(6*3600)
Tene AFK, flying. 22:22
22:23 eMaX left
StephenPollei as assoc:chained perlcabal.org/syn/S06.html#Subroutine_traits 22:23
masak StephenPollei: thank you. 22:24
StephenPollei is assoc
masak assoc:chain, it seems.
uh, assoc<chain>. 22:25
StephenPollei yes sorry is assoc:chain
DanielC Man.. Padre is taking forever to install...
StephenPollei or whatever, I'm rusty, trying to read up again before I write tests
PerlJam is assoc('chained')
:-)
lichtkind does anybody know how to subscribe to plant perl? 22:26
masak rakudo: sub infix:<!+>($a, $b) is assoc<chain> { $a * $b }; say 7 !+ 6
p6eval rakudo 77db80: OUTPUT«Use of non-existent trait.␤42␤»
22:26 PhatEddy left
masak how to specify the signature of such an operator? is it exactly the same as a non-chained one? 22:27
I guess it can't be...
22:27 PhatEddy joined
masak rakudo: sub infix:<!+>(*@a) is assoc<chain> { [*] @a }; say 7 !+ 6 !+ 10 22:27
p6eval rakudo 77db80: OUTPUT«Use of non-existent trait.␤420␤» 22:28
masak hm, it complains but works :)
StephenPollei Meaning of $a op $b op $c --> ($a op $b) and ($b op $c) ---
I think it just fets called several times, shouldn't change prototype
masak ok.
rakudo: say 0 ^^ 1 ^^ 1; 22:29
p6eval rakudo 77db80: OUTPUT«␤»
masak rakudo: say 0 ^^ 1;
p6eval rakudo 77db80: OUTPUT«1␤»
masak rakudo: say 0 ^^ 1 ^^ 0 ^^ 1;
PerlJam masak: the signature is a trait just like associativity. i.e., they are orthogonal.
p6eval rakudo 77db80: OUTPUT«␤»
masak hm, I can't make the above fit with the meaning of assoc:<chain>. 22:30
could someone clarify?
StephenPollei rakudo: sub infix:<!+>(*@a) is assoc:<chain> { [*] @a }; say 7 !+ 6 !+ 10
p6eval rakudo 77db80: OUTPUT«Malformed routine definition at line 2, near "infix:<!+>"␤in Main (src/gen_setting.pm:0)␤»
jnthn use.perl.org/~JonathanWorthington/journal/39072 # first grant progress post 22:31
masak oh, wait. infix:<^^> is probably assoc<list>
jnthn++
...which is also what I wanted, I think.
StephenPollei rakudo: sub infix:<!+>(*@a) is assoc('chain') { [*] @a }; say 7 !+ 6 !+ 10
p6eval rakudo 77db80: OUTPUT«Use of non-existent trait.␤420␤»
jnthn masak: Looks like list ass to me.
masak jnthn: a poem in the beginning of the post. nice! 22:32
jnthn ...wow, that's not the way to abbreviate associative...
22:32 iblechbot left
jnthn masak: Aye. :-) 22:32
masak ok, that clears up that.
I think I'll head to bed before I can think of another question. 22:33
StephenPollei rakudo: sub infix:<!+>(*@a) is assoc('list') { [*] @a }; say 7 !+ 6 !+ 10
p6eval rakudo 77db80: OUTPUT«Use of non-existent trait.␤420␤»
jnthn use of NYI trait more like...
masak submits TODO ticket
22:35 yary_2 joined, masak left 22:37 yary_2 left
Tene jnthn: I have example for you in gist up there a bit ^ 22:39
jnthn Tene: I saw, I didn't see anything obviously wrong in what you pasted... 22:41
Tene jnthn: I'd like to use it without the ::
leading
jnthn Tene: Oh, I know that.
Tene: I mean, I don't think the reason you can't lies in a mistake in what you pasted
It's something elsewhere.
Tene jnthn: right... I think something needs to happen at parse time. 22:42
pmichaud I'm also looking at it.
Tene I should experiment with moving the use() call to parse time
pmichaud the use() call is already parse time. 22:43
jnthn We are doing it there though.
use($name, :import_to(@?NS ?? @?NS[0] !! ''));
And it looks like that imports too.
Or so it appears.
pmichaud where does the lolcat proto get exported?
22:44 snarkyboojum joined
Tene oh, right, action methods are called whil parsing, not after 22:44
jnthn Right.
Thus why I'd expect this to work.
Tene pmichaud: check my last rakudo commit
pmichaud Tene: I did.
I'll check again.
Tene that exports the ns.
pmichaud Huh? 22:45
exporting from the lolcat stuff, I mean.
the rakudo commit looks like it's working on the importing of stuff
not exporting.
Tene pmichaud: right... it gets the namespace from parrot.load-library 22:46
the ns has the proto
pmichaud huh?
Tene I may be confused. :)
pmichaud I know what you're saying confuses me :-) 22:47
just a second, let me trace back
jnthn Tene: Are you expecting to to find the proto through the namespace?
pmichaud in lolcat, you're exporting "demo"
jnthn Rather than having the proto in the export list?
pmichaud where does the proto itself get exported?
Tene pmichaud: isn't the proto in parrot;lolcat ? 22:48
pmichaud note that there's a parrot;lolcat namespace _and_ a parrot;lolcat object.
they aren't the same.
eventually the protoobjects need to support a hash interface so they can act like a namespace, yes.
but I haven't worked that part out completely. 22:49
jnthn really needs to rest - back tomorrow
Tene pmichaud: i'm just setting the namespac, and when I get-global it, I get a proto
pmichaud I don't understand "setting the namespace"
Tene in parrot.load-lib I get the namespace, stuff it in the hash I return 22:50
pmichaud checking.
Tene in rakudo'suse, I get it from the hash, and set-global it
pmichaud where would I find parrot.load_library?
Tene runtime/parrot/languages/parrot/parrot.pir 22:51
pmichaud $P0 = get_hll_namespace name
library['namespace'] = $P0
?
Tene airplane wants my phone off soon, may disappear at any second.
yes
pmichaud That gets the namespace. It doesn't get the protoobject.
The protoobject would be $S0 = pop name; get_hll_global name, $S0 22:52
note *get_hll_global* as opposed to *get_hll_namespace*
Tene after I set-global that object elsewhere, get-globaling elsewhere gives the protoobject
pmichaud get_hll_namespace always retrieves a namespaces.
Tene afaict
pmichaud I'm pretty sure that's not the case.
or that there's something else going on that explains what you're seeing.
I'm quite sure that library['namespace'] holds the namespace and not the protoobject. 22:53
22:53 justatheory joined
Tene should I instead, ideally, also have a 'class' attribute of the library hash? 22:53
pmichaud Try checking the type of $P0 after the get_hll_namespace call.
Tene pmichaud: in that example, I can call lolcat::demo()
pmichaud sure, because you imported the namespace.
Tene so I can access something in the namespace. 22:54
pmichaud i.e., the namespace is what is held at 'lolcat'. That makes sense to me.
Tene I can also call ::lolcat.new()
pmichaud I'm surprised by that.
Tene what would you like ideally? door closed.
pmichaud I don't know yet, I need time to think about it.
I also need to explore Parrot namespaces a bit. 22:55
Tene :)
Okay.
afk
pmichaud I guess my question is whether the entire namespace actually belongs in the imported hll.
Somehow I doubt that.
I think only the symbols should appear.
23:00 hercynium joined
TimToady pmichaud: there's a $i++ performance Q in p6u you might want to speak to 23:02
pmichaud TimToady: thanks. Have the subject line handy? My inbox is kinda fullish. 23:03
TimToady kudo-current loop 2-3 orders of magnitude slower than perl 5?
s/^/ra/
23:04 mizioumt1 left, skids joined
Limbic_Region kicks pmichaud hard for presenting so many good talks at YAPC::NA back-to-back-to-back 23:07
pmichaud I didn't schedule them back-to-back-to-back. Blame the organizers for that. I'm fully happy if we broke them up a bit :-) 23:08
Limbic_Region pmichaud - any chance someone is taking video of your talks?
pmichaud I don't know. I hope so. But my experience is that the videos never seem to make it online where people can see them.
Limbic_Region I don't want to miss any but I haven't figured out how to be in two places simultaneously
23:08 cls_bsd left
pmichaud At any rate, I didn't request back-to-back talks. And there are a few talks on Monday that I'd like to go see as well, and I haven't figured out how to do that either. 23:09
23:10 lichtkind left
Limbic_Region pmichaud - did you see use.perl.org/~jjore/journal/38995 and specifically the pointer to yapc.tv ? 23:11
23:12 hudnix left
pmichaud Limbic_Region: no, I didn't! Thanks! 23:12
23:17 kate21de left, andreasg_ left, krakan left, rhr left, Sark left, Tene left, lambdabot left, kate21de1 joined 23:18 krakan joined, rhr joined 23:19 andreasg_ joined 23:29 felipe left 23:30 Infinoid left, Sark joined, Infinoid joined 23:32 kate21de joined 23:44 lumi left, PhatEddy left 23:45 Tene joined 23:49 kate21de1 left 23:55 takadonet joined
takadonet hey everyone 23:55
pmichaud TimToady: posted a response, thanks for pointing it out. 23:56
dinnertime.
s1n @seen masak 23:57
bleh
23:58 cls_bsd joined 23:59 nihiliad joined