Camelia, the Perl 6 bug

IRC log for #parrot, 2008-07-26

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:10 AndyA joined #parrot
00:12 kid51 joined #parrot
00:37 Ademan joined #parrot
00:44 cotto_work petergibbs++ #explaining some of the sprintf.t magic
00:44 cotto_work :q
00:44 cotto_work good thing nobody's paying attention
00:48 dngor joined #parrot
00:54 Andy joined #parrot
01:10 particle1 joined #parrot
01:16 dalek r29741 | jkeenan++ | parallel:
01:16 dalek : Simplify condition for printing verbose output by eliminating '&&  == 2'.  This makes this config step like all others with verbose output functionality.
01:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29741
01:16 dalek r29742 | jkeenan++ | parallel:
01:16 dalek : Provide basic tests.  Move list of required template files into _init(), then
01:16 dalek : test for their presence.
01:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29742
01:25 dalek r29743 | jkeenan++ | parallel:
01:25 dalek : Pull hard-coded strings holding names of source files into _init(), then
01:25 dalek : modify tests appropriately.
01:25 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29743
01:26 TiMBuS joined #parrot
01:27 dalek r29744 | jkeenan++ | parallel:
01:28 dalek : Minor typographic touch-up.
01:28 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29744
01:33 dalek r29745 | jkeenan++ | parallel:
01:33 dalek : Pull hard-coded strings holding names of source files into _init(), then modify tests appropriately.
01:33 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29745
01:36 Andy joined #parrot
01:39 dalek r29746 | jkeenan++ | parallel:
01:39 dalek : Typographic cleanup to bring line lengths into conformance with coding standards.
01:39 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29746
01:44 dalek r29747 | jkeenan++ | parallel:
01:44 dalek : Do change intended earlier:  if defined  ---> if  in 5 locations.
01:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29747
01:50 bacek joined #parrot
01:57 Khisanth joined #parrot
02:00 teknomunk joined #parrot
02:03 rdice joined #parrot
02:10 dalek r29748 | coke++ | trunk:
02:10 dalek : [tcl] Todo more spec tests.
02:10 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29748
03:39 dalek r29749 | cotto++ | trunk:
03:39 dalek : [ops] add a test that would have segfaulted before r29735
03:39 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29749
03:54 Ademan joined #parrot
04:31 particle joined #parrot
05:22 Andy joined #parrot
05:47 Psyche^ joined #parrot
07:22 ewilhelm joined #parrot
07:23 dalek r29750 | petergibbs++ | trunk:
07:23 dalek : Re-wrote sprintf2.t to simplify adding more tests.
07:23 dalek : Added more tests including %*.*f
07:23 dalek : Fixed spf_render to make %*.*f test pass.
07:24 dalek : Changed sprintf.t to skip test 300 which now fails differently.
07:24 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29750
07:39 Ademan joined #parrot
07:40 Andy joined #parrot
08:15 AndyA joined #parrot
08:59 NordQ joined #parrot
09:15 Patterner joined #parrot
09:27 Whiteknight joined #parrot
09:30 iblechbot joined #parrot
09:48 masak joined #parrot
10:16 masak is there an Emacs mode for PIR?
10:40 apeiron joined #parrot
10:47 rurban joined #parrot
10:48 rurban Can I ask about about make install?
10:55 NordQ joined #parrot
10:56 masak rurban: you can ask about anything.
10:58 rurban sure. but do I get an answer?
10:59 rurban Ok. I added now to almost all languages Makefile the following targets: installable, test-installable and install
11:00 rurban install copies installable_$LANG@exe to bin_dir/parrot-$LANG@exe@, pod2man $(LANG).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(LANG).1,
11:00 rurban define DOCS and cp $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(LANG)
11:02 masak was that the question?
11:02 rurban If this okay or if there was something else planned for make install?
11:02 jonathan hi all
11:02 rurban Hi
11:02 purl hola, rurban.
11:02 masak jonathan: hi
11:02 * jonathan finally woke up....after a LOT of (it seems needed) sleep.
11:03 masak rurban: I'm sure jonathan can answer your question
11:03 rurban jonathan: q about make install for the languages
11:03 rurban I added now to almost all languages Makefiles the following targets: installable, test-installable and install
11:03 rurban install copies installable_$LANG@exe to bin_dir/parrot-$LANG@exe@, pod2man $(LANG).pir > $(DESTDIR)$(MANDIR)/man1/parrot-$(LANG).1,
11:03 rurban define DOCS and cp $(DOCS) $(DESTDIR)$(DOC_DIR)/languages/$(LANG)
11:04 rurban If this okay or if there was something else planned for make install?
11:04 rurban Or should we distribute just the $LANG.pbc into some dir?
11:04 rurban pbc_to_exe --install is handy to generate self-hosting binaries
11:05 jonathan As far as I know, there weren't any solid plans for make install yet.
11:05 jonathan It's been advised as something to just not do for quite a while now, because it was broken.
11:06 rurban Ok, So I'll just create a TODO ticket and write my plans there. Thing is, I want to package parrot and the languages for cygwin
11:06 jonathan Yes
11:06 jonathan To me, what you just suggested seems sane.
11:06 masak rurban++
11:06 rurban Without self-hosting installables I cannot do that, op needs the build_dir to run the langs.
11:06 rurban Ok, so I'll continue
11:07 jonathan From what I understand, none of this works at all now, so if you're making it do something useful that's an improvement. :-) Even if folks see need to tweak the exact paths later.
11:08 rurban What I thought about is to generate the config/root.in framework automatically from some simplier definitions
11:08 rurban I just need pir deps, the resuklting pbc's, the pmc's, the DOCS and the source for pod2man
11:10 jonathan That sounds like itmay make it more maintainable.
11:10 jonathan *it may
11:11 rurban just like automake. users shoudl be able to override test, test-installable and some pmc and pbc targets
11:11 rurban well, language authors.
11:11 purl language authors are in LANGUAGES.STATUS.pod, mostly
11:14 rurban The problem is: what about langs not in our tree? kea-cl e.g. basic is also out.
11:16 jonathan I'm not so sure what we can do about those.
11:17 jonathan I guess, they'll come with their own configure/make and so on.
11:17 jonathan I think eventually, all language projects will move to their own repository. But I think that's a medium-term rather than a short-term thing - Parrot just ain't stable enough to make that a sensible option yet.
11:18 * jonathan decides to spend the first part of his Rakudo day reviewing patches and tickets in the queue and apply/fixing stuff.
11:19 ruoso joined #parrot
11:19 pmurias joined #parrot
11:36 rurban [perl #57296] [TODO] make install -C languages
11:38 dalek r29751 | jonathan++ | trunk:
11:38 dalek : [rakudo] Make sleep return the value it was given, which for now fakes the number of seconds slept. More importantly, it avoids a Null PMC Access exception. We can improve this once sub-second time support is in place through the time() call. Patch from Carl M�sak <cmasak at gmail.com> (masak++).
11:38 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29751
11:47 masak heh, dalek encodes into latin-1, and rakudo_svn on #perl6 encodes into misformed utf-8...
11:48 masak it's not easy coming from a country using strange accents on some of its letters
11:48 masak :)
11:48 jonathan masak: I've appreciated this fact much more since moving to such a country.
11:49 masak jonathan: .sk, right?
11:49 jonathan Here an accent makes the difference between "woman" and "men". :-)
11:49 jonathan masak: Yes
11:50 masak jonathan: yes, we have similar differences :)
12:01 jonathan Hmm...do we not have any tests anywhere for multi...
12:04 masak there's a few pf them in the Pugs test suite
12:05 jonathan I'll look at getting some together for Rakudo.
12:05 jonathan I planned to spend some time writing tests before implementing the Perl 6 MMD algorithm, so I could make sure I had the whole thing clear in my head.
12:06 jonathan For now, just wanted to add something since "multi foo" now parses (with upcoming patch).
12:06 masak sounds good.
12:09 dalek r29752 | jonathan++ | trunk:
12:09 dalek : [rakudo] Make multi f() {} parse and work the same as multi sub f() {}. Resolves RT#57122.
12:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29752
12:11 paco joined #parrot
12:39 kid51 joined #parrot
12:40 dalek r29753 | jonathan++ | trunk:
12:40 dalek : [core] When trying to write to a closed file handle, we should throw an exception, not have an assertion failure. That way HLLs or programs can catch it.
12:40 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29753
12:41 rurban_ joined #parrot
13:07 Limbic_Region joined #parrot
13:43 dalek r29754 | jonathan++ | trunk:
13:43 dalek : [rakudo] Give a reasonable error message when trying to inherit from a non-existent class (we need something better eventually, but this beats odd exceptions and assertion failures).
13:43 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29754
14:16 dalek r29755 | jonathan++ | trunk:
14:16 dalek : [pct] Fix the Null PMC exceptions that could occur in the return_pir control handler. This resolves at least one Rakudo ticket, and should help anyone using NQP who was also seeing this bug.
14:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29755
14:18 jonathan Whoever put the blue box in RT that gives a link to the editable version of a ticket deserves a beer.
14:22 bacek joined #parrot
14:22 bacek g'night everyone
14:25 davidfetter joined #parrot
14:39 * jonathan wonders when the post-OSCON hackathon starts
14:41 Andy joined #parrot
14:42 TimToady it starts in about an hour and 20
14:42 jonathan Aha, OK.
14:43 * jonathan moved an extra timezone east after moving from the UK, and is even further from whatever the timezone is in Oregon.
14:48 dalek r29756 | jonathan++ | trunk:
14:48 dalek : [rakudo] Make multi sub foo { } work (the case where you have a multi, but no signature, which means it's a parameterless variant).
14:48 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29756
14:56 masak jonathan++ # rt activity
14:57 jonathan masak: Would rather try and not let the queue grow too huge. :-)
14:58 masak jonathan: that's partly my fault, I guess :)
14:58 jonathan Well, your fault in a good way.
14:58 jonathan It means Rakudo is better as a result.
14:59 masak that's my goal.
14:59 jonathan :-)
14:59 jonathan Ah. Class variables.
14:59 masak I'm most interested to hear what you think of #57118 -- but I guess you'll get to that eventually
15:02 jonathan I saw it is a bug in some vaguely scary parsing code and thought it better to let pmichaud pick which patch he thought was the Right One.
15:03 jonathan Nice work coming up in two patches that will do it, though!
15:03 masak :)
15:03 masak I couldn't sleep last night, and figured "what the heck"
15:12 timbunce joined #parrot
15:13 _timbunce joined #parrot
15:14 * davidfetter sees double
15:20 Tene Anyone have anything parrot-related they'd like me to work on?
15:25 ruoso joined #parrot
15:31 clunker3 joined #parrot
15:34 bacek joined #parrot
15:40 teknomunk joined #parrot
15:51 Andy joined #parrot
16:03 timbunce joined #parrot
16:09 dalek r29757 | fperrad++ | trunk:
16:09 dalek : [Lua] first test for OpenGL
16:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29757
16:12 davidfetter joined #parrot
16:16 iblechbot joined #parrot
16:17 kid51 joined #parrot
16:27 jhorwitz joined #parrot
16:31 Senaka joined #parrot
16:31 Senaka seen infinoid
16:31 purl infinoid was last seen on #parrot 1 days, 13 hours, 3 minutes and 50 seconds ago, saying: s1n: http://www.parrotvm.org/svn/pugs  [Jul 25 03:28:09 2008]
16:32 Senaka left #parrot
16:35 chromatic joined #parrot
16:45 dalek r29758 | pmichaud++ | trunk:
16:45 dalek : [rakudo]: spectest-progress.csv update, 110 files, 1885 passing tests
16:45 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29758
16:47 * jonathan waves a pmichaud
16:47 jonathan *at
16:47 pmichaud hello
16:47 jonathan how's things?
16:47 pmichaud good.  finally have a working network connection again :-)
16:47 jonathan Phew!
16:47 jonathan How was OSCON?
16:48 pmichaud excellent, as always
16:48 jonathan Nice
16:49 jonathan Hopefully I make it there again some year.
16:49 jonathan I've spent the week on anti-biotics and back and forth to the doctor, so you've certainly done better this week.
16:49 dalek r29759 | chromatic++ | trunk:
16:49 dalek : [Lua] Fixed SVN metadata on new file.
16:49 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29759
16:50 * jonathan would choose OSCON over beer-denying anti-biotics any day.
16:50 nopaste "pmichaud" at 64.122.41.37 pasted "why doesn't this work?" (8 lines) at http://nopaste.snit.ch/13668
16:51 jonathan pmichaud: There is a time opcode?
16:51 * jonathan wonders what it returns...
16:51 nopaste "pmichaud" at 64.122.41.37 pasted "why doesn't this work? results" (5 lines) at http://nopaste.snit.ch/13669
16:52 jonathan Puts the current system time (represented as a number of seconds, with
16:52 jonathan microseconds) in $1.
16:52 jonathan Heh. That would work just nicely.
16:52 pmichaud ...except it gives me an odd result (see nopaste 13669)
16:52 jonathan oh?
16:52 pmichaud sleep(4) doesn't actually sleep for 4 seconds.
16:53 jonathan Wow.
16:53 pmichaud it sleeps for something less than 4 seconds
16:53 jonathan I'm curious what this dones, on Win32.
16:53 pmichaud I'll go ahead and commit.
16:53 jonathan OK, sure.
16:53 jonathan Just smoking a change to add class attributes....
16:53 masak pmichaud++ # woot, real sleep!
16:55 jonathan If it passes, I'll apply it, and close another masak++ ticket. :-)
16:55 dalek r29760 | pmichaud++ | trunk:
16:55 dalek : [rakudo]: Update sleep() to return actual time slept.  Sorta.
16:55 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29760
16:55 dalek r29761 | jkeenan++ | parallel:
16:55 dalek : [configure] Refactor gen::platform::runstep() into smaller chunks.  Add tests
16:55 dalek : of internal subs where possible.
16:55 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29761
16:55 masak "masak ticket". I like the sound of that.
16:55 jonathan However
16:55 jonathan $ perl6 -e 'class A { has $.x; method foo { say $.x } }; my A $a .= new; $a.foo'
16:55 jonathan Object
16:55 jonathan I'm pretty sure that printing Object is bogus.
16:56 masak yes, why does it do that?
16:56 jonathan Probably because I did something bone-headed inside the 'new' method.
16:56 jonathan I'll look at it in just a moment...
16:57 masak jonathan++
17:02 dalek r29762 | jonathan++ | trunk:
17:02 dalek : [rakudo] First cut at getting class attributes (declared my $.x) to work. Does a little refactoring so we can do this without code duplication. Also has a workaround for :outer not being allowed to point at :init :load blocks; we can pull that out once pdd25cx is merged and PCT updated. Todo is make the accessor sensitive to the presence or lack or 'is rw' and make sure type constraints get applied.
17:02 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29762
17:03 Andy joined #parrot
17:03 jonathan pmichaud: On Win32, it appears we haven't got sub-second sleep implemented.
17:03 jonathan So I just get 4 and 1 respectively.
17:03 jonathan Erm, subsecond *time*, I meant.
17:20 dalek r29763 | jkeenan++ | parallel:
17:20 dalek : Eliminate trailing white space in several locations.
17:20 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29763
17:29 timbunce joined #parrot
17:36 gryphon__ joined #parrot
17:39 nopaste "chromatic" at 64.122.41.37 pasted "Calling PMC METHODs from VTABLE entries" (47 lines) at http://nopaste.snit.ch/13670
17:39 chromatic I can't make this work.  I have stupid fingers today.
17:41 dalek r29764 | jonathan++ | trunk:
17:41 dalek : [rakudo] If you don't specify a type constraint that is a proto-object, we shouldn't default an attribute to containing Object proto-object.
17:41 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29764
17:41 jonathan chromatic: Should it not be METHOD void set_key(PMC *key) {
17:43 chromatic Most of the other methods aren't, but maybe.  I'll try that.
17:43 pmichaud METHODs don't specify return types
17:43 jonathan Is it not actually calling the method?
17:44 chromatic Yes.
17:44 chromatic Apply it and prove t/pmc/enumerate.t
17:45 dalek r29765 | pmichaud++ | trunk:
17:45 dalek : [rakudo]: Throw an appropriate exception for unescaped $'s in strings.
17:45 dalek : * Resolves RT #57118 (masak++)
17:45 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29765
17:47 jonathan chromatic: You getting "t\pmc\enumerate....too few arguments passed (0) - 2 params expected"
17:48 chromatic Yes.
17:51 masak pmichaud: I like "Can't use $ as non-variable in interpolated string".
17:51 masak pmichaud++
17:51 pmichaud thanks.  I think TimToady will likely change it, though.  ;-)
17:51 masak maybe one could also write something about that \$ was probably what was intended
17:53 pmichaud so, perhaps "Can't used unescaped $ as non-variable in interpolated string"?
17:54 pmichaud *use
17:54 masak already better :)
17:54 masak provided that the programmer knows that 'escape' == '\'
17:54 masak (in this case)
17:54 jonathan chromatic: I think that it is expecting a call to have been set up using the Parrot Calling Conventions.
17:54 jonathan Maybe try using PCCINVOKE
17:56 chromatic I've done that too.  Let me get the error message.
17:57 chromatic Hm.
17:57 jonathan Yeah, I'm trying it here and it fails to compile.
17:57 chromatic Okay, now that worked.
17:57 chromatic Like I said, stupid fingers.
17:57 jonathan But basically, the problem boils down to
17:58 jonathan run_meth_from_c calls runops_args, which calls inoke before calling pass_args_fromc, which normally is fine.
17:58 jonathan Because invoke just returns an offset into the bytecode
17:58 jonathan But here you're calling an NCI
17:59 jonathan So it tries to get the args, before they have been set up to get.
17:59 chromatic Ah, makes sense.
18:00 jonathan It's maybe something worth fixing.
18:00 chromatic I filed a bug a year and a half ago related to that.
18:00 chromatic It's the "You can't invoke NCI calls from the external API."
18:00 jonathan Ah.
18:00 jonathan So certainly worth fixing.
18:01 chromatic If I remember correctly, you said we needed some bytecode changes first.
18:01 chromatic Though I may be thinking of the arity method.
18:03 jonathan I can't think right now why this particular fix would want bytecode changes.
18:04 chromatic Me neither, but it's been a while.
18:06 dalek r29766 | chromatic++ | trunk:
18:06 dalek : [PMC] Added the set_key() method on the Iterator PMC to encapsulate the
18:06 dalek : key-setting operation.  (No more poking into its struct val, which I hope to
18:06 dalek : remove.)
18:06 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29766
18:09 chromatic japhb, ping -- RT #57006 looks appliable.
18:14 dalek r29767 | chromatic++ | trunk:
18:14 dalek : [config] Add the cygwin importlib to please -lparrot in packaged version (Reini
18:14 dalek : Urban, RT #56562).
18:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29767
18:17 masak is there color coding in vim or Emacs for PIR?
18:18 teknomunk_ joined #parrot
18:20 chromatic Look in editor/
18:20 masak chromatic: ah, thanks
18:24 masak could submethods, theoretically, be implemented in rakudo as of today?
18:26 masak what's the semantics of `my $var` inside a class? (where '$var' is a non-twigil variable)
18:26 masak rakudo: class A { my $a = "hi"; method foo() { say $a } }; A.new.foo()
18:26 polyglotbot OUTPUT[␤]
18:26 masak rakudo: class A { my $.a = "hi"; method foo() { say $.a } }; A.new.foo()
18:26 polyglotbot OUTPUT[hi␤]
18:27 Tene Looks liek polyglotbot is properly updating every 10 minutes, btw.
18:28 masak Tene++ (polyglotbot++)
18:29 jhorwitz joined #parrot
18:30 * jhorwitz hacks at PDX for an hour
18:31 jonathan masak: Not sure; I think just something with no accessor
18:31 masak jonathan: so it's a bug?
18:31 jonathan Assigning initial values to attributes, class or otherwise, isn't yet implemented.
18:31 masak oki
18:31 jonathan To do that neatly I think we need to refactor variable_declarator to be more STD.pm-ish
18:32 masak this is a bit problematic, too:
18:32 masak rakudo: class A {}; say A.new
18:32 polyglotbot OUTPUT[get_string() not implemented in class 'A'␤current instr.: 'print' pc 12252 (src/gen_builtins.pir:7798)␤called from Sub 'say' pc 12274 (src/gen_builtins.pir:7808)␤called from Sub '_block11' pc 36 (EVAL_13:16)␤called from Sub 'parrot;PCT::HLLCompiler;eval' pc 806
18:32 polyglotbot ..(src/PCT/HLLCompiler.pir:481)␤called from Sub 'parrot;PCT::HLLCompiler;evalfil...
18:32 masak it's related to that other bug, where constructor calls cannot be last in a program
18:32 masak what's get_string(), and why doesn't A have one? :)
18:33 pmichaud how should A stringify?
18:34 jonathan pmichaud: I don't know.
18:34 pmichaud er, how should an instance of A stringify?
18:34 jonathan I'd love to fix it, but I just don't know how an instance of a class should stringify.
18:34 chromatic Stringerifically.
18:34 jonathan And I don't want to guess.
18:34 pmichaud pugs says   <obj:A>
18:34 masak that's better than failing.
18:35 pmichaud however, an instance of Object stringifies to the null string, so perhaps a subclass of Object should do the same.
18:35 masak hm, gotta go make dinner. I'll be back tomorrow with more bugs :) good luck tonight!
18:36 jonathan masak: Cool, thanks for all of the tickets you filed, giving me something to work on! :-)
18:36 masak jonathan: thanks for fixing them!
18:36 dalek r29768 | chromatic++ | trunk:
18:36 dalek : [PMC] Made every PMC which stores a Key in an Iterator use the latter's set_key
18:36 dalek : method.  Encapsulation++.
18:36 jonathan pmichaud: That would be logic, easy to implement now, and clear up the current issue.
18:36 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29768
18:36 masak makes rakudo ever more pleasant to play around with
18:36 pmichaud jonathan: feel free to do it that way for now.
18:37 jonathan OK, just cooking some food right now, and will do it after dinner.
18:37 chromatic Or someone else could do it instead, and you could bring food here.
18:39 jonathan Might be cold, by the time I arrive...
18:41 jonathan pmichaud: Was there ever some decisive answer on the way but True and .true worked?
18:46 * jonathan afk for a moment - dinner
18:58 pmichaud no decisive answer yet -- it's one of the questions I'm hoping to ask TimToady
19:02 slightlyoff joined #parrot
19:02 jonathan pmichaud: OK, great.
19:03 chromatic jonathan, we need to fix some vtable stuff before the stringification works the right way.
19:09 jonathan chromatic: Oh?
19:09 jonathan Specifically?
19:09 coumbes joined #parrot
19:13 chromatic It's not clear whether adding get_string in P6Object should or shouldn't override the method of the same name in Int, for example -- at least, it's not clear to PIR.
19:14 jonathan Ouch, yes.
19:16 jonathan 'cus we "fake" the inheritance from P6Object.
19:17 Andy joined #parrot
19:20 pmichaud the solution will likely be to keep P6Object from registering vtable methods, or otherwise controlling it somehow.
19:21 japhb chromatic: pong.  Odd, I never received that response from rurban.  Looking ...
19:21 jonathan pmichaud: I pondered that, and it seems a tad messy, but I can't think of anything better.
19:22 pmichaud is there a way to introspect a sub/method to determine if it's a vtable sub/method?
19:22 jonathan Looking
19:23 chromatic src/pmc/namespace.pmc:189 pokes around
19:23 chromatic I remember adding that.
19:24 jonathan In sub.pmc, we could easily add it to inspect
19:25 dalek r29769 | pmichaud++ | trunk:
19:25 dalek : [rakudo]: Switch sleep to be a listop instead of named unary (masak++)
19:25 dalek : * Partially solves RT #57924; but uses a hard-coded constant value
19:25 dalek :   to represent "forever" until Parrot provides a way to do it.
19:25 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29769
19:27 japhb chromatic: Go ahead and apply rurban's latest 57006.  I've visually reviewed it, but I've got craziness going on around here, and can't apply/test/commit myself
19:28 jonathan chromatic: Hmm...it seems that v-table overrides go into a separate hash in the class.
19:28 chromatic That's right.
19:29 jonathan but the code in P6Object.pir calls $P0.'methods'()
19:29 jonathan Which gets just the methods hash.
19:30 pmichaud sure, which is what we want.
19:30 pmichaud but presently there's not a way to create a vtable method that is not also a method
19:30 pmichaud so every vtable method also ends up in the methods hash
19:31 jonathan Heh. I was expecting it to be in one or the other...
19:31 jonathan But OK.
19:32 jonathan So it seems easiest way to know which it is, is to add a "is_vtable_method" to the possible inspect strings for a Sub PMC.
19:33 pmichaud we just discussed here (with allison) how we'll control where the various subs get located
19:34 pmichaud short answer:   .sub "foo" :method("method_name") :vtable("vtable_name")  :ns("namespace_name")
19:34 pmichaud where omitting the parens causes the sub name to be used
19:34 pmichaud and applying any of the :method/:vtable/:ns flags suppresses the automatic entry of the sub name into the namespace
19:34 jonathan Ah, OK.
19:35 jonathan That sounds like it'll work.
19:36 pmichaud so, .sub "foo" :method     creates a method not entered in the namespace
19:36 pmichaud .sub "foo" :method :ns  creates a method that *is* entered in the namespace
19:37 jonathan .sub "foo" :vtable ?
19:39 dalek r29770 | chromatic++ | trunk:
19:39 dalek : [config] Improved OpenGL detection for Cygwin (Reini Urban, RT #57006).
19:39 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29770
19:40 pmichaud well, one would not normally do that with "foo"
19:40 pmichaud but .sub "get_boolean" :vtable   works
19:40 pmichaud creates a get_boolean vtable entry but does not create a get_boolean sub or method
19:42 jonathan OK, makes sense.
19:55 apple-gunkies joined #parrot
19:58 Ademan joined #parrot
20:12 teknomunk__ joined #parrot
20:24 AndyA joined #parrot
20:26 teknomunk_ joined #parrot
20:42 rurban_ joined #parrot
20:45 dalek r29771 | jonathan++ | trunk:
20:45 dalek : [rakudo] Fix for when you have multiple multis without signatures (but different names) in a program; before, all but the first one got mis-generated.
20:45 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29771
20:47 dalek r29772 | fperrad++ | trunk:
20:47 dalek : [Lua] triangle.lua, an OpenGL demo
20:47 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29772
20:54 Ademan joined #parrot
20:54 dalek r29773 | jonathan++ | trunk:
20:54 dalek : [rakudo] Add some tests for stuff I fixed/implemented today to spectest_regression.
20:54 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29773
20:56 Schwern joined #parrot
20:56 Schwern Hey kids, where's the hackathon?
20:56 chromatic Urban Grind, east side
20:57 Schwern Is Adam Kennedy there?
20:57 chromatic Allison, Patrick, Larry, Jerry, Eric, and me
20:57 chromatic no Adam
20:57 Schwern Ok, thanks.  I'll be there within 3 soons.
20:59 chromatic If a soon is an hour, then it'll have closed.
21:01 * ewilhelm thought adam said he would, but no word
21:01 dalek r29774 | fperrad++ | trunk:
21:01 dalek : [Lua] OpenGL, small fix
21:01 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29774
21:10 jonathan pmichaud: ping
21:10 pmichaud pong
21:10 jonathan For given blocks (and others that set the topic)
21:10 jonathan At the end of "when" we need to have something to fall to the end of that block
21:11 jonathan I'm thinking that is some kind of .control thing on a block that sets the invocant?
21:11 pmichaud .leave
21:11 jonathan OK, but what does it call that one?
21:11 jonathan s/one/on/
21:12 jonathan given $foo { when ... { }; when ... { }; } # simple case, topic set by outer block
21:12 pmichaud I haven't worked the details on that yet.
21:12 jonathan given $foo { if $blal { when ... { ... }; when ... { ... }; }
21:12 jonathan OK
21:12 pmichaud it may be that we give an implicit label to the block
21:12 jonathan I was wondering if it was a control exception.
21:12 pmichaud yes, it's a control exception.
21:13 jonathan Like, one that is thrown at the end of a when block, and is caught at the end of a block that sets $_.
21:14 pmichaud in some sense it works about the same as 'last'
21:14 kid51 joined #parrot
21:14 pmichaud so I may just implement it that way
21:14 jonathan Hmm. Apart from the block you want to leave with "last" maybe wasn't the one that set the topic.
21:14 pmichaud oh?
21:15 pmichaud example?
21:15 pmichaud and keep in mind that    given $foo -> $x { ... }    is valid
21:15 jonathan given $foo { for @list -> $a { when $a { say "yay" } } }
21:15 pmichaud in that example, when applies to the 'for', not the 'given'
21:16 jonathan OK. But the for isn't setting the topic? Or is it?
21:16 jonathan As in, do both $_ and $a get the current iteration variable?
21:16 Andy joined #parrot
21:17 pmichaud ...."setting the topic" is a bit of a red herring here.
21:17 pmichaud oh, perhaps not. hmm.
21:17 Andy pmichaud: I forgot to mention
21:17 Andy I really do enjoy your recap talks
21:17 pmichaud thanks!
21:17 Andy even if I ostensibly know everything you're saying
21:17 Andy (which I don't)
21:18 jonathan pmichaud: when always smartmatches against $_, thus my confusion other what the "when" actually applies to here.
21:18 jonathan (where here = in the last example I wrote)
21:18 pmichaud okay, re-reading the spec
21:21 jonathan "The given block is just one way to set the current topic, but a switch statement can be any block that sets $_, including a for loop (assuming one of its loop variables is bound to $_) or the body of a method (if you have declared the invocant as $_)."
21:22 jonathan And "If the smart match succeeds, when's associated block is executed, and the innermost surrounding block that has $_ as one of its formal parameters (either explicit or implicit) is automatically broken out of."
21:24 chromatic This next commit message will be the awesome.
21:25 dalek r29775 | chromatic++ | trunk:
21:25 dalek : [IMCC] Made :vtable sub attribute imply the existence of a "self" PMC, which
21:25 dalek : refers to the invoking PMC.  Many occurrences of :method on vtable subs can go
21:25 dalek : away now.  See RT #47674 (and thanks to Andrew Whitworth for most of this
21:25 dalek : patch).
21:25 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29775
21:26 jonathan Is the awesome! chromatic++
21:26 chromatic Figured you'd like that almost as much as I do.
21:28 pmichaud jonathan: (asking TimToady)
21:28 jonathan pmichaud: OK. (answers from TimToady)++
21:30 pmichaud -> $a { ... }     doesn't set $_ as a parameter
21:30 pmichaud so yes,   when $a { ... }   would break out of the outer block
21:30 jonathan OK
21:31 jonathan So we maybe need some control exception specially for that?
21:31 Auzon joined #parrot
21:31 pmichaud which means that we want to put a control exception on blocks that have $_ as a formal param
21:31 jonathan OK
21:32 jonathan This gets a little fun, I guess, because in the case of a sub or method that takes $_ as one of its parameters, it is that block. But that also needs to have the return_pir control.
21:32 pmichaud which means we'll want to update control exceptions in PCT, which is what I've been planning to do but haven't had tuits for yet
21:32 jonathan OK.
21:32 pmichaud the return_pir control can handle more than just return exceptions
21:32 pmichaud PCT's default is to handle only return exceptions, but a HLL can provide its own return_pir PAST
21:32 pmichaud and I'm somewhat waiting for pdd25cx merge before deciding exactly how to do that
21:33 jonathan OK, at the moment, or is that waiting control exceptions work?
21:33 jonathan Aha, OK, makes sense.
21:33 jonathan It just occurred to me that getting given/when etc working would be kinda nice to do. :-)
21:33 jonathan I've spent the day mostly fixing little bits here and there.
21:35 Schwern Urban Grind is closing soon?  What's the plan then?
21:35 jonathan Amongst other things, fixing the return_pir code sometimes giving null PMC exceptions. Was happy to track that one down.
21:37 chromatic Schwern,  you have 2.5 hours.
21:37 Schwern Excellent.
21:44 dalek r29776 | jkeenan++ | parallel:
21:44 dalek : [configure] Refactor one hard-coded file name from inside runstep() to
21:44 dalek : _init().  Test appropriately.  Delete commented-out code.
21:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29776
22:02 jonathan OK, I'm too tired to do anything much else today... Report: http://use.perl.org/~Jonath​anWorthington/journal/37019
22:02 pmichaud jonathan++
22:03 Limbic_Region joined #parrot
22:07 jonathan pmichaud: Are you about next week at all, or is it your week travelling about?
22:07 pmichaud mon and tues I'll be online
22:07 jonathan (Just for co-ordinating Rakudo day...)
22:07 pmichaud wednesday is travel
22:07 pmichaud thu and fri I don't know yet.
22:07 pmichaud I'll have some online time, but I don't know the hours yet
22:08 jonathan OK, I need to deal with some other stuff on Monday for sure.
22:08 jonathan Tuesday should be do-able.
22:08 pmichaud okay, let's plan that.  That probably works best for me, as I'll have some catching up to do on Mon
22:08 jonathan OK. There's a couple of big-ish things I'd like to attack.
22:09 jonathan One of them is getting variable declarator inline with STD.pm
22:09 jonathan So the initial assignment is parsed as part of that.
22:09 pmichaud I think that's going to require a PGE fix, though.
22:09 jonathan I did fear that might be the case. :-(
22:09 pmichaud but I might be able to come up with a workaround.  Let's plan that for Tues, at any rate
22:10 jonathan But has $.x = 42; is, I fear, going to be messy without that.
22:10 pmichaud oh yes, it will.
22:10 jonathan We don't want any more $?OMG_GLOBAL. :-)
22:10 pmichaud although we might be able to cheat it at least to the level that assignment is currently cheating
22:10 chromatic I wanted to catch Esther Dyson at Burgerville this week so I could take a picture and label it "ICANN Has Cheeseburger"
22:11 jonathan :-D
22:11 jonathan The other thing is the type registry.
22:11 chromatic Where would she have to eat for me to get THAT picture?
22:11 pmichaud type registry might be a bit easier
22:12 jonathan McDonalds?
22:12 purl McDonalds is, like, paying $8/hr for the position of Janitor
22:12 jonathan pmichaud: Yeah. But getting it right with namespaces, leical classes, blah.
22:12 jonathan Not that we have lexical classes yet. :-)
22:14 jonathan (Though in theory now anoymous ones work, that should be easy...)
22:14 dalek r29777 | coke++ | trunk:
22:14 dalek : [cleanup] remove duplicate coda, probably copied in from when this was a standalone file.
22:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29777
22:14 jonathan I also worked out a way to implement state variables, with stashing the current value in a hash attached to the current sub as a property, which should be fairly easy to implement.
22:15 jonathan That too is almost certainly something to do after re-working variable_declarator, however.
22:16 pmichaud yes.  and we still need to get lexicals/closures working
22:16 jonathan Also, I'm really not happy with the whole scope declarator/scoped/variable declarator code.
22:16 jonathan And yes, I know, I'm responsible for the mess.
22:16 pmichaud :-D
22:16 pmichaud yes, it can be cleaned up.
22:16 pmichaud I think I should spend some time (before Tuesday) building/updating the roadmap
22:16 pmichaud and identifying which features we need to have in place before others
22:17 jonathan Part of it is, before we hit parsing the variable we already have parsed the scope.
22:17 jonathan But there's no convenient way I can see, other than more $?FOO, to be passing that along to things deeper in the parse tree.
22:17 pmichaud does it need to be passed along?
22:18 jonathan Well, the problem I'm finding now is that in scope_declarator, there's a "is it a variable we're scoping, is it a routine we're scoping", etc. With lexical packages it'll just gets worse.
22:19 jonathan So we end up with the logic for handling variables scattered all the way up the action methods.
22:19 jonathan And variable_declarator can't really look up the parse tree, or not so far as I'm aware.
22:19 pmichaud no, we can't look up the parse tree yet
22:20 pmichaud but I'm not sure what about variables needs to be "handled" just yet
22:20 jonathan OK. Take a look through the code, and it should give you an idea of what I mean, anyway.
22:21 pmichaud sure.  I've looked in the past and agree it needs some refactoring
22:21 jonathan Sure. I agree - I'm just not sure what the best way is.
22:36 donaldh joined #parrot
22:41 cotto_home joined #parrot
22:45 * jonathan sleeps
22:48 chromatic joined #parrot
23:03 dalek r29778 | jkeenan++ | parallel:
23:03 dalek : [configure] Refactor code from inside runstep() to _handle_define_option() to
23:03 dalek : increase testability of previously uncovered branch.  Add appropriate tests.
23:03 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29778
23:28 Schwern joined #parrot
23:28 Schwern http://iwantmyopenid.org/bounty  The OpenID bounty thing
23:33 chromatic s/un/o/
23:38 cotto_home 404: booty not found
23:38 dalek r29779 | chromatic++ | trunk:
23:38 dalek : [PMC] Converted Pair PMC to use PDD 17 attribute storage.  As part of this, it
23:38 dalek : now only holds PMC keys.  If we need STRING keys, we need a new implementation.
23:38 dalek : (Replace conditional with polymorphism.)
23:38 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=29779

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

Parrot | source cross referenced