% moritz has left moritz!moritz@ssh.faui2k3.org % ilbot2 has left ilbot2!moritz@faui2k3.org % ilbot2 has joined #parrot % ilbot2 has left ilbot2!moritz@faui2k3.org % moritz has joined #parrot % iblechbot has joined #parrot r26937 | fperrad++ | trunk: : [digest] : - rename methods without prefixe (more 00) diff: http://www.parrotvm.org/svn/parrot/revision?rev=26937 % barney has joined #parrot r26938 | bernhard++ | trunk: : Make pairs work. : Courtesy of rotty. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26938 https://rt.perl.org/rt3/ seems to be down r26939 | bernhard++ | trunk: : [Eclectus] : Allow easier dumping of the PIR. : Courtesy of rotty. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26939 % cognominal has left #parrot % wknight8111 has joined #parrot % cognominal has joined #parrot % wknight8111 has left wknight8111!~nobody@c-71-230-33-251.hsd1.pa.comcast.net % jan has left jan!~chatzilla@90-229-128-103-no52.tbcn.telia.com % rdice has joined #parrot % Unavowed has joined #parrot % jan has joined #parrot % AndyA has left AndyA!~andy@82.152.157.85 r26940 | bernhard++ | trunk: : #50616: [PATCH] add lists to pynie : Courtesy of Arcady Goldmints-Orlov diff: http://www.parrotvm.org/svn/parrot/revision?rev=26940 r26941 | bernhard++ | trunk: : Give credit to Arcady Goldmints-Orlov diff: http://www.parrotvm.org/svn/parrot/revision?rev=26941 % kid51 has joined #parrot % barney has left barney!~bernhard@dslb-084-058-159-208.pools.arcor-ip.net % AndyA has joined #parrot % ambs has joined #parrot ambs ping poing Saw your ticket re auto::gettext. This step was added to configuration fairly recently by particle. I'm not very familiar with gettext myself. neither do I We don't have a formal configuration log. Could you do something like: perl Configure.pl --verbose-step=auto::gettext 2>&1 | tee ambs.configure.log I need to look into the gettext.pm file and check what it is tring to do give me a secong % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt % ambs has joined #parrot Oooh, my git mirror has almost reached 2006 now. kid51: /usr/bin/ld: cannot find -lintl And you're on Linux, correct? yes I can install intltool and it will pass What is intltool? not sure :D extra/intltool 0.37.1-1 The internationalization tool collection if intl is used, probably the test should be split on two different tests Let me see what I get on Linux. I need to get away for about 30 minutes. BRB % Senaka has joined #parrot % ilbot2 has joined #parrot back erm purl says I have one message wayting ambs: what? purl: messages you collect them by going into a room with purl (what an exciting prospect!) and saying: messages hehehe thanks hi all I'm supposed to give a report on the features of Parrot GC can someone give some hints on starting points etc. ?? Senaka: I think there are some documents about it on the parrot source, but not sure I see pdd05 and some within GC source pdd09 has something about GC, I think in addition to that are there anything else? yes 09 not 05 :) lol ok do not know, then ok thanks infinoid is on holiday so kinda need to get someone else's help for the time being Senaka: where do you have to give this report? to Harmony, the SoC project I work on Harmony is an Apache project kid51: can I install intltool or do you want to use me as a test case? :) % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk ambs: Am just about to post to list on what I've found; suggest hold off till you read that. ok kid51: you James Keenan? yup * kid51 agrees with abms on that s/abms/ambs/ kid51: can you please check if you have a libintl on your fink installation dir? (ls /usr/local/lib/libintl* I would say) % askie has left askie!~askie@81.171.100.207 ambs: Just posted some more data. Fink installs under sw/, not /usr/local. kid51: yes, /sw. sorry using macports for too long :D But doesn't macports install under /opt/local? That's what I/we were assuming with the recent creation of config/auto/macports.pm. yes I realled that fink used a different dir but missed it :D On my Linux, I'm going to install gettext from Debian and see what difference it makes. % tg has joined #parrot at the moment I am installing intltool and check if things change % askie has joined #parrot % Senaka has left #parrot Installing gettext simply reinstalled the version I already had; made no difference to Configure.pl. Now trying to install intltool. kid51: intltool does not include libintl it is a library used by some versions of gettext :-/ Ah. I installed it and it made no difference to Configure.pl probably gettext should be tested with and without -lintl On Linux: also just installed libintl-perl. It didn't make any difference, either. Configure.pl still not finding gettext. "ambs" at 77.54.92.255 pasted "Simple patch (not)" (13 lines) at http://nopaste.snit.ch/12681 kid51: that patch is making it work under linux ...and link against libintl.a or libintl.so. Note that on GNU systems, you don't need to link with libintl because the gettext library functions are already contained in GNU libc. That is all you have to change. how do we detect GNU systems? that's from http://www.gnu.org/software/gettext/manual/gettext.html#Overview particle's url is at http://xrl.us/bjbov particle: right that's why my patch works for linux hehehe i need libintl on windows try to link the sample code without -lintl ...where i developed the step if it doen't work, try with it then non-gnu pay a penalty can't it be done this way? particle: I mean, do that on the configure step non-gnu pay a penalty of compiling the sample code twice.. just that if we already know if the platform is gnu, we should take advantage of that and, do we know that? that's what im trying to figure out if you use gcc, does that make you a gnu system? if you have gnu libc, then you don't need libintl no so, how do we detect whether you have gnu libc? if you use cygwin or mac, you have gcc and need libintl and, is that detection done *before* gettext detection? it must be, for this to work ambs: Applying your patch on Linux -> Configure.pl recognizes gettext. But applying same patch on Darwin leads to problems. kid51: yes, I know :D particle: Determining whether libc has the backtrace* functions (glibc only).....yes. "kid51" at 71.247.58.244 pasted "Applying ambs's patch on both Linux and Darwin" (17 lines) at http://nopaste.snit.ch/12682 this test might help is auto::backtrace done before auto::gettext? yes great, so we can add a flag to backtrace $conf->data->set( glibc => 1 ); if we have glibc, otherwise set to 0 then we can look it up later it seems that there is something like #ifdef __GLIBC__ that might be handy definitely! definitely! are you here? purl: no, he isn't ambs: excuse me? * ambs slaps purl. o/` Hit me baby, one more time o/` "kid51" at 71.247.58.244 pasted "grepping for 'libc' under config/" (13 lines) at http://nopaste.snit.ch/12683 * particle wishes Parrot::Configure::Step::List allowed each step to take params hmms parrot configure.pl system should be sensible to the usual CC environment variable. particle: It used to, but not a single step used those params in any meaningful way. And when I proposed patch eliminating them, no one objected ... and that was back in September. So we've lived without them for 7 months. kid51: it allows cross-compilation scripts to be written atm we don't have anybody trying to compile to ps3, but we need that someday (or iphone, or whatever) it'd sure be nice to have somebody that can test our config system with a cross-compiler perl Configure.pl --cc="$CC" --ld="$CC" --link="$CC" this is kind of b oring :) ambs: That's what I do on Darwin every time I configure. So I have it in a shell script. :) looking for a $ENV{CC} might help config/auto/backtrace/test_c.in: There's no 'glibc' string in this file. What makes it glibc-specific? if there is a __GLIBC__ define, I would create a new step just for that nice.. (1 subtest UNEXPECTEDLY SUCCEEDED) :D Determining whether you have GNU libc......yes/no * ambs nods Yes, it would seem that we should do that before something more specific like backtrace yep Slight tangent: particle: What would be the harm/benefits of moving auto::gcc (currently step 11) up before init::hints (step 5)? the hints are there to tell configure that you know something about your platform before the config process begins in earnest basically, it should be 1) defaults 2) hints 3) detect whatever you can of course there may be other stuff, like manicheck there it seems to me that init::install should be after hints probably same for ::miniparrot Would there be any other way to handle the triggers in config/init/hints/solaris.pm? That's the only place in the configuration system which uses those gettrigger, settrigger functions. I was wondering if doing some detecting of gcc could eliminate some of that. can solaris's init::hints call auto::gcc? One of its 3 callback functions is concerned with auto::gcc. and there goes another complain about the configure script yes. so, inside init::hints, call auto::gcc configure steps *should* be able to call each other % tetragon has joined #parrot That certainly adds to the complexity of the configuration system. % paco has left paco!~chatzilla@139.Red-80-36-122.staticIP.rima-tde.net ... and to its testability. it's a plugin system. plugins should be able to call each other. see qpsmtpd for an example (or many others) Is that consistent with our 'Parrot::Configure object is a singleton' model? sure the parrot configure object contains the data we only want one instance of that the path we take to get the data varies depending on the platform e.g. plugins may be called in a different order depending on platform some may not be called at all some may call others The "some many not be called at all" we basically have now (e.g., 2 darwin-specific steps, 1 win32-specific). So I grok that. right-o But the "called in different order" seems to suggest a potentially much more complex configuration system. i don't think it's more complex Since, at least as long as I've been in the project, there has been a single, linear list of config steps. *much more it'll go something like this: when a plugin starts, it asks "has my purpose been fulfilled already?" if so, don't run again. if not, run. so, it's possible config steps might be called more than once say solaris' init::hints calls into auto::gcc auto::gcc fulfills its purpose init::hints fulfills its purpose later, auto::gcc is asked to run again but it recognizes that it doesn't have to . now, is anybody working on auto::glibc? it's a matter of storing the 'fulfillment' flags somewhere and checking them before running the step Okay, but that's not the way we have it now, right? No step currently has the ability to determine that it has already been run. ambs: i thought you were :P kid51: i'm not sure. probably not. particle: well, I never wrote a test step on my life, particle: I think the 3 triggers in config/init/hints/solaris.pm are the only instance where *parts* of config steps are run in a non-specified-in-Step::List time. And I can't recall any code that asks if a *step* has been run -- though of course steps consult the P::C object for the data resulting from steps. i think you're correct * ambs needs to go direct a choir, and will be back in two hours later, folks % ambs has left ambs!~ambs@255.92.54.77.rev.vodafone.pt we're not looking precisely whether a step has been run already, but that's a good approximation good enough for the next few months, for sure kid51: is it possible currently to modify the step list at runtime? something like add_config_step, delete_config_step No. Has not been since I've been involved in the project. Can't say what happened before then. probably not before, either. You get something like @steps_list and that's that. my rewrite allowed for that, although i'm not sure i got as far as implementing it I saved what you wrote on my disk. It was interesting, but couldn't sustain other changes we were making in configuration at that time. sure it would be nice if our plugins weren't so verbose. there's a lot of repeated code % Ivatar has joined #parrot % Theory has joined #parrot Everything I've been doing re testing of config steps, refactoring them, has been on the premise that at some future point we will (a) drop interactive configuration and (b) substitute file-based configuration -- and that in preparation for that we should maximize the degree to which we have the current config system tested. for example, if we had a step called auto::find_library, and we could call it with params like glibc, libintl etc % PacoLinux has joined #parrot i think we'll add file-based, but keep interactive. % PacoLinux has left PacoLinux!~paco@139.Red-80-36-122.staticIP.rima-tde.net So I eliminated as much as I could that we weren't actually using . Hey do you/I/we have enough tuits to maintain 3 different approaches to configuration (command-line options being #1)? I vaguely recall asking on list who used interactive prompts during configuration. Only Andy D said he did, and even he hinted he could probably live without them at some point. i can't imagine perl 5's configure without interactive mode and the same goes for parrot How often do you use the interactive prompts? Under what circumstances? (I've never had to use them.) when sysadmins in antarctica are installing parrot 1.0 on some arcane hardware, they may want a hand-holding I suspect that they are only useful to very high-level config experts like Andy D and you. The rest of us wouldn't know what selections to make at prompts. have you build perl 5 from source? Yes. But, I concede, I just take default options or set options at command-line. some folks can't (or don't) do that. Granted, I have not been involved in Parrot as long as/to the same depth as you. And I have never been a Perl 5 porter. But I'm starting to feel that in Parrot there's a lot of feature creep. there are only a few hundred people worldwide using parrot atm. that needs to scale to millions Someone says, "I'd like this." And, if the person is smart enough to figure out how to do it, it gets done -- whether we really *need* it or not. i've never been a perl 5 porter. never want to. yuck. The more complex our configuration or build gets, the more people we need to maintain it. it's true that not all the design of parrot is done up front, so you can see some things as feature creep and there's currently no design document for our config, build, or test systems I've been thinking of posting about that. For example, both auto::gettext and auto::crypto were recently added to the step list. In neither case was there an RT posted saying, "I think we need this. Please evaluate the need, then evaluate my implementation." In both cases, they were simply committed to trunk. Not surprisingly, the first implementations broke. % tetragon has left tetragon!~seneca@CPE0040d001f62f-CM000a736592a8.cpe.net.cable.rogers.com I think our config system is mature enough and upstream enough that changes to it should be posted first. And (this being kid51), the implementations should come with tests as well as code. well, we need gettext for internationalization, which is a requirement for parrot 1.0 crypto is not a requirement afaik When I was leading the build test in Toronto, I was asked why we have particular config steps. I couldn't answer. Since I knew nothing when I joined the project, I took the list of config steps as given. i understand where you're coming from, and what you're saying. I've refactored some into new steps, split some, joined some -- but haven't myself added steps which seek new information about the system. do you want to? No, because I don't have a deep enough understanding of what a virtual machine *must* have. Which is 'cause I can only get Dan to go out for beers with me 2x/year ;-) well, i think we basically have everything we need in config for 1.0 now. there may be a lib here or there that we need to look for, but i can't think of any offhand Among other things, if we had a better design document for our config/build/systems, it would provide better guidance for someone like me who is (retrospectively) writing tests for one of those systems. % ruoso has joined #parrot we haven't targeted writing a design doc for those subsystems, since we only have so much bandwidth it may happen down the road, but i don't expect anything until fall And, of course, that lack of bandwidth/tuits, is why feature creep should be avoided. Perhaps we should be asking: What do we currently have in configure/build that we *don't* need for 1.0 -- and can we take it out? right gnu m4 for example that shouldn't be in parrot's configure it should be in languages/eclectus's configure probably same with python I tend to agree. Among other things, I haven't been able to figure out how to write meaningful tests for it -- and for me that's a sign that code is either unnecessary or unmaintainable. I also wondered about python. I can't find any use of it in 'make', so I never understood why it was in configure. I would certainly welcome it if you posted RTs asking whether those steps could be excised. barney added those steps during his hll development instead, they should be hoisted into the languages that need them. languages/dotnet has its own Configure.pl, which is the right way to do it I've come to realize there are a number of issues in the configure system. (1) What needs to be probed for? (2) How those probes are conducted? (2a) Whether those probes are to be conducted in C or in Perl 5 (or what mixture)? eventually, all probes should be in c but now we rely on perl 5's config kid51: can we switch up to the config tests? they're too resource-intensive. i think you're checking for the same thing multiple times I wasn't referring to the reliance on P5 config. What I meant was: I can take responsibility for the soundness of the Perl 5 code in the config steps, but I don't have the understanding of what should be probed for, nor I can I write the C test.in files. What do you mean 'switch up to' switch the conversation over to Well, I welcome that conversation, but I haven't had any breakfast yet. It's after noon ET. So are yuou going to be around later? sometime later, yes k enjoy % kid51 is now known as kid51_afk % Senaka has joined #parrot r26942 | jonathan++ | trunk: : [rakudo] Refactor the scoped_declarator action somewhat, fixing 'has $.foo' in the process. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26942 % japhb has joined #parrot I'm thinking of using git-svn to work on Parrot, but I'm new to it ... any git-svn users on this morning? what could cause parrot/blib/lib/libparrot.so: undefined reference to `data_types' ?? japhb: I use it. r26943 | fperrad++ | trunk: : [uuid] : - add a minimalist uuid library : - and tests diff: http://www.parrotvm.org/svn/parrot/revision?rev=26943 r26944 | fperrad++ | trunk: : [Lua] : - add uuid library : - and tests diff: http://www.parrotvm.org/svn/parrot/revision?rev=26944 % Senaka has left Senaka!~senaka@124.43.200.33 % chromatic has joined #parrot Tene: sorry for delay, just when I thought I had a few minutes, I get pulled away. Anyway, is Sam Vilain's tutorial at http://utsl.gen.nz/talks/git-svn/intro.html still "correct" in the sense that the advice there is reasonably accurate now that a year has passed? And is cloning from repo.or.cz still the best choice? % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net japhb: I just used the -r argument to git-svn fetch to avoid fetching all of the history. git-svn init https://url/ ; git-svn fetch -r 26944 oslt Of course, if you're nto committing directly from git-svn, it won't make much difference. There's some delay going through repo.or.cz, as I understand. chromatic: You note that "We have a dynamic system such that we can add and remove parents as well", but actually once a class is instantiated that's not true any more. You have to clone it to then be able to make changes, but then it's a different class. I'm not sure that restriction will last in the face of Perl 6 or Perl 5 though. I thought Perl 6 classes had these semantics? Perl 5, I agree with though. I don't remember exactly what P6 specifies there. But even then, we could build some kind of cache and invalidate it/rebuild it if needed. Yeah, I've been fiddling with how to do that. % kid51_afk has left kid51_afk!~jkeen@pool-71-247-58-244.nycmny.east.verizon.net % Senaka has joined #parrot chromatic:ping : ping Howdy. Could we generate an array of invokable objects for each vtable entry and instantiaton time? That is, the array index matches the index we'd use into the VTABLE. And it tells us what to invoke, right away. chromatic: C++ build can be patched w/o any prob Excellent, Senaka. When I say instantiation time, I mean the first instantiation of the class. but, at the end I get /blib/lib/libparrot.so: undefined reference to `data_types' I don't exactly follow. so this is some linking issue i guess Senaka, include/parrot/datatypes.h Essentially, I mean we just pre-compute what things we call for each v-table method. yep so y not in C but in C++ line 126? Is there a warning? On the condition that we re-compute it if the class hierarchy changes. Pre-computing isn't difficult. I think we can flatten everything into the vtable_overrides slot when we instantiate things. Invalidation is a little trickier. Well, if we flatten all into vtable_overrides then introspection on that maybe becomes fun. :-) As you can't tell exactly what was overridden by that specific class. chromatic "extern C" is required I guess will add those to headers and try