Camelia, the Perl 6 bug

IRC log for #parrot, 2010-05-25

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 tcurtis Tene: any PAST::Node subclass.
00:01 Tene ah, right, reading.
00:20 ruoso joined #parrot
00:23 whiteknight tcurtis: your constant folding pass looks very interesting. Is it tested?
00:25 dalek parrot: r46977 | tcurtis++ | branches/gsoc_past_optimization (2 files):
00:25 dalek parrot: Regenerate manifest.
00:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46977/
00:27 bacek_at_work tcurtis, if you can propose some metadata for storing with ops (inside OpLib PMC?) it can help with various optimisations.
00:27 darbelo joined #parrot
00:31 tcurtis whiteknight: not yet. It works for at least the simple example there, but I don't know if that's true for more complicated PASTs. In addition, it destructively modifies its input(because I haven't yet implemented a way to deeply copy PASTs that doesn't fail for those that refer to themselves).
00:32 whiteknight tcurtis: why would we want non-destructive?
00:33 chromatic I'd operate on branch-at-a-time and return a new branch.
00:33 chromatic ... rather than modify in place.
00:33 gbacon joined #parrot
00:34 bacek_at_work /PAST::Op[ (@pirop = 'add') and (*[1]/@type = 'int') and (*[2]/@type = 'int') ]
00:35 bacek_at_work (Crazy idea for describing matching of subtrees to various optimisations steps)
00:37 tcurtis chromatic: The difficulty with that is when the PAST isn't really a tree.
00:37 bacek_at_work tcurtis, PAST can contain cycles???
00:38 chromatic True.
00:39 tcurtis bacek_at_work: http://nopaste.snit.ch/20638 $P2[2][0][0].'value'() is the same as $P2.
00:45 cotto_work joined #parrot
00:48 kid51 joined #parrot
00:49 tcurtis My current plan is for PAST::Transformer to destructively modify its input and to write something to deeply copy the PASNotReallyATree in case one wants to keep the original PAST around.
00:56 dalek website: Chandon++ | How do threads fit into parrot?
00:56 dalek website: http://www.parrot.org/conten​t/how-do-threads-fit-parrot
00:57 whiteknight tcurtis: I guess I don't understand why we need to save the original tree at all?
00:58 whiteknight optimization is destructive by nature, and it's not exactly an interactive, reversible process
01:00 dalek nqp-rx: 3fcffdb | pmichaud++ | src/ (5 files):
01:00 dalek nqp-rx: Revert regex-interpolation branch changes back to 3ad311, fresh
01:00 dalek nqp-rx: starting point for new approach to regex interpolation.
01:00 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/3​fcffdb77a9eaea129682a7877265a926dbd7da4
01:00 dalek nqp-rx: 183d47b | pmichaud++ | src/Regex/Cursor.pir:
01:00 dalek nqp-rx: Only Regex;Cursor objects end up in the match captures -- others are
01:00 dalek nqp-rx: silently skipped.
01:00 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/1​83d47b33ecbfb8d74a8ee06ec6af5922fbb4dee
01:00 dalek nqp-rx: 655758c | pmichaud++ |  (4 files):
01:00 dalek nqp-rx: Add !INTERPOLATE subrule to Regex::Cursor.  Enable $-sigiled
01:00 dalek nqp-rx: variables from NQP.
01:00 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/6​55758c3a9b9cd95805dc02b61f9eb04916941df
01:00 dalek nqp-rx: 52d3856 | pmichaud++ |  (3 files):
01:00 dalek nqp-rx: Perform array matches, including finding the longest element
01:00 dalek nqp-rx: of an array match.
01:00 whiteknight Chandon: ping
01:00 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/5​2d3856adb3c313c8245738aceae53caae52c295
01:00 dalek nqp-rx: 1b1fe32 | pmichaud++ |  (4 files):
01:00 dalek nqp-rx: Enable regex-based assertions.
01:00 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/1​b1fe328f465497fa32beef174cc50c46795cedc
01:00 dalek nqp-rx: 3e805c7 | pmichaud++ |  (2 files):
01:00 dalek nqp-rx: Fix array-regex interpolation, enable more tests.
01:00 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/3​e805c75288eabf3da019424f79384978be2c141
01:00 dalek nqp-rx: aa182b0 | pmichaud++ | src/NQP/Actions.pm:
01:00 dalek nqp-rx: Refactor codeblock slightly in preparation for interpolated blocks.
01:00 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/a​a182b0627389dd269b0e68a0b7869e239aa6852
01:00 dalek nqp-rx: 43b5e39 | pmichaud++ | src/NQP/ (2 files):
01:00 dalek nqp-rx: Refactor <?{...}> and <!{...}> code assertions to prepare for <{...}>.
01:00 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/4​3b5e396d76d05eef6fd4ba8c38186a4dcee132e
01:00 dalek nqp-rx: 7882ea3 | pmichaud++ |  (3 files):
01:00 dalek nqp-rx: Enable code interpolations.
01:00 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7​882ea3a953b16af0ae4e0ed7a4a7ef90741e414
01:00 dalek nqp-rx: 0e0dbcb | pmichaud++ | src/setting/Regex.pm:
01:00 dalek nqp-rx: Update setting with fix for failing subst expression.
01:00 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/0​e0dbcb29a2aa4c97db69a515bf06533cc940df4
01:00 dalek nqp-rx: f6ae728 | pmichaud++ | src/stage0/ (5 files):
01:00 dalek nqp-rx: Update bootstrap.
01:00 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/f​6ae72801b8a078bbdf25ee6d684a4da1405ff1e
01:01 Chandon whiteknight, Hey.
01:01 whiteknight Chandon: just saw your post. I think I have some answers for you
01:01 kid51 Getting failure in make test:  t/op/stringu.t failed test 33
01:02 whiteknight (nice post, by the way)
01:02 Chandon You want to tell me that pthread_alarm_for_this_thread exists and I get a pony too?
01:03 abqar joined #parrot
01:03 whiteknight not quite
01:03 plobsing whiteknight: non-destructive optimization would be useful if, for example, trying to run multiple optimization strategies on the same tree to determine the optimal strategy
01:03 Chandon rats
01:03 whiteknight in src/ops/*, look for :check_event. Every op with that flag calls the scheduler to run any tasks
01:04 whiteknight mostly in core.ops
01:04 whiteknight or, that's a point when a task/thread switch happens. It doesn't use a timer or signal or anything
01:04 Chandon That sounds useful. How does that handle the long-running-op case?
01:05 whiteknight Next, every interpreter has it's own memory pools and it's own GC. Currently every ParrotThread has it's own interpreter
01:05 whiteknight Chandon: ideally, ops should be small, atomic, and not long-running
01:05 whiteknight ideally
01:05 whiteknight (fairys, unicorns, elves, etc)
01:06 Chandon Any suggestions on a way to pre-empt long running ops?
01:07 * davidfetter throws in some unobtanium skyhooks
01:07 whiteknight I don't know what your green threads will do, but if they also have their own interpreters or TLS, we don't have to stop everything to run GC
01:07 whiteknight Maybe we don't need to preempt long running ops
01:07 whiteknight maybe this could be the carrot that convinces people not to make long-running ops
01:09 Chandon Unfortunately, "call dynamically loaded C function" will always be a long running op, and if I can't pre-empt that then I need to always put it in its own real thread - which isn't optimal.
01:10 Chandon I guess we could just accept that calling a slow computation in C blocks task switches and people should explicitly request a real thread for it, but...
01:11 Chandon If every interpreter has its own GC, then how does sharing data work?
01:11 whiteknight Chandon: every PMC has a link to the owning interpreter
01:11 whiteknight but other than that, we don't currently have a way to safely share data
01:12 whiteknight we used to have a [broken] STM implementation, but that's gone now
01:12 Chandon No, Chandon, it's not that he's bald. That's not a problem at all. It's that his head is on fire.
01:12 whiteknight If GSoC was supposed to be easy, there wouldn't be any money in it :)
01:14 Chandon Sadly, Google has carefully constructed the program to not give combat pay bonuses.
01:15 dalek parrot: r46978 | tcurtis++ | branches/gsoc_past_optimization (3 files):
01:15 dalek parrot: Remove trailing spaces and remove the clone in PAST::Transformer.walk.
01:15 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46978/
01:16 whiteknight Okay, I'm heading to bed now. Was up late last night to watch Lost. Need sleep. Talk to you later
01:16 Chandon Good night.
01:22 ash_ joined #parrot
01:26 dalek website: darbelo++ | Dynamic code points, the grapheme tables and not getting your services denied.
01:26 dalek website: http://www.parrot.org/content/dyna​mic-code-points-grapheme-tables-an​d-not-getting-your-services-denied
01:32 Coke zzz
01:33 darbelo OMG. I'm so boring that just dalek's reports of my writing put people to sleep!
01:35 cotto no they....zzzzzzzzz
01:38 bacek_at_work tcurtis, (sorry for delay) Yeah... OTOH you don't have to deeply clone subtree. You can construct only replacement node and attach existing subtree to it. With little care about replacing "multiple referenced node" it's doable.
01:39 bacek_at_work pmichaud, hey! What about my multis stuff in nqp? :)
01:40 tcurtis bacek_at_work: It's certainly doable. Just a bit trickier than cloning a simple tree.
01:40 pmichaud bacek_at_work: I felt I needed to clean up regex interpolation first, since it got merged to trunk
01:40 bacek_at_work tcurtis, yes. But I don't offer you an easy win :)
01:40 bacek_at_work pmichaud, fair enough.
01:40 pmichaud (and it ended up being a significant departure from how I thought it should look)
01:43 bacek_at_work Chandon, you can switch threads between ops. It's good first cut of approach.
01:51 mikehh kid51: getting the same failure in make corevm/make coretest and make test
01:53 mikehh also getting 17 files failing perlcritic (all with TODO and/or XXX) since I updated to Andy's latest Perl::Critic::Bangs
01:56 kid51 That failure was at r 46977 (last changed rev: 46969)
01:57 hercynium joined #parrot
01:57 nopaste "kid51" at 192.168.1.3 pasted "t/op/stringu.t: failure at r46977" (46 lines) at http://nopaste.snit.ch/20639
01:58 kid51 I hate those [SIGNAL 6] failures
01:59 kid51 NotFound: ping
01:59 kid51 File was last modified at r46930, yesterday.
02:00 Themeruta joined #parrot
02:02 kid51 msg NotFound test you added May 23 to t/op/stringu.t, "join mixed encodings", is failing on linux/i386 at r46977
02:02 purl Message for notfound stored.
02:29 dalek nqp-rx: 890caca | pmichaud++ |  (2 files):
02:29 dalek nqp-rx: Don't interpolate special variables in regexes.
02:29 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/8​90caca1c5bea8267bbdcff65dc802faae77e10e
02:29 dalek nqp-rx: b81ec42 | pmichaud++ | src/stage0/ (3 files):
02:29 dalek nqp-rx: Update bootstrap.
02:29 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/b​81ec42b9a5dafc6a4beed973b83ee2660ace5b2
02:38 dalek parrot: r46979 | pmichaud++ | trunk/ext/nqp-rx/src/stage0 (5 files):
02:38 dalek parrot: [nqp-rx]:  Update bootstrap to latest regex interpolation version.
02:38 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46979/
02:39 khairul joined #parrot
02:40 khairul cotto: ping
02:44 cotto khairul, pong
02:46 khairul want to have that chat now?
02:46 bacek_at_work kid51, (stringu failure) fixed in r46980
02:48 cotto khairul, I still need some time to take a good look at your code.  Let me commit some opsc stuff and I'll ping you when I'm ready.
02:48 cotto I don't think it'll be more than 30m.
02:48 khairul alright sure
02:50 cotto Is everything you have in svn?
02:52 khairul yep
02:52 ash_ joined #parrot
02:52 cotto btw, does this time work well for you in general?
02:53 cotto 11:00 your time?
02:53 khairul its fine actually, so don't worry about it.
02:54 kid51 clock
02:54 cotto I'm just thinking about the future.  It's easier for me to meet earlier, if I know to be ready by then. ;)
02:55 dalek parrot: r46980 | bacek++ | trunk/src/string/api.c:
02:55 dalek parrot: Adjust assert in Parrot_str_join to avoid false positive on buffer exhausting.
02:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46980/
02:55 dalek parrot: r46981 | cotto++ | trunk (6 files):
02:55 dalek parrot: [opsc] add --quiet to ops2c to suppress extra output during the build
02:55 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46981/
02:56 cotto Hopefully it's a sane default to be noisy when someone is running ops2c manually but to be quiet during the build.
02:58 JimmyZ joined #parrot
02:58 bacek_at_work cotto, why not "unless $quite { <calculate_time>; <debug output> }"?
02:58 kid51 bacek_at_work:  Confirmed fixed.  thanks.
02:58 cotto that'd work too
02:59 cotto I felt like making a minimal change.  Using "unless $quiet { ... }" would be clearer.
03:11 cotto parrot-data-structures?
03:11 purl parrot-data-structures is http://github.com/Whitekni​ght/parrot-data-structures
03:12 dalek parrot: r46982 | plobsing++ | branches/ops_massacre (28 files):
03:12 dalek parrot: move sysinfo and some time routines (time itself stays in core) to dynops
03:12 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46982/
03:14 Andy joined #parrot
03:30 plobsing we'd have far fewer ops if we didn't generate so many permutations of const/non-const inputs for seldom used ops
03:32 plobsing and we could avoid that if the PIR compiler could generate additional set_x_xc instructions to make use of the more general-case ops
03:32 janus joined #parrot
03:34 LoganLK joined #parrot
03:38 ash_ plobsing: http://gist.github.com/412727 I have expanded my thoughts to take into consideration the current NCI functionality, does that look better?
03:44 ash_ i think i will send that out to the mailing list for comments, if you think it looks sane
03:45 dalek parrot: r46983 | plobsing++ | branches/ops_massacre/src/dynoplibs/sys.ops:
03:45 dalek parrot: remove C<err> op from dynops (it can't go to dynops)
03:45 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46983/
03:46 plobsing ash_: char has 3 potential signednesses
03:46 plobsing (I'm assuming you're mapping c => char, C => unsigned char)
03:47 plobsing char != signed char. it's weird that way
03:47 ash_ hmm, got ya, my mistake
03:47 plobsing also fixed sizes (eg: uint32) and system sizes (eg: unsigned int) should be disjoint
03:48 plobsing because APIs can require either
03:48 plobsing 2,3,4,5 for pointers are evil and must die
03:48 ash_ I am fine with that
03:49 ash_ http://perldoc.perl.org/functions/pack.html uses ! to mean system "use native size"
03:49 ash_ I could change my modifier for UnManaged vs Managed structs
03:49 plobsing the system I proposed had [INSP] for type and then modifier flags for size
03:50 plobsing eg I4 would be int of size 2**4
03:50 ash_ I4 would be a 16 bit number?
03:51 tcurtis You could use prefix modifiers for signed/unsigned instead of capitalization. That way, signed/unsigned/char  would be consistent with the other types.
03:51 plobsing that's another good point
03:51 ash_ yea, thats true
03:51 plobsing u/+ or u/s for unsigned/signed seems cleaner to me
03:52 plobsing ash_: the hash functionality you're looking for is on a PMC, not on loadlib
03:52 plobsing I beleive it is ParrotLibrary
03:52 plobsing managed/unmanaged also has meaning for strings
03:53 plobsing ie: who owns this string
03:53 cotto ash_, would a struct need to be explicitly declared each time it's used?
03:54 cotto s/declared/defined/
03:55 TiMBuS joined #parrot
03:55 cotto I'm thinking about how nci could be used for PIRATE to load a dynop dll or so and extract op info from it.
03:55 ash_ cotto, Um....  thats a good question, my intention was or struct_from_string to return an instance of the struct
03:56 plobsing I see struct_from_string as a struct constructor (somewhat of a shortcut for "new $P0, [ManagedStruct]\nset_string $P0, 'fmt'"
03:56 ash_ in theory, if you had a string that represented the struct, you could define it as a constant
03:57 cotto an alternative would be to give dynop libraries enough smarts to talk about themselves through a simpler api
03:57 plobsing you can could the constant struct into the PBC const table fairly easily already
03:57 plobsing s/could/cook/
03:58 plobsing cotto: what does the dynops library loading return? can't you put something meaningful into that return value?
03:58 cotto no idea
03:59 plobsing ash_: the problem with using letters for fixed width types is you quickly run out of meaningful pnemonics and run into compiler-specific mismatches
03:59 plobsing it is confusing if my compiler defines int to be 64 bits, but 'i' is 32 bits for fixed width
04:00 ash_ yeah, thats true, in the llvm integers are generic, iN is any number, so i8, i16, i32 or i64 are the normals
04:00 cotto looks like loadlib returns a ParrotLibrary
04:00 cotto not especially useful for introspection
04:01 ash_ I just wasn't sure how far I should diverge from the current definition, I was trying to keep parts of it similar
04:01 ash_ but i do like the generic integer size for ints, its more flexible
04:02 plobsing cotto: you should subclass with ParrotDynopsLibrary IMHO
04:02 cotto interesting idea
04:02 ash_ plobsing: technically you could not have int at all, and make people use values with standard definitions, like short, long, long long
04:02 ash_ or int8, int16, int32, int64
04:02 plobsing ash_: except many apis use int
04:03 plobsing they're wrong IMHO, but I can't go hunting them all down
04:03 ash_ yeah, true
04:03 ash_ so, how about a modifier for 'native type' so like ^i or something means, "int" for whatever you define int as
04:04 sorear joined #parrot
04:05 ash_ how about i switch ! to mean native type like pack, and have ^ mean UnManaged
04:06 plobsing ash_: is there any overlap between things that can be native and things that can be unmanaged?
04:06 plobsing otherwise it doesn't really matter
04:06 ash_ no, but dual definitions can be confusing, but maybe i am over simplifying
04:07 plobsing true enough
04:08 ash_ what about data casts?
04:09 ash_ like, if a value only takes unsigned int32, and you have -123? should that be an error? or a cast?
04:10 ash_ blindly casting that to a unsigned int32 (from a signed int32) is 18446744073709551493 which is kinda a bit of a difference
04:10 plobsing ash_: KISS. don't do extra work.
04:10 plobsing don't warn. do whatever CC would do
04:10 plobsing ie: truncate silently
04:11 ash_ auto-widen but error on narrowing?
04:11 plobsing I'm all for silent failure. layers above NCI will figure out how and what to check
04:11 plobsing or even if it needs checking
04:12 plobsing maybe (as in Rakudo) the system already knows it has a UInt8
04:12 ash_ alright, thats fine
04:14 plobsing not to mention, blind casting is a nifty way to analyse data. "unpack 'C*' pack "N" $_[0]" is nifty when working with IP addrs
04:15 ash_ any other comments or questions? I think i'll email this to the parrot mailing list for some final feedback, but I think it seems like a solid place for starting from for now, i updated the gist a bit, http://gist.github.com/412727
04:17 plobsing looks good overall. put it to the list!
04:17 plobsing ash_++
04:18 ash_ struct_from_string, can you think of any shorter names?
04:18 ash_ i am not being very creative, so i wrote what it does as the op name
04:18 plobsing ash_: I'm not so hot on that. why does it need an op?
04:18 plobsing why can't it just be UnManagedStruct's constructor (going through a normal new)
04:18 ash_ It seemed useful, and consistent with how dlfunc works
04:19 ash_ it doesn't have to be an op, it could be a function somewhere, or a macro, or something, i just wanted it to be consistent with dlfunc
04:19 * plobsing is in the middle of *eliminating* op-bloat. the last thing I want is yet another op
04:19 ash_ yeah, good point
04:20 plobsing ash_: a function would be nice. macros aren't much good to HLL authors and encourage people to write more PIR than they should
04:21 ash_ alright, i'll put it as a function, takes a string, returns a PMC, etc. it can be a simple wrapper for UnManagedStruct (or ManagedStruct)
04:22 plobsing ash_: you have a lot of good ideas that are just a little too high for the baseline NCI functionality. you should consider making a wrapping library.
04:22 plobsing s/high/high-level/
04:23 ash_ yeah, i can work on that after I get the core fixed/modified, let me know when I am going over board here, its hard for me to tell sometimes, since i have a lot more limited experience with parrot
04:24 plobsing ash_: with respect to NCI in general, it is widely accepted as a poor API, so consistency with the existing interface is not so important
04:24 plobsing over board is hard to do there
04:26 ash_ also, i think it would be nice to allow spaces for visual reference between things, internally i'd ignore them, but saying "*^i *(f D)"  to see where thing end and begin I think is helpful
04:28 plobsing ash_: sure. whitespace was reserved for some yet-to-be-determined meaning, but I don't see any way to sanely associate meaning with whitespace
04:28 plobsing (subtle jab at python)
04:29 ash_ \t can be illegal, thats fine :P
04:34 tcurtis plobsing: s/python/almost every programming language/?
04:35 plobsing tcurtis: true, but it is most obvious in python. and I loves me some python bashing
04:36 cotto there's always fortran
04:36 ash_ its late here, heading to bed, night everyone
04:36 plobsing cotto: fortran 90 did away with that
04:41 plobsing fortran is still my goto-language for poor string-handling bashing
04:43 * sorear has returned
04:43 purl Quick, hide!  It's sorear!
04:43 sorear plobsing: moreso than Pascal?
04:43 sorear I've heard lots of fun things abount string handling in (standard) Pascal
04:44 plobsing sorear: fortran requires you to know the lengths of *all* of your strings at compile time. not fun.
04:49 cotto Having reimplemented the code that deals with it, I'm still not certain why we actually need ops.num.
04:50 plobsing kill it! kill it!
04:52 cotto Let's see what happens.
04:53 cotto the only thing that comes to mind is to ensure that all non-experimental ops are explicitly listed somewhere
04:53 cotto either in ops.skip or ops.num
04:54 plobsing except ops.num is generated, so it's only really a check on people adding ops to ask (rather indirectly) whether they want their op in ops.skip or not
04:56 cotto time for it to die then
04:57 cotto I'm just trying to think how what it tried to do can be correctly implemented.
04:58 plobsing ops.skip is for skipping the creation of unecessary const permutations no?
04:58 cotto yes
04:58 plobsing why not let that be the default. most of our ops shouldn't need variants that take consts.
04:59 plobsing with a few tweeks, I should be able to get IMCC to emit set_x_xc\nop_x in stead of op_xc when op_xc is not found
04:59 plobsing it would significantly reduce our op-bloat
05:01 cotto sounds like the imcc tweaks should be implemented first
05:02 plobsing cotto: sure. I'll do it after the ops culling is done (nearly there)
05:03 cotto So what we'd have would be an opsc that generates all op variants without consts by default and has a whitelist for the const ops we want?
05:04 plobsing a flag. eg: ":hot-const"
05:04 plobsing or maybe a flag on the arguments we want const variants for
05:05 cotto but they'd be somehow whitelisted
05:05 plobsing eg: "CONSTABLE INVAR"
05:05 plobsing yes. whitelist
05:05 cotto sounds like a nice chap
05:06 plobsing the default of creating all const permutations of all ops is extremely bloaty
05:07 plobsing when was the last time you used shr_i_ic_i in a tight loop?
05:08 cotto NaN days ago
05:09 plobsing div_n_nc_nc
05:10 plobsing we have 20 subclass op variants
05:19 sorear I've actually used the shr_i_ic_i operation in a tight loop before (in C, not Parrot)
05:19 sorear it's pretty important for bit parallel operations
05:20 sorear also, packed bit vectors
05:20 plobsing sorear: really? if you cared about performance, your optimizer would unroll that
05:20 plobsing to be clear this is "const << x", not "x << const"
05:21 sorear plobsing: you'd use const << x in a garbage collector for managing the mark table
05:21 sorear mark_table[objnum >> 5] |= 1 << (objnum & 31);
05:22 plobsing ok, fair enough. but it certainly isn't a *common* operation.
05:22 plobsing you could always create a dynopslib with the appropriate const alternatives if needed
05:24 sorear and if our JIT is worthy of the name, it will optimize set_i_ic I42 1  shr_i_i_i I19 I42 I27
05:25 plobsing no need for JIT. that's a PIR compiler constant-propagation thing
05:25 plobsing but I suppose JIT could handle it too
05:44 sorear plobsing: well, if we get rid of shr_i_ic_i, the PIR compiler won't be able to do anything
05:51 uniejo joined #parrot
06:02 simcop2387 joined #parrot
06:18 dalek parrot: r46984 | plobsing++ | branches/ops_massacre (21 files):
06:18 dalek parrot: move fdopen, close, getstd$x to dynops
06:18 dalek parrot: note to self: nqp upstream requires fixes for this
06:18 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46984/
06:24 cotto plobsing, there was a recent sync with nqp upstream that fixed some issues affecting ops2c.
06:24 dalek nqp-rx: becdc98 | pmichaud++ |  (2 files):
06:24 dalek nqp-rx: Change tests for isa ['Sub'] to does 'invokable'.
06:24 purl dalek: that doesn't look right
06:24 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/b​ecdc989e972eb4876097c208c6881f86f23498b
06:24 dalek nqp-rx: 0b3416f | pmichaud++ | src/stage0/ (4 files):
06:24 dalek nqp-rx: Update bootstrap.
06:24 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/0​b3416ffa824fc39ecd58788c82afdd89f7bac44
06:25 cotto plobsing, are all those ops that are supposed to become dynops?
06:26 parthm joined #parrot
06:26 plobsing I'm following the comments on TT #449.
06:26 cotto wfm then
06:27 plobsing allison said only print remains. coke ammended to indicate say remains as well
06:27 cotto I'm testing whether I have ops.num properly ripped out of the build process.
06:27 cotto I like say, trivial though it is.
06:27 plobsing I'd like to see it go. 7 ops poorly spent
06:28 plobsing it could easily be a macro
06:28 plobsing .oO( because IMCC does macros and constant propagation soooo well! )
06:28 cotto At least it's useful.
06:29 plobsing it does get used a lot. I'll give it that
06:36 dalek parrot: r46985 | pmichaud++ | trunk/ext/nqp-rx/src/stage0 (4 files):
06:36 dalek parrot: Update nqp-rx bootstrap with check for does 'invokable'.
06:36 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46985/
06:37 JimmyZ_ joined #parrot
06:44 * sorear plays with a gcc checkout
06:45 sorear why does svn have to check out so slowly
06:46 pmichaud to remind us all why we like git.  :-)
06:48 sorear I think there's a market for a svn workalike built on git packfile technology
06:48 sorear Fast, yet idiotproof
06:48 plobsing svn is idiot proof?
06:52 moritz as soon as you invent an idiot proof system, somebody breeds a better idiot
06:52 pmichaud It's those ingenious idiots that are always causing problems.... :)
06:54 cotto I'm tempted to post to parrot-dev before nuking ops.num.
07:03 cotto Actually, that's a good #ps question.
07:05 khairul left #parrot
07:13 iblechbot joined #parrot
07:23 fperrad joined #parrot
07:26 dalek parrot: r46986 | plobsing++ | branches/ops_massacre (21 files):
07:26 dalek parrot: move open, setstd$x, tell, peek, and seek to dynops
07:26 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46986/
07:28 chromatic joined #parrot
07:29 fperrad_ joined #parrot
07:31 dalek tracwiki: v19 | cotto++ | CottoTasklist
07:31 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Cot​toTasklist?version=19&amp;action=diff
07:34 cotto chromatic, what are your thoughts on removing ops.num?
07:35 chromatic Fine with me, as long as we don't have a brown paper bag moment at the next release.
07:36 cotto ?
07:39 sorear gcc 4.6 is doing a suprisingly good job of compiling
07:40 cotto you would expect that from a compiler
07:42 chromatic Presumably ops.num exists for a reason.  If we can provide an alternative, so much the better.
07:44 cotto The ostensible reason is for bytecode compatibility.
07:46 chromatic If, in the future, we have bytecode compatibility, can we invent a better mechanism than ops.num?
07:48 cotto I'd say "once we care about bytecode compatibility, let's invent something that fits the Parrot we have at the time."
07:49 chromatic How likely can we do better than ops.num?
07:50 sorear A format that defines ranges?
07:50 cotto The same information exists in opsenum.h
07:50 sorear 23-34 add i i,ic i,ic # lexicographic
07:51 snarkyboojum joined #parrot
07:52 chromatic If you think we can find something better, I'm all for removing it now.
08:02 viklund joined #parrot
08:04 parthm left #parrot
08:17 dalek parrot: r46987 | plobsing++ | branches/ops_massacre (22 files):
08:17 dalek parrot: move printerr, read, and readline to dynops
08:17 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46987/
08:29 bacek Aloha
08:30 bacek chromatic, (speaking of my GC "refactor" idea) any thought, objections, etc?
08:47 chromatic I'm still fuzzy on step #1.
08:47 chromatic I think I like the idea, but I don't know what goes where and how the API will look.
08:52 bacek I'll try to draft SA API and some kind of flow diagram between Parrot, GC and SA tonight
08:52 bacek Right after dinner.
08:54 bacek .oO( Looks like Rakudo* will target development release of parrot...)
08:56 dalek tracwiki: v5 | bacek++ | BacekTaskList
08:56 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Ba​cekTaskList?version=5&amp;action=diff
09:07 dalek parrot: r46988 | plobsing++ | failed to fetch changeset:
09:07 dalek parrot: move stat to dynop
09:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46988/
09:28 nopaste "bacek" at 192.168.1.3 pasted "chromatic, something like this." (75 lines) at http://nopaste.snit.ch/20640
09:32 bacek msg chromatic http://gist.github.com/412954 - "Perl6 code for GC massacre idea"
09:32 purl Message for chromatic stored.
09:35 ruoso joined #parrot
09:41 dalek parrot: r46989 | plobsing++ | branches/ops_massacre (6 files):
09:41 dalek parrot: fix some tests after removing io ops
09:41 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46989/
10:19 bacek msg chromatic I kind of done with GC/IncrementalGC/TriColourGC "prototype". Check http://gist.github.com/412954
10:19 purl Message for chromatic stored.
10:22 JimmyZ bacek: Do you mind if I paste it to trac?
10:22 bacek JimmyZ, gist?
10:22 JimmyZ yes
10:23 bacek Refresh it and then copy
10:23 bacek Link from GCMassacre (or just on GCMassacre page)
10:26 bacek afk # dinner.
10:34 khairul joined #parrot
10:38 lucian joined #parrot
10:38 dalek tracwiki: v2 | jimmy++ | GCMassacre
10:38 dalek tracwiki: add GC/IncrementalGC/TriColourGC prototype
10:38 dalek tracwiki: http://trac.parrot.org/parrot/wiki/G​CMassacre?version=2&amp;action=diff
10:48 bacek JimmyZ, thanks
10:48 bacek !
10:49 JimmyZ NP :)
10:51 bacek Someone have extend pygments to support Perl6 syntax highlighting...
10:54 bacek have to
11:03 aukjan joined #parrot
11:19 bacek Here we go - "Incremental, tri-colour, non-recursive mark&sweep" :)
11:29 dalek tracwiki: v3 | bacek++ | GCMassacre
11:29 dalek tracwiki: Add "Non-recursive, tri-colour, incremental mark and sweep." proto
11:29 dalek tracwiki: http://trac.parrot.org/parrot/wiki/G​CMassacre?version=3&amp;action=diff
11:44 moritz hey, what's the state of non-blocking sockets in parrot?
12:04 bacek moritz, "specced" I suppose...
12:04 dalek tracwiki: v4 | bacek++ | GCMassacre
12:04 dalek tracwiki: Describe how PoolAllocator can work
12:04 dalek tracwiki: http://trac.parrot.org/parrot/wiki/G​CMassacre?version=4&amp;action=diff
12:08 parthm joined #parrot
12:09 dalek parrot: r46990 | fperrad++ | trunk/runtime/parrot/library/LWP/Protocol.pir:
12:09 dalek parrot: [LWP] refactor _parse_response_content
12:09 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46990/
12:21 dalek tracwiki: v5 | bacek++ | GCMassacre
12:21 dalek tracwiki: Change description slightly
12:21 purl dalek: that doesn't look right
12:21 dalek tracwiki: http://trac.parrot.org/parrot/wiki/G​CMassacre?version=5&amp;action=diff
12:21 dalek tracwiki: v6 | bacek++ | GCMassacre
12:21 dalek tracwiki: Minor changes
12:21 dalek tracwiki: http://trac.parrot.org/parrot/wiki/G​CMassacre?version=6&amp;action=diff
12:30 iblechbot joined #parrot
12:38 dalek tracwiki: v7 | bacek++ | GCMassacre
12:38 dalek tracwiki: Split code into chunks to simplify in-page navigation
12:38 dalek tracwiki: http://trac.parrot.org/parrot/wiki/G​CMassacre?version=7&amp;action=diff
12:38 dalek tracwiki: v8 | bacek++ | GCMassacre
12:38 dalek tracwiki: http://trac.parrot.org/parrot/wiki/G​CMassacre?version=8&amp;action=diff
12:39 ruoso joined #parrot
12:40 Coke purl, msg plobsing I have concerns about the amount of stuff that's getting moved to dynops. Please make sure that devs have a chance to review the list before it gets merged back to trunk, especially since those "op or dynop" "pmc or dynpmc" tickets can generate some controversy in the first place. Thanks!
12:40 purl Message for plobsing stored.
12:41 iblechbot_ joined #parrot
12:41 bacek Coke, c'mon! Everything is dynop in Lorito world! :)
12:53 bkuhn joined #parrot
13:02 * Coke wonders if we still have any C# or mono folks about.
13:02 Coke (users, not devs)
13:02 arnsholt I've used C
13:02 arnsholt #, but not much
13:03 bacek Coke, erm... Why do you need them?
13:03 Coke looking at it for a specific 3rd party library at work. trying to rule out mono as a potential platform for this project.
13:03 Coke nothing parrot related, I just know smart people hang out here. =-)
13:03 arnsholt Probably can't help you there. Only thing I really know about in that area is C#/Prolog integration =)
13:04 arnsholt (And the answer is "just say no")
13:04 moritz Coke: diakopter in #perl6 might know
13:09 Coke moritz: oooh, good point. I will pounce on him when I see him.
13:09 Coke it is a nice change from hacking on CFMX, though. =-)
13:09 moritz wtf is CFMX?
13:09 purl CFMX is, like, cold fusion (the php-ish kind, not the nuc-u-lar kind)
13:09 moritz ah
13:10 JimmyZ joined #parrot
13:10 whiteknight joined #parrot
13:12 mikehh perlcritic fails on 17 files (out of 599) -all TODOs and/or XXXs
13:12 mikehh all other tests PASS (pre/post-config, make corevm/make coretest, smoke (#34048), fulltest) at r46990 - Ubuntu 10.04 i386 (g++)
13:12 mikehh t/pmc/packfile.t - TODO passed:   34 in make coretest, smoke, testb, testf and testr
13:12 mikehh t/op/exit.t - TODO passed:   6 in testf
13:12 mikehh the TODO passes do not pass on amd64
13:13 davidfetter joined #parrot
13:15 bacek Coke, can you check parrot-dev@ mail queue? My message about GCMassacre didn't hit (yet...)
13:15 khairul joined #parrot
13:15 Coke I thought I saw it.
13:15 Coke yup, it's there.
13:16 bacek Ah, good.
13:17 bacek hmm... It's not my inbox...
13:22 atrodo joined #parrot
13:26 tewk Working on a generational, compacting GC I've found that the following additional information useful:
13:26 tewk 1. alloc_atomic() or alloc_no_interior_pointers(),
13:26 tewk 2. alloc_unmovable()  - some things are not going to movable by the compactor, ie allocation shared with c libraries.
13:26 tewk 3. knowing the type of an allocation and being able to tag the allocation with that type is very useful in tracing print outs, when debugging compaction.
13:33 bacek tewk, (1) isn't quite useful in pure-parrot world. We have precise GC. ( Based on Boehm-in-parrot experience)
13:33 bacek (2) Usually done via pin/unpin in VM side
13:34 bacek (3) Can you explain little bit more?
13:38 gbacon joined #parrot
13:45 baest joined #parrot
13:48 whiteknight bacek: our GC isn't really precise. We do still walk the stack
13:48 whiteknight In pure parrot, if we never recursed runloops we could make that problem go away
13:48 NotFound Has someone thinked about all the problems we're going to have if moving a lot of basic stuff to dynops?
13:49 whiteknight or, if we changed our coding practices to explicitly anchor PMCs created on the stack
13:49 bacek whiteknight, it is precise. trace_root check potential pointers to be PObj
13:50 whiteknight bacek: but doesn't guarantee that those pointers are PObj, just that they "look like" valid pointers
13:50 NotFound whiteknight: anchor to what?
13:51 bacek whiteknight, hmm... "look like" and "really allocated pointer"
13:51 whiteknight NotFound: to anything. It doesn't matter, so long as there is a single place that we can go to look for valid pointers
13:51 whiteknight bacek: I'm sure there are few false positives, but it is possible to have false positives
13:52 bacek whiteknight, yes. But our GC is not conservative
13:52 NotFound whiteknight: it matters, must be something able to be freed if exception handling unrolls the C stack.
13:53 mikehh joined #parrot
13:53 whiteknight NotFound: so imagine that it is whatever you need it to be for that application
13:53 bacek Anyway, it's almost Tomorrow already
13:53 bacek night
13:54 NotFound whiteknight: If I must track my allocations I hardly can qualify the system as "Garbage collected"
13:55 whiteknight NotFound: the only thing that I'm saying we would need explicit anchoring for are PMCs that are created on the C stack and not anchored anywhere else in the object graph
13:55 whiteknight it's a small subset of items
13:56 whiteknight We could anchor them by creating extra space in the Parrot Context structure, and when we unwind the context the anchored items go with it.
13:56 whiteknight like temporary registers
13:58 NotFound The problem is that the context and the C stack are no directly related.
14:00 Andy joined #parrot
14:03 whiteknight NotFound: true
14:03 whiteknight There are lots of problems
14:03 whiteknight but one big problem is that PMCs on the C stack are not anchored, so we need to walk the stack
14:04 whiteknight We can probably fix that through a combination of improved coding practices and adding in some kind of PMC registry where they can be manually managed
14:04 whiteknight we have temporary PMCs now that are managed manually, so it's not a big stretch
14:04 NotFound whiteknight: we have such registry, but the problem is exception safe unregistering.
14:05 whiteknight The context and the C stack are not directly related, but at any given point the two can't just change independently
14:05 whiteknight in a single C function the parrot context is constant unless we explicitly change it
14:06 whiteknight we know where changes to the C stack (function boundaries) and the Parrot context tree (context push/pop) occur, and we can code around it
14:06 NotFound whiteknight: we don't know that, we use longjmp
14:06 whiteknight and we know where we use longjmp
14:06 whiteknight there are no surprises, we can trace the code visually with ease
14:07 whiteknight If I create a PMC on the C stack, I know what it's expected lifetime will be and where it needs to be anchored
14:07 ruoso_ joined #parrot
14:07 NotFound whiteknight: good luck doing that.
14:07 whiteknight Like I said, there are very few outstanding cases
14:08 whiteknight You can turn off stackwalking in Parrot and it will probably still build and might even pass all tests
14:08 whiteknight it is not common, so it shouldn't be hard to kill the rest of the instances
14:08 NotFound whiteknight: try it.
14:08 whiteknight maybe I will
14:09 NotFound Well, passing tests is probably easy, I've find lots of things to break parrot while passing all tests.
14:09 whiteknight I know Rakudo uses at least one unanchored PMC, it was causing problems for them in the past
14:09 whiteknight NotFound: so we need more tests
14:10 NotFound whiteknight: yes, I've added some tests for very basic features last week because of that type of things.
14:10 whiteknight I saw the unroll opcode, very nice
14:10 NotFound But the point is that for GC related things passing tests is almos nothing. Most tests have a very short life.
14:13 whiteknight true
14:13 jsut joined #parrot
14:14 whiteknight but that doesn't change the point: there are very few unanchored PMCs we need to worry about on the C stack, it should be possible to eliminate them entirely
14:15 whiteknight replace them with temporary PMCs if they are only used on the C stack, or anchor them in the context, or register them, or whatever
14:15 NotFound A mixed scheme may work: have some sort of registry in the context, but marking each item with his corresponding runloop. Then stack unrolling and runloop ending can look at it and clean the abandoned ones.
14:16 NotFound But it may be costly in execution time.
14:36 snarkyboojum joined #parrot
14:37 pmichaud darn, bacek++ left
14:37 pmichaud I have a question for parrot core designers
14:37 Xaero joined #parrot
14:38 pmichaud currently, the CallContext PMC allows us to use the get_attr_string interface to inspect attributes such as outer_ctx, caller_ctx, etc.
14:38 pmichaud any objections or concerns if I were to do a similar thing with the Sub PMC, so that we can inspect its attributes also?
14:40 NotFound pmichaud: +1 for me
14:43 NotFound pmichaud: or maybe will be better to add a generalized way to inspect all attributes, like the Default get_attr_string.
14:43 NotFound Thus avoiding reimplementting that functionality in a lot of PMC.
14:43 pmichaud maybe, but I'm happy to copy the pattern from CallContext for now
14:44 pmichaud someone can refactor it a bit later
14:45 NotFound pmichaud: Have you tried to use unroll in nqp or rakudo?
14:45 pmichaud NotFound: not yet, but I may come up with an important use-case in nqp very soon.
14:45 pmichaud is it in trunk now?
14:45 NotFound pmichaud: yes, and in the release.
14:45 pmichaud outstanding.  NotFound++
14:46 pmichaud Yesterday I came across a place where I thought "unroll might work here", but had to get onto another tasks
14:47 NotFound I'm using it in winxed without any problem, but winxed has no HLL maps and I have very few uses of vtable overrides.
14:48 NotFound So the problematic points aren't well tested.
14:48 NotFound Tested in reality, I mean. Simple tests works.
14:53 bubaflub joined #parrot
14:56 ash_ joined #parrot
15:07 dmalcolm joined #parrot
15:09 Coke pmichaud: seems reasonable to me.
15:09 pmichaud I waffle a bit, though, because Sub PMC has a lot of older-style   get_* methods defined on it
15:10 pmichaud e.g.   METHOD get_outer();    METHOD get_namespace(), etc.
15:10 pmichaud anyway, I think I'll work around the problem for now.
15:11 Coke adding another get_foo that pokes at an attribute is probably the easiest thing to do.
15:12 Coke but if you need the change, let us know (or go ahead and slap an experimental method in)
15:14 * Coke notes that plobsings name is an anagram for "peering lobster"
15:14 IllvilJa joined #parrot
15:14 Coke or "peeing lobster", depending. ;P
15:16 whiteknight pmichaud: I would suggest that we deprecate all those methods and use the introspection interface for all these things
15:17 pmichaud whiteknight: there's also the question of "which introspection interface"  :-P
15:17 pmichaud because we also have the 'inspect' opcode
15:17 Coke the problem I have with that is that we then have to pass in a string arg to get info back.
15:17 Coke the inspect opcode is a mess.
15:17 Xaero left #parrot
15:17 moritz and "will we have this in place in the June release?"
15:18 Coke moritz: is star targeting the dev release of June or the stable release of may?
15:18 pmichaud I don't have too much of an issue with using a string arg.  It's still likely less overhead than the method call :-)
15:18 whiteknight I can never keep straight in my head what inspect and inspect_str are supposed to do
15:18 pmichaud release of June
15:18 Coke pmichaud: ... an excellent point.
15:19 Coke whiteknight: last time I asked, I think it was "pmc's choice"
15:19 whiteknight damnit
15:19 Coke that we basically didn't have an api. ask, if you get it, great, if not, meh.
15:19 pmichaud we've added some things to Parrot since May that are needed to run (e.g., regex interpolation support)
15:19 whiteknight I think, at least for core pmcs, that it should become a lot more regular
15:19 Coke I could be miscasting the memory.
15:19 pmichaud also, Parrot doesn't have "stable releases"  :-P
15:19 pmichaud and May wasn't one anyway.
15:20 pmichaud .oO(  A "stable release"  is when you open the barn door and let all of the horses out )
15:20 Coke I know it's supported, but I pretty much /always/ type stable instead. :P
15:21 Coke (and I'm the one that fixed up the website. :P)
15:21 pmichaud anyway, we'll have to go after the June release
15:21 Coke keep calling me on it, It'll correct eventually. =-)
15:21 pmichaud otherwise no REPL and no regex interpolation
15:21 pmichaud +1 to consistent inspection interfaces
15:21 Coke pmichaud: WFM. those are big wins.
15:26 dalek nqp-rx: c69f6f6 | pmichaud++ | src/Regex/Cursor.pir:
15:26 dalek nqp-rx: Avoid "Cannot take substr outside of string" exceptions on interpolated literal
15:26 dalek nqp-rx: matches.
15:26 purl matches are a classic way to remove fart smells
15:26 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​69f6f6c9c4f65302fabaf6a33b3409ab17eb418
15:26 dalek nqp-rx: 64ff6a1 | pmichaud++ | src/stage0/ (4 files):
15:26 dalek nqp-rx: Update bootstrap.
15:26 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/6​4ff6a14dcd6d1ed773ace42d92abf7a2034e5be
15:33 whiteknight purl forget maches
15:33 purl whiteknight, I didn't have anything matching maches
15:33 whiteknight purl forget matches.
15:33 purl whiteknight: I forgot matches
15:33 whiteknight damn straight you did
15:36 whiteknight Parrot_sprintf_format should probably be rewritten to take advantage of StringBuilder
15:40 davidfetter joined #parrot
15:41 Coke ... "once upon a time %P existed, but we still need to support the old form" ... ORLY?
15:45 dalek parrot: r46991 | pmichaud++ | trunk/ext/nqp-rx/src/stage0 (4 files):
15:45 dalek parrot: [nqp-rx]:  Update bootstrap with fixes for substr-beyond-end-of-string.
15:45 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46991/
15:56 hercynium joined #parrot
16:12 dalek rakudo: d034418 | pmichaud++ |  (8 files):
16:12 dalek rakudo: Revert "Regex Interpolation"
16:12 dalek rakudo: This reverts commit b9f260d67840c2013c4abbc90491bea52533142b.
16:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​0344186acd78d3dea9aed52acf879b073398e2d
16:12 dalek rakudo: 3362b1a | pmichaud++ | src/Perl6/ (2 files):
16:12 dalek rakudo: Refactor <codeblock>-related assertions.
16:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​362b1aa47a5afced72dc3f03422c02d2e6a4854
16:12 dalek rakudo: f9a12d2 | pmichaud++ | src/Perl6/ (2 files):
16:12 dalek rakudo: Add variable assertions.
16:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​9a12d2e7c714d0a8a2be2f709bea7140127a4b0
16:12 dalek rakudo: a48d4df | pmichaud++ | build/PARROT_REVISION:
16:12 dalek rakudo: Bump PARROT_REVISION to get nqp's "does invokable" fixes.
16:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​48d4df516dff83112790ca3cb04676a3f4bdf4f
16:12 dalek rakudo: 263a905 | pmichaud++ |  (4 files):
16:12 dalek rakudo: Interpolate bare variables; refactor regex interpolation to !MAKE_REGEX.
16:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​63a905d5756dfc06b167aa8edb423469b887d85
16:12 dalek rakudo: ccc1a9c | pmichaud++ | src/Perl6/Grammar.pm:
16:12 dalek rakudo: Don't treat $0, $1, etc. as normal variable interpolations.
16:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​cc1a9c1475ffcf23cc047634d882e9627e3b8da
16:12 dalek rakudo: 6f55b57 | pmichaud++ | src/glue/regex.pir:
16:12 dalek rakudo: Rakudo arrays don't pir::does('array'), so use Rakudo's normal list mechanisms
16:12 dalek rakudo: when performing regex assertions.
16:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​f55b57da410d4617e49bc40b73343d244662388
16:12 dalek rakudo: 52a1375 | pmichaud++ | build/PARROT_REVISION:
16:12 dalek rakudo: Bump PARROT_REVISION to get latest regex interpolation fixes.
16:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​2a13759e192480471d0d1424aaf131ad7fc2f9d
16:12 parthm joined #parrot
16:18 Mokurai joined #parrot
16:20 simcop238 joined #parrot
16:25 parthm left #parrot
16:25 clinton joined #parrot
16:26 patspam joined #parrot
16:28 theory joined #parrot
16:35 dalek parrot: r46992 | NotFound++ | trunk/src/pmc/exception.pmc:
16:35 dalek parrot: [cage] unify common parts of set/get attrs in Exception PMC
16:35 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46992/
16:53 cotto_work joined #parrot
16:55 snarkyboojum joined #parrot
17:06 ruoso_ joined #parrot
17:08 cotto_work good day, parrots
17:08 ash__ joined #parrot
17:14 * moritz chirps
17:16 * sri cooks moritz
17:17 * moritz escapes the cooking pot and chirps louder than before
17:34 cotto_work http://google-opensource.blogspot.com/2010​/05/google-summer-of-code-2010-coding.html - alright all you slacker students, let's see some code.
17:34 plobsing_work joined #parrot
17:35 whiteknight yay!
17:54 chromatic joined #parrot
18:18 atrodo How do I convert a Parrot_String into a c-string when I'm embedding parrot?
18:18 chromatic Parrot_string_to_cstring
18:22 atrodo Parrot_str_to_cstring is in parrot/string_funcs.h, is that okay to be including from an embedded app?
18:22 gbacon joined #parrot
18:24 chromatic The function yes.  We need to move its declaration, or at least include a similar declaration in the proper header file.
18:24 atrodo Okay.  I'll include it for now.  Thanks.
18:24 tcurtis joined #parrot
18:29 whiteknight we really do need to go through the embedding API at some point with a fine-toothed comb
18:30 bubaflub whiteknight: should we open a ticket or a wiki page to track such things?
18:30 whiteknight yes, that would be an excellent idea
18:31 bubaflub perhaps a wiki-task list would be best suited as it doesn't seem like a one off kind of fix
18:31 bubaflub (nor would we need tests to close the ticket)
18:31 Chandon What's an event?
18:31 purl hmmm... an event is triggered by a fifo call from another process which sends 0 or 1
18:35 bubaflub atrodo: since you're in the embedding guts, could you make a wiki page to track areas where the API could be improved? looks like ticket #1636 already has one example.
18:36 atrodo bubaflub> I can do what I can
18:37 atrodo errr, I can try to do what I can
18:37 bubaflub tautology!
18:37 purl tautology is something that is tautological or inherently true, given the laws of identity and non-contradiction. or phx = pdx or "this wikipedia entry is INSANE!"
18:37 bubaflub atrodo++
18:38 Andy Wow, all the Ops::* stuff disappearing
18:40 hercynium joined #parrot
18:41 NotFound The way to improve the API is easy: create it X-)
18:41 NotFound We don't even have PARROT_API defined.
18:43 whiteknight Chandon: what do you mean? Where do you see "Event"?
18:43 whiteknight purl forget event
18:43 purl whiteknight: I forgot event
18:44 Chandon whiteknight: I'm in src/runcores/main.c looking at Parrot_setup_event_func_ptrs. I see stuff being added to the ops table, which is boring, but "event" sounds interesting.
18:45 whiteknight Chandon: oh. I think "event" there is sort of a general name for objects that the scheduler manages (Tasks, Timers, Threads, etc)
18:45 smash_ joined #parrot
18:45 Chandon whiteknight: What does "Task" mean right now?
18:46 smash_ hello everyone
18:46 atrodo Looks like "Parrot_compile_string" doesn't do what I think it does
18:47 whiteknight Chandon: Check out src/pmc/task.pmc
18:47 whiteknight Chandon: I can't remember if Task is it's own thing, or if it's the abstract parent type of Timer/Thread
18:48 whiteknight I think it represents a bit of execution which happens separately from the main control flow but not necessarily in it's own thrad
18:48 whiteknight thread
18:49 Chandon That would be nice, depending on how much it does.
18:51 davidfetter joined #parrot
18:52 Coke atrodo: what do you think it does?
18:53 atrodo Coke> I was expecting/hoping that i could specify a HLL name as the compiler
18:54 clinton joined #parrot
18:55 NotFound atrodo: it only allows pir or pasm.
18:55 Coke I would recommend starting with some PIR and then backtracking that to C if you need it.
18:56 Coke you want $P0 = compreg 'Tcl'; $P1 = $P0.'compile'("puts hi"); $P1(), or something more like that.
18:57 atrodo Yep, that's what I want.  I have strings of HLL code that I want to execute
18:58 atrodo I was hoping I didn't have to do the PIR dance to make that happen
18:59 Coke you can do it in C.
18:59 Coke that will point you at the right C.
19:00 Coke anyone want cheap karma? rerun tools/dev/faces.pl and update http://trac.parrot.org/parrot/wiki/ParrotFaces
19:01 atrodo Coke> I don't follow.  I blame my parrot newbie status
19:02 atrodo Are there c equivalant calls that I can make to do that?
19:03 Coke atrodo: yes. the opcodes are just written in C.
19:03 Coke for example, compreg is just:
19:03 Coke PMC * const compreg_hash = VTABLE_get_pmc_keyed_int(interp,
19:03 Coke interp->iglobals, IGLOBALS_COMPREG_HASH);
19:03 Coke $1 = VTABLE_get_pmc_keyed_str(interp, compreg_hash, $2);
19:04 Coke which gets the global COMPREG hash, then queries it for the PMC for the HLL you're after.
19:04 Coke (where $1 is the first arg to the opcode, etc.)
19:04 Coke so $P0 = compreg 'Tcl' is really compreg $P0, 'Tcl', so $P0 is set to the result of that lookup.
19:05 smash joined #parrot
19:05 Coke ops are defined in src/ops/*.ops
19:05 atrodo Ah, now I understand.  Coke++
19:05 Coke g'luck.
19:11 khairul joined #parrot
19:23 dalek parrot: r46993 | Util++ | trunk/t/op/inf_nan.t:
19:23 dalek parrot: [t] TT #1302 - Changed todo() to skip() for tests that must currently remain commented out - patch by bubaflub++
19:23 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46993/
19:24 clinton joined #parrot
19:30 dukeleto tcurtis++ # nice #ps report
19:31 moritz chromatic: ping
19:31 chromatic pong
19:32 moritz chromatic: regarding the Perl 6 book... do we have a deadline? :/
19:32 chromatic June 7, to get printed copies to YAPC::NA.
19:33 moritz that's tough
19:33 chromatic We can use PDFs there though; that's workable.
19:33 chromatic Yeah.
19:33 moritz speaking of PDFs... did you see my pull request on github for the latex converter?
19:34 chromatic I did, it looked sane.
19:40 dalek parrot: r46994 | tcurtis++ | branches/gsoc_past_optimization (4 files):
19:40 dalek parrot: Add pastcompare.pir for testing the produced PASTs and update
19:40 dalek parrot: pasttransformer.t to use it.
19:40 dalek parrot: Also fix a bug in PAST::Transformer regarding deleting nodes.
19:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46994/
19:40 dalek parrot: r46995 | NotFound++ | trunk/src/pmc/exception.pmc:
19:40 dalek parrot: more cleaning of Exception PMC, and provide a way to get birthtime attribute TT #1455
19:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46995/
19:41 lucian_ joined #parrot
19:48 joeri joined #parrot
19:49 allison joined #parrot
19:51 dukeleto allison: hello
19:52 dalek rakudo: baebe1f | moritz++ |  (2 files):
19:52 dalek rakudo: make Hash.delete($one_item) return that item (and not a list of items)
19:52 dalek rakudo: Fixes RT #68482. Inspired by patrickas++
19:52 dalek rakudo: Also adds three more test files (of which two are unrelated)
19:52 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​aebe1fa18aa821503c38916331c514e52e413e6
19:52 allison dukeleto: hi
19:57 dukeleto allison: any clue about http://trac.parrot.org/parrot/ticket/1656 ?
19:58 dalek TT #1656 created by dukeleto++: Embed API cannot find core PBC or PIR files
19:58 dalek TT #1656: http://trac.parrot.org/parrot/ticket/1656
20:01 NotFound dukeleto: see my comment
20:04 dukeleto NotFound: thanks. i was following the docs in embed.pod . i will update those
20:05 dukeleto NotFound: is there a way to get the parrot_config obj file info from pkg-config ?
20:06 NotFound dukeleto: examples/embed/Makefile is the best way I've found.
20:07 allison dukeleto: looking
20:08 dukeleto allison: i think NotFound has given me the info I need. docs/embed.pod needs to be updated with what he told me, which I will do
20:09 NotFound allison: please take a look at http://notfound.posterous.com/the-unroll-opcode
20:09 allison NotFound: ok
20:10 mikehh #ps in 20
20:12 allison NotFound: in general it sounds like something we've been talking about for a while for exceptions
20:13 NotFound allison: yes, we discussed that approach several times.
20:13 allison NotFound: I'd be concerned about making it any more general-purpose than that, though, since the runloops will completely change with Lorito
20:13 allison NotFound: in theory, you won't even have inferior runloops at that point
20:14 allison NotFound: so, maybe a name that makes it clear that the feature is related to exceptions? like handle_eh
20:14 allison (though, I hate the _eh suffix)
20:14 NotFound allison: the opcode semantic can be easily without affecting his usage, or even mae it a noop while deprecating. In the meantime, it allows things to work more reliably.
20:14 Coke NotFound: should your blog be on the parrot planet?
20:15 NotFound allison: pmichaud said that maybe he can use this approach for some problem with continuations, so I use a non eh related name to keep the door open.
20:15 allison NotFound: aye, I'm just saying we should name the opcode by it's purpose, not by one coincidental side effect of it's purpose
20:16 NotFound Coke: I looked for a way to get a posterous rss liimited to things marked with some tag, but failed.
20:17 NotFound And I post a lot of foolsihness that don't fit well in parrot planet.
20:17 Coke NotFound: k
20:21 Chandon darbelo: What breaks if someone tries to DOS a shared grapheme table and inserts a million entries?
20:21 NotFound allison: I'm not sure what purpose pmichaud had in my mind, I'll ask him and try to find a better name.
20:22 allison NotFound: sounds good. It may be just a temporary hack that goes away when inferior runloops go away. hard to tell without the details
20:23 darbelo Chandon: The grapheme table has a max size. If it's full (In the global case) You can't recode strings into NFG that need a character not on the table.
20:24 NotFound allison: not sure about that, even with lorito if we allow to reenter parrot from native code and don't limit exceptions propagation we'll have the same problem, even if a lot less frequent,
20:25 darbelo There are potentially infinite graphemes. And we have to put them into a finite space, if we let one guy gobble all the space, we are screwing over all of the others..
20:25 darbelo That reminds me...
20:25 darbelo allison: did you get a chance to look at the ucs4_encoding branch?
20:26 allison darbelo: I just saw your message 5 minutes ago, will take a look
20:26 GeJ Good morning everyone.
20:27 bacek Good morning, humans.
20:27 * bacek is trying to wake up...
20:27 cotto_work hi, southern hemisphere dwellers
20:27 * Coke asks his irssi tech support how to get to a window > 9 with ESC. =-)
20:28 PerlJam esc-0 == window 10
20:28 PerlJam esc-q == window 11
20:28 pmichaud I always just use alt+letter
20:28 pmichaud so, alt+w gets me to window 'w'
20:28 pmichaud (after using 0-9, my irssi continues with 'q', 'w', 'e', 'r', etc.
20:28 Coke what is window 'w' ?
20:28 Coke ah.
20:28 PerlJam esc-X is the same as alt-X (for some X) on my system.
20:29 cotto_work #ps in 1
20:29 chromatic Last call for #ps reports
20:29 darbelo allison: Not a problem, it's just what the name says it is :). But since it's useful for parrot independetly of NFG I figured I would give it's own branch so it can be merged independently.
20:30 Tene I have an irssi module that shows windows with activity in the status bar, identified by their hotkey letter.
20:30 Tene I think I bound even more hotkeys than were set by default, but I don't use so many channels anymore.
20:30 particle i wonder if that detects dvorak.
20:30 allison darbelo: yes, that makes a great deal of sense
20:30 Tene Coke: "/bind" will show you the full set of your hotkeys.
20:31 Tene adv_windowlist is the script I use, but I remember that I needed to configure it a little bit.
20:31 dalek TT #1656 closed by dukeleto++: Embed API cannot find core PBC or PIR files
20:31 dalek TT #1656: http://trac.parrot.org/parrot/ticket/1656
20:32 darbelo Right now I can merge that to trunk and rebranch for NFG, or make a fresh branch and just pull us4 there, so it's not a blocker. But I'd like to get it merged into trunk.
20:39 NotFound darbelo: merge it and mark as experimental, to be on the safe side.
20:40 Util does NQP have some form of s/// (regex substitution)?
20:40 pmichaud Util:    $val.subst( /pat/, 'repl' )
20:40 darbelo NotFound++ # I hadn't thought of that.
20:40 Util pmichaud: thanks
20:41 pmichaud or   $val.subst( /pat/, 'repl', :global )
20:42 darbelo It's self-contained enough that it won't break anything that doesn't use it explicitly.
20:42 dalek rakudo: 2404007 | pmichaud++ |  (2 files):
20:42 dalek rakudo: Add /&var/ and /<&var>/ regex interpolation syntax, and enable tests.
20:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​40400772a8c5f4491760fc05be95db5c37ba281
20:42 NotFound darbelo: yes, I think so, so experimental is the appropiate way.
20:44 bacek pmichaud, http://nopaste.snit.ch/20620 - nqp-rx bug.
20:45 pmichaud bacek: I'd need to see the grammar being used to parse
20:46 bacek pmichaud, github.com/bacek/pir/src/PIR/Compiler/Grammar.pm
20:46 NotFound pmichaud: have you read the 'unroll' name discussion a few lines up?
20:47 sorear After about 5 hours, gcc 159808 has failed to compile
20:47 sorear Who here was it who was playing with Parrot on gcc 4.6?
20:47 bacek pmichaud, http://github.com/bacek/pir/blob/m​aster/src/PIR/Compiler/Grammar.pm actually
20:47 sorear What is a working (SVN rev, configure options) tuple?
20:47 dalek parrot: r46996 | mikehh++ | trunk/src/pmc/exception.pmc:
20:47 bacek sorear, Andy
20:47 dalek parrot: fix codetest failure - tabs in leading whitespace
20:48 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46996/
20:48 Andy ?
20:48 sorear It fails at the very end with a stage2/stage3 comparison error
20:48 pmichaud bacek: I'm guessing it has something to do with hash ordering in a protoregex table somewhere.
20:48 sorear 159808, --enable-gold=both --enable-lto --program-suffix=-snapshot-159808 --disable-werror
20:48 bacek Andy, did you try gcc 4.6?
20:48 Andy on what?
20:48 sorear i386
20:49 bacek pmichaud, yes. I suspect this one too. But replacing Hash with OrderedHash in proto-regexes brake NQP
20:49 pmichaud well, hash ordering shouldn't really matter
20:49 Andy Just in general?  Yes, I'm using GCC 4.6
20:49 pmichaud you might try parsing with <?DEBUG> somewhere in your grammar
20:50 sorear Andy: what rev and how did you configure it?
20:50 Andy sorear: Are you having problems building it?
20:50 bacek pmichaud, any examples how to use it?
20:50 Andy Where is this going?
20:50 sorear Andy: yes
20:50 bacek pmichaud, or just put into rule?
20:51 sorear I tried 159808.  FTBFS.
20:51 pmichaud bacek: it turns on regex tracing for that rule (and any subrules it invokes)
20:51 Andy gcc-4.6-20100515.tar.bz2
20:51 pmichaud for such a short source program, you could just add it to the beginning of TOP
20:51 Andy ./configure \
20:51 Andy --prefix=/var/gcc46 \
20:51 Andy --enable-languages=c,c++ \
20:51 Andy that's all I have
20:51 bacek pmichaud, ok, thanks. I'll try it after #ps.
20:51 sorear Andy: thank you, I'll try that
20:52 Andy left #parrot
20:52 Coke (hash ordering shouldn't matter) I had issues with that in partcl-nqp, (still do) which is why the hash seed stuff was added. ISTR alternations were stored in a hash, so without LTM, you didn't always  match the same thing first.
20:52 Andy joined #parrot
20:53 bacek pmichaud, what about nqp multis? (And I already want traits parsing :)
20:53 * sorear wonders why a SVN checkout of gcc is >1GB
20:53 pmichaud bacek: it's on my queue
20:54 pmichaud bacek: unfortunately, there's a fair bit on my queue :)
20:54 bacek pmichaud, I suspect it :)
20:54 pmichaud bacek: but I'm working through the queue relatively more quickly these days
20:54 bacek pmichaud, I did notice dalek's reports :)
20:54 Andy i'm now gonna try on 0522, macek
20:54 Andy bacek
20:54 Andy or sorear.  I don't even remmeber.
20:55 Andy sorear: Because it's an SVN checkout.  Grab a tarblall.
20:57 allison cotto: from LoritoRoadmap, didn't the opsc part just go into trunk?
20:58 Andy sorear: what are you trying to build on?
20:58 bacek allison, yes, it did.
20:58 sorear Andy: i386
21:00 Coke allison: crossed it out.
21:01 Andy Linux?
21:01 purl Linux is, like, linux is linux by another name. or 80% of the world's top 500 super computers right now and the number one embedded system http://broadcast.oreilly.com/2008/10​/how-linux-supports-more-device.html
21:01 sorear Andy: yes
21:01 sorear 2.6.30
21:01 Coke particle: Just because parrot is compiled with C89 doesn't mean that third party libraries are, neh?
21:05 dalek tracwiki: v5 | coke++ | LoritoRoadmap
21:05 dalek tracwiki: cross out stuff that's done!
21:05 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Lo​ritoRoadmap?version=5&amp;action=diff
21:11 * sorear wonders if leaving out --enable-lto means no -flto at runtime or no -flto while building gcc
21:17 NotFound allison: handle? I'm not native english but that sounds more like "start handling now" than "done with handling" to me.
21:18 dukeleto sorear: O(log log n) is pretty sexy, whatever you are doing
21:18 chromatic I agree with NotFound.
21:19 NotFound handled, maybe?
21:19 allison NotFound: 'catch' is a popular word, but also too early in the processing
21:19 allison it wants a "mark as handled" meaning
21:19 dukeleto delegated?
21:19 purl delegated is with more Es
21:20 mikehh NotFound: backtrack, go_back?
21:20 Coke purl, forget delegated
21:20 purl Coke: I forgot delegated
21:20 mikehh NotFound: restore?
21:20 purl somebody said restore was the word I think I used in jonathan's comment ;-)
21:21 iblechbot joined #parrot
21:21 NotFound "handled" looks like a good shortening of "mark as handled" to me.
21:21 bacek "exception_done"?
21:21 mikehh "reinstate"
21:21 darbelo RETI
21:21 NotFound "42"
21:22 allison NotFound: it does make sense as a method exception.'handled'()
21:23 NotFound allison: using a method is complicated, needs a way to get the next opcode position.
21:24 allison NotFound: aye, expensive
21:24 allison NotFound: but we often name opcodes by the corresponding method name
21:24 allison add_method
21:24 purl somebody said add_method was *everywhere*,... it is what makes Moose run
21:24 allison etc
21:25 allison maybe 'set_handled'
21:25 NotFound A bit longer, but more clear.
21:26 mikehh how about cleared
21:28 NotFound Too generic.
21:28 pmichaud 'handled' was what I originally suggested, I think.
21:29 NotFound pmichaud: that fits what you said the other day about a possible usage with continuations?
21:29 allison NotFound: take a page from Java and call it do_finally
21:29 allison (blech)
21:29 chromatic I'd like the name to reflect that it's a return from runloop.
21:30 chromatic At least choose some form of a verb.
21:30 darbelo finish?
21:30 purl finish is in the loop containing the my?
21:31 NotFound Sounds good to me.
21:31 pmichaud NotFound: (usage with continuations) -- yes, nqp regexes may want some form of cheap Coroutine
21:31 Coke finish seems far too generic for me, but I'm just bikeshedding.
21:32 darbelo Only verb I could think of.
21:32 particle finalize
21:32 purl rumour has it finalize is not enough
21:32 * particle agrees
21:33 NotFound finalize goes well with the well know "finally".
21:35 cotto_work How do people feel about moving #ps 30m earlier?
21:35 NotFound cotto_work: no problem for me.
21:35 chromatic Fine with me.
21:35 Util cotto_work: no problem
21:35 mikehh ok by me
21:35 cotto_work bacek: ^
21:36 Coke didn't we just move it 60m later?
21:36 particle cotto_work: ask the mailing list, like we did last time
21:36 atrodo Coke> I've looked more into translating the HLL pir snipplet into C, and the C code appears to "pull back the veil" a lot more than I should be allowed to
21:37 cotto_work particle, sure.  I was just getting an idea of what people thought.
21:37 Coke (that said, 30m sooner is better for me)
21:37 particle context++
21:38 NotFound Well, if no one opposes or proposes a better idea, I'll rename it to "finalize" tomorrow.
21:38 chromatic The only thing I like better is finish_handler
21:38 NotFound A bit too long to my taste.
21:39 particle how about fish_handler?
21:39 NotFound I'm used to Z80 2 or 3 letters assembler mnemonics X-)
21:40 chromatic I know it's long, but that's the shortest I can think of that's clear.
21:40 particle exception.'X-)'()
21:41 mikehh cotto_work: that would make it 6am for bacek
21:41 NotFound halt_handler_and_catch_fire
21:41 cotto_work Yeah.  That's my biggest concern.
21:41 NotFound I'm sleepy, will let the decision for tomorrow.
21:52 * bacek doesn't exists at 6am...
21:53 chromatic They have a 6 in the morning now?
21:54 dalek parrot: r46997 | darbelo++ | branches/ucs4_encoding (22 files):
21:54 dalek parrot: More updates from trunk.
21:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46997/
21:55 davidfetter joined #parrot
21:55 mikehh chromatic: nah - that's pure fantasy
21:57 mikehh can approach it from either side but to get there...
21:59 davidfetter joined #parrot
22:05 whiteknight joined #parrot
22:05 cotto_work clock?
22:05 purl cotto_work: LAX: Tue 3:05pm PDT / CHI: Tue 5:05pm CDT / NYC: Tue 6:05pm EDT / LON: Tue 11:05pm BST / BER: Wed 12:05am CEST / IND: Wed 3:35am IST / TOK: Wed 7:05am JST / SYD: Wed 8:05am EST /
22:09 darbelo Merge time!
22:10 darbelo If svn-- cooperates...
22:10 cotto_work as if
22:12 dalek tracwiki: v6 | allison++ | LoritoRoadmap
22:12 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Lo​ritoRoadmap?version=6&amp;action=diff
22:12 darbelo It's only being slow as molassses right now...
22:13 cotto_work what's allison's middle name?
22:13 mikehh perlcritic fails on 17 files (out of 599) - all Flag comment TODO and/or XXX
22:13 mikehh all other tests PASS (pre/post-config, make corevm/make coretest, smoke (#34052), fulltest) at r46997 - Ubuntu 10.04 amd64 (g++)
22:13 allison cotto: naida
22:14 chromatic Sort of.
22:14 allison cotto: actually, it's my first name, but I reversed them
22:14 allison cotto: one of those weird southern things, calling your children by their second name :)
22:15 cotto_work I've toyed with going by my middle name of "Paolo" but I can't do a good fake Italian accent.
22:15 allison :)
22:17 * dukeleto ponders adding the suffix, "House Atreides" legally to his name
22:17 davidfetter heh
22:19 * darbelo lacks a middle name.
22:19 * davidfetter has a middle name
22:19 davidfetter but it's too long to include in an irc nick
22:19 allison darbelo: you could invent one
22:20 davidfetter darbelo, oh, now that i've got you here, do you have a head shot i can use to credit you in tonight's talk?
22:20 darbelo Not really. My head hasn't beenshot in recent years ;)
22:21 * cotto_work is curious too
22:21 davidfetter i meant an image :P
22:22 darbelo I made a note to get some pictures scanned when dukeleto first mentioned it, but then forgot about it.
22:23 davidfetter do you have some now?
22:23 cotto_work http://www.google.com/images?hl=en&amp​;q=daniel%20arbelo&amp;um=1&amp;ie=UTF​-8&amp;source=og&amp;sa=N&amp;tab=wi <- any of those?
22:26 darbelo cotto_work: Nope.  But one of the pictures there looks a lot like a former cow-orker.
22:27 whiteknight BOOM HEADSHOT N00B
22:27 spinclad joined #parrot
22:28 cotto_work You should be rolling in money by now from GSoC.  Go get a camera. ;)
22:30 davidfetter it's all about the washingtons :P
22:35 bubaflub joined #parrot
22:45 darbelo svn--
22:46 tcurtis cotto_work: our payment cards were delayed a week.
22:47 Chandon In a .pmc file, given a stack-allocated char*, how do I make a STRING*?
22:47 darbelo Oh. Right. That's my excuse.
22:47 darbelo Chandon: Parrot_str_new()?
22:47 sorear Chandon: I don't think you can, not very robustly anyway
22:48 sorear blizkost uses Parrot_str_new
22:48 sorear but that's latin-1 only and it breaks on embedded nuls
22:48 Chandon Somehow I didn't see Parrot_string_new. Thanks.
22:49 Chandon I'm looking at Parrot_string_new_init and wondering where I'm going to get the UNICORN_ON_THE_MOON* for its third argument.
22:50 ttbot Parrot trunk/ r46998 MSWin32-x86-multi-thread make error http://tt.taptinder.org/file/cmdout/326566.txt ( http://tt.taptinder.org//bui​ldstatus/pr-Parrot/rp-trunk/ )
22:50 dalek parrot: r46998 | darbelo++ | trunk (6 files):
22:50 dalek parrot: Manually merge ucs4_encoding to trunk.
22:50 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46998/
22:55 darbelo PARROT_DEFAULT_UNICORN
22:56 cotto_work Sneak that in with a merge and nobody will notice.
22:57 Chandon Error, in Parrot_string_new_init at xx.pmc line 3257, supplied unicorn is not on the moon.
22:58 cotto_work That XX PMC is totally useless.
22:59 Psyche^ joined #parrot
23:06 cotto_work Does PyPy use something like Lorito internally?
23:06 snarkyboojum joined #parrot
23:07 lucian joined #parrot
23:07 dalek parrot: r46999 | darbelo++ | trunk (2 files):
23:07 dalek parrot: Correct mis-merge on include/parrot/encoding.h
23:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/46999/
23:14 chromatic I don't think so.
23:14 cotto_work I guess the alternative would be to build an ast from rpython and operate on that.
23:26 Andy joined #parrot
23:30 whiteknight joined #parrot
23:38 cotto_work It's nice to have something like PyPy that we can steal and/or learn from.
23:39 bacek_at_work Start with speed.pypy.org
23:41 cotto_work I reiterate that we need to steal that site.
23:42 cotto_work http://codespeak.net/pypy/tru​nk/pypy/doc/translation.html looks instructive
23:58 dalek TT #1657 created by dukeleto++: Make it so that Parrot on RTEMS does not call the system exit()
23:58 dalek TT #1657: http://trac.parrot.org/parrot/ticket/1657

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

Parrot | source cross referenced