Parrot 1.1.0 Released | parrot.org/ | 322 RTs left | Weekly Priority: Remove Deprecated Items
Set by moderator on 6 May 2009.
00:09 tetragon joined 00:13 bacek_ joined 00:29 japhb_ joined 00:45 Whiteknight joined 02:41 janus joined
darbelo Is dalek alive? 03:06
Infinoid dunno, it isn't a terribly interactive bot 03:11
its channel log is up to date, so I guess so 03:12
darbelo Did he stop tracking parrot.org blogs then? 03:16
dalek website: darbelo++ | Singletons: On their use and abuse.
website: www.parrot.org/content/singletons-h...buse-them.
Infinoid whistles innocently
I didn't touch it, honest :) 03:18
darbelo Probably the parrot.org rss was lagging, assuming I believe you ;) 03:19
Infinoid darbelo++ # keeping dalek honest 03:20
03:23 Austin_Hastings joined
dalek tracwiki: v19 | allison++ | ChrootSetup 03:23
tracwiki: trac.parrot.org/parrot/wiki/Chroot...ction=diff
darbelo I don't really care that much if dalek tracks my blog or not. I just had nothing better to do while I watched "make test" scroll by.
Austin_Hastings Q: Is there any way to use a subset of an expression grammar? (That is, to have expressions recognize assignment, etc., vis a = b = 1+2, but to "call" the non-assignment precedence levels for things like int a[1 + 2]?) 03:25
03:26 darbelo left, darbelo joined
Infinoid darbelo: When you guys were discussing singletons and the pointer accessors earlier, I was wondering why all that stuff wasn't split into a Singleton base class 03:26
I mean, there isn't much code behind it, but it's still not something you should have to do by hand 03:27
Putting it into pmc2c as you suggested may be a more realistic solution, because then that hypothetical base class doesn't have to keep track of which subclass is which pointer 03:28
darbelo I don't think 'singleton' can be inherited, really. I just means "there is only one instance (per interpreter)". 03:30
The whole *_pointer() thing looks to me like an implementation detail that got leaked out. 03:31
Infinoid agreed.
It's probably just a case of "had to put it somewhere"
03:31 darbelo left, darbelo joined
Infinoid but since those vtables are used for different things in other pmcs, it does cause confusion 03:32
darbelo The PMCs that use it for other things are probably confused themselves. I know I was confused when I was doing it. 03:34
Infinoid like cotto was saying earlier, it's just an implementation-specific interface
I was used to using it for C-level structures the PMC was wrapping, which is why I was confused
The fact that singletons *can't* use it for that purpose bothers me a little, but then again, they can still use static variables or attrs for that. 03:35
darbelo The code on pmc.c is pretty sure it's getting (and setting) a pointer to the PMC itself.
The fact that all the other ways to do it work is a just a happy coincidence. 03:36
Infinoid likes to optimize for happiness 03:37
cotto but there's still too much coincidence
darbelo But the kind of stuff you can do right now to singletons is unlikely to make anyone happy on the long run. Even if you don't die in your sleep :) 03:38
cotto I'm wondering if the singleton-specific code can go away. It's not very intuitive, even if it's documented. 03:39
darbelo Having two separate instances of a PMC that claims to be a singleton is just asking for trouble.
Infinoid So don't do that. :) 03:40
cotto that'd probably be less intuitive ;) 03:41
darbelo Infinoid, Why not? Parrot let's you :)
"Oh, look it compiled. I must be doing it right, then!" 03:42
Infinoid "SHIP IT!"
cotto by ship
Infinoid Parrot lets you put segfaults in your dynpmc code too, but I won't come to your birthday party if you do that 03:43
I heard a talk once given by Rusty Russell, a linux kernel guy, about how he rates APIs.
cotto I will, but I won't bring a present
Infinoid There are APIs that are impossible to use wrongly. They're good, but extremely rare 03:44
compiler errors are almost as good, warnings are almost (again) as good
03:44 Austin_Hastings left
Infinoid if you follow standard convention, like returning negative error numbers or using dest/src argument ordering like strcpy() does, you're doing well 03:45
then there are interfaces that are misleading, and then wrong by default, and then impossible to use correctly
This singleton thing isn't great, but I can still imagine worse. :)
cotto www.pointy-stick.com/blog/2008/01/0...ty-levels/ 03:46
Infinoid it was one of his talks at OLS I heard 03:47
He's worth listening to.
cotto canada, eh?
darbelo Right now we are at 9, maybe 7. patching pmc2c would make it a 2, maybe 1. 03:48
Infinoid "common convention" only means "common for singletons", so 7 is pushing it 03:49
darbelo Pheraps a 6, depending of how you define 'break'. 03:50
Infinoid nah, "break at runtime" means "crash with a clear error message about how to fix it"
I think your 9 rating is accurate 03:51
darbelo Not a 6, then.
With proper documentation (think 8), It would be almost good enough. But I'm doing a blog here, reality can wait 'till I'm done typing. 03:54
Infinoid with pmc2c defining the right stuff internally, we can make it a 2 03:55
darbelo OTOH, the first draft for that entry had a paragraph on the valid uses of "Multiple PMCs, singleton data". 03:56
Infinoid a multiton?
cotto I want to see a couple examples of "impossible to use incorrectly" interfaces.
Infinoid cotto: Rusty's example was inter_module_register. It's an interface that lets modules communicate with eachother, badly. 03:57
cotto That's his *good* example?
Infinoid Oh, sorry, his bad one
It returns a void, does a kmalloc(), leaks memory and fails silently and leaks memory if something was already in the table with the same name, or if it couldn't allocate memory
returning a void is a way of saying it can't fail, despite the fact that it can fail. 03:58
I suppose a function which can't fail, can be called as often as you like and at any time you like, and doesn't take any parameters at all, would be pretty difficult to misuse 04:00
cotto dtrt();
Infinoid dwim();
04:00 iblechbot joined
cotto the only function you'll ever need 04:00
ever
Infinoid it would even debug itself 04:01
darbelo It can't debug itself it it is bug-free to begin with. 04:02
dalek rrot: r38682 | allison++ | trunk/ports/ubuntu (2 files):
[ubuntu] Updating packaging files, preparing for inclusion in karmic.
04:03
Infinoid darbelo: That's the hard part :)
cotto we just need to find someone competent enough to implement it.
Infinoid I've got self-evolving AI, but the evolution process isn't exactly fast
darbelo skynet() 04:04
Infinoid xkcd.com/534/ 04:05
darbelo If decnum-dynpmcs work out, parrot can top that. 04:08
thisAlgorithmBecomingSkynetCost = "+Infinity" 04:10
Infinoid I'm not sure how to implement the algorithm_can_become_skynet() function, either. 04:11
I suppose if I can depend on it developing time travel, I can wire a callback from the future
"make test" would take a while tho 04:13
darbelo make test_yourself_and_call_me_when_you_are_done 04:14
If it ever becomes smart enough to take over global communications it'll drop you a call. 04:15
cotto Just generate skynet. Then if your code detects it and the world doesn't get taken over, the test passes.
Infinoid the end result of "make test" should be a terminator unit materializing right next to the PC, keying in the letters "ok" and disappearing again 04:16
gotta wonder about race conditions tho. Might need to match up the process ID 04:17
cotto That's really taking Test *Anything* Protocol to a new level. 04:19
Infinoid Don't even ask how Devel::Cover works
04:19 slavorg joined
Infinoid hmm. speaking of working, my javascript is failing to work in IE 04:20
darbelo Just noticed, did Ubuntu go alphabetically-ordered for their "Adjective Animal" release names? 04:26
cotto yup
there's even a wiki page listing possibilities 04:27
darbelo They should have thought of that before releasing the Warty Warthog if you ask me. 04:29
Alphabetical order doesn't strike me as something you can add afterwards.
Apparently "10 / Infinity = 0E-6176" when using decnums. 04:35
cotto sounds ok, if not exactly canonical
darbelo I'm not entirely sure I can call that "correct". At least for the default string-ification 04:36
cotto Isn't there an api call to make a number canonical?
darbelo Yup, but we aren't using it yet. 04:37
But after division it's supposed to be canonical anyway. 04:39
cotto Mmmm. Bugs. 04:41
darbelo Even with a call to decQuadCanonical right before converting it to string it gives the same result. 04:45
It looks like it doesn't know that it shouln't print Exxxx for 0 04:46
dalek rrot: r38683 | petdance++ | trunk/src/pmc/object.pmc:
removed an unnecessary elements count, and consted a bunch of pointers
04:48
cotto facepalm 04:49
purl jalopnik.com/5101931/caption-this-r...on-edition
darbelo Huh? 04:50
cotto, what prompted the joining of your palm an face? 04:53
cotto that neither division nor the canonicalization function canonicalize that number 04:56
darbelo Ah. I was thinking that but it came right after the commit message, made me doubt it for a minute. 04:58
cotto Heh. I didn't realize that. 04:59
I have no problem with petdance's commit.
darbelo Just confirmed it, decQuadToString puts exponents on zeros. h8 05:00
cotto I need sleeps. Happy wrestling with decNumber. 05:01
darbelo Oh, don't worry. I'm punting this one :)
I still have work on the other half of the global-context decnum. 05:02
dalek cnum-dynpmcs: r29 | darbelo++ | trunk/build/src/pmc/Makefile.in:
Remove duplicated make targets, didn't notice they were there before.
05:07
05:08 Theory joined 05:20 TonyC joined 05:54 cxreg joined 06:30 uniejo joined
Infinoid cotto: heh. ozlabs.org/~rusty/ols-2003-keynote/img39.html (the rant started at ozlabs.org/~rusty/ols-2003-keynote/img28.html) 06:45
bacek_ Parrot to kill off 1000 Australian jobs 08:23
www.optuszoo.com.au/article/news/ne...-jobs.html
O wait...
:)
EDIFFERENTPARROT
cognominal jonathan, in your blog your write "I want it's keys". Should a French teach you proper English? 08:43
jonathan++ # nice stuff as usual 08:44
moritz url? 08:45
cognominal use.perl.org/~JonathanWorthington/j...9?from=rss 08:46
jonathan cognominal: Je ne parle pas l'anglais! ;-) 08:47
cognominal: Fixed, thanks! :-) 08:48
cognominal there are other typos
jonathan Fixed two others too. :-)
cognominal jonathan++ 08:49
jonathan, have you been invited in the conference we do in autumn? 08:50
jonathan cognominal: Don't think so...when in autumn?
If it's October or November I can probably come. 08:51
bacek_ It's already autumn.
jonathan EWRONGHEMISPHERE
bacek_ Ah. Ok...
:)
bacek_ decommutes to home 08:52
cognominal jonathan, I am asking the people in charge
jonathan cognominal: OK. In September I plan to head to YAPC::Asia and then bum around in Japan and South Korea. :-) 08:53
But Oct/Nov I have nothing planned yet.
cognominal "La confƩrence OSDC.fr se tiendra bien les 2 et 3 octobre 2009." 08:55
That will be conference about dynamic languages
08:55 eiro_ joined
cognominal there will be stuff about Perl, Python, Ruby and perhaps haskell and groovy 08:56
jonathan Oh, hmmm...I think the 3rd is the day I'd been planning to fly back. :-S
cognominal I don't know if scala is dynamic
too bad
jonathan, we are trying hard to ignore some php guy who want to be in the speakers 08:58
10:41 donaldh joined 11:21 donaldh joined 11:23 masak joined
dalek rrot: r38684 | cotto++ | trunk/t/pmc/ro.t:
[t] perl->pir conversion of ro PMC test, patch courtesy of bobw++
11:26
bacek oh hi 11:38
good evening
11:46 eternaleye joined 12:02 DietCoke joined
Coke . 12:02
bacek ... 12:13
3. Profit!
dalek rrot: r38685 | bacek++ | branches/pmc_pct/compilers/pmcc/src/parser (2 files):
Improve parsing of parameters in MACRO calls
12:14
12:39 rg1 joined 12:56 riffraff joined 13:00 gryphon joined 13:12 Whiteknight joined 13:13 sFish joined
sFish i'm a newer! i'm happy to come here 13:14
do anybody hear me? 13:15
Infinoid hi sFish 13:16
13:16 cognominal joined
Coke Any rakudo people have any input on news.perlfoundation.org/2009/05/200...l_6_p.html ? 13:19
shlomi?
purl shlomi is a putz or (: rindolf) or worse at socializing than a two-year-old or much like the dutch word for "slow-witted" or the ass-backwards Buddha (see xrl.us/vs8s) or banned or at xrl.us/shlomi or kicked off London.pm twice or at xrl.us/shlomisdream or banned.
Coke nice, purl. :P
masak Coke: I have some input. 13:20
Coke: I've been on the verge of writing it as a comment a few times now. 13:21
Coke "I am a voting member of the grants committee and your feedback will help me." 13:22
masak :)
I don't know Herbert Breunung. as far as I know, he's not in #perl6.
what I'm feeling is that we don't need more places where Perl 6 documentation is written. 13:23
we already have a problem with people finding outdated courses, wikis and pages
I would much rather see energy being put into any of the existing documentation repositories. 13:24
Coke all good feedback. Are you going to add that to the proposal feedback? =-) 13:26
masak I will, now. 13:27
Coke masak++
13:28 sFish left
Infinoid purl, herbert breunung is lichtkind 13:28
purl OK, Infinoid.
13:28 sFish joined
Coke Infinoid++ 13:29
13:30 donaldh left
masak ok. lichtkind was on #perl6 7 months ago. 13:30
Infinoid yeah, looks pretty active last year. irclog.perlgeek.de/search.pl?channe...ind&q= 13:31
masak I'll retract all my comments about 'frequenting the #perl6 channel', then.
but I'll add something about this lacking some grounding in community discussion. 13:32
documentation efforts are fine, but they need to be a bit more consensus-based, IMO.
there, commented. 13:35
13:35 donaldh joined
Infinoid does perl 6 have a tutorial for perl 5 users, yet? I keep meaning to learn it but the synopses keep scaring me off 13:35
PerlJam Infinoid: not that I know of. 13:38
masak Infinoid: perlgeek.de/blog-en/perl-5-to-6/
Infinoid: reputed to be really good.
(authored by moritz++)
Infinoid oh, nice. masak++ 13:39
masak it's the Perl6-from-the-ground-up documentation that is missing right now.
I'm hoping the wikibooks book will help cover that.
Infinoid perl5 has that documentation, but that didn't stop me from taking a couple years and a few tries to learn it. 13:40
Larry's languages aren't exactly minimal, it seems :)
moritz more importantly, Perl 5 has good from-the-ground-up books
masak and whereas Perl 5 keeps changing gradually too, the changes aren't as drastic as those in Perl 6. 13:43
on busy days, the latter feels more like a good game of Nomic. 13:44
Infinoid hmm, Parrot revision r38679 required (currently r0) 13:51
rakudo doesn't like my git checkout of parrot
moritz Infinoid: rakudo executes parrot_config
Infinoid: so you have to build parrot in a way that it reports the right svn revision 13:52
Infinoid yes. and it worked, until recently
moritz does it still report the svn revision? or does rakudo fail to parse the output? 13:53
rg1 i remember a recent commit message that said rakudo now checks the parrot revision
Infinoid parrot doesn't report the svn revision, rakudo just didn't care until now 13:55
moritz yes, right
Infinoid is there a magic --these-are-not-the-droids-youre-looking-for flag I can use? :) 13:58
dalek rrot: r38686 | Infinoid++ | trunk/compilers/imcc/imcc.y:
[cage] Fix some trailing whitespace in IMCC. Apply edits from "make headerizer".
13:59
moritz Infinoid: no, but I guess you can submit an easy patch
14:00 PacoLinux joined, he_ joined
Infinoid I'll fix up Parrot::Revision 14:02
14:07 ruoso joined 14:18 gryphon joined
Infinoid Parrot r38687 builds rakudo HEAD again. 14:24
dalek rrot: r38687 | Infinoid++ | trunk/lib/Parrot/Revision.pm:
[config] Determine revision correctly in git-svn checkouts (and git-only clones of those, like mine).
14:26
14:29 particle1 joined
tewk masak: PERL6INC=~/srcs/perl6libs/http-daemon/lib/ bin/run-nibbler 14:32
Can't find ./HTTP/Daemon in @INC
masak tewk: PERL6LIB 14:33
tewk duh
masak++
masak tewk: and html-daemon might work, but the one I've been using is the one in web.
...which you'll need to have in your PERL6LIB anyway to run the nibbler. 14:34
tewk masak: I used proto to install everything but bin/run-nibbler
didn't run out of the box, so I started down this path
masak tewk: wow, peaople actually use proto.
tewk: no, you still have to set PERL6LIB manually in some cases.
tewk: that's because proto stops short of actually modifying your .bash_profile et al. 14:35
tewk does proto install to a common location or does each lib need to be added to PERL6LIB
masak the latter.
internally, proto handles that by checking dependencies. 14:36
tewk so nibbler runs on a random port? 14:37
nevermind, I'm alreaddy using 8888 14:38
masak not random, just hard-coded. 14:39
14:44 Andy joined 15:14 gryphon joined 15:20 donaldh joined 15:24 parrot-poke joined
jonathan Hmm...it's not possible to use CONST_STRING in a dynop? 15:27
Coke ISTR chromatic fixed that for dynpmcs, anyway. 15:29
jonathan Yeah, I know it works in dynpmcs. 15:30
It's not a huge deal. I'm not writing a performance critical op; string_from_literal will do.
particle- enter a ticket, anyway 15:38
jonathan particle-: good point, will do 15:40
parrotbug? 15:46
purl parrotbug is mailto:parrotbug@parrotcode.org or svn.perl.org/parrot/trunk/docs/submissions.pod or see also "rakudobug" or needs to be converted to trac
15:51 davidfetter joined
Coke parrotbug should just be removed. 15:52
jonathan wtf, I'm supposed to submit through the web interface now?
Coke (if we're not going to try to post anything on your behalf anyway)
jonathan: yes.
jonathan
.oO( purl, parrotbug is f**king useless now)
15:53
Coke email2trac installation was never completed, sfaik.
jonathan #659 15:55
dalek kudo: 526bf42 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 387 files, 11180 passing, 0 failing
15:58
16:17 iblechbot joined 16:29 Theory joined 16:46 Ademan joined
dalek rrot: r38688 | allison++ | trunk/ports/ubuntu (2 files):
[ubuntu] Karmic also uses standards version 3.8.1.
16:56
16:59 register joined, jhorwitz joined 17:13 Ademan joined 17:18 NotFound joined
NotFound hi 17:18
dalek rrot: r38689 | NotFound++ | trunk (22 files):
[cage] change class names "Streams::..." to [ Streams ; ... ], drop library/ prefix and change type from .pir to .pbc in load_bytecode in this library and his usages
17:23
rrot: r38690 | NotFound++ | trunk/t/compilers/pct (2 files):
[cage] drop load_bytecode "library/" prefix in pct tests
17:36
17:39 jderque joined
dalek rrot: r38691 | NotFound++ | trunk/t (4 files):
[cage] drop load_bytecode "library/" prefix in all remaining tests
17:43
17:45 jderque left 17:46 jderque joined
dalek rrot: r38692 | NotFound++ | trunk/examples/library/ncurses_life.pir:
[cage] fix example ncurses_life
17:53
17:55 frodwith joined 17:57 mikehh joined 18:07 burmas joined
dalek tracwiki: v20 | allison++ | ChrootSetup 18:11
tracwiki: trac.parrot.org/parrot/wiki/Chroot...ction=diff
18:29 japhb joined 18:36 burmas joined
Coke particle: ping. 18:40
dalek rrot: r38693 | NotFound++ | trunk (24 files):
[cage] drop all remaining load_bytecode library/ prefixes except in examples/sdl, fix OpenGL usage of include instead of load_bytecode and replace some .pir with his corresponding .pbc
18:47
particle- coke: pong 18:58
Coke particle-: I recall you were looking into localization for parrot. if so, did you end up with a plan? 19:03
19:04 burmas left 19:06 darbelo joined
particle- partially 19:09
i got mired in other things, never got back to it
iirc gettext library detection is working
did a mini test on various oses 19:10
got fallback working for when gettext isn't installed
i think what's left is: 19:11
Coke .. don't tell me. write a ticket. =-)
NotFound particle-: Have you thinked about possible interactions between gettext and CONST_STRING ?
particle- notfound, that's on the "what's left" list :) 19:12
coke: ok, i'll write a ticket when i have a chance
tight deadline today
NotFound At least a note like "Don't do that until we have a plan" may be good ;)
19:14 tewk joined 19:16 fperrad joined 19:18 fperrad left 19:19 fperrad joined 19:20 donaldh joined 19:26 fperrad left 19:29 Whiteknight joined
dalek rrot: r38694 | NotFound++ | trunk (3 files):
[library] generate pcore.pbc and use it instead of his .pir
19:31
Whiteknight pmichaud: ping
pmichaud Whiteknight: pong 19:39
Whiteknight hi pmichaud.
I'm heading down to TX on wed/thurs for work, and wondered whereabouts you live 19:40
pmichaud Plano. Just north of Dallas.
Whiteknight oh, darn. We're going to be in Houston
pmichaud My condolences.
Whiteknight that's what everybody says!
pmichaud Ever been to Houston? ;-) 19:41
Whiteknight nope
jonathan I had to connect in its airport once. <shudder>
Whiteknight oh great, so this is going to be a really fun trip
pmichaud jonathan: I assume you mean Bush Intercontinental Airport? (Houston has two airports)
jonathan pmichaud: I can't remember, this was a few years back... 19:42
pmichaud Probably, if you were flying anything but Southwest.
NotFound The other is Witney Houston?
jonathan Continental. Flew in from London, connected in Houston, out to Tucson.
pmichaud The other is Houston Hobby airport.
PerlJam (Houston Hooby)++ servicing the locals just fine
er, s/Hoo/Hob/ 19:43
pmichaud On Continental you undoubtedly went through Bush Intercontinental -- that's one of their major hubs.
jonathan Most probably.
pmichaud I've done the Houston-London flight many times :-)
But almost always on KLM.
Coke (houston) yeha.
pmichaud Or British Airways.
purl rumour has it british airways is only charging 850
jonathan purl, british airways is also losing your luggage
purl okay, jonathan.
jonathan purl, british airways is also screwing up terminal 5
purl okay, jonathan.
pmichaud purl, british airways is also losing your luggage for only 850
purl okay, pmichaud.
jonathan ...how we love British Airways. 19:44
Coke last time I was in houston, my wife was harrassed by security for trying to take a picture of a building I used to work in.
dalek rrot: r38695 | NotFound++ | trunk (6 files):
[library] generate TclLibrary.pbc and use it instead of his .pir, and some more s/pir/pbc
Coke (while on public property on the other side of the street.)
pmichaud Whiteknight: what part of Houston will you be at... do you know?
Whiteknight no idea really, it's some business trip so I'm just following a gaggle of other engineers 19:45
Coke what hotel you staying at?
Whiteknight no idea 19:46
Coke ... actually, unless it's the doubletree, I won't know. Houston is a beeeeg city.
pmichaud Heh. "Yours is a very bad hotel"
Coke if you have an address, i can probably point you at something reasonably close that is yummy or fun.
Whiteknight we may be sleeping on the floor somewhere for all i know
pmichaud (www.snopes.com/business/consumer/badhotel.asp for those who aren't familiar with the Houston Doubletree :-) 19:47
Coke I remember that story. Thankfully my company paid for the several weeks I spent there while apartment hunting. =-) 19:48
dalek rrot: r38696 | NotFound++ | trunk/t/library (3 files):
[cage] some more s/pir/pbc
19:51
Coke ah. I actually stayed at the OTHER doubletree houston. (probably one of dozens) 19:52
jonathan (doubletree) LOL! 19:53
pmichaud Whiteknight: anyway, if you figure out where you'll be in Houston I suspect there are several of us who can make reservations. Although Houston is not a place that is easy to get around in without a car of some sort. 19:55
(although I've not tried Houston's buses)
s/reservations/recommendations/
Whiteknight I'm only going to be in town for about 24 hours, and most of that will be spent working. If somebody was really close I'd say we could go grab drinks, but otherwise no big deal 19:56
cotto Is there a hackathon after YAPC too, or just one before?
pmichaud cotto: yapc::na?
purl it has been said that yapc::na is going back to Pittsburgh for 2009
cotto pmichaud, yes
pmichaud I think the hackathon is after yapc::na 19:57
before yapc::na is the parrot virtual machine workshop
I don't know how much of a "hackathon" it is.
(there are other workshops pre-yapc as well)
cotto ok. I'll just leave an extra day, and if it happens, it happens.
pmichaud I'm planning to be there on Thursday for hacking, yes.
Coke houston's bus system is quite nice, IME. 19:59
dalek rrot: r38697 | NotFound++ | trunk (3 files):
[library] generate Range.pbc and use it instead of his .pir
20:01
rrot: r38698 | NotFound++ | trunk/t/library/getopt_obj.t:
[cage] some more s/pir/pbc
20:04
tracwiki: v21 | allison++ | ChrootSetup 20:08
tracwiki: trac.parrot.org/parrot/wiki/Chroot...ction=diff
rrot: r38699 | NotFound++ | trunk/t/library (3 files):
[cage] some more s/pir/pbc
20:11
japhb NotFound: ping 20:38
NotFound japhb: pong 20:39
japhb NotFound: regarding r38693 -- the use of 'include' instead of 'load_bytecode' for OpenGL_funcs.pir was intentional. :-)
NotFound japhb: Why? 20:40
japhb At the time, it might have been working around something, but then it became simply an optimization -- to do one load_bytecode instead of two. That optimization may no longer make any sense, of course. 20:41
Also, I'm assuming that deleting 'library/' everywhere is because Parrot's loader got more intelligent about default paths? 20:42
20:42 gryphon joined
Coke purl, owner? 20:43
purl rumour has it owner is hachi, see also #purl
NotFound japhb: in a discussion in tha list allison stated that the intention is to deprecate that usage
japhb ah, cool.
Was that discussion today? 20:44
japhb wonders how he missed it ...
Coke no.
japhb hmm
NotFound japhb: is an old thread, I've writen on it today
In the mailing list, not here 20:45
Coke the thread notfound is referring to is just about killing library/
japhb OK. I'll have to check that I've got all the mailing lists still, once I'm at that computer.
Coke japhb: it's "parrot-dev"
japhb Coke: nodnod
Coke parrot-dev?
purl parrot-dev is mailto:parrot-dev@lists.parrot.org or lists.parrot.org/mailman/listinfo/parrot-dev
20:46 silug joined
NotFound I don't think including a pir file is a good idea... even if a lot of languages currently do it. 20:47
davidfetter yapc10? 20:48
hrm
yapc?
japhb NotFound: out of curiosity, why? Assuming, as is the case with OpenGL, that one could never be used without the other?
NotFound japhb: because of .HLL directives, for example. 20:49
japhb NotFound: the action-at-a-distance issue?
NotFound And if one will never be used without the other, why don't just include the text in the file?
japhb NotFound: because one is hand-written, and the other is generated. 20:50
NotFound japhb: yeah, somenone reading the included file might not understand which directives are active.
japhb: mmmm.... that's a good reason. 20:51
japhb And it seemed icky to have the generator modify the hand-written file, especially since we explicitely track which files are generated and which not, plus PIR had a directive that explicitly covered this usage.
NotFound In that case, maybe the include directory is a better place 20:52
japhb NotFound: I thought of that ... but it's not intended to be included by anything other than OpenGL.pir, and then just to make OpenGL.pbc.
My understanding was that include/ was for stuff that random PIR code may want, like macro definitions. 20:53
NotFound japhb: I think that this opengl thing needs a better schema. If I understand the current situation, OpenGL libraries are selected at parrot build time. But people installing a prebuilt package might not have that, or have another, 20:55
dalek rrot: r38700 | NotFound++ | trunk (2 files):
[library] generate YAML pbcs and use it instead of his .pir
20:57
japhb NotFound: no disagreement. There are two sides to the rationale for the current situation, practical and technical: The practical bits are thus: 1) I was frustrated by lack of progress from others who promised to do the OpenGL library for Parrot, so I JFDI, with admittedly limited Parrot knowledge at the time, 2) Some other projects that may well force a major rewrite haven't to my knowledge completed yet (like new NCI or NCI JIT system), 3) I hav 21:05
en't had tuits to rewrite just for purity's sake, though I recognize it could use some work. The more technical side is as follows: 1) If I do it based on runtime system instead of build system, there is quite possibly very significant time and space cost, 2) I'm not even sure how to accomplish runtime GetProcAddr() type code with the current NCI system, 3) we would need to import the official OpenGL header files into Parrot's repo, including all
the variants for different versions of GLUT and proprietary extensions, and I don't understand the licensing implications (though I remember Allison wanting to avoid license contamination of any kind).
NotFound Maybe we need to develop a method to do things of that type at module install time. 21:07
But there is the problem of the need of the header files, usually people have just the library files, not the headers. 21:08
japhb NotFound: Well, I could rip all of the parrot-build-time stuff out into a separate script, so you could do './install-OpenGL' after building parrot, and then we could generalize that for curses, Postgres, and so on ... 21:09
And yes, that's definitely an issue. We would have to start including headers into our module sources.
Or alternately do as we are now, and tell distro packagers that they need to install a lot of libs and headers at build time, to make all the modules build properly, and then add the libs to the Requires: for the packages. 21:10
*Parrot packages
The current system is unfun for people building and installing Parrot from scratch, but should be working fine for people installing using distro packages. 21:12
NotFound japhb: but the problem is that there are different OpenGL packages with different headers and ABIs, isn't it?
japhb Perhaps we just need a better way to help people get all the build-requires installed.
NotFound: yes.
cotto going to yapc? 21:13
purl See : going to yapc::na or yapc::whatever or cwest, uri, DrForr
cotto going to yapc::na?
purl well, going to yapc::na is hachi, hobbs, apeiron, hercynium, DrForr or dhoss
cotto going to yapc10?
purl going to yapc10 is kid51 or pmichaud or davidfetter
cotto going to yapc10 is also cotto
purl okay, cotto.
japhb The core OpenGL and official extensions are supposed to be fully source compatible, but that doesn't apply to the other OpenGL related libraries, of which there are several even in a minimal install.
And ABI? Fuggedaboudit 21:14
(GLX, sure ... but that's a special case)
NotFound With ncurses and others is a lot easy.
japhb Yeah. Ever since about day 2 of working on the OpenGL bindings, I've considered them pretty much a boundary-testing case for Parrot NCI. 21:15
And there are quite a few things that one should be able to do in OpenGL that just can't currently be done via the Parrot bindings ... many related to void pointers, unsigned ints, large and small data types, etc. 21:17
21:19 rdice joined
NotFound There are things that the current NCI can't do... and maybe that any reasonable way can't do 21:21
dalek rrot: r38701 | NotFound++ | trunk/tools/util/crow.pir:
[tools] use Crow.pbc instad of his pir
japhb NotFound: nodnod. Though I really, really wish I had the free time to do some major brain surgery on it ... or even to create an alternate system entirely. 21:22
Sadly, $day_job trumps.
NotFound I hope that after the calling conventions revisit get done some current problems may be easier to locate and get fixed. 21:23
japhb NotFound: nodnod. I was hoping the same. If I can convert a huge task into small bitesize pieces, I may be able to contribute more again. 21:24
NotFound I still need to fix the Mysql.pir module, it does not work since some time ago, don't know why 21:25
japhb Whatever happened with the "real C99 header parsing"? Did that bitrot? 21:28
NotFound Don't know 21:30
cotto It's still in compilers/ncigen, but I don't it's been touched in a while. 21:31
It still passes all its tests, though. 21:33
NotFound Looks like parsing real C99 is not an easy task ;)
cotto never would have guessed that 21:34
;)
NotFound I suspect some people hoped that, but dont have a list with his names ;-) 21:35
Returning to the pir/pbc subject: optimizing by using include instead load_bytecode has less sense when load_bytecode uses pbc instead of pir, as is supposed to be done most times. 21:37
japhb I wonder if the difference is even measurable at all ... 21:38
21:39 Whiteknight joined
NotFound If some day we have pluggable pir compiler, the difference might be not neediing to load the compiler 21:39
japhb NotFound: Oh, I meant between loading two PBCs and loading one combined PBC. 21:40
NotFound Oh, in that case maybe pbc_merge is a better way 21:41
japhb Or more importantly N PBCs versus 1 combined PBC. In other words, does "prelinking" matter at all?
dalek rrot: r38702 | NotFound++ | trunk/runtime/parrot/library (3 files):
[cage] some more s/pir/pbc
21:44
21:56 dduncan joined
dalek rrot: r38703 | NotFound++ | trunk (3 files):
[library] generate Iter.pbc and use it instead of his .pir
21:57
21:59 dduncan left
dalek rrot: r38704 | NotFound++ | trunk/t (4 files):
[cage] some more s/pir/pbc
22:04
rrot: r38705 | NotFound++ | trunk/t/compilers/pge (7 files):
[cage] some more s/pir/pbc
22:14
cotto Wasn't there a proposal to make load_bytecode "Foo/Bar" work by searching for Foo/Bar.pbc, then Foo/Bar.pir? 22:18
Whiteknight there was something like that, yes 22:19
I don't remember the outcome
cotto me neither
particle- there was no outcome 22:21
"yes, that's nice. we'll figure out how and what later."
seems it's later now. 22:22
we need to be able to tell the bytecode loader what the search order should be
pir then pasm then pbc? vice versa? other?
tunable at runtime? compiletime? etc. 22:23
cotto particle-, do you know where the thread is, or should "someone" start a new one? 22:27
particle- it was long ago. istr the irc nick codermattie 22:29
but not the email name... maybe mark something?
1-2 years ago
ah, probably mark mattie.
cotto mike mattie? 22:31
particle- yeah, right. 22:36
in eastern washington state, iirc
dalek kudo: 2b685ac | pmichaud++ | src/parser/actions.pm:
Refactor subtype handling to eliminate redundant code.
22:42
kudo: 6fc9344 | pmichaud++ | src/parser/actions.pm:
Refactor implicit $_ as parameter on blocks. As a bonus, such
kudo: 4e9e1e3 | pmichaud++ | src/parser/actions.pm:
Refactor make_anon_subtype to re-use standard closure functions.
cotto finally found it 22:43
groups.google.com/group/perl.perl6....d677b057ff 22:44
particle++ for remembering the guy's name
aka RT #41908 22:45
NotFound If you want to cimpile pir you just to need to specify .pir
In a op called load_bytecode, trying to load a bytecode file looks somwhat logical ;) 22:46
cotto I'm easily attracted to shiny things that have the appearance of DTRT. 22:48
Infinoid yay, shiny! 22:49
darbelo DTST? 22:50
NotFound Trying to load a pir if there is no pbc looks th RT to me, but looking first for the pir doesn't 22:51
darbelo Do The Shiny Thing ;)
NotFound If we do that, we can drop the pbc format and save a lot of worries ;) 22:52
Infinoid NSPushCandyColoredButton()
is there anything that loading pir can do which loading pbc can't?
NotFound Execute :inmediate blocks? 22:53
Infinoid if :immediate blocks are intended to be run at compile-time, that seems fair
NotFound I've converted today a lot of load_bytecode of .pir to .pbc, and looks like all works fine. 22:54
The failures were just .pbc not been generated by the Makefile, I fixed that instead of leaving the .pir 22:56
In fact there were several TODO: use .pbc instead of .pir
Don't know why someone put that TODO instead of DO 22:57
rg there are a number of tests skipped for the -r option, saying that lexicals are not thawed properly from pbc 23:00
NotFound But that is related to the .pir being tested, not library files being loaded, isn't it? 23:04
rg yes, i meant that in response to infinoid's question whether there are things that don't work with pbc 23:05
23:11 gryphon joined 23:14 gryphon_ joined, Eevee joined 23:15 kid51 joined
Whiteknight is there anybody around here who really understands the context system? 23:17
23:18 tetragon joined
rg s/around here//? ;) 23:18
Whiteknight true
i thought I understood it, but I see now that it's much more complex then I thought it was
and for that matter, it's far more complicated then I think it needs to be 23:19
so I'm trying to figure out why it is like it is, so I don't miss something important when I kill it all
rg the whole thing?
purl the whole thing is confounded.
rg purl forget the whole thing
purl rg: I forgot whole thing
cotto purl++
Whiteknight rg: Yeah, that's the plan. I'm going through there like a hurricane and turning all Parrot_Contexts into Context PMCs 23:20
23:20 donaldh joined
cotto Whiteknight, what's the advantage of doing that? 23:21
rg huh? so far i'm associating mostly registers with contexts. so i don't think i'm qualified to comment ;) 23:22
Whiteknight cotto: Contexts get managed by the GC instead of manual refcounting, for starters
plus, there are lots of opportunities for major optimizations
rg: Contexts do store and manage registers, yes. But that's only one part of what they do 23:23
rg: They also store metadata about the current execution environment: current namespace PMC, current Sub PMC, current LexPad PMC, current Exception handlers list, current invocant PMC, etc 23:24
rg of course. that's just what i've run into so far
oh right, exception handler list too.
but are they accessed from pir much? 23:25
or rather, what would be the advantage of turning them into pmcs? 23:28
NotFound rg: mainly to avoid the need of manage refcounting from a lot of places
Whiteknight right, they're managed separately from the rest of all Parrot memory 23:37
dalek rakudo: b06767c | jnthn++ | src/ (2 files): 23:39
Whiteknight well, that last statement makes it sound like Parrot is managing memory in a sane and consistent way, which it isnt
dalek rakudo: Document our dynops and rename one of them to something less misleading.
23:39 dalek joined
jonathan lolz 23:40
dalek canny take my commits. :-|
23:41 bacek_ joined
bacek_ morning... 23:43
GeJ G'd day bacek_ 23:44
bacek_ G'day GeJ 23:45
darbelo Is there an easy way to pmc_new() a dynpmc I only know by name? 23:48
Whiteknight darbelo 23:49
: define easy:
(my fingers are stupid right now)
darbelo Implementable in less than three lines of sane c. 23:51
But my definition of sane is rather flexible ;)
NotFound darbelo: Parrot_PMC_typenum and Parrot_PMC_new 23:53
23:57 gryphon joined
Whiteknight darbelo: src/pmc.c:pmc_type() 23:59
that takes a string name, and returns the type ID number
pass that to pmc_new to get a new pmc of that type