Camelia, the Perl 6 bug

IRC log for #parrot, 2010-01-23

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 kid51 In the one_make branch, I'm looking at tools/build/h2inc.pl
00:00 kid51 ... because 'make' now invokes it before tools/build/pmc2c.pl.
00:00 kid51 I have some specific questions about the code.   Are you the go-to guy for this?
00:01 darbelo Not really, but I can try.
00:01 kid51 okay.
00:01 kid51 Inside sub parse_file(), at line 143, I see:  $cur and die "Missing '&end_gen' in $in_file\n";
00:02 kid51 ... which I read as 'die if $cur has a true value'
00:02 kid51 But, given that $cur is declared at line 133 and not assigned to in the intervening 10 lines, I don't see how $cur can ever be a true value at that point.
00:02 mikehh_ joined #parrot
00:03 kid51 Does that seem correct?
00:03 patspam joined #parrot
00:04 kid51 Oh wait, I suppose it could be assigned to in one of the other if-else stanzas.
00:04 kid51 In any event, I thought that as I was going through this file, I could write documentation for the subroutines.
00:04 chromatic Quick, everyone!  Drop everything!  We have to get on TIOBE now!  http://use.perl.org/comments​.pl?sid=44429&cid=71563
00:08 darbelo Wait, his argument is "It sucked in 2004, therefore it sucks now"?
00:08 particle joined #parrot
00:09 chromatic His argument is "It doesn't run Python.  I mean, okay, maybe it does, but it doesn't run Python 2.  And also, it's not very popular.  Therefore, you suck."
00:11 chromatic Okay, more charitably.
00:11 chromatic "You suck for claiming to support all dynamic languages."
00:15 riffraff joined #parrot
00:15 darbelo We support lua, and sizable subsets of perl 6, ruby and tcl. Along with smaller subsets of other languages. Are those not dynamic enough?
00:15 kid51 plobsing:  Getting some warnings t/steps/auto/libjit-01.t at line 57
00:16 kid51 attempting to diagnose
00:17 chromatic darbelo, I get the impression Ben wants something different from what we want, which is fine until FUD starts flying.
00:18 darbelo Maybe it's becouse I wasn't here in '04 or something, but I don't really get what is he wants. Other than python 2...
00:19 chromatic That's because he keeps moving the goal posts.
00:22 bacek joined #parrot
00:22 bacek Morning, good morning
00:22 darbelo Good tomorrow morning, bacek
00:22 plobsing kid51: thanks for catching that. I can reproduce the problem. it appears the test is not setting the 'osname' and/or 'cc' configuration values
00:22 tetragon joined #parrot
00:23 bacek darbelo, aloha! Tomorrow looks nice, shiny and warm :)
00:23 LaVolta joined #parrot
00:24 darbelo Good. I'm getting tired of this damm rain.
00:25 GeJ Good morning everyone.
00:26 particle joined #parrot
00:26 dalek parrot: r43538 | jkeenan++ | branches/libjit_framebuilder​2/t/steps/auto/frames-01.t:
00:26 dalek parrot: Correct the number of tests specified in plan.
00:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43538/
00:27 kid51 plobsing:  Yes, I'm trying to figure out why.  It wasn't doing that in trunk.
00:27 * kid51 ponders line 54 of ./config/auto/libjit.pm
00:28 darbelo kid51: Sorry I left you hanging. The $cur you mention is in a while loop.
00:29 plobsing kid51: that finds the link options for libjit in a platform independant way IIRC
00:29 kid51 lemme think this thru:
00:29 kid51 If we do not provide the 'without-libjit' option to Configure.pl, we hit the 'else' at line 54 of config/auto/libjit.pm.
00:31 kid51 I would think that we would know both 'osname' and 'cc' at that point.
00:31 kid51 After all, we're now running these tests *after* Configure.pl, so we should have no problem getting those values.
00:32 kid51 OTOH, this is a brand-new configuration step.
00:33 mikehh_ joined #parrot
00:42 cotto_working chromatic, I'd question whether it's worth responding any further (if you haven't given up already)
00:44 chromatic Yeah, I'm done.
00:45 tewk_ I was entertained :)
00:48 ash_ plobsing: libjit_framebuilder2 passes all the make fulltests
00:48 plobsing ash_: thanks!
00:48 ash_ sorry, was away from my computer
00:57 kid51 plobsing:  When I do 'svn st' after running Configure.pl, I'm getting two files with '?' status.
00:57 chromatic Hey jsut_, quick question!  If Parrot can't run Perl 6, what did pmichaud release the 25th version of today?
00:58 kid51 src/frame_builder_libjit.h and src/frame_builder_libjit.c
00:58 pmichaud Parrot runs Rakudo just fine.
00:58 kid51 We have to tell 'svn st' that these are generated files.
00:58 patspam joined #parrot
00:58 kid51 I'm trying to remember how to do that.
00:59 chromatic How can that be, pmichaud?  Ben Tilly says Rakudo doesn't exist!
00:59 kid51 I think that's setting an svn:ignore
01:00 pmichaud I have no clue who Ben Tilly is.  So he must not exist either.  :-)
01:02 chromatic That's a good summary of the logic, yes.
01:04 cotto_working problem solved
01:04 cotto_working now back to coding
01:04 chromatic Or the ball game....
01:11 ash_ joined #parrot
01:12 ash__ joined #parrot
01:15 dalek parrot: r43539 | jkeenan++ | branches/libjit_framebuilder2 (2 files):
01:15 dalek parrot: 1. Set an 'svn:ignore' for src/frame_builder_libjit.h and
01:15 dalek parrot: src/frame_builder_libjit.c.
01:15 dalek parrot: 2. To avoid an uninitialized value warning in t/steps/auto/libjit-01.t,
01:15 dalek parrot: provide a dummy value for 'osname'.  (This would normally be determined in the
01:15 dalek parrot: immediately preceding config step, auto::arch.)
01:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43539/
01:16 cotto_working kid51, what are your thoughts on nuking the pmc2c tests?
01:17 kid51 I don't agree.
01:18 kid51 Note that, contrary to what you said in email, they are not run as part of 'make fulltest'.
01:18 kid51 Only as part of 'perl Configure.pl --test' or '--test=build' or make buildtools_tests
01:18 cotto_working my mistake
01:18 kid51 I began to look at them this morning, and then resumed when I got back from work this evening.
01:19 kid51 But helping plobsing out with libjit_framebuilder2 seemed more immediate.
01:19 * kid51 runs smolders on libjit branch on Darwin/PPC and Linux/i386
01:20 * kid51 hopes Smolder site is working ok
01:21 kid51 cotto_working:  I'll figure out something for those tests.  Are you familiar with tools/build/h2inc.pl ?
01:21 cotto_working I hacked on part of it.
01:21 kid51 So, is that what creates PCCMETHODBITS.pm (or some name like that)?
01:21 cotto_working yes
01:22 kid51 And tell me if I understand this:  That's one of the things that previous would have been created by Configure.pl -- whereas now it's created by 'make'.
01:22 cotto_working correct
01:24 kid51 Okay, then the major part of the reason for the tests' failure is that previously they were being run just *after* creation of BITS but now -- assuming they're run "between" Configure and make (which has always been the case) -- they're being run *before* creation of BITS.
01:24 cotto_working exactly
01:24 kid51 Okay.
01:25 cotto_working So making sure they're run after make is fine, but less work than deleting them.
01:25 kid51 I'll look into figuring out how to fake, ... er, simulate the missing prerequisites.
01:25 cotto_working s/less/more/
01:25 kid51 True:  but if you delete them, you delete my first 6 months of work on the Parrot project ;-)
01:25 cotto_working And now we arrive at the heart of the matter.
01:26 kid51 And, in fact, the tests for tools/build/pmc2c.pl was the first assignment Jerry gave me.
01:26 kid51 Were you around then?
01:27 cotto_working probably not.  When was that?
01:27 kid51 Nov 2006 thru approx Apr 2007
01:27 cotto_working ISTR that I joined around Jan 2008.
01:28 kid51 Before then, pmc2c.pl, ops2c.pl and ops2pm.pl were all long Perl 5 scripts, very difficult to make sense of, with little or no encapsulation of subroutines.
01:28 cotto_working As hairy as the code is now, I definitely appreciate the encapsulation.
01:28 chromatic Another option is to make those tests less fragile.
01:28 kid51 So the tests were essential to refactoring them and making them (slightly more) maintainable.
01:29 cotto_working chromatic, that'd be ideal.
01:29 cotto_working I'd be glad to help do that.
01:29 chromatic The tests as they are right now are too fragile.  They don't help much.
01:29 kid51 Actually, I'm surprised they weren't *more* fragile than they have proven to be.
01:30 kid51 They survived a major refactoring underneath them by tewk a couple of years back with little damage.
01:30 cotto_working black box testing of the pmc2c code would be great
01:30 cotto_working and ops2c et. al.
01:30 kid51 What's happened in this branch is the first breakage in > 1 year.
01:30 chromatic I'm not sure that's possible though.
01:30 chromatic They've broken more often than that, kid51.
01:30 chromatic When allison and I worked on PMC attributes they gave us fits.
01:31 cotto_working They're not quite *that* resilient.
01:31 dalek parrot: r43540 | plobsing++ | branches/libjit_framebuild​er2/config/auto/frames.pm:
01:31 dalek parrot: undefine has_exec_protect explicitly. fixes failing t/steps/auto/frames.t when libjit is installed
01:31 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43540/
01:31 kid51 Really?  I would have expected you to toss fireballs my way when that happened ;-)
01:31 chromatic I almost deleted them then.
01:32 davidfetter joined #parrot
01:32 bit-man joined #parrot
01:34 kid51 plobsing:  libjit_framebuilder2 branch: r43539:  Linux/i386:  make test:  PASS with one TODO pass in t/pmc/eval.t
01:35 bit-man_ joined #parrot
01:35 chromatic I appreciate that they helped refactor the generators, but those tests didn't help us make changes.
01:35 chromatic They were just in the way.
01:35 bit-man_ left #parrot
01:41 cotto_working kid51, if you want to start turning those tests into blackbox tests, it'll help the move to nqp-based code manglers.  Otherwise, the tests will eventually have to go.
01:41 kid51 plobsing:  Same results on Darwin/PPC at same revision
01:42 kid51 cotto_working:  Describe what you mean here by blackbox tests.  Also, nqp-based code manglers.
01:42 plobsing sweet. with that, i think I have all the testing I need to merge.
01:43 cotto_working nqp-based code manglers: the nqp-based versions of pmc2c, ops2c and friends
01:44 cotto_working blackbox test: test of functionality without any knowledge of they system's internals
01:44 kid51 Well, if you could write up specifications for those tests, perhaps that would give me an idea of how better to revise the current tests
01:45 kid51 After all, when I started, there were no specifications for any of those scripts.
01:46 kid51 Most of their documentation I wrote in the process of refactoring them.
01:46 chromatic I don't think you *can* write black box tests for them.
01:46 kid51 And I viewed it as my job to maintain their then current functioning exactly as it was.
01:46 cotto_working At this point the specification is "what they do now".
01:46 cotto_working chromatic, what precludes that?
01:47 chromatic You have two separate desires.
01:47 chromatic 1) To write regexes to demonstrate that the transformation is appropriate
01:48 chromatic 2) To write regexes loose enough that minor changes in formatting that have nothing to do with appropriateness don't cause spurious failures
01:48 chromatic It's possible to do so.
01:48 chromatic But then you have to *maintain* those complex, fragile regular expressions.
01:49 chromatic You have to *modify* those complex, fragile regular expressions when you change the transformations in substantive ways.
01:49 cotto_working If only we had superior tools for dealing with large chunks of text that matched a certain grammar.
01:49 chromatic It doesn't matter what tool you use for doing this matching.  It's always a bad idea.
01:50 chromatic We already have a perfectly valid unambiguous way of detecting when the transformation results in invalid code that a C compiler will rightly reject.
01:51 chromatic Devel::Cover won't catch that.
01:51 chromatic So what?
01:51 purl So are we not flattening returns?
01:51 chromatic The tests are only there to make our lives easier.
01:51 cotto_working agreed
01:51 chromatic If our lives get more difficult because we're trying to appease Devel::Cover, we're doing something very wrong.
01:52 cotto_working also agreed
01:52 chromatic We don't run the "Does it have spurious whitespace at the ends of lines?" test in coretest for a reason.
01:52 chromatic That reason is "Spurious whitespace almost NEVER matters."
01:52 chromatic I want to know if when I change something in Pmc2c that PMCs continue to build and work appropriately.
01:52 chromatic We already test that.
01:52 chromatic We have to test that.
01:52 chromatic I don't care if the whitespace changes.
01:52 chromatic The pmc2c tests care.
01:52 chromatic That's useless information.
01:53 chromatic I care if the PMCs fail to build.
01:53 chromatic We already detect that.  We have to detect that.
01:53 chromatic I care if the semantics of the PMCs have changed.
01:53 chromatic We already detect that.  We have to test that anyway.
01:53 chromatic pmc2c can't tell me any of that.
01:53 chromatic What's the point again?>
01:54 cotto_working So you're saying that beyond tests of internal code, the only test we need is "does the normal test suite pass"?
01:54 chromatic No, not as a general rule.
01:54 cotto_working specifically in pmc2c
01:54 cotto_working 's case
01:54 chromatic Yes.
01:55 chromatic I don't believe it's possible to write maintainable test cases that avoid false negatives and provide useful positives that are any easier to debug than what we have elsewhere.
01:55 chromatic Someone could surprise me, and I'm fine with that, but I don't think it's worth the effort.
01:56 cotto_working I think that message about bacek's sync froze Outlook.  I'll have to congratulate him.
01:56 cotto_working nm.  It's back.
02:00 cotto_working kid51_at_dinner, if you want to move the tests that's fine, but it looks like their days are numbered.
02:00 chromatic Broke my mail filter too.
02:02 cotto_working There's nothing like a 5MB diff to start the day out right.
02:03 cotto_working bacee++
02:03 cotto_working bacek++
02:04 dalek parrot: r43541 | bacek++ | branches/orderedhash_revamp (1198 files):
02:05 dalek parrot: Merge branch 'master' into orderedhash_revamp_local
02:05 dalek parrot: Conflicts:
02:05 dalek parrot: src/pmc/orderedhash.pmc
02:05 dalek parrot: src/pmc/orderedhashiterator.pmc
02:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43541/
02:05 dalek parrot: r43542 | bacek++ | branches/orderedhash_revamp/src/pmc_freeze.c:
02:05 dalek parrot: thawfinish PMCs in reverse order. We have to fully construct younger PMC before use them in older.
02:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43542/
02:05 dalek parrot: r43543 | bacek++ | branches/orderedhash_revamp/t/native_pbc (4 files):
02:05 dalek parrot: Rebuild native pbcs
02:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43543/
02:05 dalek parrot: r43544 | bacek++ | branches/orderedhash_revam​p/src/pmc/orderedhash.pmc:
02:05 dalek parrot: Remove redundant OrderedHash.destroy
02:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43544/
02:05 dalek parrot: r43545 | bacek++ | branches/orderedhash_revam​p/src/pmc/orderedhash.pmc:
02:05 dalek parrot: Fix OrderedHash thaw/freez
02:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43545/
02:05 cotto_working here we go
02:12 bacek :)
02:13 bacek It was syncing of 6 month old branch
02:13 cotto_working Happy Deprection Day!
02:14 bacek unmanagedstruct poking into OrderedHash guts too deeply...
02:14 payload joined #parrot
02:14 bacek I'll fix it tonight.
02:14 bacek Anyway, beach time!
02:15 cotto_working My only consolation for it being summer in Australia is that the winter here thinks that it's spring.
02:17 plobsing bacek: wrt thawfinish, how do reconcile younger vs older pmc ordering with circular structures?
02:29 Coke jsut?
02:40 dukeleto 'ello
02:40 Coke anyone using compilers/ncigen?
02:40 dukeleto not I
02:47 dalek tapir: fdcd0d0 | dukeleto++ | CREDITS:
02:47 dalek tapir: Merge remote branch 'bob/master'
02:47 dalek tapir: review: http://github.com/leto/tapir/commit/fd​cd0d0c03905f0b14f3b65b35faccee112f13d2
02:47 dalek tapir: 1748f23 | dukeleto++ | t/harness.pir:
02:47 dalek tapir: Found the Bug in our Hunt
02:47 dalek tapir: There was a bug where the final tally of failed tests was incorrect,
02:47 dalek tapir: because only 1 failing test was counted per file, instead of the number
02:47 dalek tapir: of tests that actually failed in that file. There are no tests to change
02:47 dalek tapir: because the harness code that prints results is not tested. This sucks,
02:47 dalek tapir: and if you don't like it, patches welcome!
02:47 dalek tapir: review: http://github.com/leto/tapir/commit/17​48f234b6e76746446d613aa3b29c16f8389e75
02:51 dukeleto bubaflub++
03:04 dalek TT #1409 closed by jkeenan++: Copyedit + Fixes to submissions.pod
03:05 kid51 Smolder is back to the way it was a couple of weeks ago:  Uploading reports, but reporting back to the submitter that there was a timeout.
03:06 kid51 I've submitted 3 smolders so far this evening, and every one of them has been reported as having timed out
03:08 kid51 And  a 4th just now.
03:08 cotto lta
03:08 dukeleto kid51: smolder seems inconsistently stable, to say the least
03:08 dukeleto i ran my own until i found out it has horrible memory leaks and has to continually be restarted
03:09 kid51 dukeleto:  Yes I think mpeters has reported the same thing.
03:16 dukeleto kid51: yes, he wrote it ;)
03:19 jsut joined #parrot
03:43 dalek parrot: r43546 | jkeenan++ | trunk (78 files):
03:43 dalek parrot: Merge no_running_make_test branch into trunk.  Eliminates unused and apparently superfluous t/harness option as per �http://trac.parrot.org/parrot/ticket/1412.
03:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43546/
03:43 dalek parrot: r43547 | jkeenan++ | branches/no_running_make_test:
03:43 dalek parrot: Branch has been merged into trunk and is no longer needed at HEAD.
03:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43547/
03:43 dalek parrot: r43548 | jkeenan++ | tags/no_running_make_test-43473:
03:43 dalek parrot: Branch to which tag corresponded has been merged into trunk; tag is no longer needed.
03:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43548/
03:43 dalek parrot: r43549 | jkeenan++ | branches/one_make/tools/build/h2inc.pl:
03:43 dalek parrot: Add some barebones documentation of subroutines.
03:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43549/
03:50 theory joined #parrot
04:29 smash_ joined #parrot
04:35 cotto kid51, thanks
04:50 dalek parrot: r43550 | jkeenan++ | branches/one_make (7 files):
04:50 dalek parrot: Some prerequisites for successful operation of buildtools_tests are no longer
04:50 dalek parrot: met upon completion of Configure.pl.  Make them dependent on 'make corevm'
04:50 dalek parrot: instead.  Eliminate one test file; eliminate some tests in another file; TODO
04:50 dalek parrot: one test.
04:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43550/
05:01 dalek TT #1382 closed by jkeenan++: auto::alignptrs:   Eliminate this config step
05:07 plobsing is gc re-entrant?
05:09 plobsing more importantly, even if it is, does it make sense for that to happen?
05:13 jsut_ joined #parrot
05:17 dukeleto plobsing: i got nothin'
05:17 * dukeleto is finally hacking on tapir again
05:39 particle1 joined #parrot
06:39 dukeleto particle: what are you hacking on these days?
06:45 diakopter joined #parrot
06:45 diakopter chromatic: typo in title of http://use.perl.org/~chromatic/journal/40123
07:24 fperrad joined #parrot
07:36 cognominal joined #parrot
07:48 chromatic Thanks, diakopter.
07:49 chromatic plobsing, re-entrant how?
08:37 wagle joined #parrot
08:46 eternaleye joined #parrot
08:53 mikehh joined #parrot
09:16 cotto checkdepends needs love
09:20 cotto and I need sleep
09:36 bacek hooray!
09:36 bacek orderedhash_revamp passing tests on my box
09:42 dalek parrot: r43551 | bacek++ | branches/orderedhash_revamp (2 files):
09:42 dalek parrot: Remove last traces of support compound keys in OrderedHash
09:42 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43551/
09:42 dalek parrot: r43552 | bacek++ | branches/orderedhash_revamp/src/pmc (2 files):
09:42 dalek parrot: Implement OrderedHash.get_pmc and use it in UnManagedStruct.
09:42 dalek parrot: UnManagedStruct needs some love to decouple it from OrderedHash
09:42 dalek parrot: implementation.
09:42 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43552/
09:50 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#31850), fulltest) at r43550 - Ubuntu 9.10 amd64 (gcc with --optimize)
09:58 dalek parrot: r43553 | darbelo++ | branches/one_make/tools/dev/checkdepend.pl:
09:58 dalek parrot: Rename a variable to avoid a warning.
09:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43553/
10:03 cognominal joined #parrot
10:24 bacek mikehh, ping. Can you test orderedhash_revamp branch please?
10:25 mikehh bacek: in progress
10:25 bacek mikehh, thanks!
10:38 mikehh basek: make corevm/make coretest, make test PASS
10:40 mikehh bacek: regenerated MANIFEST.skip, codetest failures - mostly svn properties, fixing
10:40 bacek mikehh, ok, thanks.
10:46 dalek parrot: r43554 | mikehh++ | branches/orderedhash_revamp/MANIFEST.SKIP:
10:46 dalek parrot: regenerate MANIFEST.SKIP
10:46 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43554/
11:02 dalek parrot: r43555 | mikehh++ | branches/orderedhash_revam​p/src/pmc/orderedhash.pmc:
11:02 dalek parrot: fix codetest failure - linelength
11:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43555/
11:09 darbelo bacek: orderedhash_revamp passes make test on OpenBSD i386 r43554
11:10 bacek darbelo, good!
11:13 soc joined #parrot
11:13 soc good morning everyone!
11:14 darbelo mornin'
11:14 soc a few hours ago i was wondering what is exactly necessary to have an implementation of a programming language ...
11:14 soc maybe someone can tell me if i my thoughts on that are correct:
11:15 soc basically parrot claims to support java byte code, but that means we need a compiler to transform our language to java bytecode first, right?
11:16 darbelo Nope. We have our own bytecode.
11:16 soc darbelo: yes, i know....
11:16 darbelo There was a JVM bytecode translator at some point, but I don't think it's being maintained.
11:17 soc my thinking of "supports java byte code" wa more in the line of "can transform java bytecode to parrot byte code"
11:17 soc ah ok ...
11:17 soc so basically to implement a language, one needs:
11:18 darbelo parrot, an idea and a irc window open on this channel ;)
11:18 soc - a specification
11:18 soc - some execution enviroment which in the end results in commands send to the processor
11:18 soc - (and basically a library if you want to do something usefull with it)
11:19 dalek parrot: r43556 | mikehh++ | branches/orderedhash_revamp/compilers/data_json (3 files):
11:19 soc but now i wonder if it is somehow possible to somehow write the libraries so that they work on every execution enviroment
11:19 dalek parrot: set svn properties
11:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43556/
11:19 dalek parrot: r43557 | mikehh++ | branches/orderedhash_revamp/config (6 files):
11:19 dalek parrot: set svn properties
11:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43557/
11:19 dalek parrot: r43558 | mikehh++ | branches/orderedhash_revamp/docs (7 files):
11:19 dalek parrot: set svn properties
11:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43558/
11:19 soc basically you can either write the library in the programming language, but then there is no way to bootstrap a new enviroment
11:19 soc or you write bytecode, but then it is not portable anymore, assuming that not every execution enviroment uses the same bytecode spec
11:21 soc any comments?
11:21 purl any comments are appreciated
11:21 soc purl: to what? :-)
11:21 purl soc: huh?
11:22 soc two people, same idea? :-D
11:24 darbelo soc: There's two 'bootstapped' languages targetting parrot with different approaches. nqp-rx and winxed.
11:25 Coke soc; PBC generated on one platform should be runnable anywhere.
11:26 soc that's interesting!
11:26 soc generally speaking targets more the dynamic side of the programming language, right?
11:26 bit-man_ joined #parrot
11:27 soc (maybe not in the bytecode, but in the features the parrot vm supports?)
11:27 darbelo PBC is our name for bytecode.
11:28 riffraff joined #parrot
11:28 soc Coke: but that means there is a bytecode spec somewhere riht?
11:28 soc right^
11:28 darbelo Basically you run nqp in one platform and 'compile' nqp to pbc tha can be run on all platforms.
11:29 soc darbelo: wouldn't that work with every language, where the compiler is implemented in pbc?
11:30 darbelo The compiler for nqp is written in nqp. much like gcc is written in c.
11:31 soc darbelo: but nqp is executed as pbc, right?
11:31 darbelo Yes, you have to keep a 'precompiled' instance laying about for bootstrapping.
11:31 soc ah ok
11:31 soc that solved my question ...
11:32 soc programming languages are tricky :-)
11:32 darbelo The alternative (what winxed does) is to have a second (subset) compiler written in another language.
11:33 soc if someone wants to have a language, independent of different bytecode repesentations and vms and architectures ... the spec gets more and more abstract
11:33 darbelo winxed ships a 'stage 0' bootstrap compiler written in c++, which is used to compile the 'stage 1' compiler, written in winxed.
11:33 soc i wonder if someone has even done that to this day
11:34 darbelo I'm not sure I understand your question, but I think that perl 6 is doing what you mention.
11:35 soc i tink that would require a copiler writtenin that language, which supports the creation of different bytecodes ...
11:35 dalek parrot: r43559 | mikehh++ | branches/orderedhash_revamp/tools/dev (6 files):
11:35 dalek parrot: set svn properties
11:35 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43559/
11:35 dalek parrot: r43560 | mikehh++ | branches/orderedhash_revamp/examples (16 files):
11:35 dalek parrot: set svn properties
11:35 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43560/
11:35 soc but bootstrapping becomes hard then ...
11:36 soc darbelo: perl 6 is a language spec, and rakudo is a compiler which uses parrot for that language right?
11:37 soc perl6 can be implemented without using parrot or a specific byte code representation?
11:37 soc or is there a perl 6 byte code spec?
11:37 darbelo yes, the first prototype was attempted in haskell IIRC
11:38 darbelo http://en.wikipedia.org/wiki/Pugs
11:38 barney joined #parrot
11:38 mikehh bacek: still a whole bunch of svn properties to set - will work on it soon - got to go out for a bit - bbl
11:39 bacek mikehh, I think you can safely ignore svn props.
11:39 bacek git-svn merge will not preserve them anyway
11:39 bacek afaiu
11:40 darbelo soc: The perl 6 desingn is also codified in a test suite.
11:41 Coke soc; there are, IIRC, about 4 different implementations of perl6 right now, in varying degrees of activity. parrot is only one of them.
11:43 darbelo The test suite approach basically lets you say "Running program X should produce output Y" and you give the implementors complete freedom to achieve the translation as they see fit.
11:48 soc ah, interesting, thanks!
11:48 soc Coke: mhh, is parrot an implementation of perl6?
11:49 soc i thought parrot is considered to be just an independnet vm, where a perl6 compiler (rakudo) exists
11:49 darbelo Not as such. Parrot is a vm for dynamic languages.
11:49 soc what makes it hard to support static languages?
11:49 darbelo Rakudo is a perl 6 implementation that targets parrot.
11:49 soc or basically, where are the differences of vms targeting dynamic/static languages?
11:51 soc the only difference i could think of is groovy's metaprogramming
11:51 dalek parrot: r43561 | barney++ | trunk/README:
11:51 dalek parrot: Removed reference to 'make install-dev' in README.
11:51 dalek parrot: Point to parrot-users as the entry level mailing list.
11:51 dalek parrot: Removed POD markup.
11:51 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43561/
11:51 soc basically either the compiler or the vm has to do the type inference/checking, etc.
11:52 soc if the compiler does it, it is called static, if the vm does it, it is called dynamic?
11:52 darbelo Mostly, yeah.
11:58 soc basically we could have a language which could be checked for type soundness at compiletime AND have metaprogramming abilities and easy reflection things, if people would implement all the intelligence in the compiler AND the vm?
11:59 soc but nobody does that because it is insanely complex, right?
11:59 darbelo and would probably be horribly slow too.
11:59 soc and 99,999999999% of the population would have it's problems to get either ones right ...
11:59 soc darbelo: why is that?
12:00 soc i could imagine that it would use static type checking as a default and only use the vms abilities if they are needed ...
12:01 darbelo The vm's abilities for doing stuff at runtime still have a cost. For starters they prevent a whole set of optimizations that vms for static languages can get away with.
12:01 soc basically it could considered to be a vm that supports recompilation while running :-)
12:04 soc basically a compiler which adds additional runtime information after every execution step, and generates new bytecode ...
12:05 soc ... and replaces the old bytecode by the new one while running it on the vm ...
12:06 dalek tracwiki: v122 | barney++ | Languages
12:06 dalek tracwiki: Clarified the two demo languages
12:06 dalek tracwiki: http://trac.parrot.org/parrot/wiki/L​anguages?version=122&action=diff
12:07 darbelo soc: Are you familiar with trace-based jits?
12:07 soc the link to pir on http://www.parrot.org/dev/examples/pasm is broken ...
12:07 soc darbelo: no, not really
12:07 soc why do you ask?
12:08 darbelo It's a technique for 'specializing' code on the fly to speed up dynamic languages.
12:08 soc ah, ok i'll look that up
12:09 darbelo Gimmie a sec, I have a link to a paper somewhere.
12:09 payload joined #parrot
12:10 soc i'm reading a bit about type inference, System F and Hindley-Milner at the moment ...
12:11 darbelo http://people.mozilla.com/~dma​ndelin/tracemonkey-pldi-09.pdf
12:12 soc ah ok, tracemonkey, i heard of it
12:12 darbelo It's pretty javascript-specific, but can serve as a decen introduction to the ideas.
12:12 soc at the moment i'm trying to get my bachelor degree ... attendence at he courses is mandatory, but it is just absolutely boring ...
12:13 soc so i'm looking elsewhere about things to learn ...
12:13 soc ok, thanks, i'll look into it
12:15 soc i decided to look into type systems for my first year, so i hope i don't fall asleep when the person in the front is talking about how you represent signed numbers in 8 bit :-)
12:17 darbelo Integers are no fun in that respect. The cool representations use arctangets and agles. That's where the fun is.
12:18 darbelo But then, I'm in electronics engineering, we're trained to care about the cost of every bit ;)
12:19 soc :-)
12:19 soc ^^
12:19 soc yeah, i'm just highly annoyed of that irrelevant and trivial bs we are doing at class
12:20 soc it would be much more effective to tell people to stay at home and read wikipedia articles on the basics
12:21 soc and _not_ wasting 4 weeks in absolute triviality
12:26 Infinoid soc: I've fixed the links on the pasm examples page, thanks
12:26 darbelo Heh. One of my teachers last year decided that teaching us CORDIC algorithms on a whiteboard would be too boring, so he handed us a paper on the subject and pretty much told us to look it up on wikipedia if we didn't get it ;)
12:26 soc Infinoid: npl, glad i could help ...
12:27 soc darbelo: that's cool :-)
12:27 soc mandatory attendance is bulls***, most of the time ...
12:46 bit-man left #parrot
12:59 joeri joined #parrot
13:24 clinton joined #parrot
13:25 darbelo Coke: ping
13:26 cghene joined #parrot
13:30 kid51 joined #parrot
13:42 bit-man joined #parrot
13:44 dalek parrot: r43562 | darbelo++ | branches/one_make/compilers/nqp (2 files):
13:44 dalek parrot: Manually expand a variable and remove a redundant dependency to please checkdepend.pl
13:44 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43562/
14:01 payload joined #parrot
14:04 soc left #parrot
14:06 cognominal joined #parrot
14:12 cconstantine joined #parrot
14:20 bit-man joined #parrot
14:26 bit-man joined #parrot
14:50 dalek pynie: r91 | allisonrandal++ | trunk/ (2 files):
14:50 dalek pynie: Adding Plumage module files for Pynie, thanks to Fran�ois Perrad.
14:50 dalek pynie: review: http://code.google.com/p/pynie/source/detail?r=91
14:55 dalek pynie: r92 | allisonrandal++ | trunk/setup.pir:
14:55 dalek pynie: Updating version in setup PIR file too.
14:55 dalek pynie: review: http://code.google.com/p/pynie/source/detail?r=92
15:05 ilbot2 joined #parrot
15:05 Topic for #parrotis now Parrot 2.0.0 "Inevitable" released! | http://parrot.org | Priorities: merge tt_389_fix and one_make branches | Roadmap: http://icanhaz.com/parrotroadmap | Latest modified TT's: http://icanhaz.com/parrotbugs
15:05 ttbot joined #parrot
15:05 leto_ joined #parrot
15:05 wagle_ joined #parrot
15:05 FullMetalHarlot joined #parrot
15:05 darbelo_ joined #parrot
15:05 preflex_ joined #parrot
15:05 khisanth_ joined #parrot
15:05 Infinoid joined #parrot
15:05 kgilmer joined #parrot
15:05 Maddingue joined #parrot
15:05 hercynium joined #parrot
15:05 jjore joined #parrot
15:05 clinton joined #parrot
15:05 baest joined #parrot
15:05 GeJ joined #parrot
15:05 joeri joined #parrot
15:05 coke joined #parrot
15:05 * coke ~~
15:06 mj41 joined #parrot
15:06 eternaleye joined #parrot
15:06 payload joined #parrot
15:07 dngor joined #parrot
15:07 pmichaud joined #parrot
15:07 diakopter joined #parrot
15:08 PerlJam joined #parrot
15:08 solarion joined #parrot
15:08 dukeleto joined #parrot
15:08 Psyche^ joined #parrot
15:08 Util joined #parrot
15:08 redbrain joined #parrot
15:08 Coke_ joined #parrot
15:08 cosimo joined #parrot
15:10 * Coke wonders who Coke_ is.
15:10 Coke_ oh.
15:10 Coke_ left #parrot
15:10 slavorg joined #parrot
15:13 Coke darbelo_: pong
15:14 jan joined #parrot
15:15 darbelo_ Coke: Is it just me or is data_json disconnected from the build?
15:16 Coke it's possible nothing depending on it, so it didn't get built
15:17 cognominal joined #parrot
15:17 darbelo_ I added it after $(LIBRARY_DIR)/JSON.pbc in root.in and now it seems to be built, but it still has dep issues.
15:22 Coke (dep issues) - fair enough; it has it's own .mak files, so ..
15:22 jsut_ joined #parrot
15:23 darbelo_ Hmm. I think I got it...
15:23 darbelo_ Let me realclean
15:27 bit-man Hello everybody
15:29 bit-man I've tried to use opendir et al. from Rakudo but found that they aren't implemented in Parrot
15:29 bit-man Am I right ?
15:31 darbelo_ Coke: Yep I got it.
15:31 darbelo_ Incoming!
15:33 bit-man Searching on Parrot code I've found that only opendir is implemented
15:33 bit-man but seems to be for internal parrot use only
15:36 bit-man I have some time to dig on it and try the opendir family implementation for Parrot
15:42 bit-man Anyway I'll the mechanism at How To Submit Something New (http://www.parrotcode.org/docs/submissions.html)
15:42 Coke that's old =-)
15:42 Coke moment.
15:42 bit-man OKI
15:43 Coke http://docs.parrot.org/parrot/late​st/html/docs/submissions.pod.html
15:43 Coke parrotcode is old old old and should die. apologies.
15:44 Psyche^ joined #parrot
15:44 bit-man Coke: thanks !
15:44 bit-man Coke: I'll follow this URL instructins then
15:46 mikehh orderedhash_revamp branch - apart from t/distro/file_metadata.t (svn properties)
15:46 mikehh all other tests PASS - pre/post-config, corevm/coretest, smoke (#31858), fulltest at r43562 - Ubuntu 9.10 amd64 (g++ with --optimize)
15:49 darbelo_ Wait. parrotcode.org is still alive?
15:49 bit-man Sure, it redircts to parrot.org
15:50 darbelo_ Yeah, but the old content is still reachable.
15:50 darbelo_ It shouldn't be. That's stuff is horrybly outdated.
15:50 bit-man Ooops
15:52 eternaleye joined #parrot
15:54 Coke yah. dukeleto is working on it.
15:54 Coke parrotcode?
15:54 Coke parrotcode is probably out of date; use parrot.org instead.
15:54 Coke parrotcode?
15:54 dalek parrot: r43563 | darbelo++ | branches/one_make (2 files):
15:54 dalek parrot: Add data_json to the main makefile and redo the dependencies.
15:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43563/
15:55 Coke no, parrotcode is probably out of date; use parrot.org instead.
15:55 Coke wierd.
15:59 kid51 Coke:  Is it okay if I do some documenting and touchups on tools/build/h2inc.pl?
16:00 payload left #parrot
16:08 payload joined #parrot
16:11 dalek parrot: r43564 | mikehh++ | branches/orderedhash_revamp/c​ompilers/nqp/t/30-subclass.t:
16:11 dalek parrot: set svn properties
16:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43564/
16:11 dalek parrot: r43565 | mikehh++ | branches/orderedhash_revamp/ext/nqp-rx (63 files):
16:11 darbelo_ kid51++ # Willing documenter
16:11 dalek parrot: set svn properties
16:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43565/
16:11 dalek parrot: r43566 | mikehh++ | branches/orderedhash_revamp (48 files):
16:11 dalek parrot: set svn properties
16:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43566/
16:13 darbelo_ Coke: checkdepend says: # Looks like you failed 6 tests of 158.
16:14 darbelo_ After getting that to 0 and fixing/obliterating the pmc2c tests, what's left to do on this branch?
16:14 kid51 h2inc.pl:  At approx line 30 and 34, we have this:      $gen = join "\n", &const_to_perl(@defs);
16:15 kid51 is there any particular reason for using the '&' on those subroutine calls?
16:16 darbelo_ stale raisins?
16:21 Coke kid51: that is copied almost entirely from your config step. =-)
16:21 Coke no. it's not done for any reason. we were aiming for working, nothing else.
16:23 Coke darbelo_: that is probably sufficient to get this branch back.
16:23 Coke (note that checkdepend needs more work and should be failing MORE tests atm. =-)
16:23 kid51 Hmm, I'm surprised I left that '&const_to_perl' in parrot_include.pm.
16:24 kid51 I wouldn't have written it that way myself, so I must have left the original author's code stand.
16:24 Coke so, feel free to make changes.
16:27 eternaleye joined #parrot
16:28 joeri joined #parrot
16:32 diakopter left #parrot
16:43 dalek parrot: r43567 | jkeenan++ | branches/one_make/tools/build/h2inc.pl:
16:43 dalek parrot: Move declaration of read handle inside parse_file(); document change.
16:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43567/
16:46 eternaleye joined #parrot
16:55 silug joined #parrot
17:16 dalek parrot: r43568 | jkeenan++ | branches/one_make/tools/build/h2inc.pl:
17:16 dalek parrot: Re-order subroutine declarations more in the order in which program calls them.
17:16 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43568/
17:17 clinton joined #parrot
17:30 kid51 Coke:  recall the problem I mentioned yesterday concerning 'make' failures after 'make clean' in one_make branch?
17:31 kid51 Is the source of the problem at lines 219-20 of config/gen/makefiles/root.in?
17:31 japhb joined #parrot
17:31 kid51 i.e., the *conditional* inclusion of two opengl-related files?
17:32 dalek parrot: r43569 | jkeenan++ | branches/one_make/tools/build/h2inc.pl:
17:32 dalek parrot: 1. Encapsulate heredoc in print_generated_file().
17:32 dalek parrot: 2. Rename some variables to be more self-documenting.
17:32 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43569/
17:33 kid51 I ask because, during testing of changes to h2inc.pl, I get same make failures after make clean -- necessitating make realclean and perl Configure.pl
17:34 clinton1 joined #parrot
17:44 cotto Coke, what prevents checkdepends from printing a test plan?
17:51 darbelo_ cotto: It does... At the end.
17:53 cotto Right.  I'm asking why it can't figure out how many tests it'll run before it runs them.
17:55 slavorgn joined #parrot
17:55 Whiteknight joined #parrot
18:01 cotto (in one_make)
18:04 dalek parrot: r43570 | jkeenan++ | branches/one_make/tools/build/h2inc.pl:
18:04 dalek parrot: Encapsulate composition of output text in generate_text(); document that new sub.
18:04 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43570/
18:06 * kid51 must get out of house
18:10 cognominal joined #parrot
18:10 cognominal joined #parrot
18:18 theory joined #parrot
18:20 dalek parrot: r43571 | cotto++ | branches/one_make/tools/dev/checkdepend.pl:
18:20 dalek parrot: [checkdepend] move some duplicated code into a sub
18:20 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43571/
18:24 jsut joined #parrot
18:28 cotto hi jsut
18:40 Infinoid (someone may want to op slavorg)
18:43 cotto bacek, ^
18:43 cotto or treed ^
18:43 Infinoid hi cotto :)
18:45 cotto all better
18:45 cotto thanks
18:45 treed NP
18:46 davidfetter joined #parrot
18:49 tetragon joined #parrot
18:54 mikehh joined #parrot
19:14 mikehh orderedhash_revamp branch
19:14 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#31860), fulltest) at r43570 - Ubuntu 9.10 amd64 (g++ with --optimize)
19:20 davidfetter w00t!
19:25 dalek parrot: r43572 | cotto++ | branches/one_make/tools/dev/checkdepend.pl:
19:25 dalek parrot: [checkdepend] tweak a regex to avoid a warning, rename a var
19:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43572/
19:29 cotto Coke, can you do a patch review?
19:30 nopaste "cotto" at 96.26.227.153 pasted "checkdepends simplification" (43 lines) at http://nopaste.snit.ch/19335
19:34 nopaste "cotto" at 96.26.227.153 pasted "checkdepends simplification, v2" (43 lines) at http://nopaste.snit.ch/19336
19:41 payload joined #parrot
19:42 nopaste "cotto" at 96.26.227.153 pasted "checkdepends simplification, v3 (with a plan)" (55 lines) at http://nopaste.snit.ch/19337
19:44 cotto committed
19:46 Coke checking...
19:46 Coke oh.
19:46 Coke bah.
19:46 Coke plan is overrated. :P
19:46 Coke but, ok.
19:47 Coke has anyone duplicated kid51's 'make clean' issue in one_make?
19:56 chromatic joined #parrot
19:56 chromatic http://gcc.gnu.org/wiki/MELT%20tutorial
19:57 dalek parrot: r43573 | cotto++ | branches/one_make/tools/dev/checkdepend.pl:
19:57 dalek parrot: [checkdepend] simplify control flow, only run one test per file, add a plan
19:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43573/
20:40 thetao joined #parrot
20:44 thetao Hi... I'm trying to build Parrot on Ubuntu, and am getting an error "
20:44 thetao "src/runcore/main.c:777: error: ‘Parrot_DynOp_core_cg_2_0_0’ undeclared (first use in this function)" when running make.
20:46 cotto It sounds like you've upaded from svn but have some stale files.  Try running make reconfig && make.
20:48 cconstantine cotto: does 'make reconfig' effectivly do a make realclean && perl Configure ?
20:49 cotto yup
20:50 cotto except that it runs Configure.pl with the same args that were passed to it when the makefile was last generated
20:50 cotto It's a nice shortcut.
20:50 thetao cotto: thank you very much, that helped..
20:51 thetao in that case, the args should be stored somewhere isn't it? where are they?
20:51 cotto thetao, glad to hear it
20:51 cotto in Makefile
20:51 cotto CONFIG_ARGS right near the top
20:51 * cotto is knee-deep in makefiles atm
20:51 cotto and sinking
20:55 cotto headdesk
20:55 cotto nm
21:18 payload1 joined #parrot
21:18 dalek parrot: r43574 | cotto++ | branches/one_make/tools/dev/checkdepend.pl:
21:18 dalek parrot: [checkdepend] make checkdepends capable of spitting out file and line info
21:18 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43574/
21:19 thetao left #parrot
21:46 bit-man left #parrot
22:55 dalek parrot: r43575 | mikehh++ | branches/one_make/tools/dev/checkdepend.pl:
22:55 dalek parrot: fix codetest failures - cuddled else and an XXX at line 106 that perlcritic doesn't like
22:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43575/
23:03 mikehh one_make branch - All tests PASS (pre/post-config, make corevm/make coretest, smoke (#31863), fulltest) at r43575 - Ubuntu 9.10 amd64 (g++ with --optimize)
23:13 kid51 joined #parrot
23:18 patspam joined #parrot
23:27 dalek parrot: r43576 | jkeenan++ | branches/one_make/tools/build/h2inc.pl:
23:27 dalek parrot: Change return value of perform_directive() to array ref, as this is what next function takes as argument.
23:27 dalek parrot: review: http://trac.parrot.org/parrot/changeset/43576/
23:49 mtk joined #parrot
23:50 mtk left #parrot
23:59 purl joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced