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