Camelia, the Perl 6 bug

IRC log for #parrot, 2010-05-27

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 whiteknight oh shit, typo
00:00 whiteknight should be _n, not _s
00:00 cotto_work just checking that it wasn't anything worse
00:00 whiteknight if we had git, I could amend that but....
00:02 dalek parrot: r47034 | whiteknight++ | branches/ns_func_cleanup (3 files):
00:02 dalek parrot: Parrot_store_global_s -> Parrot_ns_store_global. This function is heavily underused (only used twice, in the same file where it's defined) so we might eventually want to make it go away
00:02 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47034/
00:14 whiteknight Is there anybody around here who can provide a test for the intended behavior in TT #1223?
00:14 tcurtis pmichaud: ping
00:17 whiteknight I know around here I should probably be using perl, but for these kinds of jobs sed -i is my friend
00:19 dalek parrot: r47035 | whiteknight++ | branches/ns_func_cleanup/DEPRECATED.pod:
00:19 dalek parrot: add another function to TT #1660
00:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47035/
00:19 dalek parrot: r47036 | whiteknight++ | branches/ns_func_cleanup (5 files):
00:19 dalek parrot: Parrot_find_global_op -> Parrot_ns_find_global_from_op
00:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47036/
00:22 bacek_at_work whiteknight, you can use Parrot_find_global_s now (I think)
00:22 bacek_at_work #443
00:23 whiteknight bacek_at_work: nobody uses it. I don't want to rename it, I want to delete it
00:23 whiteknight MURDER DEATH KILL, john spartan
00:24 darbelo KILL 'EM ALL
00:24 purl i heard KILL 'EM ALL was great
00:26 * darbelo has a totally crazy idea.
00:26 pmichaud tcurtis: pong
00:26 darbelo No. Wait.
00:27 pmichaud cotto_work: ping
00:27 * darbelo realizes it won't work.
00:27 darbelo Dammit.
00:27 tcurtis pmichaud: should PASTs have cycles? http://nopaste.snit.ch/20638
00:27 pmichaud tcurtis: they can, yes.
00:27 pmichaud sometimes an inner operation needs to be able to refer to an outer block
00:28 tcurtis Is that limited to the attributes or can there be cycles in the array part of the nodes?
00:29 pmichaud I can't think of anywhere that there might be cycles in the array part.... but so far PAST hasn't made any declarations to the effect that it's not allowed.
00:29 kid51 joined #parrot
00:30 dalek rakudo: 4293e07 | jonathan++ | src/Perl6/Actions.pm:
00:30 dalek rakudo: Implement auto-currying at compile time of infix, prefix and postfix operators.
00:30 dalek rakudo: Also factors a little code out that we can share/re-use to make the block
00:30 dalek rakudo: construction a little less ugly.
00:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​293e0722d05267accd66fe6ce312bee1f7a3e22
00:30 dalek rakudo: b0ec2da | jonathan++ | src/Perl6/ (2 files):
00:30 dalek rakudo: Give Perl6::Compiler::Signature a nicer constructor, to allow neater code in the
00:30 dalek rakudo: actions etc.
00:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​0ec2dab63ab248aecd88a271a9705cf008af0a1
00:30 dalek rakudo: 06a4af5 | jonathan++ | src/Perl6/Compiler/Parameter.pm:
00:30 dalek rakudo: Give Perl6::Compiler::Parameter a better constructor so we can write cleaner
00:30 dalek rakudo: code in the actions to set up sigs.
00:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​6a4af548182629bc018a92fab5cf987a8ff691f
00:30 dalek rakudo: edb448f | jonathan++ | src/Perl6/Actions.pm:
00:30 dalek rakudo: Use new parameter and signature constructors to do some cleanups.
00:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​db448fc888aca68b6efc9f4ec303b9739bedaf4
00:30 kid51 Any branch need a quick smoke?
00:30 pmichaud with some upcoming changes that I'm about to put in place it's definitely possible that a single node could appear multiple times in the tree (even if it doesn't create a cycle)
00:31 pmichaud (i.e., the container node would choose between two possible subtrees -- the subtrees might have duplicate nodes instead of requiring copies)
00:33 darbelo tcurtis: What if you only copy the nodes you modify? Then you don't have to worry about subtrees (subgraphs?) that you don't touch?
00:33 pmichaud speaking of "copy" -- did the shallow clone for hashes ever get implemented or brought into trunk?
00:34 pmichaud I ran into a place again yesterday where the deep clone semantics of Hash required a significant workaround
00:34 darbelo Is that plobsing's shallow_clone vranch?
00:34 whiteknight I don't know what the deprecation limitations of that branch are
00:34 whiteknight we are probably limited by time
00:35 dalek parrot: r47037 | whiteknight++ | branches/ns_func_cleanup (7 files):
00:35 dalek parrot: Parrot_store_sub_in_namespace -> Parrot_ns_store_sub
00:35 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47037/
00:36 pmichaud anyway, another +1 from me to get rid of the evil deep clone semantic
00:36 pmichaud I have more +1's in storage too for that
00:37 theory joined #parrot
00:39 tcurtis darbelo: that gets tricky with cycles. I was doing that, but my implementation didn't work with cyclical PASTs.
00:39 whiteknight The whole "PMCs can do whatever they want" mentality is fine, until semantics among core PMCs are completely non-standard
00:40 whiteknight Sure the flexibility will always be there, but among core PMCs some things like shallow-clones should have just been standard
00:49 tcurtis Perhaps there should be separate shallow_clone and deep_clone vtables.
00:49 cotto_work pmichaud: pong
00:52 plobsing joined #parrot
00:52 dalek parrot: r47038 | whiteknight++ | branches/ns_func_cleanup (5 files):
00:52 dalek parrot: [namespace] This is going to create problems on mergeback, I can feel the chill running down my spine. Rename src/global.c -> src/namespace.c, and include/parrot/global.h -> include/parrot/namespace.h
00:52 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47038/
00:52 dalek parrot: r47039 | whiteknight++ | branches/ns_func_cleanup/src/namespace.c:
00:52 dalek parrot: remove the flag DEBUG_GLOBAL. It was only used in two places and didn't seem to have a lot of utility. If we need to do serious debugging in this area in the future, we can add a new flag and new diagnostics
00:52 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47039/
00:52 darbelo tcurtis: With the right default vtables, a freeze/thaw cycle can stand in for deep clone, any day.
00:54 cotto_work whiteknight seems to be feeling either brave or foolish
00:55 darbelo Or both...
00:55 plobsing look what you've done now
00:56 darbelo Ah. He'll get over it.
00:56 cotto_work I scared off whiteknight and pmichaud won't return my pongs.
00:56 cotto_work ;)
00:57 abqar joined #parrot
00:57 tcurtis darbelo: ah. That would be slower than a custom deep clone, though.
00:57 plobsing darbelo: I actually implemented about half of a deep clone using those very vtables
00:57 plobsing except without using any intermediary string
00:58 plobsing it's still sitting in a branch somewhere
00:58 plobsing do we actually have a good use for a deep clone? I might be motivated to finish that if we did.
01:05 pmichaud cotto_work: sorry, I got sidetracked in another chan
01:05 cotto_work still alive
01:06 pmichaud it's nothing urgent.  I just wanted to let you know how immensely pleased I am that you and others were able to write ops2c in nqp.
01:06 pmichaud that really makes me feel good about nqp
01:06 cotto_work you can thank bacek for the majority of the work, but I'm immensely happy about it too.
01:07 cotto_work thanks
01:07 cotto_work even more excited about PIRATE
01:10 cotto_work I'm sure patches will be forthcoming soon after nqp supports multis.
01:14 pmichaud that's coming very soon now
01:14 pmichaud I'm at the point where I see multi support as an important feature for nqp
01:14 pmichaud just have to explore the mental design space a bit more
01:15 cotto_work pmichaud, in your cft, could you take a look at LoritoRoadmap and edit or comment on anything that jumps out at you?
01:16 dalek website: tcurtis++ | PAST::Transformer and the Foundation for PAST Optimization
01:16 dalek website: http://www.parrot.org/content/pasttrans​former-and-foundation-past-optimization
01:17 pmichaud cotto_work: I looked at it briefly a week or so ago, and it looked reasonable to me but seemed like we weren't very far along yet
01:17 pmichaud but I'll identify the "jumps out at me" in the next day or so
01:17 cotto_work ok.  I think the reason we're not very far along is that there hasn't been a well-defined plan to follow.
01:18 cotto_work thanks
01:35 * cotto_work goes home
01:35 tetragon joined #parrot
01:36 davidfetter joined #parrot
01:39 diakopter joined #parrot
01:40 diakopter left #parrot
01:40 dalek tracwiki: v7 | cotto++ | LoritoRoadmap
01:40 dalek tracwiki: incoprorate feedback from allison++, other small changes
01:40 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Lo​ritoRoadmap?version=7&action=diff
01:50 cotto ~~
01:54 ash_ joined #parrot
01:55 ash_ ping plobsing
01:55 dalek rakudo: 972ae69 | jonathan++ | docs/ROADMAP:
01:55 dalek rakudo: We've been able to import module symbols into current lexical scope for a while,
01:55 dalek rakudo: and nobody has complained it's epicly broke, so mark it as done.
01:55 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​72ae6922da75e7257a8223b2e362eca9d802702
01:55 dalek rakudo: 982e8e3 | jonathan++ | src/Perl6/Actions.pm:
01:55 dalek rakudo: Fix $obj.Foo::bar in the case that Foo is lexically scoped.
01:55 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​82e8e38aaaff9bf8cb53f393595a7254ac9dae2
01:55 plobsing ash_: pong
01:56 ash_ hey, sorry i am late, I am moving into my new apartment
01:56 ash_ just got done with the last load of stuff
01:56 plobsing it's cool
01:57 dalek parrot: r47040 | tcurtis++ | branches/gsoc_past_optimization (1 files):
01:57 dalek parrot: Move t/library/pastcompare.pir so that make clean doesn't delete it.
01:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47040/
01:57 plobsing so status (from where I stand): you've put it to the list, it has settled without any major objections. I'd say go for it.
01:57 dalek parrot: r47041 | tcurtis++ | branches/gsoc_past_optimization (3 files):
01:57 dalek parrot: Add PAST::Walker::Dynamic.
01:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47041/
01:57 dalek parrot: r47042 | tcurtis++ | branches/gsoc_past_optimizatio​n/t/library/pasttransformer.t:
01:57 dalek parrot: Fix inclusion of pastcompare.pir after its move.
01:57 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47042/
01:58 plobsing one thing that occurred to me that might make your life easier: make the new signatures distinguishable from the old ones so you can tell what's been ported over to the new system easily.
01:58 plobsing eg: by initially prefixing with a marker character
01:58 plobsing which you get rid of later
01:58 ash_ plobsing: i have gotten started with configuration stuff, and some tests for the configuration
01:59 plobsing how far along on that are you?
01:59 ash_ but i had a question about how to mix in the code, i wanted to keep parts of the current NCI system incase people don't have libffi, but I wasn't sure of the best way to mix the two code sets, i'd rather not fill the file with #ifdef 's since that seems harder to maintain
01:59 mj41_ joined #parrot
02:01 ash_ well, in theory, it looks for: 1) "pkg-config libffi", if that fails, it looks for some system dependent headers, like OS X has libffi 2.0.9 installed by default, if it finds the headers it makes a simple test program and compiles it to verify it works properly
02:01 plobsing ash_: keep them separate!
02:01 ash_ s/in theory//
02:02 plobsing be nice, have a flag too
02:03 ash_ http://github.com/ashgti/parrot/blob/​gsoc_nci/config/auto/libffi/test_c.in is the test file, i call puts with libffi, and check it worked
02:04 ash_ that all works fine, my tests aren't great but they do some simple things, like check if you called config with --without-libffi and verify it won't try to configure it
02:04 plobsing a --with-libffi might be nice too to catch cases where autodetection fails
02:04 plobsing maybe
02:05 plobsing although if compiling that file fails, I doubt parrot would find libffi at build time anyways
02:07 ash_ so, configuration stuff seems good, or good enough for now, once i get a bit further I'll probably ask someone with like windows to check that all of this still works there, i don't have a windows computer though
02:08 plobsing alas, parrot has a shortage of windows devs
02:08 tcurtis plobsing: perhaps --with-libffi-libs=/foo/bar/lib/ and --with-libffi-includes=/foo/bar/include/
02:09 ash_ so, if i have 2 files, one the current nci things and one for libffi, do i need a gen step?
02:09 plobsing tcurtis: Actually, if it came to that, I'd prefer environment vars. I dislike config option bloat
02:09 plobsing ash_: it depends. I needed a gen step because I needed to auto-wrap a bunch of functions to be called with libjit
02:09 plobsing you'd likely need this for llvm as well
02:10 plobsing but libffi's model is slightly different. You probably don't need to wrap functions, so I doubt you'll need a gen step
02:11 ash_ alright
02:11 ash_ then how would i get it to select which file at compile time?
02:12 plobsing ash_: makefile ifdefs. check out config/gen/makefiles/root.in
02:12 ash_ ah, okay, thanks
02:13 ash_ ah, i see, thanks
02:13 plobsing you'll probably want to plug some code into global init as well (src/interp/inter_create.c)
02:14 plobsing other than that, I'm pretty sure your code can live on its own
02:16 ash_ kk
02:17 plobsing is there anything else we should discuss?
02:18 ash_ my plan is to get the libffi ball rolling soon, but i have not had much spare time to get as much done as I would like. There is a robotics project I have been working on (since last May) and our competition is next week, i was planning on splitting my time between GSoC and it, but it's been sucking up more time than I would of liked, hopefully i'll be able to manage it better this next week, after the competition i am free of distraction
02:18 ash_ summer (well planned ones)
02:18 ash_ i can't think of any other issues that come to mind
02:19 plobsing ok. meeting adjourned
02:20 plobsing btw, is that robotics project associated with any orginization?
02:21 ash_ my school? umm its the ion robotics lawnmower competition http://www.ion.org/satdiv/alc/ basically you make an autonomous lawnmower
02:24 plobsing cool
02:26 ash_ its pretty fun, the system we are programming it with is called ros, (for robotics operating system, but its not an OS, it runs on linux) my plan after th GSoC is over is to add a library to parrot for the ros core libraries, so you can use it as one of the programming languages, right now it supports C++ and python, with limited support of octive, lisp and java, but i think it would be worth the effort
02:26 ash_ s/octive/octave/
02:27 bubaflub joined #parrot
02:28 * kid51 must sleep
02:28 purl $kid51->sleep(8 * 3600);
02:28 ash_ ros is found at http://www.ros.org/wiki/ if your interested
02:29 ash_ its all open source, under a bsd license
02:30 plobsing thanks. that might come in handy sometime
02:31 ash_ i like robotics, thats one of my pastimes is working with robotics, that and programming in general, anyway, ima try to make some progress with libffi
03:12 GodFather joined #parrot
03:18 cotto plobsing, when are you planning on merging ops_massacre?
03:20 plobsing cotto: tonight if all goes well
03:21 plobsing I'm currently working my way through the a later half of fulltest
03:21 plobsing and I already have a fix for nqp-rx sitting on my github
03:21 cotto what's broken?
03:21 purl well, broken is always relative
03:21 plobsing It uses pir::tell, pir::open, pir::close, etc
03:22 cotto more setting stuff  then?
03:22 cotto nm.  they're dynops in the branch
03:22 plobsing yes, but because we bootstrap with nqp-rx, nqp-rx can't use those dynops
03:22 plobsing they become methods on FileHandle
03:23 plobsing FileHandle.new().open(), FileHandle.tell(), etc
03:23 plobsing It looks cleaner IMHO
03:25 cotto not sure why those shouldn't be core ops, but I don't mind as long as File I/O is possible.
03:27 plobsing cotto: I'm following the ticket to the letter. Also, file I/O fits naturally in OO.
03:29 plobsing urg. hitting the "loading PBCs with different dynop dependencies" issue.
03:30 plobsing guess that bug jumps the queue
03:30 cotto sounds... ouch
03:30 cotto what happens?
03:32 plobsing the dynop gets interpreted as the core op of equivalent number
03:32 plobsing not exactly sure why *that* happens
03:32 plobsing but I knew something bad would happen
03:33 plobsing segfaults ensue as the ops take differing numbers and types of regs
03:33 cotto no surprise there
03:33 cotto plobsing++
03:33 plobsing for breaking things?
03:33 cotto Nah.  you're just finding that they're broken.
03:33 cotto not that you wouldn't get karma for breaking things too
03:38 LoganLK joined #parrot
03:38 cotto I hope there's a good fix for that issue.
03:39 plobsing cotto: I've suspected this to be an issue for a while (ever since I saw ParrotInterpreter.freeze)
03:40 plobsing there is a fix, it just means creating a new  packfile segment for  dynamic library dependencies
03:40 plobsing not sure if I can shoehorn that onto one of the existing packfile segment types
03:41 cotto There's nothing wrong with another segment.
03:43 plobsing I supose it couldn't hurt too much to do it right the $nth time
03:43 cotto I might add one just for kicks and giggles.
03:43 cotto HalibutPackFileSegment //added just for the halibut
03:47 Hunger joined #parrot
03:48 plobsing PickledPepperPackFileSegment
03:50 cotto Are dynpmcs immune?
03:50 plobsing no. they suffer the same issue. but dynpmc numbers are much less likely to be found in PBC than are dynop numbers
03:50 plobsing I intend to fix both at the same time though
03:50 cotto that's what I was thinking
03:51 plobsing it would also make freeze/thaw on dynpmc a little closer to possible
03:51 cotto generic fixup table for dynamic thingies
03:52 plobsing fixup is a good word for it. I was going to call it dyndeps, but that's a little cryptic
03:53 dalek parrot: r47043 | tcurtis++ | branches/gsoc_past_optimization (4 files):
03:53 dalek parrot: Add accessors for PAST::Walker::Dynamic attrs and a test for PAST::Walker::Dynamic.
03:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47043/
03:54 cotto would it be possible to stick that info into the fixup table without causing too much collateral churn?
03:54 plobsing collateral churn?
03:55 cotto messing up other code
03:55 plobsing it *will* change the format of PBC.
03:55 cotto sure
03:55 cotto we do that all the time anyway
03:55 plobsing but by adding it as another section, tools that only work on existing sections will continue to work
03:55 plobsing unless of course they hit dynamic thinigs
03:55 plobsing s/thinigs/thingys/
03:56 plobsing which I hope becomes more common (eg: frozen rakudo setting requires a lot of dynpmcs)
03:56 cotto I'm certain it will.
03:58 plobsing cotto: do you have a commit bit on the nqp-rx repo?
03:58 cotto I don't think so.
03:58 plobsing who does?
03:59 cotto pmichaud is a likely suspect
03:59 cotto bacek might
04:00 cotto http://github.com/perl6/nqp-rx/contributors
04:00 Khisanth joined #parrot
04:01 cotto actually, it'd be pretty easy to add dynop and dynpmc fixups to the fixuptable
04:01 cotto It's got a constant for the type of fixup and currently 0x1 and 0x2 are used.
04:02 cotto bytecode fixup might be less fun
04:02 plobsing yes. the reading side of things is the tricky part
04:02 parthm joined #parrot
04:03 cotto At least a fix exists, even though it's not looking like an easy one.
04:06 plobsing prove t/distro/file_metadata.t 2>&1 | perl -ple '/^#\s*(svn ps.*)$/ and print $1 && system($1)'
04:06 plobsing ^^^ we should have a tool to do this ^^^
04:07 * cotto points at mikehh
04:08 cotto If you can put off caring long enough, we'll have made it a moot point by switching to git.
04:09 plobsing when will it be git o'clock?
04:10 cotto most likely late August, after GSoC is done and we've got some time to let things settle before the next stable release
04:11 dalek parrot: r47044 | plobsing++ | branches/ops_massacre (8 files):
04:11 dalek parrot: fix library_tests
04:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47044/
04:11 cotto if certain people *cough*cotto*cough* can get a good Trac/git demo site working.
04:11 plobsing do any of our GSoC students actually *enjoy* working with svn?
04:11 plobsing mine uses git
04:12 cotto I've asked khairul to use svn to avoid the impedance mismatch, but I felt bad about it.
04:15 cotto I'd still rather not change things up while our students are working.  If they all say they don't care, that might change.
04:16 plobsing I ask because I've heard that argument before and it sounds a lot like putting words in other people's mouths
04:17 ash_ joined #parrot
04:17 sorear plobsing: I have a nqp-rx commit bit
04:17 ash_ i rather prefer git, i might use svn since everyone else is, and it would be nice if everyone could more easily find my work, but i like git
04:17 sorear they're pretty easy to get, you don't even need a CLA
04:18 sorear (though out of common courtesy please don't make huge breaking changes on master)
04:19 plobsing sorear: I have a fix for nqp-rx already. I'm just looking for someone to commit it.
04:20 sorear send it to me
04:21 plobsing git://github.com/plobsing/nqp-rx.git
04:21 plobsing it makes nqp-rx work after ops_massacre
04:22 Hunger joined #parrot
04:23 sorear will it break un-massacred?
04:25 plobsing probably. I had to add some methods on FileHandle to replace functionality lost in ops
04:26 plobsing massacred will be landing soon (working through examples_tests)
04:27 dalek parrot: r47045 | plobsing++ | branches/ops_massacre (13 files):
04:27 dalek parrot: fix codetests
04:27 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47045/
04:27 dalek parrot: r47046 | plobsing++ | branches/ops_massacre/examples/benchmarks (2 files):
04:27 dalek parrot: fix examples tests
04:27 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47046/
04:28 bacek_at_work who called my name?
04:29 sorear bacek_at_work: you are no longer useful here
04:30 sorear plobsing: passes tests on r47014
04:30 * sorear ships it
04:31 sorear oops, it crashes if I try to do untested things
04:32 cotto sorear, that's a pretty bold statement
04:34 dalek nqp-rx: f60fcfe | plobsing++ | src/ (5 files):
04:34 dalek nqp-rx: fix with respect to ops_massacre parrot branch
04:34 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/f​60fcfe701c1c024faf49cf134041d3a3a3be9ba
04:35 plobsing wohoo! sorear++
04:39 davidfetter joined #parrot
04:39 cotto That code is a little nicer.
05:23 aukjan joined #parrot
05:34 dalek parrot: r47047 | plobsing++ | branches/ops_massacre (34 files):
05:34 dalek parrot: fix many examples
05:34 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47047/
05:34 plobsing so many examples and so much documentation. much of which is subtly broken or outdated.
05:35 plobsing I almost wish I had the time (and motivation) to update it all. or at least remove the horribly broken and wrong parts.
05:36 parthm joined #parrot
05:43 parthm left #parrot
05:44 Hunger joined #parrot
05:57 TiMBuS joined #parrot
05:57 Hunger joined #parrot
06:00 cotto could a regex catch most of it?
06:01 plobsing I've alredy fixed it wrt ops_massacre. when I say horribly broken, I mean in general compared to how things are usually done in parrot now
06:01 plobsing the only thing I broke and didn't fix was the quine. mostly because I'm not smart enough
06:02 plobsing for example: we shouldn't be giving examples in pasm.
06:03 cotto as far as I'm concerned, we should be doing anything im pasm.
06:03 plobsing I think it is a usefull notation for the compiler to spit back at people. That's about it.
06:03 cotto It would be if it did what it said on the box.
06:04 cotto i.e. if we could round-trip it with pbc and pir
06:04 plobsing I have a fix for PBC constants in PASM (which is 90% of the incompatiblility AFAICT)
06:04 plobsing I just need tuits.
06:05 uniejo joined #parrot
06:10 plobsing one problem with bootstrap I just ran into hard: merge conflicts in generated files
06:10 parthm joined #parrot
06:11 cotto I usually ignore those and regenerate post-merge
06:12 cotto for core_ops.c and friends you should be fine as long as you have one of the checked-in versions.
06:13 plobsing so long as noone deletes an op and the supporting core function while another branch is out of sync
06:13 cotto It does make things a bit more brittle.
06:14 Hunger joined #parrot
06:17 plobsing how do I get the latest nqp-rx into the parrot repo?
06:19 moritz plobsing: see docs/bootstrap* in nqp-rx
06:22 dalek parrot: r47048 | plobsing++ | branches/ops_massacre (66 files):
06:22 dalek parrot: sync with trunk
06:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47048/
06:26 cotto plobsing, merging time?
06:27 plobsing almost
06:27 plobsing add nqp-rx and then merge
06:28 plobsing this merge took too much out of me. I'm tempted to simply do all my development on trunk (good practice be damned!)
06:31 cotto For massive ops nuking, I would have just done it on trunk.
06:32 plobsing the most destabilizing, destructive operations are the hardest to merge
06:32 jjore joined #parrot
06:39 dalek parrot: r47049 | cotto++ | trunk/compilers/opsc/src/Ops/File.pm:
06:39 dalek parrot: [opsc] add number of ops parsed to verbose ops2c output
06:39 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47049/
06:39 dalek parrot: r47050 | plobsing++ | branches/ops_massacre/ext/nqp-rx/src/stage0 (4 files):
06:39 dalek parrot: grab latest nqp-rx
06:39 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47050/
06:40 plobsing cotto++ # opsc ops counting
06:53 fperrad joined #parrot
06:56 fperrad_ joined #parrot
06:57 cotto that'll make updating the tests much less annoying
07:00 janus joined #parrot
07:02 khairul joined #parrot
07:05 cotto khairul, ping (see privmsg)
07:17 parthm hello. i am trying to add a simple 'if' conditional handling to create_language generated grammar but i seem to be doing something really wrong (and possibly stupid as i am new to perl and parrot).
07:17 dalek tracwiki: v20 | cotto++ | CottoTasklist
07:17 dalek tracwiki: opsc tasks are done for now, more are welcome
07:17 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Cot​toTasklist?version=20&action=diff
07:18 parthm i get the error 'ast' not found for 'undef'. http://nopaste.snit.ch/20657 ... any ideas?
07:18 viklund joined #parrot
07:18 sorear I'm suprised create_language still works.
07:19 sorear Especially since we just got rid of NQP...
07:19 parthm sorear: should i be using create_language or mk_language_shell?
07:19 moritz parthm: maybe try   if $<else>[0] { ... }
07:19 sorear Which one uses NQP-rx?
07:20 sorear oh
07:20 sorear your grammar is in a .pm file
07:20 sorear you are using NQP-rx, nevermind
07:21 parthm moritz: doesnt seem to work. i am just trying 'if (1) { say("hello"); }' so its avoiding the else. is $<EXPR>.ast and $<statementlist>.ast valid?
07:22 moritz parthm: if the action methods of both call make(), yes
07:23 moritz parthm: you can insert say() statements to find out which invocation actually causes the error
07:25 nopaste "parthm" at 192.168.1.3 pasted "statementlist" (6 lines) at http://nopaste.snit.ch/20658
07:26 parthm mortiz: it seems its statementlist thats producing the error. it seems to have 'make $past' at the end.
07:26 parthm s/producing the error/failing at .ast/
07:26 plobsing ops_massacre is synced with latest trunk, so why does trunk give all sorts of conflicts on mergeback?
07:27 moritz it's svn.
07:27 plobsing using svn's everything is just a directory model, can I simply overwrite trunk with a branch that contains all changes on trunk?
07:28 moritz that might work, unless somebody else does a commit in the mean time
07:28 * moritz not an svn expert
07:28 moritz parthm: no idea, sorry
07:29 moritz parthm: if nobody else here can help you and you get stuck, you can still try the mailing list(s)
07:29 parthm mortiz: np :) ... will dig around some more. mailing list sounds like a good idea.
07:37 Hunger joined #parrot
07:45 parthm changing <statementlist> in the rule to <main=statementlist> and doing $<main>.ast did the trick .. now stuck a little later :(
07:46 nopaste "cotto" at 192.168.1.3 pasted "odd nqp semantics or bug: you be the judge" (17 lines) at http://nopaste.snit.ch/20659
07:47 cotto moritz, are you any good with nqp?
07:48 moritz cotto: I'm good with Perl 6, not not really with nqp
07:48 cotto ok
07:49 sorear cotto: not a bug
07:49 moritz cotto: in Perl 6 if you write your own .new, you have to call self.bless to actually create a new instance
07:49 sorear if you override new like that, you don't get new instances
07:49 moritz otherwise you end up returning the type object
07:50 cotto sorear, how do I get a new instance then?
07:50 moritz full Perl 6 has other mechanisms for initilializing attributes
07:52 sorear cotto: call the superclass's new, or don't override new
07:53 * parthm tried to understand PAST::Op.new
07:53 parthm where can i find docs/code for the class PAST?
07:54 sorear docs/pdd/*ast*.pod
07:56 parthm sorear: thanks :)
07:58 cotto khairul, I'm off to bed.
07:58 cotto sorear, thanks.
07:58 khairul cotto: sure, thanks. i'll look into it.
08:02 JimmyZ joined #parrot
08:17 parthm left #parrot
08:47 dalek plparrot: 3a96e63 | dukeleto++ | plparrot.c:
08:47 dalek plparrot: Don't imcc_initialize
08:47 dalek plparrot: review: http://github.com/leto/plparrot/commit/3​a96e63138246a80713501a60018db5d0ccaf3a3
08:47 dalek plparrot: 93d4a76 | dukeleto++ |  (2 files):
08:48 dalek plparrot: Fix return values in PL/ParrotU
08:48 dalek plparrot: review: http://github.com/leto/plparrot/commit/9​3d4a76c70270dc5e57df86784ac8b0fb4ec7938
08:53 plobsing svn-- # can't even do a *fast-forward* merge properly
08:54 ttbot Parrot trunk/ r47051 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/328130.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
08:54 dalek parrot: r47051 | plobsing++ | failed to fetch changeset:
08:54 dalek parrot: merge ops_massacre
08:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47051/
09:00 bacek aloha
09:08 clinton joined #parrot
09:09 bacek seen mj41
09:09 purl mj41 was last seen on #parrot 9 days, 22 hours, 51 seconds ago, saying: back, it was a short one  [May 17 11:08:31 2010]
09:09 bacek seen mj41_
09:09 purl mj41_ was last seen on #parrot 175 days, 15 hours, 10 minutes and 46 seconds ago, saying: to dukeleto :-)  [Dec  2 17:58:43 2009]
09:09 mj41 bacek: pong :-)
09:10 bacek mj41, :)
09:10 JimmyZ collect2: ld returned 1 exit status
09:10 ttbot Parrot trunk/ r47052 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/328198.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
09:10 JimmyZ make: *** [runtime/parrot/dynext/debug_ops.dll] Error 1
09:10 bacek mj41, how much _your_ effort required to made TapTinder to capable build HLL's on top of parrot?
09:10 JimmyZ I can't build parrot ...
09:10 bacek JimmyZ, win32?
09:11 JimmyZ Yeah
09:11 dalek parrot: r47052 | plobsing++ | trunk/PBC_COMPAT:
09:11 dalek parrot: bump pbc compat
09:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47052/
09:11 bacek JimmyZ, so TapTinder. plobsing slightly broke win32 build with ops_massacre
09:12 mj41 bacek: HLLs on Subversion repos easier then on Git :-).
09:12 bacek mj41, I did read tt wiki :)
09:13 bacek mj41, so Git support + dependent projects support. Roughly?
09:14 mj41 yes. DB schema is probably ready to dependent projects. But code not.
09:15 bacek mj41, c'mon! Give me numbers :)
09:17 mj41 I have some free time again. I'm not sure about Git support, but can do dependent projects support during two weeks. I hope :-).
09:18 mikehh plobsing: sorry I was not around earlier, any I do have a sort of tool available to fix the svn properties, similar to what you posted
09:20 bacek mj41, http://pledgie.com/campaigns/9495. I do want dependent projects done :)
09:22 mj41 bacek: ... join #taptinder and ping me every day ... I need to be motivated by great hacker :-).
09:22 bacek mj41, which network? freenode?
09:22 mj41 irc://irc.freenode.net/#taptinder
09:24 ttbot Parrot trunk/ r47053 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/328246.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
09:27 dalek parrot: r47053 | chromatic++ | trunk/compilers/imcc/pbc.c:
09:27 dalek parrot: [IMCC] Fixed a compilation warning, localized a variable, and tidied some code.
09:27 dalek parrot: No functional changes.
09:27 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47053/
09:43 IllvilJa joined #parrot
09:46 mikehh g++ fails to build/ quite a few test failures with gcc (packfile and some others) - Ubuntu 10.04 amd64
09:47 mikehh some tests fail in make corevm/make coretest thet pass make test
10:34 bacek karma g
10:34 purl g has karma of 1192
10:34 bacek g++ deserve it :)
10:57 Hunger joined #parrot
11:34 moritz c--
11:52 sorear joined #parrot
11:57 whiteknight joined #parrot
11:58 atrodo joined #parrot
12:15 bacek opbots names
12:15 bacek opbots trust mj41
12:15 slavorg Ok
12:15 slavorgn Ok
12:17 bacek opbots trust ash_
12:17 slavorgn Ok
12:17 slavorg Ok
12:17 bacek opbots trust GeJ
12:17 slavorgn Ok
12:17 slavorg Ok
12:19 jsut_ joined #parrot
12:19 bacek opbots trust timbus
12:19 slavorgn Ok
12:19 slavorg Ok
12:34 pmichaud ...I think the changes to src/setting/IO.pm in nqp-rx are likely to not work.
12:34 pmichaud (in commit f60fcf)
12:35 * pmichaud tests.
12:38 moritz oh
12:38 moritz .loadlib 'io_ops'
12:38 moritz ...
12:38 moritz printerr "hello"
12:38 moritz gives a syntax error with an installed parrot
12:39 moritz but works fine with the 'parrot' binary in the source dir
12:39 moritz let me guess.... .loadlib fails silently?
12:40 moritz yes it does
12:40 moritz great</sarcasm>
12:40 pmichaud yes, loadlib fails silently.
12:41 * moritz writes a mail to parrot-dev
12:41 parthm joined #parrot
12:42 nopaste "pmichaud" at 192.168.1.3 pasted "spew() no longer works in nqp-setting" (15 lines) at http://nopaste.snit.ch/20661
12:46 pmichaud the likely problem is that there's no FileHandle type object for .new to operate on
12:47 parthm hello. i am trying to extend the create_language.pl language to support 'if' but i seem to be failing miserably. could anyone tell me what i am doing wrong in this basic change? http://pastebin.com/PvCpuaeM
12:51 pmichaud parthm: were you able to get it working without the 'else' clause stuff?
12:51 pmichaud sometimes I start a little smaller and see if I can get that working
12:52 parthm pmichaud: i put some prints the if ast seems to be getting created fine. i.e. if i put a say just before "make $past" in if its printed. this seems to be failing after that sometime.
12:52 parthm s/if/'if'/
12:52 pmichaud hmmm, okay.
12:53 pmichaud your pastebin doesn't show where <if_statement> gets added into the grammar
12:54 parthm pmichaud: sorry i missed that in paste. i have put it along with statement. http://pastebin.com/77dt0qa9
12:54 ruoso joined #parrot
12:55 pmichaud aha
12:55 pmichaud since you changed the statement rule, you have to change the statement action as well
12:55 pmichaud much easier would be to include it as part of statement_control
12:55 moritz .oO( or you proto regexes )
12:56 pmichaud i.e., to use    rule statement_control:sym<if>   instead of rule if_statement
12:56 pmichaud then you don't need to change rule statement
12:56 parthm pmichaud: i get it now ... thanks :)
12:57 * parthm starts typing hoping to fix his grammar
12:59 gbacon joined #parrot
13:00 * pmichaud is once again struck at the numerous mechanisms Parrot uses for introspection of its core features
13:01 pmichaud 1.  sometimes we use a method -- e.g.    $P0 = getinterp;  $P1 = $P0.'stdhandle'(1)
13:01 parthm pmichaud: that worked, thanks :) ... so --target=past works fine. but running it doesn't produce any output. how do i specify the meaning of "if". i noticed say and print are in Runtime.pm but i suppose 'if' is something more primitive.
13:01 pmichaud 2.  sometimes we use the keyed interface -- e.g.     $P0 = getinterp;  $P1 = $P0['sub']
13:01 moritz parthm: there's a Past::Op representing 'if'
13:02 pmichaud parthm: what you had before for the if statement node looked correct-ish
13:02 pmichaud 3.  sometimes we use the getattrribute interface:  $P0 = getinterp; $P1 = $P0['context']; $P2 = getattribute $P1, 'lex_pad'
13:02 parthm so basically, the ":pasttype('if')" argument to PAST::Op.new should take care of it?
13:02 pmichaud parthm: yes.
13:03 pmichaud 4.  sometimes we use the 'inspect' opcode
13:03 masak joined #parrot
13:03 parthm hmm. weird ... nothing gets printed for 'if (1) { say("hello"); } else { say("world"); }'
13:04 pmichaud parthm: can I see the output of --target=past ?
13:05 parthm pmichaud: sorry to trouble you with basic questions. i am new to both parrot and perl :P ... the past output http://pastebin.com/K68WLmTf
13:05 pmichaud parthm: no problem.  it's my own fault for not having written the nqp and past tutorial yet.
13:05 pmichaud :-)
13:06 pmichaud hmmm, for some reason the past node for the if statement isn't making it into the tree
13:06 parthm i am using parrot 2.4.0 in case it matters.
13:07 pmichaud if you changed the name of the rule to be  statement_control:sym<if>, did you also change the name of the action method as well?
13:08 parthm pmichaud: silly me ... yes that was it :) ... its great to see "hello" printed now.
13:08 parthm pmichaud: thanks :)
13:08 pmichaud \o/
13:08 pmichaud I really should come up with some sort of debugging capability to warn on missing action methods
13:09 parthm pmichaud: that would definitely help noobs like me
13:13 parthm pmichaud: one thing i noticed. if in the grammar http://pastebin.com/PvCpuaeM ... i use <statementlist> instead of <main=statementlist> for the first clause and update the action to use $<statementlist>.ast it fails.
13:13 parthm the second one is still <else=statementlist>. is this expected?
13:14 pmichaud ah, yes.
13:14 pmichaud the problem is that $<statementlist> becomes an array
13:14 pmichaud because it appears twice in the list
13:14 pmichaud it would be fixed if you change the second one to  <else=.statementlist>
13:15 pmichaud (which then captures to <else> but not <statementlist>.  currently it's capturing to both.)
13:15 parthm oh. ok. so the dot starts a second capture?
13:15 pmichaud prevents a second capture, actually
13:16 pmichaud <abc>  captures to $<abc>
13:16 pmichaud <.def>  doesn't do a capture
13:16 pmichaud <abc=.def>  captures to $<abc> but not $<def>
13:16 pmichaud <abc=def>  captures to both $<abc> and $<def>
13:16 parthm pmichaud: i get it now. thanks for explaining it.
13:17 moritz http://perlcabal.org/syn/S05.html contains the specification
13:17 moritz nqp-rx doesn't implement all of it
13:17 moritz but a good part of it
13:17 purl i guess a good part of it is that it "works"
13:17 moritz purl: forget a good part of it
13:17 purl moritz: I forgot good part of it
13:17 parthm mortiz: thanks.
13:17 moritz is my name actually *that* hard to spell? :-)
13:17 pmichaud for once, I actually agree with something purl says.  but the stupid bot should still learn to keep quiet unless spoken to.
13:18 pmichaud moritz: it's about as hard as "rakduo"  :-P
13:18 moritz pmichaud: yeah, but you can tab-complete names :-)
13:18 moritz erm, nicks
13:18 parthm moritz: ... oops. sorry :)
13:18 pmichaud moritz: so, do we need someone logged in as "rakudo" on the chan?  maybe an alias to p6eval?  ;-)
13:18 moritz pmichaud: maybe we should add a no-op bot named 'rakudo' so that we can tab-complete it :-)
13:18 moritz heh
13:18 pmichaud "Jinx!"
13:19 pmichaud afk for a bit, need more nap
13:19 masak two people suggest it at the same time. must be a good idea. :)
13:19 PerlJam and at least one lurker (me) agrees  :)
13:20 moritz the lurker gets to write the bot
13:21 masak that's only fair.
13:22 moritz PerlJam: that would be *you*, just to be clear and unambiguous
13:27 Coke joined #parrot
13:27 Coke anyone working on the rakudo bug?
13:27 PerlJam "the" rakudo bug?  :)
13:28 moritz the parrot bug exposed by rakudo, and discussed on parrot-dev just now :-)
13:34 Coke moritz: I have a patch in progress. building...
13:35 Coke A lot of these HLL-only bugs would be caught if we tested against our install.
13:35 Coke (which many folks have brought up recently)
13:43 Coke moritz: you also need bit_ops...
13:45 moritz Coke: ok
13:45 moritz Coke: btw do you have a rakudo commit bit?
13:45 Coke moritz: sure.
13:45 moritz great
13:45 Coke I can just fixup rakudo if you like.
13:45 Coke bump parrot_rev, do at least a 'make test' to make sure..
13:46 moritz I was mainly asking because of the next rakudo release
13:46 moritz but sure, go ahead
13:47 Coke moritz: ... sys_ops.... =-)
13:49 patspam joined #parrot
13:49 Coke built, running test...
13:53 dalek rakudo: e40ee42 | Coke++ |  (2 files):
13:53 dalek rakudo: track the move of some ops to dynamic op libraries, bumping parrot revision.
13:53 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​40ee425f7db25a12b671e2aac283386d1f3116c
13:54 Coke moritz: done.
13:54 moritz Coke: danke
13:54 Coke de nada. simple fix.
13:54 ttbot Parrot trunk/ r47054 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/328371.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
13:55 Coke uhoh.
13:55 dalek parrot: r47054 | fperrad++ | trunk/t/harness.pir:
13:55 Coke oh, good, that was plobsing.
13:55 dalek parrot: fix readline (opcode -> method)
13:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47054/
13:55 dalek parrot: r47055 | coke++ | trunk/MANIFEST.generated:
13:55 dalek parrot: Install all the new dynoplibs.
13:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47055/
13:56 Andy joined #parrot
13:58 parthm i am using parrot 2.4.0 but noticed in the announcement suggests the svn repo. should i be using the trunk instead? http://parrot.org/news/2010/Parrot-2.4.0
13:59 Coke parthm: depends on what you're doing.
13:59 Coke svn trunk is not /entirely/ stable, but it's close.
14:00 ttbot Parrot trunk/ r47055 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/328398.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
14:00 parthm Coke: i am working on an HLL.
14:01 Coke parthm: I would probably recommend using a release, but don't get more than a release behind. =-)
14:01 Coke (you can achieve the same effect, really, by using svn and only updating every so often.)
14:01 davidfetter joined #parrot
14:02 parthm Coke: sounds like a good idea. i will probably use the trunk then and update once a month :)
14:02 ruoso joined #parrot
14:02 parthm Coke: thanks.
14:02 Coke parthm: np.
14:02 Coke you working on porting an existing language or something new?
14:04 parthm Coke: i am working on creating a new language. parrot seemed the most suited. but i am new to perl so still have a bit of learning to do.
14:04 parthm the folks on irc have been very helpful :)
14:04 JimmyZ joined #parrot
14:04 Coke glad ot hear it.
14:04 Coke *to
14:05 parthm Coke: if i have something substantial in a month or two will probably announce it on parrot-user.
14:05 Coke RFC: Manifest generated shouldn't list all possible extensions, but just the @ext@'s from the makefile syntax.
14:05 Coke parthm: looking forward to it.
14:09 bubaflub joined #parrot
14:10 * Coke goes back to lurking.
14:10 Coke left #parrot
14:29 dalek TT #1661 created by reezer++: Parrot crashes when clicking on Preferences
14:29 dalek TT #1661: http://trac.parrot.org/parrot/ticket/1661
14:30 JimmyZ_ joined #parrot
14:31 jsut joined #parrot
14:32 parthm left #parrot
14:36 Coke joined #parrot
14:41 ttbot Parrot trunk/ r47056 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/328509.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
14:42 NotFound <sarcasm>I like our deprecation policy. We can't change broken things because some unknown thing may be using it, but we can change the most used ops and break anything without any problem.</sarcasm>
14:43 plobsing joined #parrot
14:44 dalek parrot: r47056 | fperrad++ | trunk/runtime/parrot/library/LWP/Protocol.pir:
14:44 dalek parrot: [LWP] fix after ops_massacre
14:44 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47056/
14:50 whiteknight NotFound: you don't have to tell me, I've always argued for an opt-in system
14:57 NotFound So now there isn't any way of output something to standard output without loading a lib?
14:58 Coke NotFound: print and say should still be there.
14:58 NotFound And to stderr?
14:59 Coke printerr was moved.
14:59 Coke (this is why I asked him to ping the list regarding the (very old) ticket about moving all those ops to dynops.
14:59 Coke )
15:00 Coke The original ticket was very broad and vague.
15:02 NotFound julian@sparx:~/parrot$ cat p.pir
15:02 NotFound .loadlib 'io_ops'
15:02 NotFound .sub main
15:02 NotFound printerr "Hi\n"
15:02 NotFound .end
15:02 NotFound julian@sparx:~/parrot$ ./parrot -o p.pbc p.pir
15:02 NotFound julian@sparx:~/parrot$ ./pbc_disassemble p.pbc
15:03 NotFound Unknown opcode type
15:03 NotFound Now we can't disassmble even the more simple progs.
15:03 Coke NotFound: "holy crap, we have a disassembler?!"
15:04 NotFound Sort of.
15:04 Coke clearly not so much now. Seriously, though, i'd open a ticket on that. I'm sure if we had test for that sort of thing, it wouldn't have broken on mergeback.
15:05 NotFound Coke: we don't have mechanics for that, so no big surprise.
15:06 Coke presumably, it's not just that dynop that fails but all dynops, so the mergeback just would have kept the original todo'd test. but you know what I mean.
15:06 Coke I'm more ticked that partcl has been dead for some time. =-)
15:07 NotFound Coke: you can be happy, now almost al must be dead, you're not alone.
15:10 dmalcolm joined #parrot
15:14 tcurtis joined #parrot
15:17 ash_ joined #parrot
15:24 theory joined #parrot
15:46 ttbot Parrot trunk/ r47057 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/328587.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
15:50 dalek parrot: r47057 | fperrad++ | trunk (3 files):
15:50 dalek parrot: since r46922 (merge ops_pct), these files are in MANIFEST
15:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47057/
15:51 ruoso joined #parrot
15:58 Coke NotFound: yah, doesn't really help.
15:58 Coke at least rakudo's still working.
16:05 lucian joined #parrot
16:15 aukjan1 joined #parrot
16:36 pmichaud 14:59 <Coke> (this is why I asked him to ping the list regarding the (very old) ticket about moving all those ops to dynops.
16:36 pmichaud I thought about protesting the loss of printerr, but ultimately decided the tide was against us on that one.
16:38 pmichaud I do know that allison++ has been musing that we should eliminate 'say', which I'd really feel bad about losing.
16:38 pmichaud (or perhaps I've misread what she's written on the topic -- see the ticket.)
16:38 pmichaud afk again
16:40 dalek parrot: r47058 | tcurtis++ | branches/gsoc_past_optimization (7 files):
16:40 dalek parrot: Regen manifest, add PAST::Transformer::Dynamic and example, and set props.
16:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47058/
16:41 dukeleto 'ello
16:56 bluescreen joined #parrot
17:01 cotto_work ~~
17:02 cotto_work left #parrot
17:18 cotto_work joined #parrot
17:26 Coke I can see eliminating say from PIR if you hold that humans shouldn't write PIR.
17:27 cotto_work I don't think we're there yet.
17:27 Coke I am leaning towards that more now, but for some time, I had a fairly large collection of hand-rolled PIR.
17:36 cotto_work I'd certainly agree that there shouldn't be a Lorito say op.
17:36 PerlJam indeed.
17:44 Tene I'm not really fond of IO ops.  It seems to me that those should be methods on IO objects instead.
17:44 Tene Can anyone explain to me why we'd prefer to use ops for that?
17:44 cotto_work Then you're happy with the merge?
17:45 jsut_ joined #parrot
17:45 Tene I haven't actually been following anything closely enough to know what's going on at all.  I'm just responding to the discussion above.
17:46 gbacon joined #parrot
17:48 Coke the /practical/ answer is that "ops are fast, methods are slow"
17:48 Coke but no, it makes sense to me to have those be methods.
17:49 Tene I guess that with an op, you don't have to keep using getstdout.
17:50 Tene s = getstdout; s.'say'("OMGLOL");
17:50 Tene seems fairly reasonable to me.
18:10 whiteknight joined #parrot
18:17 ttbot Parrot trunk/ r47059 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/328677.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
18:19 dalek parrot: r47059 | fperrad++ | trunk (2 files):
18:19 dalek parrot: [win32] fix build of dynops debug
18:19 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47059/
18:21 Coke msg plobsing - looks like r47051 broke windows. http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/
18:21 purl Message for plobsing stored.
18:22 Coke msg plobsing - but then it magically worked 47059 for one of them, so Iunno.
18:22 purl Message for plobsing stored.
18:34 tcurtis joined #parrot
18:36 tcurtis pmichaud: ping
18:54 whiteknight joined #parrot
18:56 joeri joined #parrot
18:57 dalek winxed: r479 | julian.notfound++ | trunk/README:
18:57 dalek winxed: note about parrot r47050 strictly required
18:57 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=479
18:58 IllvilJa joined #parrot
19:02 pmichaud tcurtis: pong
19:03 tcurtis pmichaud: I was just wondering what the reasoning behind using P6metaclass for PCT was.
19:04 pmichaud so that PCT objects would be able to support p6-like behaviors
19:05 pmichaud in particular, nqp relies on that ability
19:05 pmichaud otherwise things like   PAST::Op.new(...)  won't work in NQP
19:07 pmichaud there's still the article at http://www.parrotblog.org/2008/05/p6obj​ect-perl-6-metaclasses-for-parrot.html
19:13 tcurtis Thanks. I think I'll use it for at least the ::Dynamic subclasses of PAST::Walker and PAST::Transformer. Possibly for the parent classes as well.
19:15 pmichaud certainly if we want nqp authors to be able to use the classes they'll need to be p6object based
19:16 pmichaud (although it's possible to turn non-p6objects into p6objects if needed; we do that for the builtin PMCs)
19:20 tcurtis Indeed. I'm leaving home for a bit, and I'll work on switching them over to p6object when I get back.
19:30 davidfetter joined #parrot
19:54 darbelo Hm, can someone on i386 run mk_native_pbc? We broke pbc compat, again.
19:55 LoganLK joined #parrot
19:56 * darbelo wants portable PBC.
19:59 Tene Hmm.  I can give you an account on an i386 linux box, if you'd like.
19:59 Tene I'm a bit too busy with work ATM to do it.
20:00 darbelo It's not *that* urgent. I can get my hands on a i386 box if it's really needed.
20:02 darbelo I could even reasonably switch my main box back to 32 bits if the need arises...
20:03 mikehh darbelo: I've really got to get my box running a VM (OS type) soon, otherwise I just have to reboot from amd64 to i386
20:03 Coke unfortunateyl, I can only update the _4_ series pbcs.
20:04 Coke email the list.
20:04 patspam1 joined #parrot
20:05 mikehh bacek is usually good for that, dunno if he is around
20:05 mikehh clock?
20:05 purl mikehh: LAX: Thu 1:05pm PDT / CHI: Thu 3:05pm CDT / NYC: Thu 4:05pm EDT / LON: Thu 9:05pm BST / BER: Thu 10:05pm CEST / IND: Fri 1:35am IST / TOK: Fri 5:05am JST / SYD: Fri 6:05am EST /
20:06 mikehh 6am a bit early
20:08 mikehh BTW getting additional failures with make corevm/make coretest that pass make test
20:18 cotto_work Looks like someone reads whiteknight's blog.  He's on the development of LWN's weekly edition with a quote of the week: http://lwn.net/Articles/388517/
20:19 moritz (subscriber-only link :( )
20:19 darbelo Subscription required for that link, though.
20:20 cotto_work http://lwn.net/Articles/388747/
20:22 moritz thanks
20:22 darbelo cotto++
20:24 cotto_work There was also a quote a couple weeks ago from pmichaud
20:25 darbelo ZOMG! We are being watched!
20:25 cotto_work Yeah.  It's kinda nice to see that the outside world cares.
20:25 bluescreen joined #parrot
20:28 GeJ Good morning everyone.
20:30 cotto_work msg whiteknight Somebody's watching you: http://lwn.net/Articles/388747/
20:30 purl Message for whiteknight stored.
20:41 masak I added a simple Str.encode to Rakudo today. it's actually from the alpha branch, where I'd added it before. http://github.com/rakudo/rakudo/commit/2​768cea1ce1f962d547f36c680c438e7ad39da4b
20:42 masak I was wondering, if I want to do the reverse, a Buf.decode, how should I go about it? how do I create an UTF-8 string from a list of ints in Parrot?
20:43 Coke use chr in a loop instead of ord?
20:43 * Coke whips up a sample.
20:43 masak Coke++
20:45 moritz seen Infinoid
20:45 purl Infinoid was last seen on purl 4 days, 7 hours, 47 minutes and 35 seconds ago, saying: <private message>  [May 23 12:58:02 2010]
20:45 NotFound joined #parrot
20:48 cotto_work joined #parrot
20:49 mikehh_ joined #parrot
20:50 Coke er, http://nopaste.snit.ch/20667
20:50 masak Coke: thanks!
20:50 Coke that prints: `8Ч here
20:50 masak I'll use it right away.
20:51 Coke whee!
20:51 Coke s/String/StringBuilder/ also works, and is probably better/faster.
20:51 Coke (at least for big lists.)
20:52 masak ok, correcting course.
20:52 Coke (you can get a real string at the end by $S0 = sb)
20:53 masak ok, great.
20:54 mikehh joined #parrot
20:54 dalek left #parrot
20:54 dalek joined #parrot
20:55 cotto_work seen bacek
20:55 purl bacek was last seen on #parrot 8 hours, 35 minutes and 34 seconds ago, saying: opbots trust timbus
20:55 cotto_work seen bacek_at_work
20:55 purl bacek_at_work was last seen on #parrot 16 hours, 27 minutes and 5 seconds ago, saying: who called my name?
20:55 cotto_work looks like the opsc tests need some love after the ops_massacre merge
20:56 * bacek appears from nowhere
20:56 darbelo bacek: you on i386?
20:56 bacek darbelo, amd64...
20:57 bacek pbcs are broken?
20:57 cotto_work I think he emulates everything in his mind.
20:57 cotto_work looks like it
20:57 purl No it doesn't, shut your hole!
20:57 Coke HIS ROBOT MIND.
20:58 bacek mikehh, are you on i386 today?
20:59 mikehh bacek: not at the moment - amd64
21:00 bacek sigh, can we have _portable_ bytecode?
21:00 * mikehh really has to work on getting a VM (OS type) on my box
21:01 cotto_work yo dawg
21:01 NotFound Can we have portable tests?
21:02 preflex joined #parrot
21:02 darbelo Not without portable bytecode ;)
21:02 bacek #385 afaik
21:03 * Coke has paid for his netbook now WHERE IS IT!?
21:03 * Coke sighs.
21:03 NotFound We have the native_tests skipped because of that, but we have other tests that use that same files for no particular reason.
21:04 bacek #357 and #600 actually
21:04 NotFound At least I fail to understand the reason, if there is any.
21:04 dalek winxed: r480 | julian.notfound++ | trunk/winxedst0.cpp:
21:04 dalek winxed: hardcode value of .ITERATE_FROM_START to avoid .include
21:04 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=480
21:04 Coke "because they were there."
21:04 Coke and now we're suffering the same failures that we skipped the originals for.
21:04 NotFound Coke: I said reason, not excuse ;)
21:12 bacek Reason is I was need something to test Packfile* PMCs :)
21:12 bacek Now fixed.
21:13 whiteknight joined #parrot
21:20 cotto_work2 joined #parrot
21:20 ttbot Parrot trunk/ r47061 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/328756.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
21:21 dalek parrot: r47060 | bacek++ | trunk/docs/tests.pod:
21:21 dalek parrot: Indent code properly
21:21 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47060/
21:21 dalek parrot: r47061 | bacek++ | trunk (5 files):
21:21 dalek parrot: Separate PBCs used for Packfile* PMC testing from "native" PBCs.
21:21 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47061/
21:27 cotto_work2 bacek++
21:34 ttbot Parrot trunk/ r47063 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/328821.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
21:35 mikehh ok that fixed the opsc tests
21:36 * darbelo updates PBCs
21:37 darbelo That took a *long* time to get done.
21:37 bacek darbelo, I updated them already.
21:37 bacek in r47061
21:38 darbelo Really? Then something else was broken for me...
21:39 dalek parrot: r47062 | bacek++ | trunk/t/compilers/opsc (3 files):
21:39 dalek parrot: Fix opsc tests after ops_massacre merge.
21:39 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47062/
21:39 dalek parrot: r47063 | mikehh++ | trunk/MANIFEST:
21:39 dalek parrot: re-generate MANIFEST
21:39 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47063/
21:39 dalek parrot: r47064 | darbelo++ | trunk/t/native_pbc (2 files):
21:39 dalek parrot: native_pbc platform updates
21:39 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47064/
21:39 dalek winxed: r481 | julian.notfound++ | trunk/ (3 files):
21:39 dalek winxed: work again with parrot trunk, at some cost
21:39 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=481
21:46 * darbelo wonders if Lorito will make portable bytecode easier...
21:47 mikehh still is
21:47 ttbot Parrot trunk/ r47064 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/328862.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
21:47 mikehh broke taht is
21:47 mikehh that
21:48 darbelo Oh. Wait. I know what happened. I think.
21:48 darbelo mikehh: r47065 fixes it?
21:53 davidfetter joined #parrot
21:55 bacek Do we have FreeBSD 6.2 testers? http://bacek.livejournal.com/354​911.html?thread=3019871#t3019871
21:55 darbelo It doesn't. But I think I know what happened. This time for sure.
21:55 bacek (Russian link, but error is clear)
21:55 bacek darbelo, ?
21:55 purl darbelo, is probably there anything in config_lib.pasm that gives us enough information?
21:55 bacek purl, forget darbelo
21:55 purl bacek: I forgot darbelo
21:56 dalek parrot: r47065 | darbelo++ | trunk/t/native_pbc (4 files):
21:56 dalek parrot: native_pbc platform updates
21:56 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47065/
21:56 dalek parrot: r47066 | bacek++ | trunk/include/parrot/platform_interface.h:
21:56 dalek parrot: Decorate Parrot_gmtime_r, localtime_r and asctime_r with PARROT_EXPORT for consistency with implementation.
21:56 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47066/
21:56 darbelo bacek: GeJ is on FreeBSD,  I think he's on 8.0, but I could be wrong.
21:56 bacek GeJ, is on 8.0
21:56 GeJ darbelo, bacek : 7 @work, and 8 @home.
21:56 darbelo bacek: you wanted to make purl forget "darbelo," with the coma.
21:57 darbelo me?
21:57 GeJ However, I may have a lappy with a 6.something at home.
21:57 GeJ Need to check.
21:57 ttbot Parrot trunk/ r47065 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/328894.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
21:57 bacek GeJ, I've got report that Parrot is broken on 6.2
21:57 GeJ for the record 6.2 is EOL and the whole 6-branche is going to be retired pretty soon.
21:58 GeJ But I'll try it tonight when I get home nevertheless.
21:58 bacek GeJ++
21:58 bacek One of my first unixes was FreeBSD 2.2.2 :)
22:00 darbelo mikehh: Can you check r47067 ?
22:02 darbelo If that doesn't fix it... I'm officially out of tricks.
22:03 bacek bah, did I forgot to add suffixless pbcs?
22:03 darbelo That's my guess.
22:03 bacek it is...
22:03 purl Oh no it isn't!
22:05 GeJ bacek: A friend told me about FreeBSD after seeing me hit a freshly installed Linux box that had crashed for the 5th time that morning. Gave it a try (it was a 3-something back then). Never looked back.
22:06 eternaleye joined #parrot
22:07 bacek GeJ, I switched to linux totally at 4.0. Threads implementation in FreeBSD was way too terrible to handle.
22:09 darbelo bacek: I'm told they got better.
22:09 mikehh great: make test now passes and g++ works agaiin
22:10 GeJ Ah threads... That almost got me out as well. Not that I was using them directly, but it seemed like a pain for the ports collection. However since 6.0 and the new thread lib, everything seems to be fine again.
22:10 mikehh however, make corevm/make coretest has a bunch of failures
22:11 lucian joined #parrot
22:12 bacek mikehh, erm. linux/amd64?
22:12 darbelo GeJ: OpenBSD's threads still suck, but the routing and firewall tools are just too good for me to give up on them.
22:12 dalek parrot: r47067 | darbelo++ | trunk/t/native_pbc (3 files):
22:12 dalek parrot: Add native_pbcs
22:12 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47067/
22:13 cotto_work joined #parrot
22:15 cotto_work ohai
22:15 darbelo o/
22:16 nopaste "mikehh" at 192.168.1.3 pasted "make corevm/make coretest failures at r47067" (28 lines) at http://nopaste.snit.ch/20671
22:17 mikehh also make -j corevm is failing the first attempt
22:18 mikehh make -j2 corevm works
22:19 darbelo "Something is missing a dep somewhere". That's about as much of a diagnostic as I can conjure up right now.
22:21 cotto_work I'll try a bunch of parallel builds and see if anything splodes.
22:21 GeJ darbelo: PF >> *
22:21 mikehh checkdepend.pl fails 21 tests out of 181
22:22 ttbot Parrot trunk/ r47068 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/328994.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
22:24 darbelo GeJ: And, particularly after the last year of work, pf-on-openbsd >> pf-everywhere-else. It just keeps getting better!
22:24 GeJ darbelo: A colleague tried to teach me iptables. I tried, I really did. I never got to make it work the way I want.
22:26 mikehh GeJ: I have run into similar problems - probably why I can't get a VM (Os type) to work
22:27 darbelo I was fairly good at making iptables bend sideways to do what I wanted, but I still saw right away that pf was a step up.
22:29 GeJ bacek: are referenced in sayperl.org ?
22:29 bacek GeJ, ?
22:29 purl i think GeJ, is on 8.0
22:29 dalek parrot: r47068 | NotFound++ | trunk/t/pmc/resizablepmcarray.t:
22:29 dalek parrot: tests for pop/unshift from empty RPA
22:29 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47068/
22:35 GeJ bacek: sorry, bad case of morning fingers. I was wondering if your posts were showing on http://sayperl.org/ (it seems not).
22:35 GeJ Having your posts in russian be automatically translated would be a nice addition for those lazy ass like me. :)
22:46 dalek parrot: r47069 | tcurtis++ | branches/gsoc_past_optimization (5 files):
22:46 dalek parrot: Use P6object so NQP doesn't have to do Q:PIR { %r = new ['PAST'; 'Walker'] } or such.
22:46 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47069/
22:46 dalek parrot: r47070 | NotFound++ | trunk/src/pmc/resizablepmcarray.pmc:
22:46 dalek parrot: [cage] some cleaning of ResizablePMCArray, no functional changes
22:46 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47070/
22:47 kid51 joined #parrot
22:48 nopaste "cotto" at 192.168.1.3 pasted "dependency-related parallel build failure" (34 lines) at http://nopaste.snit.ch/20672
22:52 whiteknight joined #parrot
23:00 Psyche^ joined #parrot
23:01 bacek_at_work GeJ, ah. ok.
23:05 dukeleto joined #parrot
23:05 Util_ joined #parrot
23:09 dalek joined #parrot
23:09 cotto_work same failure again
23:10 pmichaud joined #parrot
23:10 PerlJam joined #parrot
23:12 dalek parrot: r47071 | mikehh++ | trunk/tools/dev/mk_packfile_pbc:
23:12 dalek parrot: set svn properties
23:12 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47071/
23:12 dalek parrot: r47072 | mikehh++ | trunk/MANIFEST:
23:12 dalek parrot: re-generate MANIFEST
23:12 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47072/
23:13 dalek tracwiki: v5 | jkeenan++ | Lorito
23:13 dalek tracwiki: Incorporating definition of Lorito derived from Allison's post on parrot-dev 2010-05-27
23:13 dalek tracwiki: http://trac.parrot.org/parrot/wiki​/Lorito?version=5&amp;action=diff
23:18 jimk joined #parrot
23:19 eternaleye joined #parrot
23:21 cognominal joined #parrot
23:21 cognominal_ joined #parrot
23:25 cognominal joined #parrot
23:26 cognominal joined #parrot
23:28 dalek parrot: r47073 | mikehh++ | trunk/include/parrot/interpreter.h:
23:28 dalek parrot: run make headerizer (which now removes old lines)
23:28 dalek parrot: review: http://trac.parrot.org/parrot/changeset/47073/
23:30 tcurtis Is there a way to do PIR .includes in NQP?
23:31 darbelo Not that I know of. What are you trying to do?
23:32 darbelo ... Other than .include PIR onto NQP, abviously.
23:32 bacek_at_work Q:PIR< .include "foo.pasm" >
23:33 darbelo bacek_at_work: That works? Really?
23:33 bacek_at_work darbelo, it should work afaik
23:34 tcurtis bacek_at_work: i get a syntax error on .namespace and .sub from IMCC when I do that.
23:34 whiteknight I don't think it will work
23:35 whiteknight Q:PIR creates a sub, the .include would do text substitutin into the sub
23:35 bacek_at_work .include do literal include of file. Inside generated sub
23:35 darbelo tcurtis: you might want to look into loading a compiled bytecode.
23:36 bacek_at_work It does work, guys.
23:36 whiteknight I think that's a pmichaud question, but it's common enough that there should be an answer
23:36 whiteknight bacek_at_work: but doesn't it include into the sub?
23:37 bacek_at_work whiteknight, it does. But it's "legal"
23:37 bacek_at_work nopaste?
23:37 purl nopaste is http://nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl) or http://paste.scsys.co.uk or http://www.extpaste.com or http://gist.github.com or App::Nopaste or http://codepeek.com/paste/ or (: pastebot)
23:37 whiteknight bacek_at_work: I don't doubt that it's legal. better question is whether it's useful
23:37 darbelo Unless you are trying to get at PASM .macros (which NQP can't handle anyway) loading the bytecode is probably better.
23:38 whiteknight the problem is, .include is an IMCC compiler directive, so supporting it directly in NQP would be a huge hassle
23:38 whiteknight plus, what darbelo said
23:38 darbelo tcurtis: What's your use case here. Maybe we can come up with something for you.
23:40 nopaste "bacek" at 192.168.1.3 pasted ".include in nqp" (15 lines) at http://nopaste.snit.ch/20673
23:40 * darbelo reads the nopaste.
23:40 bacek_at_work and +1 for darbelo
23:41 tcurtis Well, I had a pir file in runtime/parrot/include as a helper for testing PAST::Transformer that overrides is_equal for the PAST::Node subclasses. I suppose I'll adapt it to something more generally useful and put it in parrot/runtime/library somewhere.
23:42 darbelo bacek_at_work: That's ... kind of brittle. Isn't it?
23:42 Tene darbelo: yes.
23:42 Tene tcurtis: yes, you should load_bytecode that instead
23:42 bacek_at_work darbelo, it is. But my point was "it works" :)
23:46 darbelo More like "it \"works\"" ;)
23:48 pmichaud using Q:PIR { .include "abc.pasm" };  has been known to work; several parts of Rakudo make use of it
23:49 whiteknight pmichaud: wouldn't you need a specially-formed abc.pasm, since it will be included into a sub
23:49 pmichaud it would be really nice to have some sort of feature that enables NQP to be able to convert .pasm files into local constants... but I haven't thought of a good way to do that yet.
23:49 whiteknight ?
23:49 pmichaud whiteknight: well, normally we just use it to get constants
23:49 pmichaud e.g.,   Q:PIR { .include "interpinfo.pasm" }
23:49 pmichaud and cclass.pasm
23:49 pmichaud etc.
23:50 pmichaud that seems to work okay.  No, it wouldn't work if the .pasm contained subs or other executable code
23:50 pmichaud (and that's not something nqp aspires to have work)
23:50 darbelo If you want to get technical about it, PIR has the same problem.
23:51 tcurtis darbelo: PIR just allows you to have your ".include foo" outside of any subs.
23:51 pmichaud what I'd really like to have is something like   "use cclass;"   and then afterwards the cclass constants appear as NQP constants in my program
23:51 pmichaud PIR allows .include inside of subs, as long as it's just constant macro definitions
23:51 cotto_work +1
23:51 purl 1
23:51 sorear pmichaud: the solution here is probably pseudo namespaces
23:51 pmichaud the other thing that would be useful is to have a way to get at the constants by string instead of just by macro
23:52 darbelo tcurtis: Yes. But using .include inside a sub can blow up in the same ways as NQP.
23:52 sorear pasm::cclass::FOO
23:52 pmichaud sorear: that's a bit too Parrot-specific for what I'd like at the moment, though.
23:52 sorear this causes 1. cclass to be included (once)  2. a FOO to be spit out
23:52 pmichaud definitely too parrot-specific
23:52 sorear pmichaud: the symbolic constants are only used for interacting with Parrot
23:52 pmichaud sure
23:52 sorear so I don't see the problem
23:53 pmichaud anyway, that's lowish on my priorities at the moment, since it's not on the critical path for R*
23:54 pmichaud in general PAST really wants to have a cleaner way to deal with .include anyway -- that's missing also
23:54 pmichaud as well as some of the other directives
23:54 cotto_work If Rakudo depends on Q:PIR{ .include "x.pasm" }; it sounds like it's safe (if hacky) to use and that such a use won't be deprecated without a plausible replacement.
23:55 pmichaud it should work as long as .include works in PIR :-)
23:55 pmichaud it's still a bit painful to try to work constants in.  I'm growing to like sorear++'s pir::cclass::CONSTANT suggestion, though.
23:55 pmichaud er, pasm::
23:56 * darbelo ponders ways to remove some .directives altogether.
23:58 sorear pmichaud: presumably, there would be a set of nqp::CONSTANT values to use with the nqp::op functions
23:58 sorear and they would alias the corresponding pasm::
23:58 pmichaud sorear: yes, I like that also
23:58 pmichaud I like that much better, in fact.
23:58 sorear you would only have to drop down to pasm:: if you're also dropping down to pir::
23:58 pmichaud I'd be far more likely to do nqp::CONSTANT than pasm::....
23:59 dalek TT #1662 created by whiteknight++: Should NameSpace entries be available through a hash-like interface?
23:59 dalek TT #1662: http://trac.parrot.org/parrot/ticket/1662

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

Parrot | source cross referenced