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