Camelia, the Perl 6 bug

IRC log for #parrot, 2008-09-18

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 GeJ on my FreeBSD box, config's only looking in /usr/include/ so no gdbm or opengl for me.
00:00 GeJ unless I missed something obvious.
00:06 particle GeJ: perl Configure.pl --verbose is a firehose, but piped to a file and using ack may help without getting you wet
00:09 GeJ did that already (actually --verbose=2)
00:10 AndyA joined #parrot
00:11 GeJ test_72058.c:6:18: error: gdbm.h: No such file or directory
00:12 GeJ I wonder if cheating with CCFLAGS would do.
00:12 particle i'm not sure that's cheating, actually
00:13 particle that may be the right way. i'm too distracted to really look into it, though :(
00:14 GeJ adding -I/usr/include -I/usr/local/include to CCFLAGS and building
00:16 GeJ has_gdbm => '1',
00:16 GeJ *shiny*
00:17 Theory joined #parrot
00:20 GeJ Ah, probably not the smartest thing to do after all. Parrot won't build
00:41 bacek joined #parrot
00:51 Whiteknight joined #parrot
00:57 kid51 GeJ:  If our smoke/smolder reports are to be believed, we've generally had very good results getting Parrot to build on FreeBSD.
00:57 kid51 And that, notwithstanding the fact that we don't really have a 'maintainer' on FreeBSD.
00:58 kid51 And I'm not sure which of the core developers, if any, work on *BSD (other than Darwin) as their *first* platform.
00:58 kid51 by any chance, are you concerned with finding libraries installed by the ports system?
01:10 kid51 Smolder report suggests that r31216 may be causing a failure in t/stm/runtime.t.
01:10 kid51 http://smolder.plusthree.com/app/p​ublic_projects/report_details/5532
01:16 GeJ having a look at it
01:18 GeJ right now, parrot won't build successfully. (or is it my CCFLGS change that borks it?) I'll check.
01:19 kid51 Hmm.  I couldn't reproduce that t/stm/runtime.t failure on my Linux VM.
01:23 jq joined #parrot
01:24 GeJ ./parrot -o runtime/parrot/library/Math/Random/mt19937ar.pbc runtime/parrot/library/Math/Random/mt19937ar.pir
01:24 GeJ error:imcc:get_codesize: non instruction with size found
01:26 grim_fandango joined #parrot
01:37 GeJ I modified get_codesize in compilers/imcc/pbc.c to show the instruction's line for this error.
01:37 GeJ result is : error:imcc:get_codesize: non instruction with size found: ins#4 line: 79
01:38 GeJ the line in runtime/parrot/library/Math/Random/mt19937ar.pir is :
01:38 GeJ seed &= 0xffffffff
01:41 s1n pmichaud: still working on the release?
01:45 japhb s1n: release happened yesterday, assuming you are speaking of September's release
01:47 s1n japhb: i am, guess i missed the notice out on the intertubes
01:50 cotto_work and in the topic
02:02 davidfetter joined #parrot
02:13 GeJ 0.7.0 builds fine
02:22 bacek joined #parrot
02:26 GeJ r31160 builds ok
02:32 mberends joined #parrot
02:38 Tene purl: nopaste
02:38 purl nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/
02:47 GeJ Ha!
02:47 GeJ r31200 breaks on FreeBSD
02:49 cotto_home crap.  that's one of mine
02:50 GeJ yup, sorry :(
02:50 cotto_home how does it break?
02:50 GeJ The good news is that 0.7.1 is good.
02:51 cotto_home and 0.8.0 can be too if you tell me how 31200 broke. ;)
02:52 cotto_home I thought that was about as innocuous as a fix could get.
02:54 cotto_home I can't take the suspense.
02:55 nopaste "GeJ" at 202.22.227.235 pasted "Build failure encountered on FreeBSD 7.1-PRERELEASE (as of Sept. 17) since r31200" (31 lines) at http://nopaste.snit.ch/14096
02:55 GeJ sorry, I wanted to make it meaningful.
02:56 GeJ my C-fu sucks. It's already a miracle that I got the line.
02:57 cotto_home and it works with 31198?
02:59 GeJ yup, well trunk:r31199 built OK. I assume 31198 would too
03:00 cotto_home sounds like a safe assumption
03:01 cotto_home did you make sure to do make realclean before testing?
03:02 GeJ every time, yes.
03:02 cotto_home which version of gcc?
03:02 purl which version of gcc is it
03:02 cotto_home no, which version of gcc is <reply>
03:02 purl okay, cotto_home.
03:02 GeJ gcc version 4.2.1 20070719  [FreeBSD]
03:03 cotto_home that's nothing odd
03:03 dalek r31217 | coke++ | trunk:
03:03 dalek : [tcl] todo more spec tests instead of skipping them.
03:03 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31217
03:04 cotto_home GeJ, thanks for reporting and getting the output of the failure.
03:05 cotto_home I'm going to have to puzzle over it for a while.
03:05 cotto_home GeJ++
03:07 GeJ well, I should be here for a while. Probably not keeping an eye on the channel at all time, but I'll check from time to time if I can be of any help.
03:08 bacek_ joined #parrot
03:09 cotto_home ok.  I'll most likely set up a FreeBSD 7.1 VM at work to try to reproduce the problem.
03:09 cotto_home Is there anything special about your setup I should know?
03:10 GeJ i386, 7-STABLE source retrieved yesterday. Rebuilt all my ports.
03:13 nopaste "GeJ" at 202.22.227.235 pasted "my build script" (16 lines) at http://nopaste.snit.ch/14097
03:36 dalek r31218 | tene++ | trunk:
03:36 dalek : Merge exceptionmagic branch into trunk.
03:36 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31218
03:36 dalek r31219 | tene++ | trunk:
03:36 dalek : Looks like I forgot to update a doc in the exceptions branch.
03:36 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31219
03:40 tetragon joined #parrot
04:04 grim_fandango joined #parrot
04:08 dalek r31220 | robert++ | trunk:
04:08 dalek : Replace dead link with wayback machine
04:08 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31220
05:48 johbar joined #parrot
06:04 purl joined #parrot
06:04 uniejo joined #parrot
06:06 cotto_home GeJ, ping
06:07 cotto_home can you get the same error running ./parrot runtime/parrot/library/Math/Random/mt19937ar.pir
06:13 Ontolog joined #parrot
06:22 baest joined #parrot
07:31 Debolaz joined #parrot
07:44 iblechbot joined #parrot
08:08 dalek r31221 | fperrad++ | trunk:
08:08 dalek : [RELEASE]
08:08 dalek : update LANGUAGES_STATUS.pod (18) from languages-smoke results
08:08 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31221
08:12 dalek r31222 | fperrad++ | trunk:
08:12 dalek : [RELEASE]
08:12 dalek : update LANGUAGES_STATUS.pod (8) from manual tests
08:12 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31222
08:23 barney joined #parrot
08:39 Zaba joined #parrot
08:42 Zaba Failed Test           Stat Wstat Total Fail  List of Failed
08:43 Zaba ----------------------------------------​---------------------------------------
08:43 Zaba t/native_pbc/header.t    1   256     9    1  2
08:43 Zaba brb
08:48 dalek r31223 | tene++ | trunk:
08:48 dalek : Revert my previous exceptions commit.  It was wrong.
08:48 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31223
09:18 Ontolog joined #parrot
09:28 jonathan ahojte
09:28 jonathan erm, hi all :-)
09:29 Tene Hi Jonathan. :)
09:32 moritz hi
09:34 Ontolog jonathan++
09:34 Ontolog any idea on the match mail i sent?
09:35 jonathan Ontolog: Not got to it yet - will take a look.
09:36 Ademan joined #parrot
09:44 jonathan Ontolog: Interesting... :-)
09:44 jonathan I wonder if there is a modifier to stop that...
09:48 Ontolog also, there is an impl of match in any-str.pir but that impl returns a Match object. Shouldn't Str.match(/rx) return a List of Str's or in case of having capture groups, a list of Match's?
09:50 dalek r31224 | kjs++ | trunk:
09:50 dalek : [book] yacc should be spelled at least with a first capital (possibly all), and Yacc/Bison use a bottom-up algorithm, not top-down.
09:50 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31224
09:50 jonathan No, it should return the Match object.
09:50 jonathan Match object contains all of the captures.
09:51 kj joined #parrot
09:52 Ontolog where in the spec does it say this?
09:53 Ontolog if you take a look at S29, comb
09:53 Ontolog it says a couple of things. $string.comb(/pat/, $n) is equivalent to $string.match(rx:global:x(0..$n):c/pat/)
09:53 Ontolog and, If there are captures in the pattern, a list of Match objects (one per match) is returned instead of strings.
09:54 Ontolog implying that if there are no captures in the pattern a list of strings is returned
09:57 jonathan Hmm...I was expecting S05 to clarify that.
09:57 jonathan But it doesn't appear to mention .comb...
10:00 jonathan Agree that this makes sense for comb. For match, I'm not so sure.
10:01 jonathan I think pmichaud is the right person to run this by - he knows the regex bits much better than I.
10:02 Ontolog ok well hopefully he'll see the mail... just intuitively i would expect $string.match(/pat/) to return a list of strings, and that's also the way it's written in S29 but I see see that in S05 "A match always returns a Match object..."
10:03 Ontolog actually I'm not sure I mailed on this point haha
10:03 Ontolog my mail was about another aspect of match... i'll send another mail about this seeming conflict in the docs
10:04 jonathan OK, sounds good.
10:04 jonathan I don't see anywhere, an explicit mention of what Match should do.
10:10 masak joined #parrot
10:10 GeJ_ joined #parrot
10:12 Themeruta joined #parrot
10:12 sjn_ joined #parrot
10:14 MagNET joined #parrot
10:14 uniejo joined #parrot
10:15 nopaste joined #parrot
10:15 kj joined #parrot
10:15 PacoLinux joined #parrot
10:15 pjcj joined #parrot
10:15 Zaba joined #parrot
10:15 jonathan joined #parrot
10:15 leo joined #parrot
10:15 Maddingue joined #parrot
10:19 bacek joined #parrot
10:21 Zaba joined #parrot
10:29 dalek r31225 | jonathan++ | trunk:
10:29 dalek : [rakudo] Handle the case where a fractional part of a number contains underscores; PIR doesn't allow this, so just whip 'em out. Resolves RT#58998.
10:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31225
10:37 TiMBuS joined #parrot
10:39 Zaba hm
10:40 Zaba spectest_regression gives a lot of Use of uninitialized value's
10:41 jonathan Zaba: Yes, some clean-up work required in the tests, I believe.
10:47 Zaba joined #parrot
10:47 dalek r31226 | jonathan++ | trunk:
10:47 dalek : [rakudo] Make use happen at BEGIN time. This lets us use modules that contain classes. However, we still have various issues to follow up on with this (for example, making it work when you use a module that does a use itself, which gives very odd errors at the moment, and making this play well when a pre-compiled module does a use).
10:47 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31226
10:53 bacek g'localtime everyone
10:53 bacek hi purl ;)
10:54 Whiteknight joined #parrot
11:10 nopaste "bacek" at 114.73.60.162 pasted "Test.pm patch to avoid "Use of unitialized values" messages (for moritz/pmichaud/jonathan for review)" (23 lines) at http://nopaste.snit.ch/14103
11:12 dalek r31227 | jonathan++ | trunk:
11:12 dalek : [rakudo] Sort out keys, values and kv on mappings (and thus hashes) by exporting them, as we do for List. Gets us passing another 8 TODO'd spectests.
11:12 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31227
11:14 bacek joined #parrot
11:15 jonathan bacek: That Test.pm patch looks quite sane - I'd like at least someone else to agree with me on that before it goes in, though. :-)
11:16 bacek jonathan: just ping moritz. Even if pmichaud disagree we will 2-to-1 ration :)
11:17 bacek will have
11:17 jonathan ;)
11:18 bacek ouch... My English is very bad today...
11:21 bacek hmm... still got "Use unitilized warning"...
11:23 jonathan The same amount? I'd expect that chnage to maybe fix some of them.
11:23 jonathan But not all of them.
11:23 purl not all of them are modifying my brain
11:23 jonathan Some will want changes in test files themselves.
11:25 bacek much less
11:29 jonathan OK, much less is good. :-)
11:38 iblechbot joined #parrot
11:43 Ontolog joined #parrot
11:44 dalek r31228 | jonathan++ | trunk:
11:44 dalek : [rakudo] We currently always store subs in the namespace without sigil, so if we get a sub parameter with the & sigil then we need to strip it off. Resolves RT#58828.
11:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31228
11:46 jonathan woo, 2 more and we're back down to 150 tickets...
11:46 bacek ok. I can fix last "Use undefined" in Test.pm, but it will be wrong
11:47 jonathan Wrong is not good. ;-)
11:47 bacek It causes by undefined values for $type in isa_ok. And we should definitely have this types in place
11:47 bacek E.g. StrPos.
11:48 jonathan Ah.
11:53 * jonathan can haz lunch...brb
11:57 barney ping cotto
11:57 purl I can't find cotto in the DNS.
12:01 bacek ping bacek.com
12:01 purl 10 packets transmitted, 0 received, +10 errors, 100% packet loss, time 8999ms
12:02 bacek holy sh*t...
12:02 bacek It's bad
12:05 nopaste "bacek" at 114.73.60.162 pasted "Trvial patch for simproms from #58818 (cloning of attributes)" (12 lines) at http://nopaste.snit.ch/14105
12:06 bacek I'm not sure about this patch... Should we clone values in Object.new?
12:08 bacek afk #probably sleep...
12:13 Zaba joined #parrot
12:29 * moritz disagrees, that patch shouldn't be applied. Instead the test suite and rakudo should be fixed
12:29 moritz is() traditionally does string comparison
12:30 moritz and it's plain wrong to compare undef values with string semantics
12:36 pmichaud I'm in agreement with moritz -- we fix the tests and not Test.pm in this case
12:36 pmichaud I suspect that is() will eventually get 'eqv' semantics.
12:37 moritz that goes against the grain of leaving Test.pm rather simple
12:38 pmichaud why is that?
12:38 moritz because eqv isn't simple
12:38 jonathan If eqv was so easy, we'd maybe have implemented it by now. ;-)
12:38 jonathan morning pm :-)
12:38 pmichaud I can certainly "shim" an eqv that does string comparison until I have the full one.
12:38 moritz pmichaud: if we settled on .perl to sort hash keys, we could fake one very simply with .perl
12:39 moritz which would be 95% effect with 5% work, or something ;)
12:39 pmichaud making 'eqv' act like 'leg'   would be even easier, though.
12:39 pmichaud "sort hash keys" sounds like more work than implementing a stub 'eqv' that does string comparison.
12:40 Zaba looks like rakudo got stuck somewhere in spectest_regression, something related to open, test 1/9...
12:40 Zaba had to ^C it..
12:40 pmichaud or even a stub 'eqv' that sorts hash keys as part of .perl and does a comparison :-)
12:40 moritz or that, yes
12:40 pmichaud 'eqv' is the natural way to say "these two things are the same", we should use it.
12:40 Debolaz joined #parrot
12:40 pmichaud a budding implementation can always cheat on eqv until it's ready for the full implementation.
12:41 moritz ok
12:41 moritz actually for the tester it's much easier this way
12:41 pmichaud correct.
12:43 jonathan pmichaud: Just been doing fixes this morning, while I woke up properly. Just having to sort out flights and stuff now, then will read your thing.
12:44 pmichaud jonathan: okay.  I saw the "remove underscore" fix -- that will have to be redone soon.  You just happened to do the cheat before I could get an answer for the "real fix" :-)
12:46 jonathan Oh? What's the real fix? :-)
12:46 jonathan Oohh, hang on - this relates to the precision issues with PIR?
12:46 pmichaud yes.
12:46 jonathan OK, that's a different problem. ;-)
12:47 jonathan Though related and yes, will probably touch the same bit of code.
12:47 jonathan Well, would certainly touch...
12:47 pmichaud It should be done the same way we do integers -- we place the item into a Str (or Perl6Str) object, numify it there, and then pass that to PAST
12:48 pmichaud but we can't do it that way now because when PAST gets it and stringifies it back into PIR it loses a ton of precision
12:49 pmichaud I'll write my message to p6i (but make it a ticket instead of a message) and then link the underscore ticket to that so we can do a real fix.
12:51 Ontolog c'mon guys nobody's gonna respond to my perl6-compiler and perl6-language mails?
12:51 Zaba joined #parrot
12:51 pmichaud Ontolog: I _just_ woke up and I'm in the middle of processing emails and reading scrollback.
12:52 pmichaud I'm maybe 25% done.
12:52 Ontolog ah sorry i guess i'm ina different timezone then all of you haha
12:52 pmichaud (okay, I didn't just wake up -- I've been up for an hour feeding kids and getting them to school and just now started reviewing everything that has happened since yesterday afternoon.)
12:53 Ontolog i see
12:53 Ontolog do you work on perl6 full time or something?
12:53 Ontolog who pays you??
12:53 pmichaud pseudo-full time.  Nobody pays me.
12:53 Ontolog you are rich!
12:53 pmichaud I might be richer if I wasn't doing perl 6.  :-)
12:54 Ontolog haha
12:54 Ontolog yes
12:54 pmichaud I'm not sure if I'm rich or just financially naive.  :-P
12:54 Ontolog haha maybe working on perl6 will make you rich in the future
12:54 Ontolog you will be famous
12:55 jonathan Argh! Plug in USB device => reboot?!
12:55 moritz perl5 surely made Larry famous, but not necessarily rich I think ;)
12:55 moritz jonathan: let me guess - windows? ;)
12:55 pmichaud jonathan: windows?
12:55 purl hmmm... windows is thready.
12:55 Ontolog hey, well at least he's getting paid to develop perl now
12:55 Ontolog by o'reilly i tihnk
12:56 pmichaud Ontolog: I don't think that's the case, although I could be wrong.
12:56 jonathan Windows!
12:56 purl rumour has it windows is thready
12:56 moritz it was the case, but not anymore
12:56 Ontolog damnit O'Reilly! why did they fire Larry?
12:57 pmichaud "Windows is so fragile that when I plug a usb device into my linux box her Windows machine reboots."  :-P
12:57 moritz because they had financially difficult times
12:57 moritz afk &
12:57 jonathan :-P
12:57 pmichaud I think we can safely say that O'Reilly has been (and continues to be) a very strong supporter of Perl
12:57 Ontolog i have a Safari subscription
12:58 Ontolog yeah, they printed a book on Perl 6 & Parrot in 2004!
12:58 Ontolog so i think they must be
12:59 pmichaud they also sponsor (Perl) conferences, and quite a variety of efforts that go beyond "publish books"
12:59 Ontolog oh yes... i've never been to  a Perl conference
12:59 Ontolog i would like to
12:59 Ontolog but i'm like so incredibly poor
12:59 Ontolog don't have the travel money
13:00 pmichaud the fact that there hasn't been a Perl 6 book since 2004 has more to do with lack of authors and writers than with a publisher choosing not to publish, I think
13:00 pmichaud (I could be wrong about that -- don't know what the current market would be for updated Perl 6 books.)
13:00 Ontolog oh my point about the book was that I was surprised they would even print one before any of this stuff is even half way finished
13:01 pmichaud well, that was back when we expected things to be finished much more quickly than reality allowed.
13:01 pmichaud or, put another way, people thought we were already half way.  -P
13:01 Ontolog haha... the falacy of each and every software project ever endeavored
13:01 Ontolog the unrealistic schedule
13:05 jonathan OK, so it's cheaper to book a return flight that a single. :-S
13:05 * jonathan doesn't really understand the world.
13:20 kj joined #parrot
13:26 pmichaud Ontolog: reply to "match" sent.
13:28 jonathan OK, flight emergency *hopefully* sorted out.
13:28 * jonathan has never known so much hassle
13:29 Ontolog pmichaud: so 'match' should behave this way even as a Perl 6 builtin?
13:29 Ontolog pmichaud: I can understand why you would want a kind of lower-level match function to work like this
13:29 Ontolog pmichaud: but what about the high-level one that Perl 6 users will use?
13:29 pmichaud I don't quite understand the question
13:30 pmichaud I thought you were specifically dealing with the case of trying to get a list of matches
13:30 pmichaud not the .match method itself.
13:30 pmichaud (thus I changed the name)
13:31 Ontolog well i want to that and i want to understand how Perl 6 code: $string.match(/regex/) is suppose to work
13:32 pmichaud I suspect that the .match method should simply be
13:32 pmichaud .sub 'match' :method :multi(_, 'Sub')
13:32 pmichaud .param pmc regex
13:32 pmichaud $S0 = self
13:32 pmichaud .return regex($S0)
13:32 pmichaud .end
13:33 Ontolog hmm... i have a strong feeling that it should be returning a list of strings that match the regex
13:34 Ontolog but you are the expert...
13:34 pmichaud no, that would be the .comb method.
13:34 pmichaud .match should perform a single match.
13:34 Ontolog did you see  the docs on comb?
13:34 Ontolog it says that comb is equivalent to a certain kind of match
13:34 jonathan pmichaud: I agree with you on what .match does, but the docs on comb can be read as implying something else.
13:34 Ontolog and that both should return lists
13:35 pmichaud match should return a list if the :global flag is present.
13:35 Ontolog i see
13:35 Ontolog so what is the idiom for just getting back a list of strings that match the regex?
13:35 pmichaud in Perl 6?
13:35 Ontolog yes
13:36 pmichaud @list = $foo.comb(/regex/);
13:36 Ontolog ok then so it is just using comb
13:36 pmichaud currently PGE doesn't handle the :global flag directly -- it expects the caller to do that.  I'm thinking that ought to change.
13:36 Ontolog sorry i misunderstood the whole thing :p anyway now i'm set straight
13:36 pmichaud since most of S05 has the :global flag attached to the regex
13:37 gryphon joined #parrot
13:37 Ontolog so as it stands now our existing match method is incomplete?
13:37 jonathan pmichaud: URL to your proposal again?
13:37 pmichaud which match method -- the one I just gave or the one that is in the repo?
13:37 jonathan pmichaud: oh, no worries, found it
13:37 pmichaud jonathan: http://www.pmichaud.com/perl6/references.txt
13:38 Ontolog pmichaud: the one in the repo
13:39 pmichaud I don't know what the one in the repo looks like -- I didn't put it there and haven't reviewed it yet.  But I suspect it's incorrect.
13:39 Ontolog pmichaud: it's the same i think
13:39 Ontolog it returns just a match object like you showed
13:39 Ontolog my point is, if it doesn't handle :global
13:39 Ontolog can we say it is complete?
13:39 pmichaud I'm now thinking the regex needs to handle :global
13:40 pmichaud instead of trying to make .match do it
13:40 pmichaud so .match is complete and Regex isn't.
13:40 Ontolog makes sense
13:41 pmichaud I'll be back in 15 -- have some cleanups to do
13:54 Zaba joined #parrot
14:00 johbar_ joined #parrot
14:01 mberends joined #parrot
14:03 Andy joined #parrot
14:04 pmichaud back
14:06 jonathan pmichaud: Scribbling comments on your thing, will nopaste them in a moment
14:06 jonathan Well, maybe more than a moment. A lot to think about! :-)
14:06 pmichaud okay, no problem.  We could do this wiki if that would be better, or I could go ahead
14:06 pmichaud and check it into the repo.
14:07 jonathan Maybe.
14:08 jonathan Let me give initial feedback, then maybe we discuss and then put it into repo and do smaller tweaks there?
14:08 pmichaud okay
14:08 pmichaud whatever's easiest for you :-)
14:08 jonathan (I've not yet found anything that I think makes it unworkable.)
14:17 jonathan lvalue.'!ASSIGN'(rhs)
14:17 jonathan The !ASSIGN here doesn't appear to be explained anywhere.
14:17 pmichaud it will depend on the lvalue, I think
14:17 pmichaud but essentially it says "lvalue, take whatever values you think appropriate from rhs"
14:17 jonathan OK. It appears that the pseudo code loses a value.
14:18 Lorn joined #parrot
14:18 jonathan oh, no
14:18 jonathan It doesn't.
14:18 jonathan Mis-read the jump.
14:18 pmichaud for an array, it will slurp up (lazily?) all of the values from rhs
14:18 pmichaud TimToady is still working on the assignment semantics, I think.
14:18 jonathan ...ouch!
14:21 jonathan I think that basically the list assignment part falls quite naturally out of the item part.
14:21 pmichaud you mean for the !ASSIGN method, or are you talking about something else?
14:22 jonathan No, I mean in your doc, once you make the assumptions/work out doing the item assignment correctly, the list assignment part of it is quite straightforward/natural.
14:22 jonathan That's a good sign. :-)
14:22 pmichaud yes
14:23 jonathan Thus I've not really got much to say about the list assignment part itself. :-)
14:23 pmichaud the one piece that I really wish was available would be to have a convenient flag on PMCs to indicate "this is a container/lvalue PMC"
14:23 jonathan I think we're using all of the PMC flags, and we can't steal any of the 7 user flags because the PMCs themselves may use them.
14:24 pmichaud oh!
14:24 pmichaud I think we can steal a user flag, then
14:24 pmichaud oh wait, no we can't. hrm.
14:25 jonathan Yes. We run the risk of conflicting.
14:26 pmichaud I don't mind if we use a property for it on individual variables such as $s or @a, but there's not a convenient way to find out that @a[2] is a container.
14:26 pmichaud and if we put a properties on @a[2], then we're back to the "every element has multiple GC-able elements"
14:26 pmichaud er,
14:26 pmichaud "every element of an aggregate requires multiple GC-able parts"
14:27 pmichaud (I'm assuming that the properties hash is a GC-able thing.)
14:27 jonathan Yes, it is, but
14:28 jonathan Just because of that doesn't mean we need an extra GC-able element per array entry.
14:28 pmichaud it doesn't?
14:28 jonathan We can just have a property "container" or something, that points back at the array.
14:28 jonathan container = constant string
14:28 jonathan the array we're in = one object
14:28 pmichaud don't we have to attach that to each PMC in the array?
14:29 pmichaud otherwise, how do we get from the PMC (element) back to the array?
14:29 jonathan We'd have to attach the property, yes.
14:29 pmichaud when we attach the property, doesn't the element get a new Hash for that?
14:29 jonathan Ah, OK, yes, it'd get that.
14:29 pmichaud :-(
14:29 pmichaud that's the Hash I was referring to :-(
14:30 jonathan Unless we are extremely, extremely naughty and instead make the _metadata point to something other than a Hash - e.g. the container. But that's probably really sick and wrong. :-)
14:30 pmichaud is there a way to get all of the elements PMCs to point to the *same* property table?
14:30 jonathan (_metadata is the pointer the properties hash would hang off)
14:30 jonathan Well, it's just a pointer, so yes.
14:30 pmichaud that doesn't sound quite so evil
14:30 jonathan I'm not sure how we'd manage that today.
14:30 pmichaud it also would make it very very (very) simple to put type constraints on the individual elements
14:31 jonathan Yes, indeed.
14:31 pmichaud what if we just did   setprop $P0, hash    ?
14:31 pmichaud or something like that?
14:31 pmichaud or setprophash
14:31 jonathan It'd be a new opcode, yes.
14:31 jonathan Though we can haz dynop at first if need be.
14:31 jonathan While we experiment.
14:31 jonathan But yes, there's no reason why we can't do that.
14:31 pmichaud there's already a <prophash> opcode
14:32 jonathan Oh?
14:32 jonathan To get it though?
14:32 pmichaud =item B<prophash>(out PMC, invar PMC)
14:32 pmichaud Get a hash for the properties invar PMC $2 and put it in $1. If the property
14:32 pmichaud hash doesn't exist, the C<Null> PMC is returned.
14:32 jonathan OK. Adding setprophash isn't a big step then.
14:32 pmichaud I think I could convince allison to do setprophash
14:32 moritz jonathan++ # many fixes
14:32 jonathan Yes, me too.
14:32 pmichaud that would be *very* cool.
14:32 jonathan Yes.
14:32 pmichaud that would solve a ton of issues
14:33 Ontolog can I do this? match = regex(self, start_pos)
14:33 jonathan Right.
14:33 pmichaud Ontolog: match = regex(self, 'pos'=>start_pos)
14:33 Ontolog right now I'm getting an error: positional inside named args at position 2
14:33 Ontolog i see
14:33 pmichaud :pos is a named argument.
14:34 nopaste "jonathan" at 85.216.151.226 pasted "pmichaud - some feedback" (42 lines) at http://nopaste.snit.ch/14106
14:34 pmichaud many of the flags work such as :p, :c, etc (and their longname counterparts)
14:34 Ontolog error:imcc:syntax error, unexpected IDENTIFIER ('pos')
14:35 jonathan pmichaud: Those are my initial thoughts. I'd not a lot to list assignment, since it follows on naturally.
14:35 pmichaud here's my responses :-)
14:35 jonathan <@pmichaud> WTF are you thinking?!
14:35 pmichaud type checking:  I didn't put it in the document, but I'm thinking that "get the !VALUE, do type checks and readonly checks, etc."  would be a method
14:35 pmichaud it could be a dynop
14:36 pmichaud but yes, essentially all of that would be analogous to what we do with 'infix:=' now.
14:36 pmichaud as opposed to being repeated in generated code everywhere.
14:36 jonathan I'd rather a dynop. I don't want to do performance freakery, but calls are not cheap.
14:36 kj Ontolog: probably you forgot to quote the word 'pos'?
14:36 jonathan And it is easier to do trickery in C. ;-)
14:36 pmichaud I need to look at what is involved with creating dynops -- never done one yet.
14:36 Ontolog kj: yeah that's right
14:37 jonathan We're already using at lesat one, so see that for an example. :-)
14:37 jonathan That means the build stuff for them is all in place for Rakudo already too.
14:37 moritz jonathan: I can un-TODO the newly passing tests... but first I wanted to be sure that you didn't do that locally already and forgot to commit
14:38 particle pmichaud: regarding float precision, in earlier parrot history, there was a pragma to set it for your program/hll. i wonder if that still exists...
14:38 jonathan moritz: I didn't.
14:38 moritz jonathan: ok, then I'll do
14:38 jonathan moritz: Please go ahead.
14:38 jonathan Thanks.
14:38 jonathan delegation++ :-)
14:38 pmichaud okay, next item
14:39 pmichaud (chain of wrapper PMCs)   I don't think we need a chain of wrappers
14:39 pmichaud I'm thinking a wrapper simply takes the constraints of whatever it wraps and adds its own constraints to it
14:39 pmichaud sorry, I said that wrong
14:40 pmichaud a wrapper builds its own constraints as a junction of the local constraints plus the constraints of what it wraps
14:40 pmichaud but we never have a wrapper refer to a wrapper
14:41 pmichaud it would always "collapse" the chain down so that we have one wrapper pointing to one value
14:41 jonathan Thing is, if we do clone...well, of course we'd have our own op that could check if the target is a wrapper...
14:41 pmichaud although it would be good if we could somehow detect that we don't need to add a constraint (because it already exists)
14:41 jonathan Or method or however we do it.
14:41 pmichaud no, not clone.
14:41 jonathan oops, I menat copy
14:41 jonathan Not clone.
14:41 pmichaud or copy
14:41 pmichaud neither.
14:41 jonathan OK, I mean assignments are copy
14:42 jonathan If we have a wrapper and we do copy $P0, $P1 and $P0 is a wrapper...
14:42 pmichaud basically we take the constraints of whatever param PMC came in, and construct a new wrapper object having those constraints junctioned with the additional ones
14:42 jonathan Needs to copy to the thing the wrapper holds.
14:42 jonathan Oh, sure, that bit works fine.
14:42 pmichaud oh.  wrappers don't copy.
14:42 pmichaud same as we don't really copy scalars.
14:43 jonathan OK, so how do we know what to emit? Don't fancy static analysis...
14:43 pmichaud it would always be the same thing
14:43 jonathan As you said, a method could do it.
14:43 jonathan Or a dynop that says, "is this a wrapper".
14:44 pmichaud yeah -- I'm thinking something similar to how we use get_pmc on Scalar now
14:44 jonathan OK. We can make it work, anyway.
14:45 pmichaud what I'm talking about there isn't really all that new -- we were going to have to solve the same problem under the Scalar approach anyway
14:45 jonathan And I think if we construct a new junction in the wrapper consisting of that in the outer wrapper and any new constraints, that'll fly.
14:45 pmichaud recursion does become a bit of a pain though, as our junctions get larger and larger.
14:45 jonathan Yes.
14:46 jonathan But OTOH, the constraints are the same.
14:46 jonathan So some later optimization could help.
14:46 jonathan Also, junctions are meant to be sets, IIRC.
14:47 jonathan So a good junctions implementation may just somehow be able to give us what we want (each thing once) cheaply anyway.
14:47 pmichaud do we currently create a new junction for every invocation?
14:47 jonathan Yes, I believe so.
14:47 pmichaud we should fix that.
14:47 jonathan Well, it's not always so simple maybe.
14:47 pmichaud that should be static to the sub and referenced.
14:47 pmichaud instead of constructing a new one
14:47 jonathan If we have just one constraint, we never bother building a junction at all, I think.
14:47 particle are junctions bags now?
14:47 jonathan particle: They're internally just lists.
14:48 particle ok, which is basically a bag instead of a set
14:48 pmichaud okay, I guess I meant "constraint"
14:48 pmichaud we should attach each constraint (which could be a junction) to the sub once at compile-time, and then have each parameter refer to that constraint.
14:48 jonathan I use constraint to mean two things sometimes. :-)
14:48 jonathan Yes, I agree that'd be better.
14:48 pmichaud rather than build a new constraing object on every invocation
14:48 jonathan And far more optimal.
14:49 jonathan Well, actually
14:49 jonathan We already *are* doing that.
14:49 jonathan The signature object contains all of them.
14:49 jonathan And is built once and attached to the sub.
14:49 pmichaud so, we just need to get the constraints attached to the lexicals?
14:49 pmichaud or is that happening already too?
14:49 jonathan So we really should just pull them out of that.
14:49 pmichaud yes,
14:49 jonathan We're building the signature object.
14:49 pmichaud bingo.
14:50 pmichaud signatures++  jonathan++
14:50 particle ship it!
14:50 pmichaud you just completely sold me on the need for a signature object with that.  :-)
14:50 jonathan Phew! At last! :-)
14:50 jonathan (Also you will be glad to know, this will simplify the code in signature...
14:50 jonathan )
14:50 pmichaud yes, it will.
14:51 PerlJam good morning #parrot people
14:51 jonathan morning PerlJam
14:51 pmichaud I need to go look at the structure of signature objects at some point
14:51 PerlJam I see you guys are already doing great and wonderous things today :)
14:51 PerlJam (at least talking about doing them)
14:51 pmichaud okay, so wrappers sounds workable to you, or at least like a "this is a reasonable approach"?
14:52 jonathan PerlJam: Well, I've had a lot of the day already to do them, being European and all. ;-)
14:52 jonathan Yes.
14:52 pmichaud "PMCs representing array and hash variables have an implementation type property that points to the protoobject of the correct implementation type."
14:52 jonathan I'm a lot happier with that, than trying to attach extra stuff to the scalars themselves.
14:52 pmichaud We need this because we can have
14:52 jonathan Erm
14:52 pmichaud my @a is MyArray;   my %h is TiedHash;
14:52 jonathan well, you know what I meant. I like it better than option 1. :-)
14:52 jonathan Ah, yes.
14:53 pmichaud it also becomes a convenient way to know "This is a container"
14:53 pmichaud but it also tells us what kind of container it is.
14:53 PerlJam jonathan: Don't go to sleep so that this parrot day lasts a little bit longer than usual :)
14:53 jonathan Hmm.
14:53 jonathan PerlJam: Actually I messed up - I have .pm group tonight. :-|
14:54 jonathan I am giving a Perl 6 talk there though.
14:54 pmichaud just throw up an irc channel on the projector and we can all do your Perl 6 talk :-)
14:54 PerlJam heh
14:54 moritz lol
14:54 jonathan pmichaud has already seen the talk I'm giving anyway. :-)
14:55 jonathan The folks at my PM group decided to skip my talks at YAPC and go to others, then get me to repeat them at PM group!
14:55 PerlJam then let pm give it by proxy via IRC while you just sit there hacking
14:55 pmichaud "PAY NO ATTENTION TO THE MAD ENGLISHMAN!"
14:55 jonathan :-P
14:55 jonathan Could be a good idea.
14:56 pmichaud that probably wouldn't work, because I tend to proxy to Jonathan for anything dealing with the subjects he's presenting tonight
14:56 jonathan But the hacking that results from the current discussion is Hard, so I'll leave it to PM. ;-)
14:56 particle telepresentation++
14:56 jonathan On the "is MyArray" thing
14:57 jonathan Hmm. I'm not convinced about this. What about if there's multiple "is" delcarations? Then what do we attach?
14:57 pmichaud can there be multiple 'is' declarators?
14:57 jonathan Yes, I'm pretty sure there can be.
14:57 * pmichaud boggles
14:57 pmichaud what would that mean?
14:58 jonathan Well, if you think about what happens when you write an is and what it (should!) compile down to.
14:58 pmichaud maybe remind me :-)
14:58 pmichaud oh, it's a composition
14:58 jonathan my $x is Foo; ends up doing a call to traint_auxiliary:is(Foo, $x)
14:58 jonathan Well, it's up to whatever that multi decides to do.
14:59 jonathan But yes, it may decided to do a composition.
14:59 pmichaud so,   my $x is Foo is Bar   might do something like make an anonymous class that $x ties to
14:59 jonathan I'd imagine for tied arrays, that the role it composes will implement postcircumfix:[ ]
14:59 PerlJam How do you compose the "is" declarators that affect the container type?  Or is that how you get Capture-like objects that may have slots missing?
14:59 jonathan Probably as an l-valued routine.
15:00 pmichaud well, my @a  can be "is anything" that does the Positional role (S02, I think)
15:00 pmichaud never mind, that's binding.
15:00 pmichaud sorry.
15:01 jonathan Yes, but @ sigil means that what is there always does the Positional role.
15:01 jonathan PerlJam: Since it's a call to a multi, I can only imagine that they are composed linearly.
15:01 jonathan Like mix-ins.
15:01 jonathan But that's only if it actually decides to do a mix-in.
15:02 jonathan As S12 puts in, well-behaved traits will tend to do such things. But you could have "is SayHi" which just prints "hi" at the point of delcaration. ;-)
15:02 Ontolog What is the difference between `match = regex(self, 'pos' => 0)` and `match = regex.'ACCEPTS'(self)` ?
15:02 pmichaud okay, so   "my @a;"   defaults to "is Array", but other "is Foo" could change its implementation type
15:02 jonathan Yes.
15:02 pmichaud that does affect the copy semantics for item assignment a bit
15:03 pmichaud because if we have
15:03 pmichaud my $x is Foo;
15:03 jonathan (Please don't assume I 100% understand all of this, I'm just giving the best grip on all of this that I currently have.)
15:03 pmichaud we don't want an assignment to $x to wipe out its Foo-ness
15:03 PerlJam jonathan: I thought that's what everybody is doing :)
15:03 jonathan Yes.
15:03 jonathan Hmm
15:04 pmichaud that's the other reason I was thinking we might want/need a container property
15:04 jonathan This is an issue, and I think why we separated container and value PMCs in the first place.
15:04 jonathan Ah. That also could maybe work.
15:04 pmichaud I separated container and value PMCs so I could get binding to work
15:04 jonathan And .VAR just hands back the property.
15:05 pmichaud we might still end up with a Scalar container for scalar variables, though.
15:06 pmichaud if we can get setprophash for aggregate elements then that might resolve a lot of the "container" issues.
15:07 jonathan Yes.
15:07 pmichaud anyway, I think we've got that one cleared for now
15:07 pmichaud last item:  reference capability a-la Mutable
15:07 pmichaud we need it to be able to implement ObjectRef
15:07 Zaba joined #parrot
15:08 jonathan PerlJam: To answer your question from earlier, quote from S12: Unlike compile-time roles, which all flatten out in the same class, compile-time traits are applied one at a time, like mixin roles. You can, in fact, apply a trait to a container at run time, but if you do, it's just an ordinary mixin role.
15:12 pmichaud in fact, it may be that "Mutable" is more properly named "ObjectRef"
15:13 jonathan Yes.
15:14 jonathan It sounds like it does what ObjectRef needs to, or thereabouts.
15:14 pmichaud it's pretty close, yes.
15:14 jonathan OK.
15:14 jonathan Sounds like we've got something workable.
15:15 pmichaud how hard to implement setprophash?
15:16 pmichaud I'm thinking "trivial."  :-)
15:17 jonathan Easy.
15:17 jonathan Like, longer to run make test than to write it. :-)
15:17 pmichaud I'll send the message to the list asking for the opcode.  :-)
15:17 pmichaud but I think we should ask forgiveness rather than permission :)
15:18 jonathan If we want to make sure we ask forgiveness, I can always check it in first. ;-)
15:18 pmichaud yes, that's what I'm thinking
15:18 purl Oooh he is soooo fine!!!
15:18 Ontolog anyone on my regex woe?
15:18 * jonathan is disturbed
15:18 pmichaud let's just go ahead and add it, and if someone doesn't like it we can discuss it
15:18 jonathan OK, sure.
15:19 jonathan I kinda need to go to my PM meeting in a few minutes.
15:19 pmichaud no problem, I think we're done for now
15:19 jonathan Forgot about it, and that I was presenting!
15:19 jonathan $DAYJOBs + Russia mess has been exhausting me.
15:19 pmichaud I think we're in agreement on the overall structure and where things will go -- I'll flesh out what I wrote and add it as a design document for rakudo
15:20 moritz Ontolog: I can try... what's your exact woe?
15:20 pmichaud Ontolog: just a sec, I can answer
15:20 pmichaud Ontolog: I want to close up the conversation with jonathan first :-)
15:20 jonathan OK
15:20 jonathan And it'll be implemented before I come back from vacation? ;-)
15:20 pmichaud very likely.
15:20 jonathan w00t
15:21 jonathan I am also trying to put together a grant application.
15:21 purl okay, jonathan.
15:21 pmichaud I mentioned to particle in a conversation last night (voice) that   list assignment and lexicals are the two items that I think really need some attention
15:21 Ontolog moritz: What is the difference between `match = regex(self, 'pos' => 0)` and `match = regex.'ACCEPTS'(self)` ?
15:21 jonathan Oh, how I'd love to come back to see those fixed! :-)
15:21 pmichaud .'ACCEPTS'  really should be defined in terms of .match
15:21 jonathan Is there anything specific you'd like me to include in it to work on?
15:21 pmichaud not the other way around
15:22 Ontolog i don't understand
15:22 pmichaud jonathan: I'll know better when I see a draft :-)
15:22 moritz Ontolog: .'ACCEPTS' might do things that you don't want, like setting the $/ variable to the match object
15:22 Ontolog i see
15:22 pmichaud .ACCEPTS is the standard mechanism for handling smart match
15:22 Ontolog but when i do the former, i don't get a match... match.'text'() is empty
15:22 jonathan pmichaud: OK.
15:23 pmichaud jonathan: for example, I added a few items to particle's proposal last night :-)
15:24 pmichaud (or, more precisely, I suggested a few extra items)
15:24 pmichaud I recommend *not* doing    match = regex(self)
15:25 pmichaud also, I think I mis-spoke earlier, you probably want  to use 'c' or 'continue' instead of 'pos'
15:25 pmichaud :pos anchors to a position, :continue starts scanning at a position
15:25 moritz in terms of Perl 6 that's correct
15:26 * jonathan suggests all of the hard stuff for particle's proposal
15:26 Ontolog ok
15:26 jonathan ;-)
15:26 pmichaud jonathan: I think we all have different ideas of "hard stuff"
15:26 Ontolog so you recommend match = regex(self, 'continue' => start_pos)
15:26 * particle kicks dirt on jonathan's shoes :P
15:26 pmichaud except for the 'self' part, yes.
15:26 Ontolog if i don't provide self
15:26 pmichaud 'self' might not be a string.
15:27 Ontolog it is given implicitly?
15:27 dalek r31229 | moritz++ | trunk:
15:27 dalek : [rakudo] added tests for the fix in r31228 to spectest_regression
15:27 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31229
15:27 Ontolog so how does regex know what to do then?
15:27 pmichaud $S0 = self
15:27 pmichaud match = regex($S0, 'continue' => start_pos)
15:28 Ontolog this demotes self to a String?
15:28 Ontolog i mean
15:28 Ontolog what do i mean...
15:28 Ontolog ok i'll do it that way
15:28 pmichaud $S0 = self   says "give me the string value of self"
15:28 pmichaud note that the .match method belongs in any-str.pir, not in Str.pir
15:29 pmichaud say 1234.match(/\d$/);
15:29 pmichaud (note that the invocant is not a string.)
15:29 Ontolog i see
15:32 s1n joined #parrot
15:36 peepsalot joined #parrot
15:39 jonathan OK, off to pm group, bbl
15:39 Ontolog should split be returning empty strings?
15:39 pmichaud thanks, jonathan++
15:39 pmichaud Ontolog: depends on the pattern being split
15:39 Ontolog say "<frag>char</frag><tag>soup</ta​g>".split(/\<\/?.*?\>/).perl;\
15:40 Ontolog with my code I get: ["", "char", "", "soup", ""]
15:40 pmichaud in that case, yes.
15:40 Ontolog ok just checking
15:40 purl i'm still here, Ontolog.
15:40 moritz that looks bright
15:40 Ontolog bright? thanks ;-)
15:40 moritz purl, forget just checking
15:40 purl moritz: I forgot just checking
15:40 pmichaud there's an empty string before <frag>, one between </frag> and <tag>, and one after </tag>
15:40 Ontolog yes
15:41 Ontolog just making sure split is suppose to return them
15:42 Ontolog ok i'll send my new diff
15:42 Ontolog this one should work!
15:42 pmichaud ...does it pass any tests?  ;-)
15:42 moritz pmichaud: the tests all rely on is_deeply
15:42 moritz pmichaud: I plan to clean them up a little, but so far haven't found the tuits
15:43 pmichaud well, if we implement eqv and change is() to use eqv then we'd be there.  :-)
15:43 dalek r31230 | julianalbo++ | trunk:
15:43 dalek : miscellaneous fixes
15:43 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31230
15:44 moritz hm, perl 5 seems to place an implicit (?:...)+ around the pattern
15:44 moritz uhm, no
15:44 * moritz just can't read
15:44 pmichaud split /PATTERN/,EXPR,LIMIT
15:44 pmichaud split /PATTERN/,EXPR
15:44 pmichaud split /PATTERN/
15:44 pmichaud split   Splits the string EXPR into a list of strings and returns that
15:44 pmichaud list.  By default, empty leading fields are preserved, and
15:44 pmichaud empty trailing ones are deleted.  (If all fields are empty,
15:44 pmichaud they are considered to be trailing.)
15:45 Ontolog pmichaud: 3 small tests yes
15:45 Ontolog oops
15:45 Ontolog only handled the split /PATTERN/ case
15:45 pmichaud I don't know what the perl 6 spec says on this
15:45 Ontolog empty trailing fields are deleted?
15:46 moritz pmichaud: it's silent on that matter...
15:46 particle the "spec" for split is likely s29
15:46 moritz Ontolog: that was perl 5
15:46 particle which means "not official"
15:46 moritz pmichaud: but TimToady's stance seems to be to recommend Str.comb when one wants more intuitive/magic behaviour
15:46 pmichaud I thought that .comb returns the things that match instead of the things that don't match
15:47 moritz pmichaud: exactly
15:47 moritz pmichaud: so if you want the old magic split ' ' behaviour, you use $str.comb(/\S+/)
15:47 moritz pmichaud: or just $str.comb, because \S+ is the default
15:47 pmichaud S29 says   "Null trailing fields are no longer trimmed by default."
15:48 pmichaud So there.  :-)
15:48 Ontolog cool
15:48 * moritz couldn't read agian
15:48 moritz and not write either ;)
15:48 Ontolog so all i really need to do is add support for limit?
15:49 pmichaud I don't know if that's "all", but it would be a good thing to do :-)
15:50 Ontolog ok
15:50 moritz well, the current patch gets us a big step forward to usability
15:50 moritz Ontolog+++
15:50 Ontolog cool thanks, i'll work on the limit the same way I did for comb. unless limit needs to be a named param?
15:50 Ontolog which i am not sure how to do yet
15:50 moritz no, it's not
15:51 Ontolog ok so it's just an optional second param; i'll do it the same as comb
15:51 moritz it's a positional which can also be used as a named, which we ignore for now because we don't have the infrastructure
15:51 Ontolog oh yes, i remember someone said that before
15:52 moritz Ontolog: minor nit, the sub should really go into src/builtins/any-str.pir, and convert its invocant to string
15:52 moritz Ontolog: reason is, we want it to work on non-strings as well, like numbers
15:52 Ontolog yes makes sense
15:52 Ontolog ok then let's not commit that patch
15:52 Ontolog i'll move it over and add the limit
15:52 moritz great
15:53 pmichaud many of the methods in Str.pir, Hash.pir, and Mapping.pir may still need to be migrated to the any-*.pir   stuff
15:53 moritz the november hackers will love you ;)
15:53 moritz pmichaud: does it really make sense to do that? I think it's more efficient to do it when we write builtins in Perl 6
15:53 pmichaud well, they'll still be a part of Any :-)
15:54 pmichaud and I expect Any to be split up among several files.
15:54 moritz no problem if 'is also' on classes is in place
15:54 pmichaud yes, that needs to be implemented
15:54 moritz (open classes)++
15:55 pmichaud anyway, you're correct that it's not urgent to move everything to any-*.pir, but if it causes tests to pass or helps with hacking then we should probably do it
15:55 pmichaud and we need to get people out of the habit of thinking that methods like match and split belong in Str
15:56 moritz the easiest way to do it is to fix S29
15:59 Ontolog man moving it over breaks it
15:59 Ontolog if it has to work on non-strings, does that mean i can't use substr?
15:59 pmichaud you can use substr, yes.  But you shouldn't need to use substr :-)
16:00 moritz Ontolog: it means you have to convert self to a string first
16:00 Ontolog moritz: i did that
16:01 Ontolog pmichaud: hm? how do I do it without substr??
16:01 pmichaud this is for split, yes?
16:01 moritz yes
16:02 pmichaud instead of using start pos and end pos, just do   tmpstr = match
16:02 pmichaud oh, I see
16:02 pmichaud you need the part that didn't match
16:02 moritz split, not comb ;)
16:03 pmichaud just use substr on $S0, as the latest patch does
16:03 pmichaud that will work.
16:03 Ontolog yes i'm doing that now but when i move the method to any-str.pir it stops working, the entire string is returned instead of the parts
16:04 pmichaud it shouldn't make a difference.
16:04 Ontolog if you see the patch i sent to the mail you can see the method, it should be ok
16:04 pmichaud make sure there's not another 'split' lying around somewhere.
16:04 Ontolog yes that seems to be what's happening
16:05 Ontolog hmmm why is it calling the other one??
16:05 moritz there's a .sub split without any multi declaration
16:05 moritz that seems wrong in the first place
16:05 Ontolog there the split in Str.pir that splits on a string
16:06 moritz yes, but it needs to be a multi nonetheless
16:06 Ontolog the test shows that this one is getting run
16:06 moritz just about every builtin needs to be a multi
16:06 Ontolog because of the missing slot of self in the multi
16:06 Ontolog in Str.pir it has :multi('String') which is matching on the object not the param
16:07 moritz aye
16:07 Ontolog i changed it to :multi(_,'String') to test if mine now gets run, however now I get no applicable methods
16:07 pmichaud the .sub 'split' in Str.pir:369 needs to be removed or fixed.
16:08 pmichaud Ontolog: can you send me an updated diff?
16:08 pmichaud or nopaste it
16:08 purl nopaste it is See /who is nopaste for the URL.
16:08 Ontolog paste what's in any-str.pir?
16:08 pmichaud yes
16:08 Ontolog k
16:08 pmichaud paste a diff of any-str.pir would be best.
16:09 Whiteknight joined #parrot
16:09 dalek r31231 | Whiteknight++ | trunk:
16:09 dalek : [Book] Added short sections about make_language_shell.pl and driver programs for new compilers
16:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31231
16:09 cotto_home GeJ_, ping
16:10 pmichaud there's probably also a problem in that the Str.split is being exported as a global
16:10 GeJ cotto_home: pong
16:10 pmichaud so it may be hitting that one first.
16:10 cotto_home Does r31230 fix the build for you?
16:11 pmichaud I don't know if that's the case -- just a guess.
16:11 nopaste "Ontolog" at 119.122.54.227 pasted "any-str.pir" (45 lines) at http://nopaste.snit.ch/14110
16:12 GeJ can't tell right now. I don't have access to my box. The missus is asleep. Will try first thing tomorrow and will provide feedback.
16:12 pmichaud also, fwiw, I'm trying to keep the method definitions in alphabetical order :-)
16:12 Ontolog i see
16:12 Ontolog i'll keep that in mind hehe
16:12 cotto_home ok.  Thanks.
16:13 pmichaud any-str.pir looks fine, depending on how it's being called.
16:13 GeJ cotto_home: no, thank you
16:13 Ontolog i still forgot to do something with that method, it seems i must return the entire string on no match?
16:13 Ontolog pmichaud: i'm calling it the same way i was when it was in Str.pir
16:13 Ontolog say "<frag>char</frag><tag>soup</t​ag>".split(/\<\/?.*?\>/).perl;
16:13 pmichaud as a method or as a function?
16:13 Ontolog method
16:13 pmichaud ok, as a method.
16:13 Ontolog but it should still work yes?
16:14 kj Whiteknight: maybe it's a good idea to write the usage of make_language_shell.pl
16:14 pmichaud yes, unless there's some other .split method that is taking precedence for strings.
16:14 moritz adding a debug print shows that it's never called
16:14 Ontolog pmichaud: there was, the split on a string in Str.pir, but I changed the :multi and now the above line yields the error "no applicable methods"
16:15 Ontolog moritz: which is never called?
16:15 moritz Ontolog: the one in any-str
16:15 Ontolog moritz: i also added debug prints and it is certainly called unless you change :multi to :multi(_,'String')
16:16 Ontolog oops
16:16 Ontolog sorry
16:16 Ontolog i mean the one in Str.pir stupid me anyway you don't get that 'no applicable methods' error?
16:17 moritz I get that if add change the multi of Str.split(Str) to (_,'String')
16:17 moritz s/add/I/
16:17 cotto_home GeJ, what time is it for you right now?
16:18 Ontolog moritz: *and* apply the any-str diff?
16:18 Ontolog in any case, it seems not to work just moving the split on a regex into any-str.pir
16:19 Ontolog perl is not finding the method
16:19 moritz Ontolog: yes
16:19 GeJ cotto_home: 3AM. I'm coding on the laptop some Python + Wx app for a meeting with a client in the morning.
16:19 GeJ cotto_home: feels like ball and chain.
16:19 pmichaud on my system:
16:20 GeJ If only chocolate perl existed when I started this thing.
16:20 pmichaud > say 4123.split(/12/).perl;
16:20 pmichaud ["4", "3"]
16:20 pmichaud so it does find the method if the invocant is not a string.
16:20 Ontolog huh?? i'll try
16:20 Ontolog that's funny, why would it do that?
16:20 pmichaud so the problem has something to do with the fact of the invocant being a string
16:21 pmichaud > say "4123".split(/12/).perl;
16:21 pmichaud ["4123"]
16:21 pmichaud (this is without changing the :multi in Str.pir)
16:21 Ontolog i see
16:22 pmichaud if I change the :multi, I then get "no applicable methods"
16:22 Ontolog right
16:22 pmichaud so, the split in any-str.pir is correct, since it works for things other than strings
16:22 pmichaud something in the string object class is hiding the .split on Any, though.
16:22 pmichaud aha!
16:22 pmichaud it's the fact that there's a .split method in Str
16:23 pmichaud since we define .split on Str, it hides the one from .Any
16:23 Ontolog and it's suppose to work this way?
16:23 moritz so the next step is to move that one to any-str as well?
16:23 Ontolog even though they are multis with different sigs?
16:23 pmichaud as far as I know, yes -- defining a method in a subclass hides all of its superclass methods.
16:24 pmichaud i.e., if I define 'foo' in a subclass, then that hides any 'foo' from the superclass
16:24 Ontolog but they are two different multi's
16:24 pmichaud but they're in different classes.
16:24 Theory joined #parrot
16:24 moritz Ontolog: that seems to be a parrot design choice
16:24 moritz I don't think it works that way in Perl 6
16:25 Ontolog ok well we should be clear then how Perl is suppose to work
16:26 moritz we should, yes ;)
16:26 pmichaud in this case, since we're talking about a builtin, it really should be that the other .split method should go into Any
16:26 moritz and I'm sure it's defined in S12 + a bunch of other synopsis
16:26 pmichaud regardless of what Perl 6 says.
16:26 moritz pmichaud: I'm doing the move here now
16:27 NotFound In c++ that problem is solved by putting a 'using' clause if you want to inherit the parent versions.
16:27 kj NotFound: I thought using was related to namespaces...
16:28 NotFound kj: yes, but it has other meanings.
16:28 moritz so it's an overloaded keyword ;)
16:28 kj NotFound: oh ok, I guess I forgot that already
16:29 NotFound Don't make a new keyword when you can reuse ;)
16:29 pmichaud S12: In contrast, multi routines can have only one instance of the long name in any namespace, and that instance hides any outer (or less-derived) routines with the same long name. It does not hide any routines with the same short name but a different long name. In other words, multis with the same short name can come from several different namespaces provided their long names differ and their short names aren't hidden by an only declaration in some int
16:29 pmichaud so, correct, defining a multi in a derived class should not hide a different-long-name (signatured) version of the multi from the parent class
16:30 pmichaud Parrot doesn't work that way, no, so we'll have to fix the dispatch semantics
16:31 pmichaud at any rate, at least we know why Str.split is hiding Any.split :-)
16:31 particle c++ went a little far with overloading
16:32 NotFound By the way, someone build parrot with c++ other than me? Or they are all too lazy to fix when someone broke it? ;)
16:34 pmichaud I don't know how many others are building parrot with c++
16:34 particle should split remove the trailing empty results?
16:34 pmichaud no.
16:34 pmichaud at least, not according to the current S29.
16:34 particle ok, so that's a p5 diff
16:37 Ontolog i sent an updated diff of any-str.pir, it also contains corrected behavior on a non-match
16:40 Ontolog oops i didn't alphabetize it
16:42 pmichaud afk for a bit
16:43 Ontolog afk for 8 hours
16:44 Ontolog going to bed
16:44 purl You and me, of course. or a goat
16:44 Ontolog please let me know if there are any more problems with that split method; if not i look forward to a commit and i'll go on to the limit parameter
16:44 Ontolog goodnight
16:47 Whiteknight joined #parrot
16:49 dalek r31232 | Whiteknight++ | trunk:
16:49 dalek : [Book] expand section on operator precidence parser, more to do.
16:49 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31232
16:56 kj Whiteknight: it's 'pasttype', not 'pasttyle', in line 489 of your patch
16:58 Juerd left #parrot
16:58 dalek r31233 | Whiteknight++ | trunk:
16:58 dalek : [Book] Add more specific information about compilers as per a suggestion from kjs++
16:58 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31233
16:59 dalek r31234 | moritz++ | trunk:
16:59 dalek : [rakudo] implement Any.split(/regex/), Ontolog++
16:59 dalek : Patch courtesy by Chris Davaz, <cdavaz at gmail dot com>
16:59 dalek : Note that currently Str.split(Str) mask this method for strings, which should be
16:59 dalek : fixed by moving that to Any as well.
16:59 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31234
17:01 dalek r31235 | Whiteknight++ | trunk:
17:01 dalek : [Book] one more addition about compilers.
17:01 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31235
17:02 dalek r31236 | moritz++ | trunk:
17:02 dalek : [rakudo] fixed trailing whitespaces
17:02 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31236
17:07 dalek r31237 | cotto++ | trunk:
17:07 dalek : [imcc] refinement and further explanation of r31230
17:07 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31237
17:36 Zaba joined #parrot
17:40 Theory joined #parrot
18:07 jhorwitz joined #parrot
18:15 PerlJam Is it just me or does that split() patch to any-str.pir not work properly?
18:15 johbar joined #parrot
18:16 PerlJam (or is that just the masking that mortiz was talking about?  Does "abc123def".split(/\d+/)  trigger split(Str) ? )
18:29 isop joined #parrot
18:32 moritz PerlJam: exactly
18:33 moritz PerlJam: it works on non-string invocants, though
18:35 PerlJam oh, I see.  I was forgetting about the invocant
18:36 moritz rakudo: say 1234.split(/2/).perl
18:36 polyglotbot OUTPUT[["1", "34"]␤]
18:44 jan joined #parrot
18:58 isop pmichaud: ping
19:07 pmichaud pong
19:07 dalek r31238 | julianalbo++ | trunk:
19:07 dalek : escape string DATA in pdump and show empyy strings as such
19:07 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31238
19:07 isop I figured out what was wrong with my augmented assignment thing
19:07 Zaba joined #parrot
19:08 isop though it's still probably not the best way to do it
19:08 isop where do I put a patch?
19:08 moritz nopaste?
19:08 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
19:08 purl nopaste is, like, at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/
19:08 isop heh
19:09 pmichaud can also submit patches to perl6-compiler
19:09 pmichaud or parrotbug@perl.org
19:10 isop thanks
19:10 pmichaud maybe we should create a launchpad project for pynie
19:11 particle damn, coordinating events for the weekend is really sucking up my time
19:12 pmichaud anyone have any recommendations about project management in launchpad or some other system?
19:13 ruoso joined #parrot
19:15 ruoso_ joined #parrot
19:16 particle launchpad is good for high-level pm tasks
19:16 pmichaud I'm thinking bug tracking.
19:16 particle i prefer hiveminder/rt for todo/bugs
19:16 pmichaud and patch management.
19:16 purl hmmm... patch management is very offbeat also
19:16 particle obra likely has some opinions
19:17 particle summon obra
19:17 pmichaud rt will be great if I can get an rt instance that would run the pynie tickets
19:19 * pmichaud takes a look at hiveminder, since allison seems to like it
19:21 PerlJam hiveminder fits well with perl people I think.
19:21 PerlJam I used it briefly when I was going to contribute something to svk
19:21 * particle loves hiveminder for work and home todo lists
19:24 PerlJam using it is very simple and that's probably its most important feature.
19:24 pmichaud simple++
19:24 particle i love that i can get to it from my phone, irc, im, web, mail, etc
19:25 PerlJam If I were more organized, I'd probably use it for todo lists :)
19:25 pmichaud I'll play with it some more.  Anyway, setting up a launchpad project was easy, so it exists for the moment:  http://www.launchpad.net/pynie
19:27 NotFound Hey, what an idea. "To open a ticket send SMS to 555 with the word TICKET and a description. Send more messages to more priority. Cost for message, 0.50 €"
19:27 purl joined #parrot
19:33 isop pmichaud: I'll submit it to launchpad, then
19:34 isop pmichaud: https://bugs.launchpad.net/pynie/+bug/271874
19:47 baest joined #parrot
19:56 braceta joined #parrot
20:03 pmichaud isop:  got it, thanks!
20:03 isop :)
20:04 pmichaud maybe a patch for README that tells others to submit bugs through launchpad?  ;-)
20:06 isop ok
20:08 dalek r31239 | pmichaud++ | trunk:
20:08 dalek : [pynie]:  Patch for augmented assignment, isop++
20:08 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31239
20:09 dalek r31240 | pmichaud++ | trunk:
20:09 dalek : [pynie]:  Forgot to add t/10-augop.t  (isop++)
20:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31240
20:09 isop pmichaud: https://bugs.launchpad.net/pynie/+bug/271889
20:12 dalek r31241 | pmichaud++ | trunk:
20:12 dalek : [pynie]:  Update README with location for patch/bug submittals (isop++)
20:12 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31241
20:13 Theory joined #parrot
20:14 dalek r31242 | julianalbo++ | trunk:
20:14 dalek : Xlib examples: add Drawable class, make Window his child, and move draw methods to Drawable
20:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=31242
20:14 cotto_work OOey
20:21 moritz pmichaud: I get a parse failure in 10-augop.t
20:22 isop moritz: the test should fail
20:22 purl well, the test should fail is hires time and time differ by more than a second.
20:22 isop moritz: I mean
20:22 isop moritz: you're right but it should be failing instead
20:23 pmichaud I didn't bother to run 'make test' -- I figure someone else can patch.  If someone else wants to take over commits for pynie, that'd be great.  :-)
20:25 isop pmichaud: should I change the tests to use the perl test thing? (I mean the tests themselves, not the harness)
20:25 pmichaud isop:  you mean Test.pm ?  Probably not.
20:26 isop I think so
20:26 moritz isop: I don't quite understand... should it give a parse error?
20:26 isop moritz: it doesn't parse yet
20:26 isop moritz: but I guess that's not a very nice way to fail the test
20:26 isop moritz: as far as the test goes
20:26 moritz isop: so it's a TODO test but you have no way to mark it as "todo"?
20:27 * isop didn't know about todo tests
20:28 moritz isop: you can comment out the test code and do print 'not ok 6 # TODO implement **='
20:29 GeJ cotto_work++
20:29 GeJ NotFound++
20:29 cotto_work it worked?
20:29 purl Of course it worked
20:29 GeJ cotto_work: as of r31242 it builds fine.
20:30 cotto_work NotFound++
20:30 isop moritz: got it
20:30 GeJ will make a test run a little later.
20:30 cotto_work That makes me happy.
20:30 GeJ got some python to write now.
20:30 GeJ thank you both.
20:30 NotFound Hey, is my first pir usage of child classes ;)
20:31 cotto_work even though it's an odd bug, thanks a ton for reporting
20:31 isop pmichaud: why not use Test.pm?
20:31 cotto_work failing earlier is always better than failing later
20:31 pmichaud because I don't think pynie will be able to parse it
20:31 pmichaud because Test.pm is written in Perl 6 :-)
20:31 moritz isop: well, Test.pm is written in Perl - you'd have to writing something similar for python...
20:31 moritz isop: and implement an import mechanism
20:31 isop pmichaud: well, I guess they'd be in perl and just call pynie, no?
20:32 * isop is looking at the lua tests
20:32 NotFound Do it, I want to be able to write xlibtest.py
20:32 * moritz welcomes our new nci overlord
20:33 NotFound You can kiss my ring
20:33 cotto_work in fact, "Fail early, fail often." would make a good motto.
20:34 NotFound Faily tale.
20:47 cotto_work purl++
20:47 Tene NotFound: have you written xlibtest.rb yet?
20:47 NotFound Tene: Don't know enough ruby.
20:48 cotto_work GeJ, did you run make test?
20:48 Tene NotFound: it's pretty simple.  You should be able to pick it up by looking through t/
20:50 jhorwitz Tene: are cardinal's objects regular parrot objects or is there a metamodel on top of it, a la rakudo?
20:50 NotFound Tene: there is some example of loading and using pir modules?
20:51 Tene jhorwitz: copied from rakudo
20:52 Tene NotFound: same as rakudo.  it precompiles test.rb down to test.pir and uses that for the test suite
20:52 Tene require 'xlib'
20:52 Tene will look for xlib.rb, then for xlib.pir, then for xlib.pbc
20:52 jhorwitz hm.  so like rakduo i should be able to register a parrot class as a cardinal class?
20:53 NotFound Will try
20:53 Tene jhorwitz: I don't understand the question.
20:55 jhorwitz in rakudo, if i have an existing parrot class from some library, rakudo can't see it b/c of the metamodel.  i have to "register" the class as a perl 6 class.  where's pmichaud for the *real* explanation?  :)
20:55 NotFound jhorwitz: I don't register anything, and xlibtest.p6 works
20:55 pmichaud ...rakudo can't see it because classes in Perl 6 are located via their protoobjects
20:55 pmichaud 'register' creates the appropriate protoobject
20:56 jhorwitz so the question is, was that also ported over to cardinal?
20:56 pmichaud (it also creates a metaclass instance)
20:56 pmichaud the real question is "how does cardinal locate its classes?"
20:56 * jhorwitz is glad pmichaud is here  :)
20:57 Tene get_hll_global $P12, "ClassName"
20:57 Tene looks like
20:57 Tene then $P12."new"()
20:57 pmichaud okay, that's the same as Rakudo.
20:58 moritz NotFound: the mysql example module isn't very usable because the rows aren't Perl 6 lists...
20:58 jhorwitz Tene: basically i want mod_parrot's classes (written in PIR) to be instantiated from cardinal.
20:58 moritz NotFound: maybe with that registering black magic you could improve that
20:59 NotFound moritz: I think that I'm not the better person for that work.
20:59 pmichaud jhorwitz: how about using P6object to create mod_parrot's classes?
20:59 pmichaud then it would happen "automagically"
21:00 jhorwitz i let the HLL modules do the HLL-specific things
21:00 Tene jhorwitz: you could use P6object's 'register'?
21:00 jhorwitz but i can just have the cardinal module do it
21:00 jhorwitz that's all i needed to know.  :)
21:00 pmichaud P6object doesn't think of class registration as being hll specific
21:00 pmichaud it just says "give me a class and set up the protoobjects"
21:00 jhorwitz gotcha
21:00 pmichaud for example, PGE and PCT all use P6object to create their classes
21:01 pmichaud (and they aren't HLL-specific)
21:01 Whiteknight joined #parrot
21:01 pmichaud eventually (like very soon) P6object will also deal with exporting protoobjects into other namespaces
21:01 pmichaud er, into other HLL namespaces
21:01 moritz NotFound: of what (parrot) type are the mysql rows that your module returns?
21:01 NotFound How can I call Xlib::DisplayName() from cardinal?
21:02 jhorwitz pmichaud: thanks for the explanation.  helps a lot.  :)
21:02 NotFound moritz: Mysql::Row class
21:02 jhorwitz pmichaud: i'll be hackathoning with you in pittsburgh
21:03 particle jhorwitz: tiny chance i'll be there, too
21:03 pmichaud jhorwitz: looking forward to it.
21:03 purl joined #parrot
21:03 jhorwitz particle: that would be sweet.  haven't seen you in all of 2 months.  ;-)
21:04 moritz NotFound: could that thing be made a subclass of ResizablePMCArray or some such?
21:05 NotFound moritz: I suppose it can, but don't know what to do to not let corrupt it via unexpected vtable or method calls.
21:05 pmichaud what does it return now?
21:06 moritz NotFound: hm... maybe I'll just write a Perl 6 wrapper class, although it's not very efficient
21:06 Tene NotFound: actually, I don't know if that's supported yet.  Lame.
21:06 Tene I'll try to get to that namespace stuff tonight.
21:06 Tene Really.
21:06 Tene I've been busy and not sleeping well lately.  :(
21:06 NotFound Tene: I need to be able to call functions in a namespace for both Mysql and Xlib.
21:07 Tene Yeah, I really should have realized that.
21:07 * particle joins in: cardinal is a lame hll. i can't do something cool, 'cause your language sucks.
21:07 NotFound But I can export the required ones to root namespace with a longer name, if that helps using from more langauges.
21:08 moritz NotFound: don't remove the incentive for adding namespaces ;)
21:08 Tene I've got a pile of cardinal stuff to work through.
21:09 NotFound moritz: a long and ugly name is not so bad incentive.
21:09 moritz ParrotNCIMysqlSampleRow?
21:09 NotFound ImTooLameToUseNamesapaces_Mysql_init X-)
21:09 moritz ;)
21:10 Tene Please no.  I'll do it tonight.  I promise.
21:10 NotFound Ok ;)
21:10 Tene ;)
21:10 particle tene++
21:10 particle sleep--
21:10 Tene purl: karma tene
21:10 purl tene has karma of 206
21:11 moritz karma sleep
21:11 purl sleep has karma of 106
21:11 Tene 103*2  Nice.
21:11 jhorwitz karma purl
21:11 purl purl has karma of 8218
21:11 jhorwitz that can't be right
21:12 particle purl karmas herself when nobody's looking
21:12 purl particle: sorry...
21:12 Tene purl++
21:13 NotFound Method 'DisplayName' not found for non-object -> At least the error message is clear.
21:14 moritz (clear error messages)++
21:27 * jonathan is back from PM group
21:28 * pmichaud wishes todo.pl were installed on feather
21:28 jonathan todo.pl?
21:28 pmichaud command line interface for hiveminder
21:29 pmichaud that way I could add todo items from my irssi window :-)
21:30 moritz pmichaud: I can install stuff on feather...
21:30 pmichaud cpan -i App::Todo     :-)
21:30 jonathan pmichaud: Anything in backscroll I should read? :-)
21:30 * jonathan is lazy
21:31 pmichaud not that I can think of
21:31 jonathan Most of it looks to be about Cardinal being a lame HLL ;-)
21:31 pmichaud I went to lunch shortly after you left and have been doing other non-programmy things since
21:31 isop pmichaud: if I want to make a PynieList class, should I have listmaker create one of those, or is there some way to set the HLL to use those instead of ResizablePMCArray?
21:32 pmichaud isop:  when we get HLL mapping in place much of it will happen automatically.  But normally you'd have listmaker create those.
21:32 jonathan I gave my Perl 6 OO talk, and have been doing mostly beer since.
21:33 pmichaud I did help with the implementation of .split(Regex)  :-)
21:33 moritz ii  libapp-todo-pe 0.96-1         Provides todo.pl, a command-line interface t
21:33 * jonathan is so tempted to reply to ajr's message with "DO NOT WANT"
21:34 pmichaud heh
21:34 moritz jonathan: I thought about "too late, $url_to_pmichauds_lightning_talk"
21:34 bacek morning...
21:34 jonathan :-D
21:34 pmichaud attempt to expunge lolspeak:  FAIL
21:34 NotFound Talking about using pir modules from HLL.... CAN I HAZ XLIB??
21:35 pmichaud [pmichaud@feather ~]$ todo.pl
21:35 pmichaud Can't locate Number/RecordLocator.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at /usr/bin/todo.pl line 21.
21:35 bacek my kidz hatez me. They woke me up at 6:30...
21:35 pmichaud my kidz hatez me also.  I wake them up at 6:30
21:35 Tene NotFound: if you show me the spec for using modules and namespaces in lolcode, or make a proposal, I'll implement it.
21:35 bacek pmichaud: :)
21:35 NotFound Tene: LOL
21:36 moritz pmichaud: I either install or test software, but never both ;)
21:36 pmichaud sounds like me
21:36 moritz pmichaud: better now?
21:36 pmichaud (re: pynie patch)
21:37 pmichaud todo.pl WIN
21:37 bacek pmichaud: what do you think about http://nopaste.snit.ch/14105 ? This is quick fix for [perl #58818] [BUG] Problem when directly assigning object attributes for self.new
21:37 pmichaud thanks thank thanks
21:37 pmichaud yay, I can haz todo items in irssi
21:38 moritz dh-make-perl++ # build deb packages from CPAN without much trouble
21:38 bacek moritz: where did you get libapp-todo-perl???
21:38 bacek oh.
21:38 pmichaud bacek:  I'd have to review how Object.new is implemented -- I didn't write that code.
21:38 bacek moritz: This is an answer ;)
21:38 bacek pmichaud: ok.
21:38 jonathan pmichaud: I have a ticket that needs changes to Object.new.
21:39 jonathan As in, one I looked into.
21:39 moritz bacek: FYI, in stable it's pretty basic, but in Lenny dh-make-perl is pretty good
21:39 jonathan 58818
21:39 jonathan Basically, should create container and then assign to it.
21:39 bacek moritz: I use Lenny anyway ;)
21:39 jonathan Rather than blindly assigning whatever's passed in.
21:40 jonathan (I think that code predated .item, .list and .hash and Perl6Scalar too...)
21:40 pmichaud anyway, I delegate the nopaste to jonathan :-)
21:41 jonathan I know how to fix it, just need to do it. :-)
21:41 pmichaud afk, dinner
21:41 bacek pmichaud: bone appetite
21:41 moritz .oO( does pmichaud eat bones? ;-)
21:42 jonathan lol
21:43 NotFound Talk about language interoperability ;)
21:43 NotFound use French;
21:44 moritz no French;
21:44 moritz # recovered from that desease
21:44 cotto_work use Awesome;
21:45 NotFound Use Spanish;
21:45 NotFound # Como si lo desease
21:46 bacek bareword "Use" found where operator expected
21:46 NotFound Urgh
21:49 bacek afk # breakfast
21:53 purl let's see how this goes
21:55 jonathan purl, perl 6 junction fetishism?
21:55 purl umm....
21:55 Infinoid purl, hot junction webcam action?
22:00 isop joined #parrot
22:00 Whiteknight purl, hot junction webcam action is super hot for a dirty bot like me. SEXY!
22:01 Whiteknight hot junction webcam action?
22:01 cotto_notpurl ENOPURL
22:01 Whiteknight damnit!
22:01 Whiteknight EGETPURLBACKHERESOICANSCREWWITHIT
22:04 cotto_notpurl I don't make a convincing bot.
22:04 isop does parrot have some reflection mechanism atm?
22:05 cotto_notpurl probably.  What do you want to do?
22:05 isop see what methods an object has
22:05 isop I think I got it
22:10 Whiteknight you should be able to extract that list from the objects namespace, if there isn't an easier interface to get it
22:10 Whiteknight I'm sure there are attributes floating around that contain the information you want
22:10 isop how about the properties attached to an object?
22:10 isop to a specific instance?
22:11 Whiteknight that may work too, I'm not an expert in objects and properties
22:13 isop ok, I found that, too
22:14 Tene isop:
22:15 Tene $P1 = class $P0
22:15 Tene $P2 = $P1.methods()
22:17 isop thanks
22:20 bacek joined #parrot
22:24 jonathan isop: also $P2 = inspect $P1, "methods" # if you don't want to do a method call - this calls the v-table method
22:37 pmichaud moritz++   # I can now do hiveminder task management from IRC!
22:38 pmichaud that's a big help, since I generally have an irc window open somewhere
22:53 Lorn joined #parrot
23:00 tetragon joined #parrot
23:01 cotto_work does anyone know what the plans are for integrating ncigen into Parrot?
23:02 isop pmichaud: how do I set the signature for the 'not' pirop to accept 2 PMCs and return a PMC? pynie's using the version that doesn't return anything
23:04 particle isn't it PPP ??
23:04 * particle tries to remember
23:07 Whiteknight PP->P?
23:08 isop particle: that worked
23:08 particle sweet! i remembered something useful!
23:17 Lorn joined #parrot
23:32 Ontolog P->NP?
23:32 Whiteknight hopefully NP->P
23:33 Whiteknight and if you prove it, you'll be a famous person
23:39 cotto_work parrotvm.org is s l o w
23:44 Whiteknight maybe you're just really fast?
23:45 cotto_work not today
23:48 * jonathan sleeps

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

Parrot | source cross referenced