|
Parrot 0.8.2 "Feliz Loro" Released www.parrot.org/news/2008/Parrot-0.8.2 Set by moderator on 23 December 2008. |
|||
| particle | using either add_vtable/add_method or subclassing | 00:00 | |
| TiMBuS | thats handy | ||
| 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'. | ||
| particle | GeJ: i don't think RSA has the push method implemented | ||
| GeJ | I can "push $P0, $P1" on a RSA though | 00:01 | |
| particle | you could copy/adapt the RPA push method for RSA | ||
| yes, that's the push opcode | |||
| GeJ | so which files should I look for? | 00:02 | |
| particle | src/pmc/resizable*array.pmc | ||
| GeJ | Great, thanks. | ||
| particle | and t/pmc/resizable*array.t | ||
|
00:09
AndyA joined
|
|||
| dalek | r34679 | coke++ | trunk (2 files): | 00:25 | |
| : Test all tutorial PIR [1] | |||
| : * every PIR file in the directory must be tested or FAIL. | |||
| : * don't special case the TODO for windows quite so much. | |||
| : * update one tutorial to simplify & make it testable | |||
| : (original version threw an exception, which didn't help teach anything at that point.) | |||
| : [1] except on windows! | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34679 | |||
| r34680 | coke++ | trunk (2 files): | 00:33 | ||
| : Instead of cleaning up quietly after the tutorial, encourage new developers to DTRT. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34680 | |||
|
00:47
Zaba_ joined
00:56
Zaba joined
|
|||
| GeJ | Is there something special to declare somewhere else when adding METHOD's in a .pmc file? | 00:57 | |
|
00:57
davidfetter joined
|
|||
| GeJ | Yes! | 01:05 | |
|
01:12
particle joined
01:13
Zaba_ joined
|
|||
| Tene | pmichaud: what should hllcompiler pass to TOP, then? Check out compilers/pge/PGE/Match.pir +108 | 01:16 | |
| pmichaud | ideally I think hllcompiler should pass a namespace, class, or protoobject | 01:21 | |
| (adding 'push' to RSA) it can also be done from PIR | 01:22 | ||
| without having to modify the PMC | |||
|
01:24
Limbic_Region joined
|
|||
| 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. | ||
| 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. | ||
| (i.e., a generic method or function to convert all of these options into whatever we want.) | |||
| eventually pge's compilers will become HLLCompiler objects also. | 01:26 | ||
|
01:26
Zaba joined
|
|||
| pmichaud | (as in, I expect that to happen sometime in january.) | 01:26 | |
| dalek | r34681 | pmichaud++ | branches/rvar/languages/perl6 (3 files): | 01:29 | |
| : [rakudo]: "my $a" produces an undef() instead of Object. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34681 | |||
| lathos | OK, my bug report didn't get in; I guess parrotbug doesn't go to trac. | 01:38 | |
| pmichaud | perl6 wiki ? | 01:40 | |
| lathos: correct, we don't have a mail-to-trac interface yet. | |||
| I think parrotbug might still go to RT, though. | |||
|
01:40
Zaba joined
|
|||
| lathos | Hrm, I didn't get a confirmation mail either. | 01:41 | |
| pmichaud | Hrm. | 01:42 | |
| Maybe something has changed then. | |||
| 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) | ||
| lathos | say eval "" # errors | ||
| pmichaud | oh yes, that's icky. | ||
| good find. | |||
| purl | it has been said that good find is hard to man... | ||
| lathos | Should I send in a bug report or are you happy to keep that in mind? | 01:44 | |
| pmichaud | bug report | ||
| purl | feature request! | ||
| lathos | OK. | ||
| pmichaud | I'm deep into fixing variables and so I'm likely to forget. | ||
| lathos | OK, done. | 01:45 | |
| pmichaud | lathos++ | ||
| 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. | ||
| what should it return... undef? | 01:47 | ||
| lathos | Yeah. | ||
| 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. | |||
| pmichaud | as could eval(), presumably. :-) | 01:48 | |
| lathos | Well, yes. Or whatever kind of nothing that eval is returning could be a stringifiable PMC. | 01:49 | |
| pmichaud | it's supposed to be that already. | 01:50 | |
| ohhhh, I see. | 01:51 | ||
| okay. | |||
| easy fix. | |||
| Coke | hurm. compilers/tge failing for anyone else? | 01:55 | |
| Coke rebuilds to check. | 01:56 | ||
|
01:58
Zaba_ joined
|
|||
| pmichaud | lathos: should be fixed in r34682 | 02:00 | |
| dalek | r34682 | pmichaud++ | trunk/languages/perl6/src/builtins: | 02:01 | |
| : [rakudo]: eval() returns Nil for void expressions (RT #61868, lathos++) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34682 | |||
|
02:06
kid51 joined
02:12
Zaba joined
|
|||
| GeJ | It's not possible to add tickets in trac? | 02:18 | |
| pmichaud | it is, but you have login first. | ||
| Coke | trac? | ||
| 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. projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at trac.parrot.org/parrot/ | ||
| pmichaud | (register if you don't have a login) | ||
| GeJ | I am logged in | ||
| kid51 | Can you see the New Ticket button? | 02:19 | |
| pmichaud | (upper right) | ||
| GeJ | yup. | ||
| clicked on it. | |||
| Error: Forbidden | 02:20 | ||
| TICKET_CREATE privileges are required to perform this operation | |||
| kid51 | Hrmm; this is not the first time this has been reported. Bummer. | ||
| Am now reading trac.parrot.org/parrot/wiki/TracPermissions | 02:21 | ||
|
02:21
Zaba joined
|
|||
| kid51 wonders why if GeJ is logged in ... and therefore presumably "authenticated," he does not yet have TICKET_CREATE privileges. | 02:23 | ||
| So who has trac-admin privileges? | |||
| Coke | ~~ | 02:24 | |
| Only via the webterface. | |||
| authenticate has both TICKET_APPEND and TICKET_CREATE. | 02:25 | ||
| perhaps clear cookies and login again? | |||
| kid51 | I don't see any discussion of a web interface to trac-admin. | 02:26 | |
| Oh, a plugin. | |||
| purl | a plugin is another word for aftermarket accessorized barely compatible ugly hacked toy or nice or see go faster stripes | ||
| Coke | I just meant I can only hit the site through the web. | ||
| I don't have remote access to the box. | |||
| kid51 | So you don't have admin privileges. | ||
| Coke | Yes. But only via the web. =-) | 02:27 | |
| trac.parrot.org/parrot/admin/general/perm, for example. | |||
| where the permission certainly seem ok. | |||
| 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? | ||
| Warning: <acct_mgr.web_ui.MessageWrapper object at 0x81a80b4c> | |||
| Coke | kid51: right, you don't have admin privs. | ||
| Gej... no, that's just you. =-) | |||
| what browser? | |||
| purl | browser is broken or www.gfd-dennou.org/library/cc-env/O...ttpd_cern/ | ||
| Coke | you have JS enabled? | ||
| GeJ | FF3 | ||
| Coke fires up ff on osx. | |||
| GeJ feels so special... but not in a good way. | 02:29 | ||
| Coke | GeJ: looks fine here. | ||
| (osx, ff3) | |||
| pmichaud | seems to work for me also, ff3, kubuntu 8.04 | 02:30 | |
| Coke | -> | 02:33 | |
| pmichaud | yay, only 53 failing spectest files in the rvar branch. All of them appear class related. | 02:37 | |
| that's good. | |||
| 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:39 | |
| 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
|
|||
| 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 | |||
| Whiteknight | ENOTICKET_CREATE | ||
| kid51 | And now, upon log out and back in, I'm getting Trac detected an internal error: | ||
| KeyError: 'email' | |||
| kid51 too | |||
| GeJ does the secret handshake with kid51 | 02:43 | ||
| 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: | ||
| : [rakudo]: Enable whatever star meaning "full slice" (e.g. @a[*]) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34683 | |||
| 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:47 | |
| So much for our great new Trac system. | 02:48 | ||
| dalek | r34684 | allison++ | trunk/docs/pdds: | 02:53 | |
| : [pdd] Remove the 'HISTORY' section from expected documentation, as it is no | |||
| : longer used. Be explicit on our policy about author information in individual | |||
| : files. Remove a legacy perl6-ism. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34684 | |||
| r34685 | allison++ | branches/pdd30install_stage3 (3 files): | 03:00 | ||
| : [cage] Clean out a few AUTHOR and HISTORY sections. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34685 | |||
| GeJ | Coke: if you have the possibility to just nuke my account, That would be really appreciated. | 03:04 | |
| 'geraud' is the username | 03:06 | ||
|
03:52
rurban_ joined
03:58
schobes joined
04:01
elmex_ joined
04:21
s1n left
|
|||
| nopaste | "GeJ" at 202.22.229.231 pasted "Add push, pop, shift and unshift methods to ResizableStringArray PMC" (524 lines) at nopaste.snit.ch/15139 | 04:54 | |
| GeJ | just monkey-see-monkey-do'ing, but still it's fun to learn PIR this way. | 04:56 | |
|
05:07
tetragon joined
|
|||
| dalek | r34686 | allison++ | branches: | 05:17 | |
| : Creating a branch for a second round of GC refactoring, cleanups and code reorganization. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34686 | |||
|
06:18
Theory joined
07:01
chromatic joined
07:09
uniejo joined
|
|||
| dalek | r34687 | petdance++ | trunk (3 files): | 07:15 | |
| : removed unused variables and re-headerized | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34687 | |||
|
07:17
MariachiElf joined
|
|||
| dalek | r34688 | petdance++ | trunk (3 files): | 07:20 | |
| : removed unused argument from Parrot_invalidate_method_cache | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34688 | |||
|
07:22
ChrisDavaz joined
|
|||
| dalek | r34689 | pmichaud++ | branches/rvar/languages/perl6/src/parser: | 07:28 | |
| : [rakudo]: Eliminate $?BLOCK package variable, always use @?BLOCK[0] | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34689 | |||
| r34690 | pmichaud++ | branches/rvar/languages/perl6/src/parser (2 files): | 07:41 | ||
| : [rakudo]: STD.pm alignment -- eliminate role_def, package_block | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34690 | |||
|
08:05
flh joined
08:07
schobes left
08:13
ChrisDavaz joined,
tetragon joined,
TiMBuS joined,
gmansi joined,
silug joined,
workbench joined,
zostay_ joined,
Khisanth joined,
Eevee joined,
Infinoid joined,
shorten joined,
magnachef joined,
slavorgn joined,
Hinrik joined,
cxreg joined,
solarion joined
08:14
MariachiElf joined,
particle joined,
ruoso joined,
TonyC joined,
frodwith joined,
apeiron joined,
jsut|work joined,
galf1 joined,
rhr joined,
dtg joined,
japhb joined,
tewk joined
08:16
dngor joined,
allison joined,
TimToady joined,
cotto joined,
Ademan joined,
Aisling joined,
Coke joined,
purl joined,
diakopter joined,
spinclad joined,
Tene joined,
confound joined,
szabgab joined
|
|||
| dalek | r34691 | petdance++ | trunk/src: | 08:19 | |
| : Removed the swap() function from the sort. Call me a premature optimizer, but I think it's safe to inline three swap calls. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34691 | |||
|
08:32
kj joined
08:33
iblechbot joined
09:09
barney joined
09:12
pdcawley joined
|
|||
| dalek | r34692 | kjs++ | trunk/compilers/pirc/new (4 files): | 09:13 | |
| : [pirc] Fix build: PMCNULL was not defined. Re-#define it, as #include parrot/interpreter.h which defines it does not help. | |||
| : + whitespace fixes | |||
| : + remove dependency of bcgen on pirsymbol. | |||
| : + debug stuff. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34692 | |||
| r34693 | kjs++ | trunk/compilers/pirc/new: | 09:28 | ||
| : [pirc] fix the order of parameters; (they were reversed) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34693 | |||
|
09:45
alvar joined
|
|||
| dalek | r34694 | bernhard++ | trunk (2 files): | 09:54 | |
| : [codingstd] Satisfy trailing_space.t and pdd_format.t | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34694 | |||
| r34695 | kjs++ | trunk/compilers/pirc/new (6 files): | 10:25 | ||
| : [pirc] add syntax rule for ("x" => foo) = bar(), which was missing. | |||
| : + :named results don't work now; some debug stuff is added. | 10:26 | ||
| : + fix will follow. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34695 | |||
|
10:26
tomyan joined
10:38
tomyan joined
|
|||
| dalek | r34696 | kjs++ | trunk/compilers/pirc/new (4 files): | 10:42 | |
| : [pirc] fix :named results. + cleanup debug stuff. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34696 | |||
|
11:52
rurban_ joined
|
|||
| dalek | r34697 | bernhard++ | trunk (2 files): | 11:57 | |
| : Some tidbits: speling, code alignment, add code comments | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34697 | |||
| r34698 | bernhard++ | trunk/src/pmc: | 12:15 | ||
| : fix typo in code comment | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34698 | |||
| r34699 | bernhard++ | trunk/src/pmc: | 12:19 | ||
| : Rename varible from nondescript 'table' to 'attrib_metadata'. | |||
| : Update docs: the attributes array is not the attrib_metadata table. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34699 | |||
|
12:21
jimmy joined
|
|||
| 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
|
|||
| barney | same here, furthermore I don't know why we have MANIFEST and MANIFEST.SKIP in the repos | 12:34 | |
|
12:43
alvar joined
|
|||
| dalek | r34700 | kjs++ | trunk/compilers/pirc/new (8 files): | 12:57 | |
| : [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. | |||
| : + some other fixes. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34700 | |||
|
13:01
register joined
13:05
ask_ joined
|
|||
| jimmy | Happy New Year,everyone. | 13:08 | |
| register | :D | ||
| jimmy | masak: ę°å¹“å„½ļ¼ | ||
| register | thanks jimmy but for me it is a little bit too early | ||
| :D | 13:09 | ||
| jimmy | register: there were 3 hours for me. | ||
| register | i sitll have 10 hours before the new year | 13:10 | |
| jimmy | and the astronaut will 16 times new years in a day. | 13:12 | |
| register | eheh | 13:14 | |
| flh | hi everyone! I need some help to try to fix a bug before new year, it's ticket #103 in trac | 13:15 | |
| rurban | I identified two potential uses for MANIFEST.generated: | 13:16 | |
| 1) Track make generated files to be able to clean them, which are not | 13:17 | ||
| cleaned by wildcards, or by seperate subdir Makefiles. So only | |||
| config/gen/makefiles/root.in generated files. | |||
| 2) Add all files to be installed, except the languages which have their | |||
| own make install. Except perl6, which is also installed by | |||
| tools/dev/install_files.pl | |||
| 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. | |||
| 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? | ||
| purl | flw is chinese too. he is good at c and perl. | ||
| jimmy | flh? | ||
| jimmy? | 13:19 | ||
| purl | somebody said jimmy was translating some docs to chinese. or allegedly a sloth | ||
| tewk | flh self is a valid variable name in pir that refers to the pmc, just use self | 13:20 | |
| dalek | r34701 | kjs++ | trunk/compilers/pirc/new (4 files): | 13:21 | |
| : [pirc] Even more fixes for :named arguments. They should be working now... | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34701 | |||
| 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:22 | |
| tewk | invoke may be broken. | 13:23 | |
| flh | it is :) it's ticket #103 | ||
| 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:24 | ||
| some fixes there make invoke have a self variable, but this breaks other parts of the code | 13:26 | ||
| 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:27 | ||
| jimmy | convert 1 usd to rmb | 13:36 | |
| purl | I don't know how to convert 1 usd to rmb. | ||
| jimmy | convert 1 USD to RMB | ||
| purl | I don't know how to convert 1 USD to RMB. | ||
|
13:38
masak left,
masak joined
|
|||
| masak | jimmy: ę°å¹“儽! | 13:38 | |
| jimmy: will you be celebrating in any way? I'm going to make sushi with a good friend. | 13:39 | ||
| jimmy | masak: yeah, will tomorrow | 13:40 | |
| masak | ah. here we mostly celebrate on the strike of misnight. | 13:41 | |
| jimmy | masak: what your meaning is 12/31 ? | 13:42 | |
| masak | jimmy: yes. | ||
| oops, s/misnight/midnight/ | |||
| jimmy | masak: We will celebrate new year in the Chinese lunar calendar. | 13:43 | |
| masak | jimmy: yes. I know that's the "real" New Year for you. | 13:44 | |
| jimmy | yes, on eve. | 13:45 | |
| masak | jimmy: I'll make sure to wish you 'ę°å¹“儽' on that date. :) | ||
| jimmy | masak: It's difficult. I have no Network then. | 13:46 | |
| masak | I see. oh well. | 13:47 | |
| sjn | yeah, happy new year, everyone :) | ||
| sjn hopes it'll be a good one for parrot and perl and y'all :) | 13:48 | ||
| (and I hope everyone would like to come to Oslo to the Nordic Perl Workshop to talk about that ;-) | |||
| masak | I'll try to be there. | 13:49 | |
| dalek | r34702 | kjs++ | trunk/compilers/pirc (2 files): | ||
| : [pirc] update todo and readme. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34702 | |||
| sjn has even sponsorsip money for three people aready :D | |||
| well, four reallt | |||
| rally* | |||
| uhmf. | 13:50 | ||
| masak: I think it would be really cool to hear about november then :) | |||
| pmichaud | flh: the invoke vtable is one of those that is really tricky | ||
| I'd love to come to Oslo, if I could be sponsored. | 13:51 | ||
|
13:51
Theory joined
|
|||
| sjn | pmichaud: that is entirely possible :) | 13:51 | |
| masak | sjn: if I come, I'll definitely talk about November. :) | ||
| sjn | pmichaud: where do you live? | ||
| pmichaud | Dallas, Texas | ||
| 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) | ||
| sjn | www.perlworkshop.no/npw2009/cfpapers.html | ||
| give us a few words on what topics you'd like to talk about, and we'll see :) | |||
| pmichaud | I can talk about basically anything dealing with Rakudo, PCT, and PGE :-) | 13:53 | |
| flh: the biggest problem is handling argument conventions with vtable_invoke | |||
| 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 ;-) | ||
| pmichaud | sjn: okay, I'll send them in later today/tomorrow | ||
| sjn | (oh and I'll need some help recruiting people to come to Oslo, too ;-) | ||
| pmichaud | anything you need doing there, I can do. | ||
| 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) | ||
| 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 | ||
| sjn | jonathan has already promised me to come ;-) | ||
| dalek | r34703 | kjs++ | trunk (3 files): | ||
| : [pirc] remove old unused files containing PASM grammar. + update MANIFEST. pir.y contains everything you need. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34703 | |||
| pmichaud | afk for a bit -- on phone | 13:56 | |
| sjn | <- afk too | ||
| flh | pmichaud, do you know where I would find more details? | 14:00 | |
|
14:20
gryphon joined
14:22
tetragon_ joined
|
|||
| Coke wonders if there is another parrot meeting in the works. | 14:28 | ||
| Coke finds a code base where he actually prefers tabs to spaces. | 14:30 | ||
| (cold fusion) | 14:31 | ||
|
14:34
ask_ joined
|
|||
| dalek | r34704 | kjs++ | trunk/compilers/pirc/new (2 files): | 14:35 | |
| : [pirc] some refactoring, and add some more ops that prevent the need for a sub-epilogue. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34704 | |||
| sjn | masak: do send in a talk submission too, if you can :) | 14:42 | |
| masak | sjn: a'ight. | ||
|
14:43
jhorwitz joined
|
|||
| 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:48 | |
| masak | sjn: define "really". | 14:49 | |
| sjn | that's up to you to define :-/ | ||
| 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 | ||
| 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:51 | ||
| that being said, where do you live? | 14:52 | ||
|
14:52
tomyan joined
|
|||
| 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 | |
|
14:52
ask-_ joined
14:54
tomyan left
|
|||
| masak | sjn: Uppsala, Sweden. | 14:54 | |
| not too far, that is. | |||
| practiaclly next door. | |||
| or down the block, at least. | |||
| sjn | not too bad then | 15:02 | |
| masak | right. and I will likely be able to afford the journey. | 15:05 | |
|
15:17
kysz joined
|
|||
| tewk | Coke: how long does tcl's make test take to run on a core 2 duo roughly | 15:18 | |
|
15:18
tomyan joined
15:21
davidfetter joined
|
|||
| dalek | r34705 | kjs++ | trunk (18 files): | 15:23 | |
| : [pirc] refactoring of error handling code. | |||
| : + update MANIFEST | |||
| : + update pirc.in. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34705 | |||
|
15:27
masak joined
15:39
Andy joined
|
|||
| dalek | r34706 | tewk++ | trunk (6 files): | 15:42 | |
| : [class registry] Round 1 duplicate named class names now allowed, fist one in is the winner | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34706 | |||
| r34707 | bernhard++ | trunk/languages/pipp/src (5 files): | 16:10 | ||
| : [Pipp] start on src/classes/Object.pir | |||
| : Register a proto for newly generated classes. | |||
| : Call !PROTOINIT on the registered proto. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34707 | |||
| r34708 | petdance++ | trunk/src: | 16:11 | ||
| : added notes about the COMPARE function | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34708 | |||
| Andy | yay me | 16:13 | |
| dalek | r34709 | bernhard++ | trunk: | 16:14 | |
| : Regenerated MANIFEST | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34709 | |||
| register | daniel grunblatt is still receable for questions about the jit? | ||
| dalek | r34710 | bernhard++ | trunk/languages/pipp/config/makefiles: | 16:17 | |
| : [Pipp] Add Object.pir as dependency. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34710 | |||
| Infinoid | yay, Andy | 16:18 | |
| barney | register: Just try emailing him | ||
| 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. :-) | ||
| Infinoid | :) | 16:20 | |
| I've been discovering how much fun it is going through and modifying 2 thousand C functions | |||
| Andy | It's very relaxing. | ||
| 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:21 | |
| 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 | ||
| 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 | ||
| and I don't *think* I can make a preprocessor macro with the same name, because varargs macros aren't portable. | |||
| 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. | ||
| Andy | Infinoid: What are we lookin' at? | 16:30 | |
| what NONNULL asserts where? | |||
| Infinoid | I'm adding them to all functions, based on Nicholas Clark's suggestion | 16:31 | |
| I've hacked the headerizer to generate lists of asserts that look like: | 16:32 | ||
| #define _ANALYSE_LIFE_SYMBOL_ASSERT assert(unit); \\ | |||
| assert(r); | |||
| tewk | Andy I prefer swap() over expansion, I'd have marked it inline, it was already static | 16:33 | |
| my two cents, DRY | |||
| 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 | ||
| Andy | tewk: Yeah, understood there. Really, it's COMPARE that is going to be the pig. | 16:34 | |
| Infinoid: can you give me an example of what you're working on? | |||
| Infinoid | Andy: trac.parrot.org/parrot/attachment/...king.patch | 16:36 | |
| shorten | Infinoid's url is at xrl.us/bea57f | ||
| Infinoid | Andy: trac.parrot.org/parrot/attachment/...cros.patch | ||
| shorten | Infinoid's url is at xrl.us/bea57m | ||
| Infinoid | (that latter is the time-consuming part.) | ||
| Andy | So you're gonna have an embedded macro that asserts NON-NULLness | 16:37 | |
| I could make that happen. | |||
| Or you can. | |||
| I like the idea. | |||
| Infinoid | I'm halfway done doing it all by hand, but I'm certainly open to easier solutions | 16:38 | |
| (and solutions that don't ugly up the code as much) | |||
| Andy | nopaste? | 16:39 | |
| clunker3 | pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ | ||
| purl | i think nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) | ||
| 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. | ||
| Andy | rafb.net/p/LTnO0a10.html | 16:41 | |
| dalek | r34711 | infinoid++ | trunk/src/pmc: | ||
| : [cage] Fix a warning: | |||
| : ./src/pmc/stringhandle.pmc:550: warning: comparison between signed and unsigned | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34711 | |||
| r34712 | infinoid++ | trunk (3 files): | |||
| : [core] Fix 4 more badly marked C function parameters. | |||
| : (Found by the headerizer NONNULL assert() patch, see Trac #105.) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34712 | |||
| Andy | that way there's one macro everywhere | ||
| Infinoid | that looks a fair bit nicer than my version | 16:42 | |
| 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 | |||
| 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:44 | ||
| Coke | tewk: intel mac? that's what I run on by default, so the spectest-progress file will tell you | 16:46 | |
| code.google.com/p/partcl/source/bro...ogress.csv | 16:47 | ||
| shorten | Coke's url is at xrl.us/bea58p | ||
| Coke | (Now multiple the last there by 4 times to cover recently slowness that's been introduced, sadly.) | ||
| (I only run spec tests every so often because it takes 2.5 hours. =-) | |||
| tewk | Coke: I just ran make test. it finished in reasonable time | 16:48 | |
| 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. | ||
| Coke | test just contains some basic stuff so we don't regress. | ||
| perl tools/spec*.pl will run the whole thing and update the files in docs/* | |||
| Andy | Infinoid: I feel strongly that the headerizer should NOT modify source code. | ||
| 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 | ||
| Andy | ok | ||
| I'd put it AFTER their prototypes | |||
| Infinoid | works for me *shrug* | ||
| Andy | so the macros don't get in the way of people trying to look at prototypes | ||
| Coke | are these special case macros per file? | ||
| Infinoid | they're special case macros per function | ||
| Andy | yeah | ||
| Infinoid | so you'd have a clump of prototypes, and then a clump of macros? | 16:51 | |
| sounds fine | |||
| Andy | ASSERT_ARGS( 'Parrot_buttscratch' ) will call macro ASSERT_ARGS_Parrot_buttscratch | ||
| and that core macro will know the arg names | |||
| 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 | ||
| well, it's just #define ASSERT_ARGS(a) ASSERT_ARGS_ # a | 16:52 | ||
| Andy | and is less of a pain to maintain. | ||
| Infinoid | or something similar. right? | ||
| Andy | right | ||
| 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? =-) | ||
| Andy | The latter. :-) | ||
| 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. | ||
| Andy | Oh, I'm not avoiding. | ||
| I ahve the book in another window | |||
| Coke ponders writing a book, but has no clue. | 16:54 | ||
| 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. | |||
| Infinoid | for 900 instances, that's not likely | ||
| Coke | type faster! | 16:57 | |
| Infinoid | if only I could :) | ||
| Coke | tewk: should I ask why you're asking about partcl? =-) | 16:58 | |
| Andy | Infinoid: should we make a branch for this? | ||
| Infinoid | I've been doing reasonably well managing a local stack of patches with git | 16:59 | |
| but if you want to, I don't mind | |||
| flh | when I pbc_disassemble some bytecode, is there a way to know what lies behind the PMC_CONST(...)? | ||
| Coke | flh: I don't use the disassembler often, sorry. | 17:00 | |
| 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:02 | ||
| nopaste | "Infinoid" at 75.5.247.153 pasted "updated 02-headerizer-nonnull-checking.patch" (154 lines) at nopaste.snit.ch/15140 | 17:06 | |
| "Infinoid" at 75.5.247.153 pasted "The resulting changes to the headerizer section look like this." (44 lines) at nopaste.snit.ch/15141 | 17:09 | ||
|
17:15
mberends joined
|
|||
| tewk | Coke: I tested before I checked in the minimal class registry fix. | 17:19 | |
| Andy | Infinoid: If you don't need me to look at anything, that's fine. | 17:24 | |
| I wasn't sure if you were wanting me to get my fingers in this or no. | |||
| Coke | tewk++ | ||
| 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 | |
| hmm. preprocessor ## doesn't work right with quoted strings, but it works when I remove the quotes | |||
| Andy | Infinoid: Even better | 17:28 | |
| 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. | ||
| Infinoid | I like the way this stuff looks, big improvement, thanks. | ||
| Andy | I'll wait 'til I see your commits. | ||
| and po,e at it. | |||
| 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'? | ||
| Andy | Hey, I'm glad to have someone other than me futzing w/the headerizer. :-) | ||
| Coke | PIR subclasses of pmcs have a PMCProxy. | ||
| the proxy is (apparently) handling inheritence behind the scenes. | 17:30 | ||
| so in some cases, I get the proxy and poke at it directly. | |||
| see: | |||
| code.google.com/p/partcl/source/bro...st.pir#250 | 17:31 | ||
| shorten | Coke's url is at xrl.us/bea6et | ||
| 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. | ||
| without the proxy, I'd have no way to effectively call the "super" vtable. | |||
| flh | ok, thx! | 17:32 | |
|
17:33
jrockway joined
|
|||
| dalek | r34713 | bernhard++ | trunk/languages/pipp/src (2 files): | 17:34 | |
| : [Pipp] Add a call to !ADD_TO_WHENCE. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34713 | |||
| r34714 | bernhard++ | trunk/docs/book (2 files): | 17:42 | ||
| : RT #61874: [PATCH] Fixed typos in docs | |||
| : Courtesy of tuxdna | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34714 | |||
| Andy | Infinoid: Do you have an ETA on putting your stuff back in? | 17:45 | |
| I'm also interested in the git-svn stuff. | |||
| tewk | I use git-svn | 17:46 | |
| leo? | 17:49 | ||
| purl | i heard leo was possibly leo lapworth eq ranguard or one of parrot's older contributers. or Leopold Toetsch | ||
| tewk | oslo? | 17:50 | |
| purl | oslo is 59.9ļæ½ N 10.6ļæ½ E | ||
|
17:51
chromatic joined
|
|||
| barney wishes a happy new year und an guadn rutsch | 17:51 | ||
| tewk | register: www.perlworkshop.no/npw2009/ | ||
| Coke | chromatic: ho. | 17:53 | |
| register | who is planning to go to oslo? | 17:54 | |
| chromatic | Excuse me? | 17:55 | |
| Coke | ho? | ||
| purl | LET'S GO! or a scale ratio of 1:87 | ||
| Coke | ho is also a generic greeting. | ||
| purl | okay, Coke. | ||
| 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:57 | |
|
17:59
s1n joined
|
|||
| Infinoid | in the meantime, it shouldn't hurt to just rip attribute_nonnull out entirely | 18:01 | |
| I think that would resolve #50684 | |||
| Coke | Infinoid: did you see chromatic's email? | ||
| Infinoid | just saw it now, thanks. | 18:02 | |
| 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: | ||
| "Parrot VM: PANIC: Out of mem! ... C file src/gc/memory.c, line 137" and a long message | |||
| Andy | Then that's what we should fix | ||
| not ripping out attribute_nonnull | |||
|
18:03
pdcawley joined
|
|||
| 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
|
|||
| 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. | ||
| Andy | and that shouldcover his concerns as I understand them. | ||
| Infinoid | that seems like a Bad Thing | ||
| Andy | What do you mean when you say "rip out attribute_nonnull"? | 18:06 | |
| 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. | ||
| Andy | How do you mean "stop using it" | ||
| Coke | Hinrik: works here in r34712. | ||
| Andy | The key here seems to be compiler settings. | ||
| and if you want to wrap things in compiler settings, I'm potentially OK | |||
| Hinrik | maybe I'll try again with a make clean | ||
| Andy | but the ARGIN()/ARGOUT() guards are crucial. | 18:08 | |
| both to GCC and splint | |||
| Infinoid | yes, I agree. but attribute_nonnull doesn't seem to be guarding anything | ||
| Andy | Yes, I understand what you're saying. | ||
| Infinoid | chromatic: what I'm worried about is bugs that only show their ugly heads when building optimized... | ||
| 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. | ||
| Infinoid | and that's what I am trying to reinforce. | 18:10 | |
| 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. | ||
| 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 | |
| but I haven't actually RTFM'd. | |||
| chromatic | Then we need to file a bug with GCC, because the manual lies. | ||
| Infinoid | I definitely agree, the more seatbelts, the better. | ||
| Andy | what are you looking at in the manual, chromatic? | 18:13 | |
| URL? | |||
| chromatic | gcc.gnu.org/onlinedocs/gcc-4.3.2/gc...onnull-262 | 18:14 | |
| shorten | chromatic's url is at xrl.us/bea6ik | ||
| Andy | It is indeed doing that, I believe. | 18:15 | |
| Coke | (if only the "turn warnings into errors" magic worked. :) | ||
| Andy | but I also think that AndyD's assertions that it optimizes away checks is true, and not counter to the docs. | ||
| Coke | if it's optimizing away the check, and he then segfaults, isn't that a bug? | 18:16 | |
| (since clearly the check was needed?) | |||
| Infinoid | gcc.gnu.org/onlinedocs/gcc-4.3.2/gc...ibute-2159 is the corresponding function attribute | 18:17 | |
| shorten | Infinoid's url is at xrl.us/bea6ix | ||
| Andy | the check is a compiler-level check | ||
| is how I read it. | |||
| compile-time check, not run-time | 18:18 | ||
| 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. | |||
| So it's both. | |||
| Infinoid | if it adds a check to the caller, and optimizes away the checks within the function, that seems fair | ||
| but a compile-time check doesn't seem sufficient | |||
| Andy | Compile-time check if possible, and ignore any NULL checks at run-time if it seems fair to do so. | ||
| Infinoid | (I don't know about the details of its implementation) | 18:19 | |
| Andy | sufficient for what? | ||
| Infinoid | sufficient for catching NULL values being passed to the function. | ||
| Coke guesses: "to avoid andy exploding" | |||
| Andy | No, clearly, the compiler can only do so much at compile time. | ||
| Infinoid | if it inserted a runtime check, that'd be fine with me too | ||
| Andy | It sounds like there IS a runtime check that goes away with the attribute. | 18:20 | |
| because you're making a promise to the compiler. | |||
| But you're never going to catch | |||
| memset(&p,0,sizeof(p)); strcpy(p,"BLAM"); | |||
| 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 | ||
| 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. | ||
| Infinoid | ...without stripping out attribute_nonnull entirely | ||
| Coke | (is the fix that someone needs to build without optimization and fix any warnings that occur?) | ||
| Infinoid | (that's why I mentioned doing so to begin with.) | ||
| Andy | I'd feel much better if you'd stop saying "stripping out attribute_nonnull" | ||
| chromatic | Coke, that's what we've been doing. | ||
| Andy | because what I hope you're saying is "selectively disabling attribute_nonnull" | 18:22 | |
| Coke | chromatic: yes, but andy's still exploding, neh? | ||
| dalek | r34715 | tewk++ | trunk: | ||
| : [DEPRECATED] flat namespace / class registry lookup | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34715 | |||
| Coke doesn't really understand the underlying technical issue. | |||
| 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 | ||
| Coke | tewk: you have a ticket number for that? | ||
| Andy | Coke: attribute_nonnull has two effects. | ||
| Compiler warns at compile time if you pass a NULL. | |||
| 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. | ||
| Between those two, you can still get NULLs in. | |||
| Coke | ok. | ||
| so why don't folks who aren't andy have similar problems? | |||
| Andy | I assume we mean AndyD here | ||
| Coke | yes. | ||
| Andy | and do you have a pointer to some of his exploding tha you refer to? | 18:25 | |
| and do we need to optimize for crankiness? | |||
| I suggest we might not. | |||
| Coke | the explosions, as I recall, made parrot unusable. | ||
| so, that's not really cranky. | |||
| I presume infinoid has a pointer to one of his RTs? | |||
| 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. | ||
| Coke | yes. | ||
| Andy | ok, mea culpa | ||
| Infinoid | also for the record, whlie adding asserts (and building without optimization), I've found several explosions from mis-categorized arguments. www.parrotvm.org/svn/parrot/revision?rev=34525 and www.parrotvm.org/svn/parrot/revision?rev=34712 | 18:27 | |
| s/whlie/while/ | |||
| 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 | |
| If you want to debug code written that way, you need to make sure you don't strip debugging information. | |||
| 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 | ||
| Andy | Right | 18:30 | |
| because Parrot_init_lib was incorrect in its arg | |||
| Infinoid | chromatic: also note that in #50684, it sounds like you got the same result with -O2 | ||
| 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 | ||
| Andy | and so with 50684 there is probably a function somewhere that is mis-tagged. | 18:33 | |
| and we fix that, and all is well. | |||
| Coke | so instead of adding more checks, could we just build optimized more often as core developers and fix any explosions? | ||
| is there a way to /force/ the explosions? | |||
| Andy | If we know where they are. | ||
| And plus, that ticket is 9 months old. | |||
| I build -O2 all the time w/o incident | 18:34 | ||
| oh wait, no I don't. | |||
| haven't in a while. | |||
| trying now | |||
| chromatic | I build optimized fairly often. | ||
| Andy | Also, note that -O2 and -O3 provide MORE compiler warnings than without | 18:35 | |
| because it has to sniff around more. | |||
| lots of "will never be executed" rear their heads. | |||
| 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 | ||
| chromatic | If we built regularly and didn't see compiler warnings, I'd worry that this tactic didn't work. | 18:37 | |
| Per what happens now, I worry that we're not fixing compiler warnings often enough. | |||
|
18:38
rindolf joined
|
|||
| Infinoid | so, um, is the work I'm doing still useful? | 18:39 | |
| chromatic | Yes. | ||
| Infinoid | ok, I'll keep at it | ||
| 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. | ||
| particle | (watching the watchmen)++ | ||
| chromatic | Anything that makes warnings more difficult to ignore is good. | 18:41 | |
| (provided we then fix them) | |||
| dalek | r34716 | rurban++ | branches/pdd30install_stage3 (43 files): | 18:42 | |
| : There are some files not yet tracked, but I leave them as it is. | |||
| : Tested ok on cygwin, debian and freebsd. | |||
| : Track all make generated files in MANIFEST.generated, | |||
| : those to be installed, and those generated src files not | |||
| : tracked by make clean wildcards. | |||
| : replaces MANIFEST.generated by MANIFEST.generated.in | |||
| : added tools/build/addgenerated.pl | |||
| : use addgenerated and Parrot::BuildUtil::add_to_generated() | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34716 | |||
| Andy | Infinoid: Oh yes, definitely worth doing! | 18:44 | |
| Please keep at it. | |||
|
18:45
apeiron joined
|
|||
| Infinoid | ok. I just wish we knew why gcc's checking didn't work | 18:45 | |
| Infinoid has 1117 more "ASSERT_ARGS(check_invoke_type);"-style lines to add | 18:46 | ||
| Andy | ok, lunch time. | ||
| purl | _FUD! | ||
| chromatic | src/stm/waitlist.c: In function āwaitlist_signal_allā: | 18:47 | |
| src/stm/waitlist.c:371: warning: null argument where non-null required (argument 3) | |||
| That's building with -O2 -g and having deleted -DNDEBUG or whatever that was. | |||
| Coke | of course, the right fix there is to delete src/stm* =-) | ||
| Infinoid | oh, cool | ||
| chromatic | As far as I can tell, the attributes work here. | 18:48 | |
| Coke wonders if tools/dev/ccflags.pl should be in build/ | 18:51 | ||
| dalek | r34717 | rurban++ | trunk/ports/cygwin (7 files): | 18:52 | |
| : [ports] cygwin release parrot-0.8.2-1 | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34717 | |||
| 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 | ||
| Andy | Great! A clue! | 18:54 | |
| I just build with -O3 and got only the two failiures I always do | |||
| t/library/pcre.t and t/run/options.t | |||
| ok, NOW is lunch | |||
|
18:54
rindolf joined
|
|||
| dalek | r34718 | rurban++ | trunk: | 18:56 | |
| : [docs] update Cygwin readme. | |||
| : resolves RT#51944 | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34718 | |||
| particle | Infinoid: ci. i'll give it a whirl. | ||
| Coke | src/exceptions.c: In function 'Parrot_print_backtrace': | 18:57 | |
| src/exceptions.c:555: error: 'Dl_info' undeclared (first use in this function) | |||
| doesn't error the same way built with no options to configure.pl | 18:58 | ||
| chromatic | Gah, I fixed that a while ago. | ||
| Coke | you've come undone! | ||
| chromatic | Coke, r33525. | 19:00 | |
| 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. | ||
| chromatic | Oh. Feather's haunted. Different problem. | ||
| Coke | that patch forces __USE_GNU to be set? | 19:02 | |
| that seems odd. | |||
| rurban | I'm off now. Bye until next year :) | 19:06 | |
| davidfetter | l8r, rurban | ||
| davidfetter wonders who's already in next year | 19:07 | ||
| chromatic | You need __USE_GNU to get the Dl_info define for backtraces. | 19:12 | |
| 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. | ||
| dalek | r34719 | infinoid++ | trunk (3 files): | 19:18 | |
| : [headerizer] From a suggestion from Nicholas Clark in | |||
| : www.nntp.perl.org/group/perl.perl6....49677.html , | |||
| : adapt headerizer to emit macros which assert() the definedness of arguments | |||
| shorten | dalek's url is at xrl.us/bea6n7 | ||
| dalek | : that should never be NULL. If I'm understanding c_functions.pod correctly, | ||
| : this means ARGIN(), ARGOUT(), ARGMOD() and NOTNULL(), but not the | 19:19 | ||
| : ARG*_NULLOK() variants. | |||
| : Also add t/codingstd/c_arg_assert.t to verify the resulting defines actually | |||
| : get used. And whitelist the generated #defines so they don't trigger | |||
| : failures in t/codingstd/c_indent.t. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34719 | |||
| r34720 | infinoid++ | trunk (138 files): | 19:20 | ||
| : [headerizer] Run headerizer and apply the resulting changes to headerizer's | |||
| : output. (Minus some minor preprocessor tweaks, see RT #53990.) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34720 | |||
| r34721 | infinoid++ | trunk/include/parrot: | |||
| : [core] Add an ASSERT_ARGS() helper macro for the headerizer asserts. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34721 | |||
| r34722 | infinoid++ | trunk (35 files): | |||
| : [headerizer] Use the new assert macros in a bunch of functions. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34722 | |||
| Infinoid | hopefully that won't break everyone else. | ||
|
19:23
apeiron_ joined
|
|||
| chromatic | src/oo.c: In function āParrot_oo_register_typeā: | 19:28 | |
| src/oo.c:572: warning: implicit declaration of function āget_new_vtable_indexā | |||
| src/oo.c:572: warning: nested extern declaration of āget_new_vtable_indexā | |||
| Infinoid | odd, headerizer removed the prototype | 19:31 | |
| chromatic | Is it static, needing maintaining outside of the headerizer block? | ||
| Infinoid | no, it's global, so it should have (and did have) a prototype in include/parrot/pic.h | 19:32 | |
| s/pic/pmc/ | 19:33 | ||
| 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:38 | ||
| tewk | i added that function today. | 19:42 | |
| Infinoid: | |||
| Coke | heh. | ||
| Infinoid | ok. well, headerizer is ignoring it for some reason | 19:43 | |
| Coke | pmichaud: (sigils in namespaces) Huh. apparently tcl has been using $ to prefix vars. | 19:44 | |
| (I thought it had &subs and vars, but apparently it was &subs and $vars) | |||
| Coke is finally able to start 'make smoke' on freebsd. | 19:45 | ||
|
19:45
apeiron_ joined
|
|||
| Infinoid | tewk: oh. headerizer removed the prototype because the "{" was on the same line as the function name. | 19:49 | |
| particle | should have ran the coding standards tests, i guess | 19:50 | |
| Infinoid | I can fix, one moment | ||
| dalek | r34723 | infinoid++ | trunk (2 files): | 19:52 | |
| : [core] Headerizer didn't like get_new_vtable_index because the curly | |||
| : brace was on the same line. Fix that and rerun headerizer. | |||
| : Also, moved the function up slightly so pmc_register() and its | |||
| : documentation can stay together. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34723 | |||
| Infinoid | hmm, breakfast sounds like a wonderful idea. | 19:54 | |
| TimToady | phoan | 20:00 | |
|
20:01
Whiteknight joined
20:05
contingencyplan joined
20:23
rurban joined
|
|||
| rurban | I have an interesting perl5 _slurp bug on cygwin. _slurp("src/platform.c") returns '' | 20:23 | |
| Did anybody see something like this before? | 20:24 | ||
| _slurp: my $text = do { local $/; <$fh> }; | |||
|
20:24
gmansi joined
|
|||
| Andy | back | 20:27 | |
| chromatic | yes, that's common | 20:28 | |
| Coke | chromatic: thbbthp | 20:39 | |
| rurban | Even if I the conservative approach without $text=do {} it fails. my $text; { local $/; $text = <$fh> } hmm | 20:43 | |
| Even if I USE the conservative approach without $text=do {} it fails. my $text; { local $/; $text = <$fh> } hmm | 20:44 | ||
| tell on the fh tells me 0 | |||
| It's probably something in the windows kernel or the virus scanner, forbidding the read() | 20:45 | ||
|
20:49
kid51 joined
|
|||
| Whiteknight | (windows kernel)-- | 20:50 | |
| rurban | Now it's gone and it works. Strange. I could reproduce it on the command line though. | 20:51 | |
| Okay, now I go really to the party, bye! | |||
| dalek | r34724 | jkeenan++ | branches/pdd30install_stage3 (2 files): | 20:55 | |
| : 1. Update test in t/steps/gen_platform-01.t to reflect fact that _handle_begin_c() now takes \\$conf as first argument. | |||
| : 2. gen::opengl needs to import Parrot::BuildUtil::add_to_generated().. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34724 | |||
| GeJ | Happy New Year everyone. | ||
| kid51 | GeJ: Happy New Year to you too! (And any luck with Trac?) | ||
|
20:56
Limbic_Region joined
|
|||
| 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:57 | |
| 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. | ||
| GeJ | I think I saw a new minor release for trac... 0.11.2.1 | 21:00 | |
| I wonder if this is related to our issue. | |||
| Coke | we did update our trac server. | ||
| ISTR allison wondered on list somewhere if you had been bitten by this. (all y'all) | |||
| Looks like all I can do is remove your account. | 21:01 | ||
| 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. | ||
| GeJ | Coke: please nuke me hard. Thanks :) | ||
| Coke | I can do that to both of you, actually. gej, account name? | ||
| allison | kid51: I was just testing that I could create a ticket | ||
| GeJ | 'geraud' | ||
| purl | i guess 'geraud' is the username | ||
| kid51 | TT 110 was what allison was working on. | ||
| allison | kid51: so I could be sure it doesn't affect all accounts | ||
| GeJ | purl: forget geraud | 21:03 | |
| purl | GeJ, I didn't have anything matching geraud | ||
| GeJ | purl: forget 'geraud' | ||
| purl | GeJ: I forgot 'geraud' | ||
| kid51 | Coke: Go ahead, nuke me, baby! | ||
| Coke | I added TICKET_CREATE to both of your accounts. | 21:04 | |
| which I shouldn't have to do, but enjoy. =-) | |||
| 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:05 | |
| GeJ | seconded | 21:06 | |
| kid51 | GeJ, so while we're waiting for nuclear annihilation ... how many hours into the new year are you? | ||
| Coke | kid51: I deleted your account. create a new one? | 21:07 | |
| GeJ | 8. | ||
| kid51 | What's it like in the future :) | ||
| 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:08 | |
| kid51 | Ah, tropical paradise! | 21:09 | |
| Coke | it's -10C here. =-) | ||
| 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. | ||
| kid51 | Coke, Allison; Thanks. | ||
| Coke | hokay. I'll kill gej, then. | ||
| GeJ: deleted. recreate away. | |||
| kid51 | Coke: Are you somewhere other than Albany? | ||
| It's nowhere near -10C in NYC. | 21:11 | ||
| Coke | kid51: I'm about 20m south of albany, across the river. | ||
| kid51 checks regional weather | |||
| Coke | I'm going by weather.com for my thermometer. | ||
| GeJ | Coke, allison: thanks you. | 21:13 | |
| 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. | ||
| (i haz a heater about 2 feet from me.) | |||
| 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. | ||
| Or throw exceptions. | |||
| Or do multi dispatch. | |||
| 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. | ||
| Coke | though I hesitate to convert things optimizing against a laden parrot. | ||
| chromatic | No kidding. | 21:17 | |
| Coke | ah. | ||
| kid51 | (correction: he's clarinetist, not trumpeter) | ||
| chromatic | If you do run cachegrind, see what calls pmc_new_header the most. | ||
| Coke | something else that might help: inlining my utility methods as macros. | ||
| that would be an easier change, too. | |||
| kid51: nifty. | 21:18 | ||
| kid51 | (Donna's is where kid51 hangs in NOLA when he's not meeting with New Orleans Perlmongers.) | ||
| davidfetter | .oO(yat.pm) |
21:19 | |
| Coke does wish someone would resurrect albany.pm | |||
| Coke tried, but was unable to keep the momentum. | |||
| chromatic: OOC, do subs with optional params cost more than just positional? | 21:20 | ||
| (significantly more, I suspect I meant) | |||
| 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. | ||
| chromatic | Depends on how many more and how often they get called as opposed to regular subs. | ||
| pmichaud | masak: I don't understand the question. | ||
| oh. | |||
| eval is in control.pir | |||
| masak | pmichaud: yes, I just saw that. | ||
| pmichaud: can I change the docs? | 21:22 | ||
| pmichaud | masak: yes, please. | ||
| masak does that | |||
|
21:22
Zaba joined
|
|||
| masak | I'm also slightly mystified that C<eval> is in fact not in eval.pir | 21:22 | |
| why? | |||
| pmichaud | I think we ended up seeing it as more of a control-flow thing (like 'die') than an eval one. | 21:23 | |
| besides, I would expect eval.pir to move to Any | |||
| masak | ok. | ||
| pmichaud | I don't remember if we decided that "...".eval was valid | ||
| (I think we decided it wasn't) | |||
| kid51 | purl: msg rurban This Smolder report is on pdd30install_stage3 branch: smolder.plusthree.com/app/public_pr...ils/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. | ||
| shorten | kid51's url is at xrl.us/bea6zz | ||
| masak | ugh. remind me how to authanticate against Parrot's svn repo again. | 21:26 | |
| it was something with parrot.org, I think. | |||
| pmichaud | Parrot's svn repo is perl.org | 21:27 | |
| Andy | Infinoid: It looks good. | 21:29 | |
| we need to get the same check stuff into the various ops and PMCs | |||
| but that's for later, I think. | |||
| Infinoid | Andy: good idea. that stuff isn't covered by headerizer, right? | 21:30 | |
| Andy | yes, that's correct | ||
| Infinoid | pmc2c would work | ||
| Andy | but i'm wary of poking too hard because | 21:31 | |
| the PMCs are all virtual methods, | |||
| Infinoid | we could even make it transparent, so we don't need to litter up the .pmc files | ||
| Andy | so they don't get all the checky-checky at compile time we like. | ||
| particle | (using pmc2c and ops2c)++ | 21:40 | |
|
21:41
leto joined
|
|||
| 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:52 | |
| line 86 (or so), it says : "ResizableStringArray: Can't resize!" | 21:53 | ||
| while it probably should say : "ResizableIntegerArray: Can't resize!" | |||
| file: src/pmc/resizableintegerarray.pmc | 21:54 | ||
| dalek | r34725 | particle++ | trunk/src/pmc: | 21:55 | |
| : [pmc] typo fix; GeJ++! | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34725 | |||
| GeJ | thanks particle | 21:56 | |
| Found a bug. Hopefully, he should be gone in 1h40 minutes. | 22:21 | ||
| in t/op/time.t, line 96. Couldn't we use localtime() instead of gmtime()? | 22:25 | ||
| chromatic | That may depend on what the decodelocaltime op does. | 22:28 | |
| GeJ | According to docs/ops/sys.pod it seems sensible. | ||
| 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
23:21
Theory joined
|
|||