Camelia, the Perl 6 bug

IRC log for #parrot, 2008-12-31

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 particle using either add_vtable/add_method or subclassing
00:00 TiMBuS thats handy
00:00 GeJ How can one augment a PIR object? for example on a ResizablePMCArray, I can do "$P0.'push'($P1)", but doing the same on a ResizableStringArray triggers a 'method not found'.
00:00 particle GeJ: i don't think RSA has the push method implemented
00:01 GeJ I can "push $P0, $P1" on a RSA though
00:01 particle you could copy/adapt the RPA push method for RSA
00:01 particle yes, that's the push opcode
00:02 GeJ so which files should I look for?
00:02 particle src/pmc/resizable*array.pmc
00:02 GeJ Great, thanks.
00:02 particle and t/pmc/resizable*array.t
00:09 AndyA joined #parrot
00:25 dalek r34679 | coke++ | trunk (2 files):
00:25 dalek : Test all tutorial PIR [1]
00:25 dalek : * every PIR file in the directory must be tested or FAIL.
00:25 dalek : * don't special case the TODO for windows quite so much.
00:25 dalek : * update one tutorial to simplify & make it testable
00:25 dalek :   (original version threw an exception, which didn't help teach anything at that point.)
00:25 dalek : [1] except on windows!
00:25 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34679
00:33 dalek r34680 | coke++ | trunk (2 files):
00:33 dalek : Instead of cleaning up quietly after the tutorial, encourage new developers to DTRT.
00:33 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34680
00:47 Zaba_ joined #parrot
00:56 Zaba joined #parrot
00:57 GeJ Is there something special to declare somewhere else when adding METHOD's in a .pmc file?
00:57 davidfetter joined #parrot
01:05 GeJ Yes!
01:12 particle joined #parrot
01:13 Zaba_ joined #parrot
01:16 Tene pmichaud: what should hllcompiler pass to TOP, then?  Check out compilers/pge/PGE/Match.pir +108
01:21 pmichaud ideally I think hllcompiler should pass a namespace, class, or protoobject
01:22 pmichaud (adding 'push' to RSA)  it can also be done from PIR
01:22 pmichaud without having to modify the PMC
01:24 Limbic_Region joined #parrot
01:24 Tene pmichaud: will I need to update anything else in PGE besides that part of Match.pir to work with classes in addition to strings, do you think?
01:24 pmichaud Tene: I can't think of anything right now.
01:25 Tene Okay, I'll try that.
01:25 pmichaud I'm sure I'll come up with some P6object support for this stuff at some point.
01:25 pmichaud (i.e., a generic method or function to convert all of these options into whatever we want.)
01:26 pmichaud eventually pge's compilers will become HLLCompiler objects also.
01:26 Zaba joined #parrot
01:26 pmichaud (as in, I expect that to happen sometime in january.)
01:29 dalek r34681 | pmichaud++ | branches/rvar/languages/perl6 (3 files):
01:29 dalek : [rakudo]:  "my $a" produces an undef() instead of Object.
01:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34681
01:38 lathos OK, my bug report didn't get in; I guess parrotbug doesn't go to trac.
01:40 pmichaud perl6 wiki ?
01:40 pmichaud lathos: correct, we don't have a mail-to-trac interface yet.
01:40 pmichaud I think parrotbug might still go to RT, though.
01:40 Zaba joined #parrot
01:41 lathos Hrm, I didn't get a confirmation mail either.
01:42 pmichaud Hrm.
01:42 pmichaud Maybe something has changed then.
01:43 lathos It was a rakudo bug not a parrot bug anyway.
01:43 pmichaud ah.  those should go to rakudobug@perl.org (and that forwards to RT)
01:43 lathos say eval "" # errors
01:43 pmichaud oh yes, that's icky.
01:43 pmichaud good find.
01:43 purl it has been said that good find is hard to man...
01:44 lathos Should I send in a bug report or are you happy to keep that in mind?
01:44 pmichaud bug report
01:44 purl feature request!
01:44 lathos OK.
01:44 pmichaud I'm deep into fixing variables and so I'm likely to forget.
01:45 lathos OK, done.
01:45 pmichaud lathos++
01:46 lathos The good news is that if we can get that one fixed, my File::Spec test harness should then work.
01:46 pmichaud oh, I'll bump the priority on it then.
01:47 pmichaud what should it return... undef?
01:47 lathos Yeah.
01:47 lathos I guess I could work around it by adding "undef;" to the beginning of code I execute, so if it is empty, something sensible is returned.
01:48 pmichaud as could eval(), presumably.  :-)
01:49 lathos Well, yes. Or whatever kind of nothing that eval is returning could be a stringifiable PMC.
01:50 pmichaud it's supposed to be that already.
01:51 pmichaud ohhhh, I see.
01:51 pmichaud okay.
01:51 pmichaud easy fix.
01:55 Coke hurm. compilers/tge failing for anyone else?
01:56 * Coke rebuilds to check.
01:58 Zaba_ joined #parrot
02:00 pmichaud lathos: should be fixed in r34682
02:01 dalek r34682 | pmichaud++ | trunk/languages/perl6/src/builtins:
02:01 dalek : [rakudo]:  eval() returns Nil for void expressions (RT #61868, lathos++)
02:01 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34682
02:06 kid51 joined #parrot
02:12 Zaba joined #parrot
02:18 GeJ It's not possible to add tickets in trac?
02:18 pmichaud it is, but you have login first.
02:18 Coke trac?
02:18 purl i think trac is a web-based software project management and bug/issue tracking system emphasizing ease of use and low ceremony. It provides an interface to the Subversion revision control systems, integrated Wiki and convenient report facilities.  http://projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at https://trac.parrot.org/parrot/
02:18 pmichaud (register if you don't have a login)
02:18 GeJ I am logged in
02:19 kid51 Can you see the New Ticket button?
02:19 pmichaud (upper right)
02:19 GeJ yup.
02:19 GeJ clicked on it.
02:20 GeJ Error: Forbidden
02:20 GeJ TICKET_CREATE privileges are required to perform this operation
02:20 kid51 Hrmm; this is not the first time this has been reported.  Bummer.
02:21 kid51 Am now reading https://trac.parrot.org/pa​rrot/wiki/TracPermissions
02:21 Zaba joined #parrot
02:23 * kid51 wonders why if GeJ is logged in ... and therefore presumably "authenticated," he does not yet have TICKET_CREATE privileges.
02:23 kid51 So who has trac-admin privileges?
02:24 Coke ~~
02:24 Coke Only via the webterface.
02:25 Coke authenticate has both TICKET_APPEND and TICKET_CREATE.
02:25 Coke perhaps clear cookies and login again?
02:26 kid51 I don't see any discussion of a web interface to trac-admin.
02:26 kid51 Oh, a plugin.
02:26 purl a plugin is another word for aftermarket accessorized barely compatible ugly hacked toy or nice or see go faster stripes
02:26 Coke I just meant I can only hit the site through the web.
02:26 Coke I don't have remote access to the box.
02:26 kid51 So you don't have admin privileges.
02:27 Coke Yes. But only via the web. =-)
02:27 Coke https://trac.parrot.org/parrot/admin/general/perm, for example.
02:27 Coke where the permission certainly seem ok.
02:28 kid51 Now on *that* link *I* get Error:Not found
02:28 GeJ do other people see this kind of wanings on just below the menu bar?
02:28 GeJ Warning: <acct_mgr.web_ui.MessageWrapper object at 0x81a80b4c>
02:28 Coke kid51: right, you don't have admin privs.
02:28 Coke Gej... no, that's just you. =-)
02:28 Coke what browser?
02:28 purl browser is broken or http://www.gfd-dennou.org/li​brary/cc-env/OLD/httpd_cern/
02:28 Coke you have JS enabled?
02:28 GeJ FF3
02:28 * Coke fires up ff on osx.
02:29 * GeJ feels so special... but not in a good way.
02:29 Coke GeJ: looks fine here.
02:29 Coke (osx, ff3)
02:30 pmichaud seems to work for me also, ff3, kubuntu 8.04
02:33 Coke ->
02:37 pmichaud yay, only 53 failing spectest files in the rvar branch.  All of them appear class related.
02:37 pmichaud that's good.
02:39 kid51 Very interesting.  I just went to the Trac preference page, went to set my name and email address under the "General" tab, and got this message:  Notice: <acct_mgr.web_ui.MessageWrapper object at 0x80cec96c>
02:40 * GeJ doesn't feel so special anymore and hands kid51 his new memebership card.
02:40 kid51 ... which looks the same as yours, GeJ
02:41 Zaba_ joined #parrot
02:42 kid51 Oh, shit, now I've lost my TICKET_CREATE privileges too.
02:42 * GeJ just b0rked his account while attempting to delete name and email info from his account
02:42 Whiteknight ENOTICKET_CREATE
02:42 kid51 And now, upon log out and back in, I'm getting Trac detected an internal error:
02:42 kid51 KeyError: 'email'
02:42 * kid51 too
02:43 * GeJ does the secret handshake with kid51
02:44 kid51 And to add insult to injury, that page tells me: "To that end, you could 'create' a ticket at this site."  And when I try to do so, I see that I no longer have TICKET_CREATE privileges.
02:44 dalek r34683 | pmichaud++ | trunk/languages/perl6/src/classes:
02:44 dalek : [rakudo]:  Enable whatever star meaning "full slice" (e.g. @a[*])
02:44 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34683
02:47 kid51 And this error is definitely on the server side, because (a) I removed all cookies from the browser I was using, closed the browser, reopened it and attempted to login again -- and got the same error; (b) got the same error with a completely different browser.
02:48 kid51 So much for our great new Trac system.
02:53 dalek r34684 | allison++ | trunk/docs/pdds:
02:53 dalek : [pdd] Remove the 'HISTORY' section from expected documentation, as it is no
02:53 dalek : longer used. Be explicit on our policy about author information in individual
02:53 dalek : files. Remove a legacy perl6-ism.
02:53 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34684
03:00 dalek r34685 | allison++ | branches/pdd30install_stage3 (3 files):
03:00 dalek : [cage] Clean out a few AUTHOR and HISTORY sections.
03:00 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34685
03:04 GeJ Coke: if you have the possibility to just nuke my account, That would be really appreciated.
03:06 GeJ 'geraud' is the username
03:52 rurban_ joined #parrot
03:58 schobes joined #parrot
04:01 elmex_ joined #parrot
04:21 s1n left #parrot
04:54 nopaste "GeJ" at 202.22.229.231 pasted "Add push, pop, shift and unshift methods to ResizableStringArray PMC" (524 lines) at http://nopaste.snit.ch/15139
04:56 GeJ just monkey-see-monkey-do'ing, but still it's fun to learn PIR this way.
05:07 tetragon joined #parrot
05:17 dalek r34686 | allison++ | branches:
05:17 dalek : Creating a branch for a second round of GC refactoring, cleanups and code reorganization.
05:17 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34686
06:18 Theory joined #parrot
07:01 chromatic joined #parrot
07:09 uniejo joined #parrot
07:15 dalek r34687 | petdance++ | trunk (3 files):
07:15 dalek : removed unused variables and re-headerized
07:15 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34687
07:17 MariachiElf joined #parrot
07:20 dalek r34688 | petdance++ | trunk (3 files):
07:20 dalek : removed unused argument from Parrot_invalidate_method_cache
07:20 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34688
07:22 ChrisDavaz joined #parrot
07:28 dalek r34689 | pmichaud++ | branches/rvar/languages/perl6/src/parser:
07:28 dalek : [rakudo]:  Eliminate $?BLOCK package variable, always use @?BLOCK[0]
07:28 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34689
07:41 dalek r34690 | pmichaud++ | branches/rvar/languages/perl6/src/parser (2 files):
07:41 dalek : [rakudo]: STD.pm alignment -- eliminate role_def, package_block
07:41 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34690
08:05 flh joined #parrot
08:07 schobes left #parrot
08:13 ChrisDavaz joined #parrot
08:13 tetragon joined #parrot
08:13 TiMBuS joined #parrot
08:13 gmansi joined #parrot
08:13 silug joined #parrot
08:13 workbench joined #parrot
08:13 zostay_ joined #parrot
08:13 Khisanth joined #parrot
08:13 Eevee joined #parrot
08:13 Infinoid joined #parrot
08:13 shorten joined #parrot
08:13 magnachef joined #parrot
08:13 slavorgn joined #parrot
08:13 Hinrik joined #parrot
08:13 cxreg joined #parrot
08:13 solarion joined #parrot
08:14 MariachiElf joined #parrot
08:14 particle joined #parrot
08:14 ruoso joined #parrot
08:14 TonyC joined #parrot
08:14 frodwith joined #parrot
08:14 apeiron joined #parrot
08:14 jsut|work joined #parrot
08:14 galf1 joined #parrot
08:14 rhr joined #parrot
08:14 dtg joined #parrot
08:14 japhb joined #parrot
08:14 tewk joined #parrot
08:16 dngor joined #parrot
08:16 allison joined #parrot
08:16 TimToady joined #parrot
08:16 cotto joined #parrot
08:16 Ademan joined #parrot
08:16 Aisling joined #parrot
08:16 Coke joined #parrot
08:16 purl joined #parrot
08:16 diakopter joined #parrot
08:16 spinclad joined #parrot
08:16 Tene joined #parrot
08:16 confound joined #parrot
08:16 szabgab joined #parrot
08:19 dalek r34691 | petdance++ | trunk/src:
08:19 dalek : Removed the swap() function from the sort.  Call me a premature optimizer, but I think it's safe to inline three swap calls.
08:19 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34691
08:32 kj joined #parrot
08:33 iblechbot joined #parrot
09:09 barney joined #parrot
09:12 pdcawley joined #parrot
09:13 dalek r34692 | kjs++ | trunk/compilers/pirc/new (4 files):
09:13 dalek : [pirc] Fix build: PMCNULL was not defined. Re-#define it, as #include parrot/interpreter.h which defines it does not help.
09:13 dalek : + whitespace fixes
09:13 dalek : + remove dependency of bcgen on pirsymbol.
09:13 dalek : + debug stuff.
09:13 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34692
09:28 dalek r34693 | kjs++ | trunk/compilers/pirc/new:
09:28 dalek : [pirc] fix the order of parameters; (they were reversed)
09:28 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34693
09:45 alvar joined #parrot
09:54 dalek r34694 | bernhard++ | trunk (2 files):
09:54 dalek : [codingstd] Satisfy trailing_space.t and pdd_format.t
09:54 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34694
10:25 dalek r34695 | kjs++ | trunk/compilers/pirc/new (6 files):
10:25 dalek : [pirc] add syntax rule for ("x" => foo) = bar(), which was missing.
10:26 dalek : + :named results don't work now; some debug stuff is added.
10:26 dalek : + fix will follow.
10:26 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34695
10:26 tomyan joined #parrot
10:38 tomyan joined #parrot
10:42 dalek r34696 | kjs++ | trunk/compilers/pirc/new (4 files):
10:42 dalek : [pirc] fix :named results. + cleanup debug stuff.
10:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34696
11:52 rurban_ joined #parrot
11:57 dalek r34697 | bernhard++ | trunk (2 files):
11:57 dalek : Some tidbits: speling, code alignment, add code comments
11:57 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34697
12:15 dalek r34698 | bernhard++ | trunk/src/pmc:
12:15 dalek : fix typo in code comment
12:15 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34698
12:19 dalek r34699 | bernhard++ | trunk/src/pmc:
12:19 dalek : Rename varible from nondescript 'table' to 'attrib_metadata'.
12:19 dalek : Update docs: the attributes array is not the attrib_metadata table.
12:19 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34699
12:21 jimmy joined #parrot
12:27 rurban Anybody has an idea why compilers/imcc/imclexer.c  is in MANIFEST.generated, and compilers/imcc/imcparser.{c,h} not?
12:27 Coke if I knew why we had manifest generated, I might be able to answser that; but I wouldn't necessarily assume it's because we did it right.
12:32 masak joined #parrot
12:34 barney same here, furthermore I don't know why we have MANIFEST and MANIFEST.SKIP in the repos
12:43 alvar joined #parrot
12:57 dalek r34700 | kjs++ | trunk/compilers/pirc/new (8 files):
12:57 dalek : [pirc] fix bug: parameter registers were stored incorrectly by their assigned vanilla register; however, the register allocator,  keeping pointers to syminfo thingies that store the actual (optimized) allocated register could not change those. The solution is to store the operands of get_params as target nodes, not just their vanilla registers.
12:57 dalek : + some other fixes.
12:57 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34700
13:01 register joined #parrot
13:05 ask_ joined #parrot
13:08 jimmy Happy New Year,everyone.
13:08 register :D
13:08 jimmy masak: 新年好!
13:08 register thanks jimmy but for me it is a little bit too early
13:09 register :D
13:09 jimmy register: there were 3 hours for me.
13:10 register i sitll have 10 hours before the new year
13:12 jimmy and the astronaut will 16 times new years in a day.
13:14 register eheh
13:15 flh hi everyone! I need some help to try to fix a bug before new year, it's ticket #103 in trac
13:16 rurban I identified two potential uses for MANIFEST.generated:
13:17 rurban 1) Track make generated files to be able to clean them, which are not
13:17 rurban cleaned by wildcards, or by seperate subdir Makefiles. So only
13:17 rurban config/gen/makefiles/root.in generated files.
13:17 rurban 2) Add all files to be installed, except the languages which have their
13:17 rurban own make install. Except perl6, which is also installed by
13:17 rurban tools/dev/install_files.pl
13:17 rurban I rather want to get rid of point 1, this should be cleaned up in the Makefile. And adding potentially-to-be-installed installed files requires some tools/dev/install_files.pl overrides.
13:18 flh does someone know how the ":vtable" flag works internally, and in particular how "self" is passed to such a method (for example, with assign_pmc)?
13:18 jimmy flw?
13:18 purl flw is chinese too. he is good at c and perl.
13:18 jimmy flh?
13:19 jimmy jimmy?
13:19 purl somebody said jimmy was translating some docs to chinese. or allegedly a sloth
13:20 tewk flh self is a valid variable name in pir that refers to the pmc, just use self
13:21 dalek r34701 | kjs++ | trunk/compilers/pirc/new (4 files):
13:21 dalek : [pirc] Even more fixes for :named arguments. They should be working now...
13:21 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34701
13:22 flh tewk, yes, but when I try to define a 'invoke' method with the :vtable flag, invoke doesn't get the self pmc when we call it
13:23 tewk invoke may be broken.
13:23 flh it is :) it's ticket #103
13:24 flh I first tried to have a look in compilers/imcc/pcc.c (especially expand_pcc_sub_call), which already does some treatment to unshift self in the args list
13:26 flh some fixes there make invoke have a self variable, but this breaks other parts of the code
13:27 flh so I'm trying to see if I can change the behaviour of the invoke/invokecc opcodes, but I don't know how they actually work
13:36 jimmy convert 1 usd to rmb
13:36 purl I don't know how to convert 1 usd to rmb.
13:36 jimmy convert 1 USD to RMB
13:36 purl I don't know how to convert 1 USD to RMB.
13:38 masak left #parrot
13:38 masak joined #parrot
13:38 masak jimmy: 新年好!
13:39 masak jimmy: will you be celebrating in any way? I'm going to make sushi with a good friend.
13:40 jimmy masak: yeah, will tomorrow
13:41 masak ah. here we mostly celebrate on the strike of misnight.
13:42 jimmy masak: what your meaning is 12/31 ?
13:42 masak jimmy: yes.
13:42 masak oops, s/misnight/midnight/
13:43 jimmy masak: We will celebrate new year in the Chinese lunar calendar.
13:44 masak jimmy: yes. I know that's the "real" New Year for you.
13:45 jimmy yes, on eve.
13:45 masak jimmy: I'll make sure to wish you '新年好' on that date. :)
13:46 jimmy masak: It's difficult. I have no Network then.
13:47 masak I see. oh well.
13:47 sjn yeah, happy new year, everyone :)
13:48 * sjn hopes it'll be a good one for parrot and perl and y'all :)
13:48 sjn (and I hope everyone would like to come to Oslo to the Nordic Perl Workshop to talk about that ;-)
13:49 masak I'll try to be there.
13:49 dalek r34702 | kjs++ | trunk/compilers/pirc (2 files):
13:49 dalek : [pirc] update todo and readme.
13:49 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34702
13:49 * sjn has even sponsorsip money for three people aready :D
13:49 sjn well, four reallt
13:49 sjn rally*
13:50 sjn uhmf.
13:50 sjn masak: I think it would be really cool to hear about november then :)
13:50 pmichaud flh: the invoke vtable is one of those that is really tricky
13:51 pmichaud I'd love to come to Oslo, if I could be sponsored.
13:51 Theory joined #parrot
13:51 sjn pmichaud: that is entirely possible :)
13:51 masak sjn: if I come, I'll definitely talk about November. :)
13:51 sjn pmichaud: where do you live?
13:51 pmichaud Dallas, Texas
13:52 flh pmichaud: why doesn't this surprise me? :) do you know where I should look in the code to understand it?
13:52 pmichaud (actually Plano, but I fly in/out of Dallas)
13:52 sjn http://www.perlworkshop.no/npw2009/cfpapers.html
13:52 sjn give us a few words on what topics you'd like to talk about, and we'll see :)
13:53 pmichaud I can talk about basically anything dealing with Rakudo, PCT, and PGE :-)
13:53 pmichaud flh: the biggest problem is handling argument conventions with vtable_invoke
13:54 pmichaud because in order to get the code started, the sub that is invoked ends up being self
13:54 sjn pmichaud: nice if you can give us a couple suggestions anyway ;-)
13:54 pmichaud sjn:  okay, I'll send them in later today/tomorrow
13:54 sjn (oh and I'll need some help recruiting people to come to Oslo, too ;-)
13:54 pmichaud anything you need doing there, I can do.
13:55 pmichaud I know that jonathan++ and I would really like to be able to meet up at Oslo to plan our next round of Rakudo developments
13:55 sjn (especially since we'll have an awesome venue for a Perl6 hackathon the weekend after the conference :D)
13:55 pmichaud we try to meet up at least twice per year now -- very productive and we get lots of the "deep" issues resolved in design/implementation
13:55 sjn jonathan has already promised me to come ;-)
13:55 dalek r34703 | kjs++ | trunk (3 files):
13:55 dalek : [pirc] remove old unused files containing PASM grammar. + update MANIFEST. pir.y contains everything you need.
13:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34703
13:56 pmichaud afk for a bit -- on phone
13:56 sjn <- afk too
14:00 flh pmichaud, do you know where I would find more details?
14:20 gryphon joined #parrot
14:22 tetragon_ joined #parrot
14:28 * Coke wonders if there is another parrot meeting in the works.
14:30 * Coke finds a code base where he actually prefers tabs to spaces.
14:31 Coke (cold fusion)
14:34 ask_ joined #parrot
14:35 dalek r34704 | kjs++ | trunk/compilers/pirc/new (2 files):
14:35 dalek : [pirc] some refactoring, and add some more ops that prevent the need for a sub-epilogue.
14:35 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34704
14:42 sjn masak: do send in a talk submission too, if you can :)
14:42 masak sjn: a'ight.
14:43 jhorwitz joined #parrot
14:48 sjn masak: if you really need support to come to Oslo, then say so in the notes and do tell where you live, we'll see what we can do ;-)
14:49 masak sjn: define "really".
14:49 sjn that's up to you to define :-/
14:50 masak hokay. sounds good.
14:50 sjn we'd love to make the conference as good as possible, with the limited funds we have at our disposal
14:51 sjn if you'd like help, we'll try our best, but if you really don't need it (e.g. if you live nearby, or are filty rich) we'd love to put our efforts where it makes a bigger difference :)
14:52 sjn that being said, where do you live?
14:52 tomyan joined #parrot
14:52 masak sjn: the topics ("Perl 6, Rakudo, Parrot", "Modern use of Perl", |Good testing practices using Perl", "Perl used in new and novel ways", "Your favourite Topic") are all spot on for November :)
14:52 ask-_ joined #parrot
14:54 tomyan left #parrot
14:54 masak sjn: Uppsala, Sweden.
14:54 masak not too far, that is.
14:54 masak practiaclly next door.
14:54 masak or down the block, at least.
15:02 sjn not too bad then
15:05 masak right. and I will likely be able to afford the journey.
15:17 kysz joined #parrot
15:18 tewk Coke:  how long does tcl's make test take to run on a core 2 duo roughly
15:18 tomyan joined #parrot
15:21 davidfetter joined #parrot
15:23 dalek r34705 | kjs++ | trunk (18 files):
15:23 dalek : [pirc] refactoring of error handling code.
15:23 dalek : + update MANIFEST
15:23 dalek : + update pirc.in.
15:23 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34705
15:27 masak joined #parrot
15:39 Andy joined #parrot
15:42 dalek r34706 | tewk++ | trunk (6 files):
15:42 dalek : [class registry] Round 1 duplicate named class names now allowed, fist one in is the winner
15:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34706
16:10 dalek r34707 | bernhard++ | trunk/languages/pipp/src (5 files):
16:10 dalek : [Pipp] start on src/classes/Object.pir
16:10 dalek : Register a proto for newly generated classes.
16:10 dalek : Call !PROTOINIT on the registered proto.
16:10 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34707
16:11 dalek r34708 | petdance++ | trunk/src:
16:11 dalek : added notes about the COMPARE function
16:11 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34708
16:13 Andy yay me
16:14 dalek r34709 | bernhard++ | trunk:
16:14 dalek : Regenerated MANIFEST
16:14 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34709
16:14 register daniel grunblatt is still receable for questions about the jit?
16:17 dalek r34710 | bernhard++ | trunk/languages/pipp/config/makefiles:
16:17 dalek : [Pipp] Add Object.pir as dependency.
16:17 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34710
16:18 Infinoid yay, Andy
16:18 barney register: Just try emailing him
16:19 Infinoid Andy: I see you're the owner of #50684.  I'm working on a nasty hack that will hopefully resolve that issue, and have posted my progress as Trac #105 (before I saw the existing ticket).
16:19 Andy I'm not sure I own much of anything, really. :-)
16:20 Infinoid :)
16:20 Infinoid I've been discovering how much fun it is going through and modifying 2 thousand C functions
16:20 Andy It's very relaxing.
16:21 Infinoid I'd love to find a way to autogenerate some wrapper functions (inline functions or macros or somesuch) and put the NONNULL assert()s in there, but I can't figure out a way to do that properly
16:22 register barney the email in the svn log doesn't work anymore
16:22 Infinoid specifically, I want calls through function pointers to still work and still do the checks
16:24 Infinoid so I can't just define a wrapper function named (e.g.) "string_compare" and do "#define string_compare _string_compare" to rename the real C function, because then any calls in the same C file won't go through the wrapper.
16:24 Infinoid and I don't *think* I can make a preprocessor macro with the same name, because varargs macros aren't portable.
16:26 Infinoid so in the meantime, I'm just generating per-function assert lists and dropping those into the tops of each function.
16:26 barney register: looks like he has disappeard. As last resort, you could ask on the list.
16:30 Andy Infinoid: What are we lookin' at?
16:30 Andy what NONNULL asserts where?
16:31 Infinoid I'm adding them to all functions, based on Nicholas Clark's suggestion
16:32 Infinoid I've hacked the headerizer to generate lists of asserts that look like:
16:32 Infinoid #define _ANALYSE_LIFE_SYMBOL_ASSERT assert(unit); \
16:32 Infinoid assert(r);
16:33 tewk Andy I prefer swap() over expansion, I'd have marked it inline, it was already static
16:33 tewk my two cents, DRY
16:33 Infinoid just to see whether it would work.  so far I've dropped those macros into about half of the functions, and in the process, found and fixed 6 incorrectly marked parameters
16:34 Andy tewk: Yeah, understood there.  Really, it's COMPARE that is going to be the pig.
16:34 Andy Infinoid: can you give me an example of what you're working on?
16:36 Infinoid Andy: https://trac.parrot.org/parrot/attachment/tic​ket/105/02-headerizer-nonnull-checking.patch
16:36 shorten Infinoid's url is at http://xrl.us/bea57f
16:36 Infinoid Andy: https://trac.parrot.org/parrot/attachment/tic​ket/105/04-use-headerizer-assert-macros.patch
16:36 shorten Infinoid's url is at http://xrl.us/bea57m
16:36 Infinoid (that latter is the time-consuming part.)
16:37 Andy So you're gonna have an embedded macro that asserts NON-NULLness
16:37 Andy I could make that happen.
16:37 Andy Or you can.
16:37 Andy I like the idea.
16:38 Infinoid I'm halfway done doing it all by hand, but I'm certainly open to easier solutions
16:38 Infinoid (and solutions that don't ugly up the code as much)
16:39 Andy nopaste?
16:39 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
16:39 purl i think nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others)
16:40 Infinoid even if we end up choosing a different way, the fixes for existing brokenness should be useful either way
16:40 tewk is Parrot_class_lookup used anywhere?  ack says no.
16:41 Andy http://rafb.net/p/LTnO0a10.html
16:41 dalek r34711 | infinoid++ | trunk/src/pmc:
16:41 dalek : [cage] Fix a warning:
16:41 dalek : ./src/pmc/stringhandle.pmc:550: warning: comparison between signed and unsigned
16:41 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34711
16:41 dalek r34712 | infinoid++ | trunk (3 files):
16:41 dalek : [core] Fix 4 more badly marked C function parameters.
16:41 dalek : (Found by the headerizer NONNULL assert() patch, see Trac #105.)
16:41 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34712
16:41 Andy that way there's one macro everywhere
16:42 Infinoid that looks a fair bit nicer than my version
16:42 Infinoid another problem I've run into is that sometimes most of the logic of a function is stuck on the same line as the initial variable declarations.  I can't put the assert before those without getting a warning
16:44 Infinoid hmm.  I also like how your version preserves case sensitivity.  there are a couple of function pairs in parrot with the same name but different capitalization
16:46 Coke tewk: intel mac? that's what I run on by default, so the spectest-progress file will tell you
16:47 Coke http://code.google.com/p/partcl/source/​browse/trunk/docs/spectest-progress.csv
16:47 shorten Coke's url is at http://xrl.us/bea58p
16:47 Coke (Now multiple the last there by 4 times to cover recently slowness that's been introduced, sadly.)
16:47 Coke (I only run spec tests every so often because it takes 2.5 hours. =-)
16:48 tewk Coke: I just ran make test. it finished in reasonable time
16:49 Coke yes. it's "make spectest" that is being tracked there.
16:49 Andy Infinoid: The one-function approach means that you're only modifying the .c file a little bit, and the guts of the macro can be hidden elsewhere.
16:49 Coke test just contains some basic stuff so we don't regress.
16:49 Coke perl tools/spec*.pl will run the whole thing and update the files in docs/*
16:49 Andy Infinoid: I feel strongly that the headerizer should NOT modify source code.
16:50 Andy I don't think that the headerizer should put that macro in.
16:50 Infinoid and it doesn't.  it just drops macros into the headerizer section, just above their prototypes
16:50 Andy ok
16:50 Andy I'd put it AFTER their prototypes
16:50 Infinoid works for me *shrug*
16:50 Andy so the macros don't get in the way of people trying to look at prototypes
16:50 Coke are these special case macros per file?
16:50 Infinoid they're special case macros per function
16:50 Andy yeah
16:51 Infinoid so you'd have a clump of prototypes, and then a clump of macros?
16:51 Infinoid sounds fine
16:51 Andy ASSERT_ARGS( 'Parrot_buttscratch' ) will call macro ASSERT_ARGS_Parrot_buttscratch
16:51 Andy and that core macro will know the arg names
16:51 Infinoid sounds reasonable.  it's basically the same thing I'm already doing, but with an additional layer of indirection that makes it look a little nicer
16:52 Infinoid well, it's just #define ASSERT_ARGS(a) ASSERT_ARGS_ # a
16:52 Andy and is less of a pain to maintain.
16:52 Infinoid or something similar.  right?
16:52 Andy right
16:52 Coke Andy: glad to see you hacking on parrot again. Book done, or do you do the same thing I do when I have a deadline? =-)
16:52 Andy The latter. :-)
16:53 Andy The other day I said "fuck it, i'm going to work on some code tonight."
16:53 Coke I am trying to channel that "avoid primary task" mojo into cleaning my home office today.
16:53 Andy Oh, I'm not avoiding.
16:53 Andy I ahve the book in another window
16:54 * Coke ponders writing a book, but has no clue.
16:56 * Infinoid ponders doing a clever search and replace to switch '    _IMCC_SUBST_CONSTANTS_ASSERT;' for '    ASSERT_ARGS("IMCC_subst_constants");'
16:56 * Coke often finds that by the time he's got a script to do that, he could have just used vi.
16:56 Infinoid for 900 instances, that's not likely
16:57 Coke type faster!
16:57 Infinoid if only I could :)
16:58 Coke tewk: should I ask why you're asking about partcl? =-)
16:58 Andy Infinoid: should we make a branch for this?
16:59 Infinoid I've been doing reasonably well managing a local stack of patches with git
16:59 Infinoid but if you want to, I don't mind
16:59 flh when I pbc_disassemble some bytecode, is there a way to know what lies behind the PMC_CONST(...)?
17:00 Coke flh: I don't use the disassembler often, sorry.
17:02 * Infinoid will have an updated headerizer patch (with the generated macros renamed, and grouped at the bottom of the headerizer section) in a moment
17:06 nopaste "Infinoid" at 75.5.247.153 pasted "updated 02-headerizer-nonnull-checking.patch" (154 lines) at http://nopaste.snit.ch/15140
17:09 nopaste "Infinoid" at 75.5.247.153 pasted "The resulting changes to the headerizer section look like this." (44 lines) at http://nopaste.snit.ch/15141
17:15 mberends joined #parrot
17:19 tewk Coke:  I tested before I checked in the minimal class registry fix.
17:24 Andy Infinoid: If you don't need me to look at anything, that's fine.
17:24 Andy I wasn't sure if you were wanting me to get my fingers in this or no.
17:24 Coke tewk++
17:27 Infinoid Andy: well, I was mainly curious if you had any thoughts on whether I was (ab)using headerizer correctly, and thought I'd mention it because you own the ticket
17:27 Infinoid hmm.  preprocessor ## doesn't work right with quoted strings, but it works when I remove the quotes
17:28 Andy Infinoid: Even better
17:29 Infinoid Andy: your input is much appreciated, and you're welcome to join in adding these things to functions if you're bored (but it's pretty inane)
17:29 Andy that's fine.
17:29 Infinoid I like the way this stuff looks, big improvement, thanks.
17:29 Andy I'll wait 'til I see your commits.
17:29 Andy and po,e at it.
17:29 flh Coke, on the list ("How to override invoke" thread), you gave an exemple with getattribute self, ['Sub'], 'proxy': what's the meaning of this 'proxy'?
17:29 Andy Hey, I'm glad to have someone other than me futzing w/the headerizer. :-)
17:29 Coke PIR subclasses of pmcs have a PMCProxy.
17:30 Coke the proxy is (apparently) handling inheritence behind the scenes.
17:30 Coke so in some cases, I get the proxy and poke at it directly.
17:30 Coke see:
17:31 Coke http://code.google.com/p/partcl/source/​browse/trunk/src/class/tclconst.pir#250
17:31 shorten Coke's url is at http://xrl.us/bea6et
17:31 Coke (so there I subclass string, provide my own vtable, but when I'm done, I then set the /proxy's/ string value to the modified version.
17:31 Coke without the proxy, I'd have no way to effectively call the "super" vtable.
17:32 flh ok, thx!
17:33 jrockway joined #parrot
17:34 dalek r34713 | bernhard++ | trunk/languages/pipp/src (2 files):
17:34 dalek : [Pipp] Add a call to !ADD_TO_WHENCE.
17:34 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34713
17:42 dalek r34714 | bernhard++ | trunk/docs/book (2 files):
17:42 dalek : RT #61874: [PATCH] Fixed typos in docs
17:42 dalek : Courtesy of tuxdna
17:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34714
17:45 Andy Infinoid: Do you have an ETA on putting your stuff back in?
17:45 Andy I'm also interested in the git-svn stuff.
17:46 tewk I use git-svn
17:49 tewk leo?
17:49 purl i heard leo was possibly leo lapworth eq ranguard or one of parrot's older contributers. or Leopold Toetsch
17:50 tewk oslo?
17:50 purl oslo is 59.9� N 10.6� E
17:51 chromatic joined #parrot
17:51 * barney wishes a happy new year   und an guadn rutsch
17:51 tewk register: http://www.perlworkshop.no/npw2009/
17:53 Coke chromatic: ho.
17:54 register who is planning to go to oslo?
17:55 chromatic Excuse me?
17:55 Coke ho?
17:55 purl LET'S GO! or a scale ratio of 1:87
17:55 Coke ho is also a generic greeting.
17:55 purl okay, Coke.
17:57 Infinoid Andy: hopefully sometime in the next few days.  if I haven't gotten all the leg work done by this weekend, I'll refresh the set of patches in the ticket
17:59 s1n joined #parrot
18:01 Infinoid in the meantime, it shouldn't hurt to just rip attribute_nonnull out entirely
18:01 Infinoid I think that would resolve #50684
18:01 Coke Infinoid: did you see chromatic's email?
18:02 Infinoid just saw it now, thanks.
18:03 Infinoid if we're already using that flag, it isn't working.
18:03 Hinrik hm, I just built parrot and rakudo from svn, then did ./perl6 -e'say "hello"' and got this:
18:03 Hinrik "Parrot VM: PANIC: Out of mem! ... C file src/gc/memory.c, line 137" and a long message
18:03 Andy Then that's what we should fix
18:03 Andy not ripping out attribute_nonnull
18:03 pdcawley joined #parrot
18:04 Coke Hinrik: nice!
18:04 Infinoid Andy: I think Andy Dougherty's reservations are valid, and as such, I don't see any choice other than ripping out attribute_nonnull
18:05 alvar joined #parrot
18:05 Andy Once we have your assertions in place, then we have assertions.
18:05 Infinoid because of attribute_nonnull, gcc will optimize away my assert()s, too.
18:05 Andy and that shouldcover his concerns as I understand them.
18:05 Infinoid that seems like a Bad Thing
18:06 Andy What do you mean when you say "rip out attribute_nonnull"?
18:07 Infinoid I mean stop using it.  gcc seems to see it as a guarantee that the attribute won't be null, so it doesn't bother checking, and the optimizer rips out any code that checks for it
18:07 chromatic Then don't build optimized.
18:07 Andy How do you mean "stop using it"
18:07 Coke Hinrik: works here in r34712.
18:07 Andy The key here seems to be compiler settings.
18:07 Andy and if you want to wrap things in compiler settings, I'm potentially OK
18:07 Hinrik maybe I'll try again with a make clean
18:08 Andy but the ARGIN()/ARGOUT() guards are crucial.
18:08 Andy both to GCC and splint
18:08 Infinoid yes, I agree.  but attribute_nonnull doesn't seem to be guarding anything
18:08 Andy Yes, I understand what you're saying.
18:08 Infinoid chromatic: what I'm worried about is bugs that only show their ugly heads when building optimized...
18:09 Andy Just leave the arg-level stuff in place, and do whatever you think you need to do at the macro / #define level
18:09 chromatic If we're passing null values as non-null enforced attributes, then we're not catching the right things.
18:10 Infinoid and that's what I am trying to reinforce.
18:11 Infinoid I dropped in some asserts to enforce ARGIN/ARGOUT non-nullness, and I've found 6 cases where NULL parameters were passed in so far
18:11 chromatic I don't believe the answer should be "No more seatbelts!" until we understand why the seatbelts aren't working.
18:12 Infinoid based on what Andy D's been saying, it doesn't sound like a seatbelt to begin with, but rather, a way to tell the compiler "this will never be null, so don't bother checking"
18:12 Infinoid but I haven't actually RTFM'd.
18:12 chromatic Then we need to file a bug with GCC, because the manual lies.
18:12 Infinoid I definitely agree, the more seatbelts, the better.
18:13 Andy what are you looking at in the manual, chromatic?
18:13 Andy URL?
18:14 chromatic http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/W​arning-Options.html#index-Wno_002dnonnull-262
18:14 shorten chromatic's url is at http://xrl.us/bea6ik
18:15 Andy It is indeed doing that, I believe.
18:15 Coke (if only the "turn warnings into errors" magic worked. :)
18:15 Andy but I also think that AndyD's assertions that it optimizes away checks is true, and not counter to the docs.
18:16 Coke if it's optimizing away the check, and he then segfaults, isn't that a bug?
18:16 Coke (since clearly the check was needed?)
18:17 Infinoid http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc​/Function-Attributes.html#index-g_t_0040cod​e_007bnonnull_007d-function-attribute-2159 is the corresponding function attribute
18:17 shorten Infinoid's url is at http://xrl.us/bea6ix
18:17 Andy the check is a compiler-level check
18:17 Andy is how I read it.
18:18 Andy compile-time check, not run-time
18:18 Andy If the compiler determines that a null pointer is passed in an argument slot marked as non-null, and the -Wnonnull option is enabled, a warning is issued. The compiler may also choose to make optimizations based on the knowledge that certain function arguments will not be null.
18:18 Andy So it's both.
18:18 Infinoid if it adds a check to the caller, and optimizes away the checks within the function, that seems fair
18:18 Infinoid but a compile-time check doesn't seem sufficient
18:18 Andy Compile-time check if possible, and ignore any NULL checks at run-time if it seems fair to do so.
18:19 Infinoid (I don't know about the details of its implementation)
18:19 Andy sufficient for what?
18:19 Infinoid sufficient for catching NULL values being passed to the function.
18:19 * Coke guesses: "to avoid andy exploding"
18:19 Andy No, clearly, the compiler can only do so much at compile time.
18:19 Infinoid if it inserted a runtime check, that'd be fine with me too
18:20 Andy It sounds like there IS a runtime check that goes away with the attribute.
18:20 Andy because you're making a promise to the compiler.
18:20 Andy But you're never going to catch
18:20 Andy memset(&p,0,sizeof(p)); strcpy(p,"BLAM");
18:20 Infinoid I suppose it can chain, so that one nonnull function can pass it to another nonnull function without worry.  but the first time it's passed as a nonnull parameter, it should be checked there
18:21 Andy At run-time?
18:21 chromatic Furthermore, if the checks are assert()s or the equivalent, you don't get the runtime checks if you build with optimization.
18:21 Infinoid ...without stripping out attribute_nonnull entirely
18:21 Coke (is the fix that someone needs to build without optimization and fix any warnings that occur?)
18:21 Infinoid (that's why I mentioned doing so to begin with.)
18:21 Andy I'd feel much better if you'd stop saying "stripping out attribute_nonnull"
18:21 chromatic Coke, that's what we've been doing.
18:22 Andy because what I hope you're saying is  "selectively disabling attribute_nonnull"
18:22 Coke chromatic: yes, but andy's still exploding, neh?
18:22 dalek r34715 | tewk++ | trunk:
18:22 dalek : [DEPRECATED] flat namespace / class registry lookup
18:22 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34715
18:22 * Coke doesn't really understand the underlying technical issue.
18:23 * Coke aighs.
18:23 Infinoid Andy: I want the checks to occur.  any solution that keeps those happening (and doesn't result in them being optimized out) makes me happy
18:23 Coke tewk: you have a ticket number for that?
18:23 Andy Coke: attribute_nonnull has two effects.
18:23 Andy Compiler warns at compile time if you pass a NULL.
18:24 Infinoid (but apparently doesn't catch it when you pass a variable whose value is NULL)
18:24 Andy Compiler also may optimize away any internal run-time checks for non-NULLness.
18:24 Andy Between those two, you can still get NULLs in.
18:24 Coke ok.
18:24 Coke so why don't folks who aren't andy have similar problems?
18:24 Andy I assume we mean AndyD here
18:24 Coke yes.
18:25 Andy and do you have a pointer to some of his exploding tha you refer to?
18:25 Andy and do we need to optimize for crankiness?
18:25 Andy I suggest we might not.
18:25 Coke the explosions, as I recall, made parrot unusable.
18:25 Coke so, that's not really cranky.
18:25 Coke I presume infinoid has a pointer to one of his RTs?
18:26 Infinoid various exploding (with comments from AndyD): RT #49316 and #50684
18:26 Andy OK, so explode here means Parrot, not Andy himself getting pissed.
18:26 Coke yes.
18:26 Andy ok, mea culpa
18:27 Infinoid also for the record, whlie adding asserts (and building without optimization), I've found several explosions from mis-categorized arguments.  http://www.parrotvm.org/svn​/parrot/revision?rev=34525 and http://www.parrotvm.org/svn​/parrot/revision?rev=34712
18:27 Infinoid s/whlie/while/
18:28 chromatic In RT #50684, AndyD built with -O4, so of course he had problems.  I'm not putting on my pants of sympathy for that.
18:28 chromatic If you want to debug code written that way, you need to make sure you don't strip debugging information.
18:29 Andy My next band is going to be named The Pants Of Sympath.
18:29 Infinoid okay.  but look at #49316 - the attribute seems to have been the specific cause of the breakage
18:30 Andy Right
18:30 Andy because Parrot_init_lib was incorrect in its arg
18:30 Infinoid chromatic: also note that in #50684, it sounds like you got the same result with -O2
18:31 Andy the comppiler option wasn't the prob.  It was that we said it was non-NULL and wasn't.
18:31 Infinoid agreed, which is what my runtime checks will (hopefully) catch
18:33 Andy and so with 50684 there is probably a function somewhere that is mis-tagged.
18:33 Andy and we fix that, and all is well.
18:33 Coke so instead of adding more checks, could we just build optimized more often as core developers and fix any explosions?
18:33 Coke is there a way to /force/ the explosions?
18:33 Andy If we know where they are.
18:33 Andy And plus, that ticket is 9 months old.
18:34 Andy I build -O2 all the time w/o incident
18:34 Andy oh wait, no I don't.
18:34 Andy haven't in a while.
18:34 Andy trying now
18:34 chromatic I build optimized fairly often.
18:35 Andy Also, note that -O2 and -O3 provide MORE compiler warnings than without
18:35 Andy because it has to sniff around more.
18:35 Andy lots of "will never be executed" rear their heads.
18:36 Infinoid hrm.  ubuntu x64 had a recent issue that only showed up with optimized parrots, I don't think the current strategy will catch that.
18:36 particle SMOKE
18:37 chromatic If we built regularly and didn't see compiler warnings, I'd worry that this tactic didn't work.
18:37 chromatic Per what happens now, I worry that we're not fixing compiler warnings often enough.
18:38 rindolf joined #parrot
18:39 Infinoid so, um, is the work I'm doing still useful?
18:39 chromatic Yes.
18:39 Infinoid ok, I'll keep at it
18:40 chromatic If it makes unoptimized builds (and optimized builds which don't disable debugging) fail assertions where our assumptions and annotations are wrong, and we fix those, it's good.
18:40 Infinoid it definitely does that.
18:40 particle (watching the watchmen)++
18:41 chromatic Anything that makes warnings more difficult to ignore is good.
18:41 chromatic (provided we then fix them)
18:42 dalek r34716 | rurban++ | branches/pdd30install_stage3 (43 files):
18:42 dalek : There are some files not yet tracked, but I leave them as it is.
18:42 dalek : Tested ok on cygwin, debian and freebsd.
18:42 dalek : Track all make generated files in MANIFEST.generated,
18:42 dalek : those to be installed, and those generated src files not
18:42 dalek : tracked by make clean wildcards.
18:42 dalek : replaces MANIFEST.generated by MANIFEST.generated.in
18:42 dalek : added tools/build/addgenerated.pl
18:42 dalek : use addgenerated and Parrot::BuildUtil::add_to_generated()
18:42 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34716
18:44 Andy Infinoid: Oh yes, definitely worth doing!
18:44 Andy Please keep at it.
18:45 apeiron joined #parrot
18:45 Infinoid ok.  I just wish we knew why gcc's checking didn't work
18:46 * Infinoid has 1117 more "ASSERT_ARGS(check_invoke_type);"-style lines to add
18:46 Andy ok, lunch time.
18:46 purl _FUD!
18:47 chromatic src/stm/waitlist.c: In function ‘waitlist_signal_all’:
18:47 chromatic src/stm/waitlist.c:371: warning: null argument where non-null required (argument 3)
18:47 chromatic That's building with -O2 -g and having deleted -DNDEBUG or whatever that was.
18:47 Coke of course, the right fix there is to delete src/stm* =-)
18:47 Infinoid oh, cool
18:48 chromatic As far as I can tell, the attributes work here.
18:51 * Coke wonders if tools/dev/ccflags.pl should be in build/
18:52 dalek r34717 | rurban++ | trunk/ports/cygwin (7 files):
18:52 dalek : [ports] cygwin release parrot-0.8.2-1
18:52 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34717
18:53 Infinoid actually... is there any reason why I don't just check this in now?  I still have a bunch of functions in need of the assert, so the codingstd test I added warns about those, but everything else builds and tests fine for me.
18:53 Coke hurm. if I config with --cflags="-O2 -g" and make, I get a failure in src/exceptions.c
18:54 Andy Great!  A clue!
18:54 Andy I just build with -O3 and got only the two failiures I always do
18:54 Andy t/library/pcre.t and t/run/options.t
18:54 Andy ok, NOW is lunch
18:54 rindolf joined #parrot
18:56 dalek r34718 | rurban++ | trunk:
18:56 dalek : [docs] update Cygwin readme.
18:56 dalek : resolves RT#51944
18:56 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34718
18:56 particle Infinoid: ci. i'll give it a whirl.
18:57 Coke src/exceptions.c: In function 'Parrot_print_backtrace':
18:57 Coke src/exceptions.c:555: error: 'Dl_info' undeclared (first use in this function)
18:58 Coke doesn't error the same way built with no options to configure.pl
18:58 chromatic Gah, I fixed that a while ago.
18:58 Coke you've come undone!
19:00 chromatic Coke, r33525.
19:01 chromatic If I recall correctly, this is yet another spot where Mac OS X reveals that its view of the Unix world is... well, let's just say you can live in the box Unix came in and you can wear "Trust me, I'm POSIX!" pins, but if you keep vomiting on my carpet, you're not welcome in my house.
19:01 Coke chromatic: this is on feather.
19:01 chromatic Oh.  Feather's haunted.  Different problem.
19:02 Coke that patch forces __USE_GNU to be set?
19:02 Coke that seems odd.
19:06 rurban I'm off now. Bye until next year :)
19:06 davidfetter l8r, rurban
19:07 * davidfetter wonders who's already in next year
19:12 chromatic You need __USE_GNU to get the Dl_info define for backtraces.
19:14 * Coke will apparently be sticking with non-optimized builds, more's the pity for partcl. =-)
19:14 masak jimmy is likely in next year already.
19:18 dalek r34719 | infinoid++ | trunk (3 files):
19:18 dalek : [headerizer] From a suggestion from Nicholas Clark in
19:18 dalek : http://www.nntp.perl.org/group/perl.p​erl6.internals/2008/12/msg49677.html ,
19:18 dalek : adapt headerizer to emit macros which assert() the definedness of arguments
19:18 shorten dalek's url is at http://xrl.us/bea6n7
19:18 dalek : that should never be NULL.  If I'm understanding c_functions.pod correctly,
19:19 dalek : this means ARGIN(), ARGOUT(), ARGMOD() and NOTNULL(), but not the
19:19 dalek : ARG*_NULLOK() variants.
19:19 dalek : Also add t/codingstd/c_arg_assert.t to verify the resulting defines actually
19:19 dalek : get used.  And whitelist the generated #defines so they don't trigger
19:19 dalek : failures in t/codingstd/c_indent.t.
19:19 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34719
19:20 dalek r34720 | infinoid++ | trunk (138 files):
19:20 dalek : [headerizer] Run headerizer and apply the resulting changes to headerizer's
19:20 dalek : output.  (Minus some minor preprocessor tweaks, see RT #53990.)
19:20 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34720
19:20 dalek r34721 | infinoid++ | trunk/include/parrot:
19:20 dalek : [core] Add an ASSERT_ARGS() helper macro for the headerizer asserts.
19:20 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34721
19:20 dalek r34722 | infinoid++ | trunk (35 files):
19:20 dalek : [headerizer] Use the new assert macros in a bunch of functions.
19:20 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34722
19:20 Infinoid hopefully that won't break everyone else.
19:23 apeiron_ joined #parrot
19:28 chromatic src/oo.c: In function ‘Parrot_oo_register_type’:
19:28 chromatic src/oo.c:572: warning: implicit declaration of function ‘get_new_vtable_index’
19:28 chromatic src/oo.c:572: warning: nested extern declaration of ‘get_new_vtable_index’
19:31 Infinoid odd, headerizer removed the prototype
19:31 chromatic Is it static, needing maintaining outside of the headerizer block?
19:32 Infinoid no, it's global, so it should have (and did have) a prototype in include/parrot/pic.h
19:33 Infinoid s/pic/pmc/
19:38 Infinoid if I run "make headerizer" in r34718, the prototype disappears there as well.  I think something happened to that function, or to headerizer, within the last day or two.  bisecting...
19:42 tewk i added that function today.
19:42 tewk Infinoid:
19:42 Coke heh.
19:43 Infinoid ok.  well, headerizer is ignoring it for some reason
19:44 Coke pmichaud: (sigils in namespaces) Huh. apparently tcl has been using $ to prefix vars.
19:44 Coke (I thought it had &subs and vars, but apparently it was &subs and $vars)
19:45 * Coke is finally able to start 'make smoke' on freebsd.
19:45 apeiron_ joined #parrot
19:49 Infinoid tewk: oh.  headerizer removed the prototype because the "{" was on the same line as the function name.
19:50 particle should have ran the coding standards tests, i guess
19:50 Infinoid I can fix, one moment
19:52 dalek r34723 | infinoid++ | trunk (2 files):
19:52 dalek : [core] Headerizer didn't like get_new_vtable_index because the curly
19:52 dalek : brace was on the same line.  Fix that and rerun headerizer.
19:52 dalek : Also, moved the function up slightly so pmc_register() and its
19:52 dalek : documentation can stay together.
19:52 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34723
19:54 Infinoid hmm, breakfast sounds like a wonderful idea.
20:00 TimToady phoan
20:01 Whiteknight joined #parrot
20:05 contingencyplan joined #parrot
20:23 rurban joined #parrot
20:23 rurban I have an interesting perl5 _slurp bug on cygwin. _slurp("src/platform.c") returns ''
20:24 rurban Did anybody see something like this before?
20:24 rurban _slurp: my $text = do { local $/; <$fh> };
20:24 gmansi joined #parrot
20:27 Andy back
20:28 chromatic yes, that's common
20:39 Coke chromatic: thbbthp
20:43 rurban Even if I the conservative approach without $text=do {} it fails. my $text; { local $/; $text = <$fh> } hmm
20:44 rurban Even if I USE the conservative approach without $text=do {} it fails. my $text; { local $/; $text = <$fh> } hmm
20:44 rurban tell on the fh tells me 0
20:45 rurban It's probably something in the windows kernel or the virus scanner, forbidding the read()
20:49 kid51 joined #parrot
20:50 Whiteknight (windows kernel)--
20:51 rurban Now it's gone and it works. Strange. I could reproduce it on the command line though.
20:51 rurban Okay, now I go really to the party, bye!
20:55 dalek r34724 | jkeenan++ | branches/pdd30install_stage3 (2 files):
20:55 dalek : 1. Update test in t/steps/gen_platform-01.t to reflect fact that _handle_begin_c() now takes \$conf as first argument.
20:55 dalek : 2. gen::opengl needs to import Parrot::BuildUtil::add_to_generated()..
20:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34724
20:55 GeJ Happy New Year everyone.
20:55 kid51 GeJ:  Happy New Year to you too!  (And any luck with Trac?)
20:56 Limbic_Region joined #parrot
20:57 GeJ Thanks kid51. And nope. To be honest, I didn't try to log on either. I'll try now. But the easiest way should probably to nuke my account so I can recreate one without the optional info.
20:59 kid51 I would have to have that done for me, too, I'm afraid.  But unless this bug is fixed, anyone who ventures into the Preferences area is going to get zapped just as we did.
20:59 Coke I wonder if I can edit your account options.
21:00 GeJ I think I saw a new minor release for trac... 0.11.2.1
21:00 GeJ I wonder if this is related to our issue.
21:00 Coke we did update our trac server.
21:00 Coke ISTR allison wondered on list somewhere if you had been bitten by this. (all y'all)
21:01 Coke Looks like all I can do is remove your account.
21:02 kid51 Coke:  I believe allison handled a problem cited by Andy D -- but she closed that TT as WORKSFORME last night, I believe.
21:02 Coke She cheated by specifically giving his account ticket-create.
21:02 GeJ Coke: please nuke me hard. Thanks :)
21:02 Coke I can do that to both of you, actually.  gej, account name?
21:02 allison kid51: I was just testing that I could create a ticket
21:02 GeJ 'geraud'
21:02 purl i guess 'geraud' is the username
21:02 kid51 TT 110 was what allison was working on.
21:02 allison kid51: so I could be sure it doesn't affect all accounts
21:03 GeJ purl: forget geraud
21:03 purl GeJ, I didn't have anything matching geraud
21:03 GeJ purl: forget 'geraud'
21:03 purl GeJ: I forgot 'geraud'
21:03 kid51 Coke:  Go ahead, nuke me, baby!
21:04 Coke I added TICKET_CREATE to both of your accounts.
21:04 Coke which I shouldn't have to do, but enjoy. =-)
21:05 kid51 Coke:  Just tried to login.  Same results:  "Warning: <acct_mgr.web_ui.MessageWrapper object at 0x80fbc10c> .  Oops... Trac detected an internal error: Key Error: 'email'."
21:06 GeJ seconded
21:06 kid51 GeJ, so while we're waiting for nuclear annihilation ... how many hours into the new year are you?
21:07 Coke kid51: I deleted your account. create a new one?
21:07 GeJ 8.
21:07 kid51 What's it like in the future :)
21:08 GeJ And so far, it looks like a good year : Coffee still exists, so as chocolate cakes. 29.4�C outside, and clouds are nowhere to be seen.
21:09 kid51 Ah, tropical paradise!
21:09 Coke it's -10C here. =-)
21:10 kid51 Coke:  Re-registration was successful.  No warnings/errors on New Ticket page.  First page after Register was Preferences -- but having been burned there, I'm not going to set any.
21:10 Coke -18.3 with windchill.
21:10 kid51 Coke, Allison;  Thanks.
21:10 Coke hokay. I'll kill gej, then.
21:10 Coke GeJ: deleted. recreate away.
21:10 kid51 Coke:  Are you somewhere other than Albany?
21:11 kid51 It's nowhere near -10C in NYC.
21:11 Coke kid51: I'm about 20m south of albany, across the river.
21:11 * kid51 checks regional weather
21:11 Coke I'm going by weather.com for my thermometer.
21:13 GeJ Coke, allison: thanks you.
21:14 kid51 Hmm.  Appears temperature has dropped below freezing here since I was out this morning.  Yahoo Weather:  -12C Albany; -3C Brooklyn.
21:14 Coke glad I worked from home today.
21:14 Coke (i haz a heater about 2 feet from me.)
21:15 Coke chromatic: so, if calling conventions are really expensive, I could theoretically get a win by making more things opcodes.
21:15 chromatic Unless they call methods.
21:15 chromatic Or throw exceptions.
21:15 chromatic Or do multi dispatch.
21:16 Coke That might leave me one or two places where this might work.
21:16 kid51 OT:  New Years Eve-related post:  My acquaintance Evan Christopher, jazz trumpeter, will be leading a segment in US National Public Radio's New Years Eve "Toast of the Nation" show tonight.  He'll be on approx 12:15 - 1:30 am EST, broadcasting from Donna's in New Orleans.
21:16 Coke though I hesitate to convert things optimizing against a laden parrot.
21:17 chromatic No kidding.
21:17 Coke ah.
21:17 kid51 (correction:  he's clarinetist, not trumpeter)
21:17 chromatic If you do run cachegrind, see what calls pmc_new_header the most.
21:17 Coke something else that might help: inlining my utility methods as macros.
21:17 Coke that would be an easier change, too.
21:18 Coke kid51: nifty.
21:18 kid51 (Donna's is where kid51 hangs in NOLA when he's not meeting with New Orleans Perlmongers.)
21:19 davidfetter .oO(yat.pm)
21:19 * Coke does wish someone would resurrect albany.pm
21:19 * Coke tried, but was unable to keep the momentum.
21:20 Coke chromatic: OOC, do subs with optional params cost more than just positional?
21:20 Coke (significantly more, I suspect I meant)
21:21 masak purl: msg pmichaud src/builtins/eval.pir documents itself as containing C<eval>, but I don't see such a .sub
21:21 purl Message for pmichaud stored.
21:21 chromatic Depends on how many more and how often they get called as opposed to regular subs.
21:21 pmichaud masak: I don't understand the question.
21:21 pmichaud oh.
21:21 pmichaud eval is in control.pir
21:21 masak pmichaud: yes, I just saw that.
21:22 masak pmichaud: can I change the docs?
21:22 pmichaud masak:  yes, please.
21:22 * masak does that
21:22 Zaba joined #parrot
21:22 masak I'm also slightly mystified that C<eval> is in fact not in eval.pir
21:22 masak why?
21:23 pmichaud I think we ended up seeing it as more of a control-flow thing (like 'die') than an eval one.
21:23 pmichaud besides, I would expect eval.pir to move to Any
21:23 masak ok.
21:23 pmichaud I don't remember if we decided that "...".eval was valid
21:23 pmichaud (I think we decided it wasn't)
21:24 kid51 purl:  msg rurban This Smolder report is on pdd30install_stage3 branch:  http://smolder.plusthree.com/app/pu​blic_projects/report_details/11007.  New-ish failures in t/pmc/exception.t and t/perl/Parrot_Docs.t.  (I fixed two other problems in r34724.)
21:24 purl Message for rurban stored.
21:24 shorten kid51's url is at http://xrl.us/bea6zz
21:26 masak ugh. remind me how to authanticate against Parrot's svn repo again.
21:26 masak it was something with parrot.org, I think.
21:27 pmichaud Parrot's svn repo is perl.org
21:29 Andy Infinoid: It looks good.
21:29 Andy we need to get the same check stuff into the various ops and PMCs
21:29 Andy but that's for later, I think.
21:30 Infinoid Andy: good idea.  that stuff isn't covered by headerizer, right?
21:30 Andy yes, that's correct
21:30 Infinoid pmc2c would work
21:31 Andy but i'm wary of poking too hard because
21:31 Andy the PMCs are all virtual methods,
21:31 Infinoid we could even make it transparent, so we don't need to litter up the .pmc files
21:31 Andy so they don't get all the checky-checky at compile time we like.
21:40 particle (using pmc2c and ops2c)++
21:41 leto joined #parrot
21:52 GeJ Oh, FYI, yesterday while perusing in the Resizable*Array world I discovered what I think is a bad case of copy'n'paste.
21:53 GeJ line 86 (or so), it says : "ResizableStringArray: Can't resize!"
21:53 GeJ while it probably should say : "ResizableIntegerArray: Can't resize!"
21:54 GeJ file: src/pmc/resizableintegerarray.pmc
21:55 dalek r34725 | particle++ | trunk/src/pmc:
21:55 dalek : [pmc] typo fix; GeJ++!
21:55 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34725
21:56 GeJ thanks particle
22:21 GeJ Found a bug. Hopefully, he should be gone in 1h40 minutes.
22:25 GeJ in t/op/time.t, line 96. Couldn't we use localtime() instead of gmtime()?
22:28 chromatic That may depend on what the decodelocaltime op does.
22:28 GeJ According to docs/ops/sys.pod it seems sensible.
22:28 GeJ Take the passed in  integer, which represents GMT epoch-seconds, and return an array as in decodetime. The time is first shifted to localtime before decoding.
22:43 TiMBuS joined #parrot
23:21 Theory joined #parrot

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

Parrot | source cross referenced