% chromatic has left chromatic!~chromatic@sub17-30.member.dsl-only.net % Ademan has joined #parrot r26562 | chromatic++ | trunk: : [PGE] Reordered generated code to bail out of an obviously-failing match before : creating PMCs to store results for successful results. This is a minor : optimization. diff: http://parrotvm.org/svn/parrot/revision/?rev=26562 % uniejo has joined #parrot % iblechbot has joined #parrot % slightlyoff has joined #parrot % askie has left askie!~askie@81.171.100.208 % slightlyoff has left slightlyoff!~slightlyo@204.14.154.209 % askie has joined #parrot % Dave has left Dave!~dave@pool-141-153-244-48.mad.east.verizon.net % kj has joined #parrot % Dave has joined #parrot % skids has left skids!~bri@c-71-233-204-100.hsd1.ma.comcast.net % iblechbot has left iblechbot!~iblechbot@ppp-62-216-204-60.dynamic.mnet-online.de % ruoso has joined #parrot % cognominal has left cognominal!~cognomina@82.67.232.89 % iblechbot has joined #parrot % silug has left silug!~steve@ppp-70-225-69-79.dsl.covlil.ameritech.net % ask has joined #parrot % IllvilJa has left IllvilJa!~jilves@emea-netcache1.oracle.co.uk % mire has joined #parrot % skids has joined #parrot % skids has left skids!bri@140.232.205.194 % skids has joined #parrot % skids has left skids!bri@140.232.205.194 % particl1 has joined #parrot % jrt4 has left jrt4!~bojangles@c-24-18-106-126.hsd1.mn.comcast.net r26563 | kjs++ | trunk: : [nqp] update bootstrap/actions.pm a bit. diff: http://parrotvm.org/svn/parrot/revision/?rev=26563 % teknomunk has left teknomunk!~teknomunk@ubuntubob.residential.okstate.edu % teknomunk has joined #parrot % kid51 has joined #parrot r26564 | kjs++ | trunk: : [nqp] add compiler driver for bootstrap version of nqp.pir : update manifest, which also includes Whatever class for perl6 which wasn't added apparently. diff: http://parrotvm.org/svn/parrot/revision/?rev=26564 % teknomunk has left teknomunk!~teknomunk@ubuntubob.residential.okstate.edu % mire has left mire!~Frodo@37-174-222-85.adsl.verat.net % IllvilJa has joined #parrot % silug has joined #parrot r26565 | kjs++ | trunk: : [nqp] update makefile with a "boot" target, which builds the bootstrap version of nqp. diff: http://parrotvm.org/svn/parrot/revision/?rev=26565 r26566 | kjs++ | trunk: : [nqp] fix paths for .includes in bootstrap compiler driver. diff: http://parrotvm.org/svn/parrot/revision/?rev=26566 % teknomunk has joined #parrot r26567 | kjs++ | trunk: : [nqp][bootstrap] various updates : add an .include for the builtins. : update the TODO: 1 thing has been done. : fix a thing in actions.pm diff: http://parrotvm.org/svn/parrot/revision/?rev=26567 % slightlyoff has joined #parrot % teknomunk has left teknomunk!~teknomunk@ubuntubob.residential.okstate.edu % mire has joined #parrot kid51++ % kid51 has left kid51!~jkeen@toronto-hs-216-138-231-37.s-ip.magma.ca % teknomunk has joined #parrot that's weird. blocktype("sub") in NQP's Actions.pir i thought only "immediate" and "declaration" were allowed. or valid, at least % teknomunk has left teknomunk!~teknomunk@ubuntubob.residential.okstate.edu % teknomunk has joined #parrot r26568 | kjs++ | trunk: : [nqp]bootstrap/actions.pm : fix for-loop diff: http://parrotvm.org/svn/parrot/revision/?rev=26568 woohoo!! npq's bootstrapped version is running pretty nicely :-) Nice work! I think I just compiled Squaak's action file with nqp, implemented in nqp * Coke wonders how this boostrap works. except that it doesn't work yet.. oh well. ... nice timing. oh not sure if it's actually a bootstrap... ehm the NQP actions file, Actions.pir, now has an actions file written in NQP so the code generator of the NQP compiler is written in NQP. ... and how do you run that? with the non-bootstrapped version that's written in pir? it results in a .pbc file in the end so that can be run by parrot yes, but it can't be turtles all the way down. so instead of running parrot nqp.pbc, I now run parrot bootstrap/nqp.pbc which uses the same parser but a different actions file, namely one written in NQP. % slightlyoff has left slightlyoff!~slightlyo@204.14.154.209 * particl1 pats his turtle's shell minor nit... i prefer one [] for all tags in a commit message eg: [nqp bootstrap] over [nqp][bootstrap] ok i'd love to see one nqp actions file as canon, with a script generating the other yeah. I'm a bit confused now. maybe something that uncomments all comments starting with '## ', and comments all lines without /^#/ 'cept blanks, of course and a full regression suite to make sure both behave the same you mean some kind of comment flipper? yep so the .pir file can be used to generate the .pm good idea. I'm not inspecting the generated code of both versions. They're similar, but somehwat different some :viviself stuff seems to be different that's a slippery slope. a test suite that runs pir vs pm would be nice Coke: what time is the call today, edt time? particl1: I do NOT prefer a single [foo bar] over [foo][bar]. Makes it easier to find your tags for foo or bar. I admit I still don't understand how the bootstrap is not running PIR. =-) /\[.*\bfoo\b.*\]/ that regex works for either style Coke: I'm confused myself :-S So, what happens is, the Actions file for the current NQP compiler is reimplemented using NQP Then the style we use doesn't matter, does it? ][ hurts my eyes. ymmv If you open that file, you'll see the NQP equivalent of the cuurrent implementation. What I did was flip the comments, use the NQP version (fix it here and there) and comment the PIR version then that NQP file is compiled by the current NQP compiler so this is like the second stage of the gcc from-scratch compilation process? and after adding a new main file for the new version which loads this NQP-generated PIR actions file i don't know gcc compilation process ... the new nqp is generated you use some other compiler to build gcc from source. (phase 1) you then use that built version of gcc to build gcc from source. kj: "then that NQP file is compiled by the current NQP compiler" -- that's where the pir version is used that's the bootstrap part right so, you build a c compiler using assembly. then using that version, you compile a c compielr written in C, which you compile with the assembly-version we could use nqp to build parrot after miniparrot. wanna try :) eh, parrot is not written in nqp... what do you mean ? :-) instead of using perl 5 ah nice SoC project ;-) can't wait to build nqp later today. i'd do it now, but i need the power for $work Coke: so ... we'll use parrot to compile the c99 compiler and then use *that* to compile parrot? :) okay... i need to profile some mod_perl code. any favorite modules i should look at? ah I see what's wrong, I think. I just forgot a whole action method. woops. make -j test # on perl-5.10.0 is a huge time saver can someone with privs on feather upgrade ack to svn-latest? you could build your own. those with privs include juerd, timtoady, moritz, diakopter... don't know any others or put it in your ~/bin :-) % mire has left mire!~Frodo@37-174-222-85.adsl.verat.net * particl1 tempts fate with make -j install ... I know I could have my own. But thanks. =-) hey, i pinged those involved. that's what counts % rdice has joined #parrot % Theory has joined #parrot anybody seen tewk lately? % Auzon has left Auzon!~ak@far2789.urh.uiuc.edu seen tewk? tewk was last seen on #parrot 5 days and 21 hours ago, saying: But I'd be open to other core hacking ideas that need to get done this summer. Particle doesn't seem to be around right now. [Mar 20 10:06:47 2008] Didn't we have a ticket at one point to eliminate the configure tests from "make test" ? purl, 46+755+96 897 i'm not sure if we had a ticket. we certainly had sentiment. ping coke I can't find coke in the DNS. hey there tewk tewk: 10:32 < particl1> anybody seen tewk lately? I got your email. I've been busy. I'm going to make some changes to the proposal today. I'll ping you when they are ready. excellent. thanks. how's the family? Busy, but fun. Does the jit of nci on x86 work? I saw some minimal code but don't know if it is used, I'm guessing not. Coke: where's a tgz of awk svn-latest ack I mean :) tewk: i'm not sure. what's the best way to check? bulid jitted parrot and test... what? How serious are people about using llvm for parrot jit? diakopter: search for App::Ack on cpan should be 1.78 I'll test the nci jit and see if it works at all, I was just seeing if anyone had any first hand knowledge. svn export http://ack.googlecode.com/svn/trunk/ ack that works too Coke: ping Coke: I installed it to /usr/local/bin no wtf? no no no no? ack-standalone GET http://ack.googlecode.com/svn/trunk/ack-standalone > ack ok... /usr/bin/ack -v dies atm. * Coke waits. in my defense, i expected diakopter would build/test/install ack after exporting the repo :) % cognominal has joined #parrot ah Coke: try now? 1;1 root@feather:~# ack --version ack 1.78_01 ack --version -bash: /usr/local/bin/ack: No such file or directory $ which ack /usr/bin/ack heh where do you want it? /usr/local/bin or /usr/bin this means i can't just type "ack". I'm not *running* /usr/local/bin/ack; I'm running "ack", and which ack tells me that is /usr/bin/ack. but /usr/bin/ack seems to work. so, I'm confused. restart the shell? I don't know why it's still looking for the (removed) /usr/bin/local/ack I mean /usr/local/bin/ack ah. "hash -r" what the (*&#$ is the point of 'which' if the shell is going to lie about it? =-) diakopter++ unless you had an alias set up or something % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net I'd also like to recommend: ACK_PAGER='less -R -m -N' wuzzat do? less? i heard less was more. :) ok... man says it allows color output, includes line numbers, and prompts with % through file Just try it. GO ON MAN JUST TRY IT * particl1 wonders if his win32 port of less supports that course, it won't support -R % uniejo has left uniejo!~uniejo@langebro.adapt.dk * Coke tries it and fails to like it. waaaaah is there ack --pager? yes of course. Indubitably. how do you override the pager setting? The way that logically makes sense. The least surprising way. --nopager We've discussed this in the past: your logic and my logic don't seem to mesh. =-) % peeps[work] has joined #parrot Running this through a pager for some searches seems to make it take forever to display output (either with ACK_PAGER or even |cat). meh. yeah, I'm thinking it needs to unbuffer output. I need a test that verfiies that ack --help shows all the commands possible. so I can't forget to leave off --pager next time. Like I did this time. * Coke wonders if it is unsurprisingly logical that ack --v really means ack -v -> #ack PLEASE KEEP THE CHANNELS PURE please don't shout. ALSO DON'T SHOUT % Coke is now known as Coke_offline Infinoid: to answer your question, that became and is still a casualty of priorities and attention. is your work in progress available somewhere? I might take it and run with it, it's an interesting project :) * particl1 goes offline to look for lunch & (nqp "bootstrap") I really prefer that we use the term "self-hosting" as opposed to "bootstrap" here "bootstrap" implies that we're throwing away the PIR translation... and I'm not sure I'm ready to do that yet in particular, even though the nqp-version of actions may be semantically equivalent to the pir version, it also may have a lot of overhead that is best avoided until we get some optimizations in place otoh, if there's a strong sentiment that PIR is such a horrible evil that we need to be bootstrapping everything to excise it, then we can talk % particl1 has left particl1!~JGay@32.136.214.47 I am unaware of such a sentiment. -> oh, I know it exists lots of people seem to be in a rush to move things off of PIR asap crazy people. crazy people are the ones who flew planes into buildings or destructors I have the feeling that once enough perl6 will be implemented, self-hosting will be a big win feature wise cognominal: sure ... but we're not there yet :) cognominal: why? pm: because we can do more with less and it's all perl 6 (IMHO) pm: btw, welcome back : ) also, it is a good thing that people see "real" code written in Perl 6 * PerlJam rubs the vanishing cream off of his nose ... :-) pmichaud, parrotwise (versus pct), what is still missing to support perl6? when we say "self-hosting"... what part/feature of self-hosting is the big win? does "self-hosting" mean that _all_ of Rakudo is written in Perl 6? Infinoid: when I said I was working on it, I meant working on it *in my mind*! ;) ooo * Infinoid does an svn checkout of diakopter's mind cognominal: I can't think of any major features off the top of my head that are missing. concurrency/threading are probably bubbling up, but we're a ways from needing that I did update the botnix instance on feather to the latest svn right, I'll figure out botnix and see what I can come up with, thanks :) there are still some issues with lexical handling that need to be fleshed out (or worked around) pmichaud, how hard it is to get pct hll namespace aware? it's going to be a bit of work need to refactor protoobject handling for now it's just easier to work in the parrot hll namespace I tried naively to make it stick .HLL "perl6" "" in the beginning of the pir code but I get strange messages right, adding .HLL "perl6" means that the PAST protoobjects can't be located because they're in the parrot hll namespace while the action methods are running in the perl6 hll namespace % Theory has joined #parrot so, we also need to import those protoobjects into the perl6 namespace PCT should probably provide a helper method to do that there is an export_to described in the namespace ppd I think that export_to is a bit out of date I'm not even sure it's implemented yet part of it if I trust the tests I've also commented in the past that I think those deserve a redesign, since that pdd was created before we had the PMCMETHOD capabilities now that we have PMCMETHODS, we can make a much saner interface (sorry, PCCMETHOD. or something like that) with Perl6 having its onw namespace, the Hash class and the Hash pmc will not collide anymore? they will still collide because class namespaces are separate from the hll namespaces that's another bug that Parrot needs to address % gryphon has joined #parrot but we can work around that by introducing a Perl6Hash class it seems there is long and short names, but I don't understand how it works. I think that's only because we haven't thrown away the class registry yet. the trick to figuring out how Rakudo (and PCT and NQP) works is to remember that they tend to avoid Parrot classes altogether at least for names If we can get PMC class lookups all going via namespaces just the same as we have PIR class ones doing, I guess that problem goes away. instead everything happens via their protoobjects now, I am not running blind in the walls. I am able to see what are the problems. not yet to fix them. so there's nothing preventing Rakudo from having a 'Hash' protoobject, that is an instance of Perl6Hash but appears as 'Hash' in every other respect Though it means if you want a Parrot PMC, like 'Hash', you'd have to make sure you looked in the parrot namespace for it. Which is messier. in Rakudo? No, we'd have a Parrot::Hash protoobject that gives us an instance of the Parrot PMC or otherwise maps correctly to the PMC Hash as opposed to the Perl6 Hash oops, I misread jonathan's comment. You're correct, jonathan having all PMC class lookups via namespaces make things like $P0 = new 'Integer' a lot more tricky Right. which is also why the protoobject approach makes a _lot_ of sense :-) okay, pmichaud. And we don't have any way, in the key syntax, to distinguish between lookups from HLL root and real root. Right. But that's where doing things like exporting/importing can give us a win Yup. for example, if we have a way to import the PMC classname into a HLL namespace, then we don't have to worry about looking things up directly in the parrot hll namespace Right. and we can say that $P0 = new 'Integer' always refers to 'Integer' in the HLL, and never to Parrot's Integer (unless it's been mapped that way) That would make a lot of sense. but protoobjects give us much the same capabilities, at the cost of an extra step thus $P0 = get_hll_global 'Integer'; $P0 = $P0.new(); Well, we need protoobjects for Perl 6 stuff anyway. of course, the advantage to the $P0.new() approach is that we can also send initialization information to the object at the same time we create it anyway, I need lunch. bbiaw Yup, got Spanish lesson here too. bbl adios hasta lluegos (or something like that) one ell and no ess % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.or.comcast.net % ruz has left ruz!~cubic@85.112.113.222 % sjansen has joined #parrot % kid51 has joined #parrot % jjore is now known as zz_jjore % zz_jjore is now known as jjore % particl1 has joined #parrot hi from nypl % kj has left kj!~IceChat7@ip565fd420.direct-adsl.nl So what exactly are you up to in Gotham? wife has a conference i'm tagging along for a scenery change Well, I'd arrange an emergency social meeting of ny.pm for you, but as you know, I'm out of the country. too bad i didn't consider organizing an emergency social ny.pm meeting yep, i see you're in the 51st state You could always email dha. When jmcadams was here he got a meeting on one day's notice. Benefit of meeting (besides beer): It would mean someone besides me could advocate for Parrot in NYC. yeah. my nights are already double-booked, though i have two dinners tonight You'll have to hit the gym tomorrow, then. good idea particl1: Good Idea: Whistling while you work. Bad Idea: Whistling while you eat. grr can't get the free wifi to work at the library % Coke_offline is now known as Coke % ruz has joined #parrot % Theory has joined #parrot particl1: I would suggest posting a blog entry on parrotblog regarding SOC % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net advertising? Contempt, rather than celebration, is the proper response to advertising and the system that makes it possible. % Theory has joined #parrot yes, in re: ambs recent email. I can then put a pointer to that up on pc.o % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net % kid51 has left kid51!~jkeen@toronto-hs-216-138-231-37.s-ip.magma.ca yeah, i should blog about it. i'll try to get to it in a few hours particl1: Made a couple of minor changes to SoC application. % spez has joined #parrot tewk: i'll take a look today, thanks! % spez has left #parrot % darbelo has joined #parrot % darbelo has left darbelo!~darbelo@190.3.134.31 % darbelo has joined #parrot pmichaud: regarding my email, I think this heads to a discussion that we need to have before 1.0: "what should be a opcode/runtime library/method/pmc/..." there's a lot of code scattered that could use a global organizational pass. do we need to have "concatenate" vtable entries, e.g. instead of just having that be a method? only aggregates get shift/unshift and possibly only list-like aggregates this should be implemented by pmroles particl1: eventually, sure. now everyone has them. "everyone has them" - what? every pmc has several unshift_ VTABLE variants. grep unshift src/vtable.tbl sorry, ack. =-) ah. i'd better check the vtable pdd that's pdd17, right? yep, consolidated into pdd17 r26569 | pmichaud++ | trunk: : [past-pm]: : * Remove deprecated past-pm from the "compilers" section of Parrot docs. diff: http://parrotvm.org/svn/parrot/revision/?rev=26569 % kid51 has joined #parrot particle ping or particl1 ping * Coke sees he was not fast enough in redirecting that thread back onto RT. pong The problem we're having on feather with the two postconfigure tests -- that's part of a general problem we're having when we try to require Parrot::Revision during testing. At least that's my diagnosis. 'cause when I try to run perl Configure.pl --test on feather for the very first time, I get the hang at t/configure/018-revision.t. this used to Just Work before you refactored to make it more testable i'm not blaming, just noticing But the code wasn't being tested at all then. So it only Just Worked because it wasn't being tickled at all, except during Configure.pl itself. I think the underlying problem is that we've agreed to support 3 different version control clients. And that Parrot::Revision is mandated to work one way before configuration and a different way after. i don't see that as a problem Yes, I know, but it's proven to be a maintenance nightmare. i use three version control clients at $work people are currently using 4 version control clients: svn, svk, git-svn, and git (without git-svn) I fixed some stuff related to git-without-svn last week... seems someone's put up a public git mirror at repo.or.cz if the tests are the only thing tickling the code.... it is indeed difficult to support. however, if someone is able to set up envs to test these, with smokes, then we're getting somewhere I have renounced using svk for parrot weeks ago I use svn Honestly, I think saying "svn is what we support, you can roll your own elsewise" is not a terrible position. in which case most of this support nightmare goes away. s/nightmare/slight issue/ Coke++ any reason why we don't do a check for the existence of $HOME/.svk before running svk? that'd sidestep the process-prompting-for-input issue ... but I know people would scream if we did that. I wouldn't scream :) Infinoid: That seems reasonable, so it'll never work. =-) * Coke 's passport shows up. I use svn... git is really nice for offline work (better than svk, in my opinion), but not worth the hassle of figuring it out just because you have svk installed doesn't mean you're using it. it's a pita, for sure agreed 110% % ruoso has left ruoso!~ruoso@195.23.92.2 I think I know how to fix up the svk stuff. it won't be perfect, but combined with a "use other SCMs at your own risk" blurb somewhere, I think it'll be allright does svk always go into $HOME/.svk ? I can check the svk sources to verify that way I see it, there are 4 cases. 1: svk isn't installed. 2: svk is installed but never used, this is the case where svk hangs. 3: svk is installed and used but doesn't know about the current repo. 4: svk is installed, used, and knows our version, grab the version in this case I'm hoping "used" is as simple as ".svk exists in the current user's home directory" the two main questions are: "am i in a working copy?" and "what vc tool am i using?" right. those are easy to answer for everything except svk particl1: Where 'working copy' is the opposite of working from, say, a release tarball -- correct? isn't there a depotmap somewhere (or whatever it's called) kid51: working copy is somewhere you can perform vc commands so, not tarball or svn export the "DEVELOPING" file doesn't exist in release tarballs, right? how about daily snapshot tarballs? Infinoid: Correct on the release tarballs * kid51 knows nothing about daily snapshot tarballs DEVELOPING is missing from releases only * Infinoid checks DEVELOPING exists in snapshots :( That's a PITA: YA variation to be maintained. it's okay to say "i don't know what revision this is" and set it to zero. I already account for the presence/absence of DEVELOPING in the tests I've written for Parrot::Revision. yes. as long as you use that only to determine whether it's a release tarball vs anything else that's fine disambiguating snapshots from svk checkouts basically requires checking ~/.svk "kid51" at 216.138.231.37 pasted "Parrot::Revision: excerpt handling SVK" (20 lines) at http://nopaste.snit.ch/12577 Um... does the version test check for svn first? if so, why am I failing that and checking svk? % chromatic has joined #parrot I think you're all asking the wrong question. The right question is "Why do we need to know which VCS someone is using?" % barney has joined #parrot some tests, like metadata what is the test testing? so, if i tcan't determine which vcs, it should just fail svn:keywords etc "why do we even have this lever." svn:keywords are checked, I believe by Parrot::Distribution, to determine what should be updated in MANIFEST % Psyche^ has joined #parrot basically, if we can determine that you're a developer, we can run the development tests if -e 'DEVELOPING' NO "why not" i heard "why not" was never sufficient justification. i could be a user that exports HEAD from svn developers don't always have a working copy. then i get DEVELOPING snapshots have a DEVELOPING, but how many people here use snapshot tarballs for development? so why are we running developer tests without being told to? Plus I might not WANT to do developer tests. why don't we, by default, just run feature tests. another goal is to figure out what revision a build was built from (and we need to know which VCS, to determine which command to run for that). All this is worth the faffing about trying to detect the VCS from all the potentially installed VCSes now and forever is active for the current checkout but which won't cause smokes to fail? I'd say it's worth checking the easily checkable cases, at least I'd say it's not, given how much time we've spent trying to get even the easy case right. =-) at the moment, parrot is optimized for developers for very small values of optimized. =-) developers are the common case. :) at some point, probably nearer to 0.99, this will change Okay, let me ask a different question. Do the SVN metadata tests tell us anything interesting when they fail? I don't think running the codingstd tests every day is "optimized for developers". Nor the config tests. nor ... It's certainly not optimized for maintenance developers ;-) It's optimized for developers in the sense that anyone with a commit bit who wants to add a feature more or less can. i'd be very happy not to run the config tests if i'm not modifing config Witness: recent addition of two new config steps without prior discussion. ...and not to run the codingstd/distro/etc tests if i'm not creating a distro % Patterner has left Patterner!~Psyche@e177112133.adsl.alicedsl.de % Psyche^ is now known as Patterner IF we have procedures in place that allow us to clean up the mess every month before release otherwise release is too big a burden hell, i'm planning to release on tax day, while i'm in hawaii (and will have arrived hours beforehand) * chromatic Warnocks himself in the head chromatic: they tell us if our coding standard is being enforced sometimes, that's important not on every commit. When is it important? That's a maintenance issue. yep, maint. so, "for a release" would be an excellent time. Not during the "I'm about to commit something, run make test to make sure I didn't break the build". I mean, if it's so important that we make sure that all files being checked into the repository have the same three SVN properties set, we could enforce it at the one place where we know we're using SVN. ... and we know that no human will ever forget. don't forget the other uses: is having a svn revision number for "./parrot --version" important? if so, when? "kid51" at 216.138.231.37 pasted "lib/Parrot/*.pm files mentioning 'svn'" (19 lines) at http://nopaste.snit.ch/12578 ... and we can always update a REVISION file. ... without human intervention. those pesky humans ... always getting in the way chromatic: that means two commits for every commit Does a server-side pre-commit hook require two commits? when is phone, btw? one hour danke. I figured if you were here, it was soon. :P if it's safe to do pre-commit, it's only one commit i would really like to make the technology work for us this raises the question, though: is having the revision really necessary? The codingstd tests that are currently in 'make test' are those where we already have a high degree of conformity to the standards. Those where we are a long way off (such as the pdd_format.t I added this week) are not in 'make test'. That's a good question. if the only place we really need it is ./parrot --version ... why? why is that necessary. codingstd tests are fine at the moment; it's just the VCS ones that bother me now. ... one thing at a time, sure. =-) make coretest improved my productivity. ditto. what do we need? 'devtest mainttest distrotest fulltest' test and fulltest are sufficient for me. I think we have some of the others. if you want to test something specifically... run the specific test. otherwise you're either making sure you broke no features, or that parrot is ready for a release. particl1: Do you still believe ./parrot --revision must be available? IIRC, several months ago we, um, discussed this. i believe that if we can determine which revision the parrot you're running was built from, it'll make debugging/maintenance easier i don't care how. presumably, in the *wild*, people will not be running an svn-version. but it should Just Work. presumably, if they are developers, they know how to work their VCS and can tell us. but they'll be running from some distro that is associated with an svn revision ... then distro needs to work with upstream. no, they'll be running from some distro that is associated with a release. And I've revealed myself as an idealist. i'm not a p5p, but i occasionally run blead i never get it from a release yes. and when you run bleed, do you typically install it for some user who doesn't know where it came from? particl1: you get a tarball of bleadperl? no, not a tarball presumably, you know where you got that file from, neh? particl1: Do you run a bleadperl that someone else installed? bleadperl has a file called .patch which contains only the revision number of the patchlevel. it's an extract from the repo no metadata no metadata is, like, recoreded, the "is this a copy/rename" algorithm is run at merge-time no possibliity to update just re-extract it doesn't matter. particl1: it mattered enough for you to mention it, so it's something worth looking into. IMHO It seems that if we added something to the rsync/tarballs to have the version number they were extracted from, that would address your issue. and then the *repo* wouldn't need to deal with any of this. sure it would solve a lot of problems if "this is parrot, 0.6.0-devel" is sufficient for us to debug, drop revision entirely s/solve/avoid/ is even better. =-) *if the concensus is that * PerlJam does not concense :) we're doing monthly releases. if someone says 'I have 0.6.0-devel' and we're on 0.6.1, step one is going to be 'get a new copy' +1 to that "eyes to the future" or whatever chip said. # chip++ seen Robrt? Robrt was last seen on #p5p 1 day and 3 hours ago, saying: I'll go shower. [Mar 25 09:12:43 2008] humanity thanks you, Robrt. I suppose clueful developers who really want to use something other than SVN can create a hidden file on their own that *one* thing can check. which reminds me, any bugs that are reported on anything older than 0.5.0 should probably be closed out of RT with a 'please retest this against a current version and reopen this ticket if necessary' ... but I'm not going to tell them that. this is why i stopped worrying and learned to love the bomb. Let's talk conclusions then. 1. software sucks. +1 1 * Coke thought he was the suck-monger. ... that didn't sound quite so bad in my mind. :) conclusion: it would be nice to have a plan to deal with bug reports from odd versions of parrot... but this doesn't necessarily involve tracking the svn revision with each build. If can avoid dealing with tracking the parrot revision, we can rip out some code and tests. If we no longer need to determine a revision number once we invoke 'make', then lib/Parrot/Revision.pm can be simplified. Can we live with that? +1 1 purl, you don't get to vote chromatic: what? purl, be nixon. Coke: huh? particl1: Can you live with that? YOW I'm shaving!! I'M SHAVING!! purl, I don't believe we've been formally introduced. jjuran: i'm not following you... purl, purl? rumour has it i am going alone. or almost an anagram of Donaudampfschiffahrtskapitaensmuetzenkordel or a perv or an auto-triage bot or a she or so stupid or a smartass or the sixth beatle. or http://www.infobot.org or dumb status Since Fri Mar 21 21:28:03 2008, there have been 774 modifications and 550 questions. I have been awake for 4 days, 15 hours, 4 minutes, 47 seconds this session, and currently reference 692194 factoids. Addressing is in optional mode. * Coke AIGHS as allison's blog resets again. kid51: yes. Thanks (sigh of relief). Then that means that the remaining ugly code in Parrot::Revision is SVK-related -- correct? I don't think we need that ugly code, either ... or that our problems are SVK-related. if we don't care about the revision, then we don't care about svk actually, i'm not sure that follows. hrmm. as I see it, the only thing we do care about is whether to tack on the -devel suffix, and existence of DEVELOPING is sufficient for that Well, as I understand it, we *do* care about revision for "developers", ie. when you're working in a working copy. maintenance developers must use svn to clean up metadata kid51: no we don't. because thee developer knows what version they are using. regardless of their VCS. but *developers* already know what vcs theyr'e using and can get it from there if you're in a working copy, you are responsible for using the VCS tool of your choice we're dropping revision info entirely from the distro. parrot doesn't care :) .. from the build. ah. yes, distro but not repo, right. Okay, so who's going to be in charge of which aspects of this? * Coke volunteers, as he loves ripping out code. if anything remains to be done by this weekend, I'll have some time for this I will open a ticket with a patch, allowing for some discussion in case we missed something. (which I hope we did not.) Coke: Can you open an RT which states what needs to be done and subdivides tasks? Question anticipated and answered. Coke: can you open a ticket asking yourself to open a ticket asking you to subdivide tasks? tene: fix lolcode. :P Coke: fix my laptop. :P ... what's your geo? At this time do we plan to change any of the Parrot::Distribution, etc., code which uses svn properties to determine what should be in MANIFEST? (If answer is No, then our job is more focused. If Yes, someone needs to examine those modules.) SF atm, Houston next week not yet. we were just talking about versions. ... svn properties to determine what should be in manifest? hurm? Yes. Currently, you need to do svn add and svn propset to get make_manifest_and_skip.pl to recognize a newly added file. no, just an svn add. SFAIK. Well, we can check on that. Let's burn this bridge first. svn add is enough for gen_manifest_and_skip.pl k But there are useful SVN properties that should be checked IMHO That's a secondary discussion. Yes, and the t/codingstd/*.t tests do that. (Mostly because I'm trying to figure out what a failure in the SVN properties tell us about Parrot.) svn:eol-style for example chromatic: those tests are not feature driven. That's a completely different type of test. altogether. there are some io files in examples/ iirc that need eol-style=LF * particl1 heads to the hotel to get set up for sixperl & the feature test would fail if those eol-styles are not set properly. This is a secondary test. Much like the config tests. The question is whether a (codingstd,config,distro) test saves more work than it causes If we're not going to be looking at the revision number during or after 'make', then we can probably eliminate tools/build/revision_c.pl -- which in turn would permit revisiting lib/Parrot/Revision/Utils.pm, which in turn would permit looking at lib/Parrot/Revision.pm, which would imply changes in pre- and postconfiguration tests. I agree that those IO tests need specific linefeeds. Does that seem reasonable? (Though it would not address the SVK-related problems.) kid51, +1 % particl1 has left particl1!~JGay@32.142.192.187 Okay, so how about this for a plan: Coke posts RT. Infinoid looks at SVK-related problems. kid51 looks at other Parrot::Revision-related problems, working backwards from revision_c.pl. thought the plan was to toss all the svk-checking code out the window... * Coke thought so too. if that's what you're asking me to do, I am quite happy to :) let me post what I think is the summary of our discussion and we'll go from there. okay, but I'll let you (Infinoid and Coke) do the tossing. ... and take the heat ;-) what heat? no svk == no problem :) Infinoid++ we're not saying you can't use svk to hack on parrot. we're just avoiding caring. Everybody wins. and if someone is using a svn->mercurial gateway and doesn't understand it, it's their fault! :) % kid51 is now known as kid51_afk phone % particl1 has joined #parrot ... someone is EATING their phone. I do that sometimes % particl1 has left particl1!~JGay@32.136.251.15 not anymore though, I have a treo too big % kid51_afk has left kid51_afk!~jkeen@toronto-hs-216-138-231-37.s-ip.magma.ca ... you could not hear me? % lidden has left lidden!~stefan@puce.campus.luth.se Nope. % cosimo_ has joined #parrot % ruoso has joined #parrot -> offline % cosimo_ has left #parrot * barney frooze Firefox, by running Javascript HQ9+ oi, ruoso :) davidfetter, hi david... I've been thinking about you this days... :P... having to work with MySQL ;) ;) heh i can help you fix that problem :) heh it seems that the project will be moved to oracle... (the customer only seems to know this two options) for a very small fraction of oracle's costs for the first year, i can get it to postgres :) heh... that's one thing I don't like in working for big companies... it's very hard to bend their rules doesn't matter how stupid they are * davidfetter specializes in helping big companies with new things :) % gryphon has left gryphon!~gryphon@dsl-209-221-185-54.zipcon.net % barney has left barney!~bernhard@dslb-084-058-178-087.pools.arcor-ip.net % slightlyoff has joined #parrot % particl1 has joined #parrot % Ademan has left Ademan!~dan@c-69-181-114-208.hsd1.ca.comcast.net % iblechbot has left iblechbot!~iblechbot@ppp-62-216-199-79.dynamic.mnet-online.de % particl1 has left particl1!~JGay@32.142.150.70 % rdice has left rdice!~richard_d@CPE0014bfafbbd5-CM0011e6ecf48a.cpe.net.cable.rogers.com % buchet has joined #parrot % wknight8111 has joined #parrot % Andy has left Andy!~AndyL@host3130.follett.com % spez has joined #parrot % buchet has left buchet!~christoph@pD9E30B46.dip.t-dialin.net % mire has joined #parrot % mire has left mire!~Frodo@37-174-222-85.adsl.verat.net % ewilhelm has joined #parrot % Limbic_Region has joined #parrot Coke: what sort of specifics? darbelo: have you read parts of https://svn.perl.org/parrot/trunk/languages/c99/ ? % peeps[work] has left peeps[work]!~peepsalot@bwext.kpimdp.com Yes, but it looks like some of the files there are unused. I'm guessing it's part of its recent conversion to PCT. I think that's right. % sjansen has left sjansen!~sjansen@hq-nat2.gurulabs.com chromatic: darbelo is here for SoC Right now I'm trying to find out why the parser chokes on "main()" and "main( void )" Welcome. Heh, not likely around here you won't be. Thanks. purl: bad purl Bad ewilhelm! silly bot. *giggle* it looks like they fail for different reasons. So, as you've found, the c99 grammar isn't quite right. Getting it to parse C99 properly is one step. Getting it to compile C99 is, I think, a lofty dream goal that one person probably isn't going to do in one summer. There was talk about using it to replace our simplistic c-parsing codingstd tests, for example. Parsing -- especially with regard to macros -- is probably doable in a summer. (e.g. have a set of actions that, when it found a bad construct, emitted a warning) Once we have a C99 parse tree, we can perform actions against that. chromatic: I would agree. I would start with parsing (and tests to back it up.) A stretch goal would be to replace some of the codingstd tests, I think. If I had the spare time to make XPath work on ASTs, we could use that. ooooh. I know. I'm now imaginging using jquery to manipulate asts. =-) I don't know about jquery, but something. can it be stated in a timeline which has running code before the halfway point? We could express error patterns and potential optimization patterns in terms of XPath expressions. but this is off track for darbelo. In terms of running code, I'm sure we could make milestones of C99 features. Tests could correspond to milestones. * ewilhelm nudges darbelo to join in the planning I like the tests == milestones idea. excellent. I need to go spend time with family: feel free to ping chromatic while he's around, and particle if he shows up, and feel free to email me. coke? i heard coke was pondering converting tcl to use it, but have some concerns. purl, me? hmmm... Coke is pondering converting tcl to use it, but have some concerns. no, coke is will@coleda.com okay, Coke. * Coke pats purl onna head. Idea: make the preprocessor a separate grammar/compiler. I could see dividing C99 support into lists of related features. * ewilhelm recalls http://en.wikipedia.org/wiki/Sparse maybe a good source of tests? More tests for c99 compilers are listed in http://pcc.ludd.ltu.se/standards_and_regression_testing/ some of that could be adapted, and maybe categorized by feature. last two days I have had to make realclean before building - is this expected? Coke invalidated the bytecode once. % cotto_work has left cotto_work!~cotto@tide533.microsoft.com % cotto_work has joined #parrot hrm, ok That means you have to regenerate all PBC files. yes, I know but that doesn't explain why I had to do it yesterday when I got home from work and then again today *shrug* Good question. % ratmice has joined #parrot Yeah, it is. I'm stumped. next question - I recently saw something on the list about questioning if parrot built on cygwin out of the box. For a very long time, I built daily on cygwin to ensure it continued to work. Is Cygwin one of the tinder boxes? If not, should I be building daily again? * ewilhelm gives easy answer: yes! :-D * Limbic_Region assumes ewilhelm is answering the first question (tindered) and doesn't go fix his cygwin install is there some example of using nmi with parrot classes? nmi? somebody said nmi was non-maskable interupt somebody can't spell interrupt; maybe someone from the w3c? Limbic_Region: where do the tinder boxes appear? sorry nci ratmice: What are you looking to do? heh, I just checked my cygwin's parrot - 0.6.0-devel ewilhelm - I don't know. I do remember it being discussed and people offering boxes this should be a fun svn up there must be a corrupt path somewhere jonathan: well i was pondering hooking into the objc runtime if you look at this info -n 'Type encoding' -f gcc it seems fairly easy to build parrot nci strings at runtime from the various type encodings I don't seem to have that info page. hmm may require installation of the objc compiler? Limbic_Region: I just tried to build out-of-the-box on cygwin a little while ago and it failed because it doesn't find libcrypto (apparently) http://gcc.gnu.org/onlinedocs/gcc/Type-encoding.html (out of the svn box that is) PerlJam - well, I figured out what my problem was - PATH conflict PerlJam, that shouldn't be the case; maybe the detection of crypto libraries is wrong. PerlJam - last built Parrot on Cygwin back on November 24th PerlJam - svn up'ing now % spez has left spez!~spez@209.233.192.198 ewilhelm - google suggests http://tinderbox.perl.org/tinderbox/showbuilds.cgi?tree=parrot Limbic_Region's url is at http://xrl.us/bia7m yeah, I get 503 there though * PerlJam tries a cygwin build again. * ewilhelm looks around for the parrot sysadmin Hmm. From Configure.pl ... Generating C headers...value for 'revision' in config/gen/config_h/config_h.in is undef at lib/Parrot/Configure/Compiler.pm line 393, <$in> line 19. http://smoke.parrotcode.org/smoke/ http://smoke.parrotcode.org/smoke/ is, like, too short looks like 99.5% ok is as good as it gets That's not awful. What fails, math stuff? it's par for the course on win32 right? 2.2 nines! % dalek has left dalek!dalek@feather.perl6.nl % dalek has joined #parrot * Limbic_Region doesn't run the test suite under Win32/MinGW very often pg.t The Postgres bindings? actually - unless requested, I only run it monthly (before release) that's enough to keep us honest. PerlJam - the problem is local to you, working fine for me PerlJam - parrot is making now cygwin does build for me if on this new machine if I preset the PATH. It *never* worked on my last windows machine. I need to respond to that while near the machine that I tested it on. * PerlJam does a fresh checkout ok, build failed Limbic_Region: complaining about MD5 and SHA stuff? % slightlyoff has left slightlyoff!~slightlyo@204.14.154.209 yes MD2, MD4, MD5, and SHA does "make parrot" succeed? just a sec nothing to be done for parrot Okay, so it's just the dynpmcs that fail to build. looks like it is something later on in the build that is failing That's a plus. purl paste i heard paste was (see: nopaste) or like glue but a little safer to sniff. or http://nopaste.snit.ch:8001/ or http://scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or 2 girls, 1 paste That means the configuration check for the crypto libs is somehow wrong on Cygwin. "Limbic_Region" at 68.49.236.220 pasted "make output on Win32/Cygwin" (987 lines) at http://nopaste.snit.ch/12579 well, that's what PerlJam was indicating but I didn't see anything out of the ordinary from Configure.pl Generating CPU specific stuff.........................................done. Verifying that the compiler supports function pointer casts............yes. Determining whether your compiler supports computed goto...............yes. Determining if your compiler supports inline...........................yes. Determining what allocator to use.....................................done. Determining if your C library supports memalign........................yes. Determining some signal stuff.........................................done. Determining whether there is socklen_t.................................yes. Determining if your C library has setenv / unsetenv...................both. Determining if your platform supports AIO...............................no. shit sorry Determining if your platform supports crypto...................yes, 0.9.8g. that's what I meant to paste * Limbic_Region wanders off feeling like a major idiot you can stay here and do that! =-) hey, that's all I ever do here Where are the crypto libs installed? my ssl libs are in /usr/lib There's no -L/usr/lib in the link line. What if you add it and try to link the dynpmc group manually? presumably they /usr/lib is in the LIB_PATH but I will try that gcc -o digest_group.dll lib-digest_group.o md2.o md4.o md5.o ripemd160.o sha.o sha1.o -s -L/usr/local/lib -L/usr/lib -shared -L/home/Gat/parrot/blib/lib -lparrot % spez has joined #parrot well, after cd'ing to src/dynpmc it fails with exact same errors with -L/usr/lib does it need -s or -shared in front of -L/usr/lib ? I will try all variations no difference -lcrypt? just a sec by any chance do you have mingw tools in your cygwin path? ewilhelm - no chromatic - no change Interesting. Mine link against libcrypt and libcrypto. And libcurses. I thought I removed the link against curses on Linux. heh, that fixed it -lcrypto % Andy has joined #parrot now let me remove things piece by piece and see if it was a combination of things or just the -lcrypto yeah, actually I was right about the -L/usr/lib (not necessary - part of the default path) and the -s / -shared becomes superfolous and the -lcrypt is also not necessary just adding -lcrypto makes it work next time I mention something about a fresh checkout, you guys remind me that it takes *for* *ever* aptitude install ccache PerlJam - it could be worse, ICU could still be part of the checkout L~R, can you file a bug? Francois should be able to figure out how to fix things knowing what's missing. I can just send an email to parrotbug@ ... right? yes interestingly enough, after getting past that one failure by hand and going back and doing make again it finishes without a problem and the final link has -lcrypto Strange. But true. % ruoso has left ruoso!~ruoso@a83-132-209-29.cpe.netcabo.pt when I ran Configure.pl just now, before it died I did notice that it found openssl (which should trigger -lcrypto) PerlJam: at least you aren't doing it on my connection! chromatic - email sent Thanks. no problem so - it seems to me that despite not having built it since Nov 24th not a lot is needed to make it work :D * jonathan is realizing that sangria is stronger than cerveza... ticket #52150 I've got a first-cut implementation of subset ... of ... where ... though. In as r26570. Have fun. Sleep time. r26570 | jonathan++ | trunk: : [rakudo] First-cut implementation of subset ... of ... where ...; likely has issues, but it's better than nothing. diff: http://parrotvm.org/svn/parrot/revision/?rev=26570 the file_metadata test appears to be spuriously using Parrot::Revision % Theory has joined #parrot % rdice has joined #parrot % Theory has left Theory!~Theory@207.109.95.2 % davidfetter has left davidfetter!~davidfett@start.fetter.org * Coke finally cuts that email. % davidfetter has joined #parrot % jeffreykegler has joined #parrot http://majek4.blogspot.com/2008/03/useful-c-extensions-gcc-specific.html chromatic's url is at http://xrl.us/bibap likely() and unlikely() look interesting. * Coke tries to find more low hanging deprecation. when removing something deprecated, should I feel guilty about not expunging it from the book? Very. Ok. but I think I'm still going to skip that step, as the book needs a major rewrite and this is more involved than simply removing something from a list. File a bug against the book perhaps? hurm. if I did that for everything in the book, we'd have another 400 tickets. If I file *one* ticket it's too vague. I dunno then. I'll forget too. I suppose I could just file a single ticket regarding the one thing I'm removing. ... Or I could add an "errata" section. there's a book? Yup. Somewhat out of date, but we got a copy of the print book "parrot and perl6 essentials" given to us by o'reilly. (it's checked into the repo. docs/book) chromatic: there is more classoffset goodness in runtime/parrot/library/SDL/*.pir Really? Oh, I fixed examples/sdl/ I'll work on it. Danke. chromatic: does adding docs/book/appendix.pod with ERRATA seem reasonable? It smacks of having a TODO list checked into the repo, but as it's docs, that seems less offensive to me. Works for me. * Coke tests a build sans classoffset, expecting no issues... % ewilhelm has left #parrot % Limbic_Region has left Limbic_Region!~Limbic_Re@c-68-49-236-220.hsd1.md.comcast.net % cotto_home has left cotto_home!~cotto@75-92-237-130.sea.clearwire-dns.net * Coke gets a hang in stm/runtime for the first time in ages. % chromatic is now known as chromatic_away % Andy has left Andy!~AndyL@host3130.follett.com % Khisanth has left Khisanth!~Khisanth@151.205.119.118 % Khisanth has joined #parrot % kid51 has joined #parrot r26571 | coke++ | trunk: : [deprecated] : -remove classoffset opcode : -inc. from docs and other locations, except: : -in the book, where it's tied to examples. There, add an ERRATA that we need to % svnbotl has left svnbotl!diakopter@feather.perl6.nl % svnbotl has joined #parrot % Andy has joined #parrot % rdice has left rdice!~richarddi@CPE001217e365c7-CM00159a01d44c.cpe.net.cable.rogers.com % jeffreykegler has left jeffreykegler!~jeffreyke@cpe-69-204-164-42.nycap.res.rr.com % wknight8111 is now known as wknight-away % wknight-away has left wknight-away!~nobody@c-71-230-33-251.hsd1.pa.comcast.net % cotto_home has joined #parrot % kid51 has left kid51!~jkeen@toronto-hs-216-138-231-37.s-ip.magma.ca % AndyA has left AndyA!~andy@82.152.157.85 % AndyA has joined #parrot r26574 | chromatic++ | trunk: : [SDL] Refactored away deprecated classoffset attribute access. diff: http://parrotvm.org/svn/parrot/revision/?rev=26574 % jrockway has left jrockway!~jrockway@dsl092-134-178.chi1.dsl.speakeasy.net % jrockway has joined #parrot % chromatic_away has left chromatic_away!~chromatic@sub17-30.member.dsl-only.net % jrt4 has joined #parrot % Andy has left Andy!~Andy@64.81.227.163 % Ademan has joined #parrot