Camelia, the Perl 6 bug

IRC log for #parrot, 2010-07-15

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:09 dalek parrot: r48091 | darbelo++ | branches/gsoc_nfg/src/string/api.c:
00:09 dalek parrot: Avoid needless, roundabout transcoding operations in concatenation.
00:09 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48091/
00:25 plobsing joined #parrot
00:28 tcurtis atrodo: ping
00:30 lucian joined #parrot
00:32 gbacon joined #parrot
00:35 dalek website: Chandon++ | Green Threads: The Task API
00:35 dalek website: http://www.parrot.org/cont​ent/green-threads-task-api
00:37 tcurtis msg atrodo I think there's a bug in your lasm.pl's handling of comments.  You get rid of them with a simple regex substitution on line 387. So, it doesn't handle # in strings(I think) or in sub names(this I know).
00:37 purl Message for atrodo stored.
00:44 theory joined #parrot
00:45 cotto_work It'd be nice to take the time to build a self-hosted lasm.
00:45 * cotto_work wishes he didn't have other bigger things to do.
00:46 chromatic No kidding.
00:50 Chandon joined #parrot
00:52 ash_ ping plobsing
00:53 cotto_work I can't find plobsing in DNS, ash_.
00:53 ash_ hmm, okay....
00:53 darbelo purl_work--
00:54 * ash_ wishes there was about 5~10 more hours in the day for a lot of things
00:54 cotto_work I put on my cape and purl hat.
00:55 darbelo ash_: Living on a 28 hour/day schedule is fun if you can manage it.
00:56 ash_ darbelo: i have no idea how that would work :P
00:57 darbelo http://xkcd.com/320/
00:58 dalek parrot: r48092 | darbelo++ | branches/gsoc_nfg/src/string (2 files):
00:58 dalek parrot: Minor tweaks to get the concatenation lenght right.
00:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48092/
00:58 ash_ ah, neat
00:58 darbelo It's not an xkcd invention, but that makes for a concise explanation.
01:00 sorear 12 hour days also rule
01:00 sorear because it turns out you only need about 2 hours of sleep dayly in that case
01:00 sorear *and* it syncs up with day/night
01:02 ash_ that would be cool too, a 12 hour day
01:03 ash_ has a lot of breaks, so you don't get worn out as fast
01:04 jnthn The only problem in reality is if you have $real-world things to do that don't fit with your chosen day length.
01:06 cotto_work rl doesn't care what your sleep schedule is.
01:07 ash_ some of it does, like lots of government regulated places and banks are only open during "normal business hours"
01:09 cotto_work That assumes that you're awake during normal business hours.
01:10 ash_ well if you need to use one of those services, you gotta be
01:13 jnthn Here in Sweden, the shop that sells beer has very insufficient hours. :-/
01:13 cotto_work How unfortunate.
01:13 ash_ thats no good, those should have the most hours
01:15 jnthn ash_: I've lived/been in countries where that's pretty much the case too. :-)
01:15 jnthn Though that's generally because they have very liberal "who can sell beer" policies.
01:18 ash_ my dad made his own beer for a while
01:26 payload1 joined #parrot
01:29 atrodo tcurtis> I assume you've played with it enough to discover this?
01:32 tcurtis atrodo: Not really. I've just looked at it a bit.
01:34 ash_ i wonder how hard it would be to modify obj-c to allow multiple parents...
01:34 ash_ because then you'd have a class model thats the same as parrot
01:34 atrodo okay, cool.  But you're right.  My haste has lead me to old, bad habits
01:35 jnthn ash_: MI is...horrible implementation wise.
01:36 ash_ why?
01:36 ash_ mro?
01:36 purl mro is, like, the Digital sitecode for Marlboro, MA or Method Resolution Order or http://www.python.org/2.3/mro.html or one solution to the 'Diamond Problem' at http://en.wikipedia.org/wiki/Diamond_problem or Method Resolution Order or a pragma, see the 5.10 docs for details
01:37 jnthn ash_: You can't build a v-table for dispatch, or do attribute storage allocation, so easily.
01:37 jnthn With single inheritance, those are trivial.
01:37 jnthn ash_: I'm working on some blog posts around that topic atm.
01:39 tcurtis jnthn: that depends on what you're implementing it on top of. If you have something like the P&W paper, it's really simple(although you probably need your lookup method to accept a flag to avoid searching parents to do nice MROs).
01:39 ash_ well... hmmm
01:40 ash_ in obj-c you can have multiple categories (p6 roles) on a single class
01:41 tcurtis jnthn: although I think the attributes might be more complicated for that.
01:41 ash_ if they can resolve those lookup conflicts why couldn't they use the same rules to resolve class inheritance?
01:41 jnthn tcurtis: Got a link to the P&W paper?
01:41 atrodo p&w?
01:41 purl p&w is http://tinyurl.com/23dfwut
01:42 atrodo yep, thought someone had put that in
01:43 cotto ~~
01:43 cotto you're welcome
01:43 jnthn Thanks.
01:44 cotto I'm really good at linking to things. ;)
01:44 tcurtis ash_: The object system in P&W doesn't know about the physical layout of the objects.
01:44 jnthn Ah
01:44 jnthn That's the part I was thinking of. :-)
01:45 tcurtis Might be able to do it by creating a wrapper object that basically holds one object of each parent "class" and delegating the appropriate methods to the appropriate object. That bit would be tricky.
01:46 jnthn tcurtis: Well, I'm pondering more a lazily pessimistic model.
01:47 jnthn tcurtis: Build the SI structure, but if there's an MI child then attempts to access things in the parent, we know that the index offset is invalid and go take the slower path.
01:47 plobsing ping ash_
01:47 ash_ plobsing: hi
01:47 purl hola, ash_.
01:48 plobsing how goes it?
01:49 ash_ good, i am working on  a new nci_thunk_gen.pir (its now .nqp) that uses the new syntax and has a grammar for defining the signatures of nci thunks
01:49 ash_ i am kinda stuck on my ideas for a runcore
01:49 ash_ and i wanted to talk to you about those
01:50 plobsing ok. stuck how?
01:51 ash_ i tried building an example of the llvm-ir expanded runcore and i ran into a problem that kinda lead me into a slightly different direction
01:51 tcurtis By the way, ash_, I think protocols are closer to Perl 6 roles than categories. Categories are just a way to add methods to a class outside of its main definition. Protocols are equivalent to roles whose methods are all  {...}.
01:52 ash_ so... when you run a pbc it has to inflate everything, and that was my first problem, i can't seem to figure out how the constants table is inflated in pbc's
01:52 plobsing that magic happens in src/pack{file,out}.c
01:53 plobsing after unpacking, every bytecode segment has a pointer to an associated constant table
01:54 mikehh joined #parrot
01:54 hercynium joined #parrot
01:55 ash_ i looked at those, but i couldn't figure out how to do it myself, but i think i might be going about this the wrong way... i can't tell, thats why i took a break from that and started working on the nci_thunk_gen.nqp to have n nci thunk generator that match the new syntax
01:55 ash_ s/n/a/
01:55 plobsing but why are you looking to unpack bytecode? doesn't that get done before the runcore gets a handle on it?
01:57 GeJ clock?
01:57 purl GeJ: LAX: Wed 6:57pm PDT / CHI: Wed 8:57pm CDT / NYC: Wed 9:57pm EDT / LON: Thu 2:57am BST / BER: Thu 3:57am CEST / IND: Thu 7:27am IST / TOK: Thu 10:57am JST / SYD: Thu 11:57am EST /
01:57 ash_ yeah, thats why i think i am doing it wrong, in my sample i was trying more to translate a pbc to llvm-ir, which was dumb now that i think about it
01:59 ash_ but one thing i was thinking about (kinda as a result of me doing it wrong) was, couldn't pbc_to_exe expand the runloop?
02:00 plobsing expand the runloop? like what perlcc is supposed to do?
02:01 atrodo tcurtis++ # thanks, I committed the proper way
02:01 ash_ maybe?
02:01 purl Maybe not.
02:01 ash_ i don't know what perlcc is
02:02 ash_ just thinking about it, thats all the llvm would do in the end anyways, it would turn add $I0, $I1 to an add_i_i(a, b); (more or less)
02:03 plobsing that sounds like a good idea, but I think you might run into issues with non-linear control-flow
02:03 ash_ but if you did it in, say the pbc_to_exe, you don't have the llvm requirement, granted its not as dynamic
02:04 ash_ couldn't you fallback to the normal runloop for things that might be non-linear?
02:04 tcurtis atrodo++ great.
02:04 plobsing true. but most useful programs are non-linear. loops, functions, methods, branching.
02:05 ash_ i think the llvm would run into those same problems, unless you re-compiling the runloop with the llvm every time the ops change
02:06 plobsing I suppose so.
02:06 tcurtis ash_, plobsing: if I'm understanding what ash_ is wanting to do correctly, loops/branches would be easy to encode: they'd just be gotos to labels at the same position in the expanded C code that corresponds to the PIR.
02:06 ash_ i guess thats the whole point of the hotspot techniques though, to only compile the 'hot' parts of the code
02:07 tcurtis continuation-y stuff would be harder, I expect.
02:07 plobsing tcurtis: that's all well and good, but the runloop has to have knowledge of all ops that can branch. Per the current design, any arbitrary op can in theory branch.
02:07 ash_ hmm
02:08 tcurtis plobsing: true enough. And computed gotos aren't available in C89, are they?
02:09 plobsing I think you could compile sections of ops that run linear (ops that branch are flagged as ':flow')
02:10 plobsing so you could detect branching and do some magic and then drop into native between branches
02:10 plobsing tcurtis: AFAIK, computed goto is gcc-only
02:11 ash_ yeah, i knew i would have to treat branches as special cases
02:12 ash_ branches currently just increment/decrement the op pointer
02:13 plobsing I think the old JIT played a similar game with the enternative op.
02:13 LoganLK joined #parrot
02:13 ash_ maybe i should look at the old jit
02:14 plobsing don't. you'll go blind!
02:14 ash_ lol, okay
02:15 plobsing but comming back to the idea about pbc_to_exe, I think that seems feasible.
02:15 plobsing If you want to unpack PBC, have you had a look at the Packfile* PBCs?
02:15 plobsing s/PBCs/PMCs/
02:16 ash_ yeah, they do a lot of stuff, i tried to follow it along, since mostly the constants are what you need, but i got a bit lost because of all the ways things are interconnected
02:18 ash_ i was thinking, for core ops it wouldn't be that hard, i don't know how dynamic ops would work though... i was thinking i could do those with the normal runloop when i encountered them in code
02:19 plobsing I think that's the only way it could work.
02:20 plobsing maybe you could play games with DLLs
02:20 plobsing but it would be tricky
02:20 ash_ i'd rather just get the core working first
02:20 ash_ :P
02:24 plobsing looking at the Packfile* PMCs, looks like they might be a little on the weak side for reading PBC.
02:25 plobsing You can a) use the (deprecated but still widely used) PackFile structs b) fix the weaknesses yourself c) complain loudly and frequently until someone fixes them for you
02:26 plobsing (c is my least favorite option)
02:26 notbenh1 joined #parrot
02:28 ash_ which parts of the PackFile structs are deprecated?
02:28 ash_ and how soon till they go away?
02:28 ash_ (or why are they going away?)
02:29 plobsing 1) the plan (AFAIK) is for them to be entirely replaced by the Packfile PMCs
02:29 mikehh_ joined #parrot
02:29 plobsing 2) as soon as someone rewrites all core uses of them to use the PMCs in stead
02:30 plobsing 3) they aren't (easily) usable from Parrot languages
02:31 plobsing I'm not expecting to see them entirely dissapear before at least 2.9
02:31 tcurtis plobsing: I think PIRATE uses Packfile PMCs for PBC emitting. I don't know if that example would particularly applicable to reading Packfiles, though.
02:32 plobsing tcurtis: not really. emitting has been the driving force of their design. reading is sorely lagging.
02:33 ash_ emit.reverse
02:33 ash_ i'd rather use the pmc's if thats the way things are supposed to be going
02:34 plobsing PMCs are the cleaner option. The structs are the more pragmatic.
02:34 ash_ plus pbc_to_exe is already in pir, if i could stay in pir to do all of it it would be ince
02:34 ash_ nice*
02:36 plobsing sure. just know that you're wandering into yet more unexplored territory (reading PBC using Packfile* PMCs)
02:37 ash_ i also was trying to understand how when you run a program made by pbc_to_exe it actually happens
02:37 ash_ in know the 'magic' starts at Parrot_runcode(interp, argc, argv);
02:38 ash_ but diving into that it gets confusing, basically i was trying to understand how it loads all of the pbc constants, ops, register information, annotations into the interrupter and eventually calls the runcore
02:39 plobsing it encodes the PBC into memory and then uses the normal PBC loading routines
02:40 ash_ so, it just says "hey the pbc starts here" where here is the start of that big string?
02:40 plobsing yes. It works the same as loading a PBC file except it doesn't have to read it in first.
02:45 plobsing are there any other points that have you stuck?
02:45 ash_ well, i guess i just need to dig more through the code to understand whats going on
02:45 ash_ nothing comes to mind, its just i need to experience bits of it for myself, i understand the gist of it, its just a few area's where i am fuzzy
02:45 purl i heard fuzzy was an extension of Boolean logic dealing with the concept of partial truth. or "warm and"
02:48 janus joined #parrot
02:55 ash_ thats all i can think of, btw, i did some more testing for the libffi nci pmc and it's working now on i386 and 86_64 on linux, and 64 bit on OS X (i'd try 32 bit on OS X but parrot's config scripts don't seem to want to do -m32 correctly on OS X)
02:59 plobsing awesome. we're a bit close to the stable release at this point to push in a major feature like this, but if all goes well, I think we could pull it in immediately after the release
03:01 tcurtis ash_: remind me sometime and I can test it on i386 OS X.
03:01 ash_ tcurtis: which os x do you have?
03:01 ash_ (not snow leopard?)
03:01 tcurtis ash_: Leopard
03:01 ash_ btw, it might be nice if someone with some knowledge of the config scripts looked at OS X's build system
03:02 ash_ OS X likes fat binaries (for a number of reasons) and it would be nice if we could get parrot to build correctly on OS X so it could be turned into a fat binary, and build 32 bit or 64 bit explicitly too
03:15 LoganLK joined #parrot
03:21 dukeleto anybody interested in a Parrot hackathon sometime around OSCON in Portland, OR?
03:21 snarkyboojum joined #parrot
03:35 GodFather joined #parrot
03:36 cotto dukeleto, when's OSCON?
03:40 notbenh1 left #parrot
03:47 dukeleto cotto: July 19-23, 2010
03:48 dukeleto cotto: many parrot devs will be in Portland
03:51 cotto not likely I'll be among them
03:51 cotto sad face
03:51 purl
03:57 mikehh opbots, names
04:32 snarkyboojum joined #parrot
04:48 cotto but the sad face worked
04:48 cotto happy face
04:48 purl
04:49 dalek parrot: r48093 | Chandon++ | branches/gsoc_threads (14 files):
04:49 dalek parrot: [gsoc_threads] Clean up task vs. event; make timers not be tasks.
04:49 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48093/
05:05 dalek parrot: r48094 | Chandon++ | branches/gsoc_threads/t/pmc/task.t:
05:05 dalek parrot: [gsoc_threads] Now with no missing files.
05:05 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48094/
05:23 snarkyboojum joined #parrot
05:38 dalek parrot: r48095 | darbelo++ | branches/gsoc_nfg (22 files):
05:38 dalek parrot: Sync with trunk.
05:38 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48095/
06:09 uniejo joined #parrot
06:10 NotFound <plobsing> sure. just know that you're wandering into yet more unexplored territory (reading PBC using Packfile* PMCs) ---> Not so unexplored, see packfile.winxed in winxed examples
06:16 plobsing NotFound: good to see. still, reading/analysis feel a little underpowered.
06:17 NotFound plobsing: sure
06:24 snarkyboojum joined #parrot
06:44 fperrad joined #parrot
06:52 dukeleto msg masak i've added MiniDBI to proto: http://github.com/leto/proto/commit/31​af06939b0dc14f34d8138e40d1f1a2a0c9c6c4
06:52 purl Message for masak stored.
06:56 frodwith joined #parrot
06:57 baest joined #parrot
08:36 darbelo joined #parrot
08:56 clinton joined #parrot
09:10 AndyA joined #parrot
10:29 LoganLK joined #parrot
10:42 gbacon joined #parrot
10:59 bkuhn joined #parrot
11:14 lucian joined #parrot
11:50 dalek TT #1704 created by bacek++: Implicit selection of main sub is deprecated.
11:50 dalek TT #1704: http://trac.parrot.org/parrot/ticket/1704
11:50 dalek TT #1705 created by bacek++: 0-args :main Subs will check passed arguments.
11:50 dalek TT #1705: http://trac.parrot.org/parrot/ticket/1705
12:00 JimmyZ joined #parrot
12:20 whiteknight joined #parrot
12:22 dalek rakudo: 3615ece | jonathan++ | src/Perl6/Grammar.pm:
12:22 dalek rakudo: First cut at implementing custom circumfixes. Also, for things we don't know how
12:22 dalek rakudo: to augment the grammar for, die nicely rather than with a blood-curdling PIR
12:22 dalek rakudo: syntax error.
12:22 purl YOU CAN'T JUST MAKE SHIT UP AND EXPECT THE COMPUTER TO MAGICALLY KNOW WHAT YOU MEAN, RETARDO.
12:22 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​615eceacc59129d551137f693035cc35816ddfc
12:22 dalek rakudo: 727782e | jonathan++ | src/Perl6/ (2 files):
12:22 dalek rakudo: Add term:sym<circumfix> as found in STD, which we were missing in the Rakudo
12:22 dalek rakudo: grammar.
12:22 purl hmmm... grammar is "The Deluxe Transitive Vampire" Mmm. Good book.
12:22 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​27782e1ed92c9562b137d6be9c73060a710a1fb
12:30 bluescreen joined #parrot
12:34 Coke ooh, there's a deluxe?
12:39 Coke Anyone else used to handrolling PIR find PAST impenenetrable, or is it just me?
12:39 Coke ETOOMANYEN
12:41 * moritz finds PAST quite intuitive, except where not
12:44 whiteknight PAST basically is impenetrable
12:45 bluescreen joined #parrot
12:45 whiteknight because of IMCC magic, it's extremely difficult to write operational PAST most of the time
12:57 dalek rakudo: 3d0399a | jonathan++ | src/Perl6/Actions.pm:
12:57 dalek rakudo: Should not curry .WHAT and other interogative macros.
12:57 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​d0399a4561742fe50472f0ab647620ac27e5105
12:57 dalek rakudo: 9819740 | jonathan++ | src/pmc/p6role.pmc:
12:57 dalek rakudo: One more role type-object undefinedness fix.
12:57 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​8197408222176d90e537123d61c542f013d6ad8
12:57 jnthn whiteknight: huh?
12:58 jnthn I don't see where IMCC comes into things. :-/
12:58 jnthn The nice thing about writing PAST is that I don't have to care about PIR. :-)
12:59 jnthn (Or more specifically, generating PIR.)
13:02 Coke jnthn: I had a (*#&$ of a time making PAST generate compilable pir. =-)
13:03 Coke (do I want a bind here? a pirop to call set ? or maybe a pirop that sets the result as a side effect? what are the types? WHY WONT THIS WORK!?)
13:03 * Coke is pretty close to getting partcl's argument handling working, though, which is nice.
13:04 Coke Many times I thought "if I could write this past in pir, I'd be done already. (trivially so, since I already wrote this in PIR for the old version. =-)
13:05 jnthn Coke: Ah. My usage of :pirop is very low.
13:10 moritz Coke: then just write it in PIR, no?
13:12 atrodo Coke> I agree, even with my limited experience with both, PIR seems much easier and less cryptic than PAST
13:22 dalek parrot: r48096 | gerd++ | trunk/docs/book/pir/ch04_variables.pod:
13:22 dalek parrot: remove what seems to be a wrong opening bracket
13:22 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48096/
13:51 tcurtis joined #parrot
13:51 Coke moritz: I already have a chunk of PAST. how do I inject a chunk of steaming PIR?
13:52 whiteknight joined #parrot
13:52 tcurtis Coke: PAST::Op.new(:pasttype<inline>, :inline('foo bar'))
13:52 Coke (it seems if I want to move more to a compiler than an interpreter, I'm going to want to write more and more in something that can target PAST
13:53 Coke tcurtis: holy crap that would have saved me about 3 hours yesterday.
13:55 Coke At this point, I am probably going to finish in past since I'm already 80% done. =-)
13:55 Coke tcurtis++
13:55 Coke moritz++
13:55 * Coke listens to piers sing.
13:59 sjn joined #parrot
14:04 bubaflub joined #parrot
14:07 NotFound joined #parrot
14:07 NotFound hi
14:09 Coke ho
14:09 NotFound Let's go!
14:12 arnsholt joined #parrot
14:16 moritz where?
14:17 NotFound Straigh to the jail, without collecting 20.000$
14:26 atrodo Wow, that's a lot more than I ever remember getting for passing Go
14:27 NotFound I think my memory was mixing the old edition before euro, in pesetas.
14:28 moritz it was 8000DEM (deutsche mark) back in the days
14:29 Coke 200USD
14:29 atrodo wow, they changed the amount of monopoly money you got in different countries?
14:29 jnthn .oO( Zimbabwe monopoly must be awesome! )
14:30 NotFound atrodo: the prices on the main streets will sound ridiculous without some adaptation.
14:30 Coke jnthn: comes with a printing press.
14:30 arnsholt atrodo: Sure. It'd be a bit boring if you got the local equivalent of $2 every time you passed go =)
14:30 NotFound Monoploy was a pioneer in localization X-)
14:30 Coke NotFound: the us have been ridiculous for 50 years. =-)
14:30 Coke er, the us /prices/
14:31 NotFound Coke: there are levels of ridiculogy.
14:31 Coke ... chromatic? is that you?
14:31 atrodo Well, I guess that could make sense, except it's still monopoly money
14:33 NotFound And in the real world bankrupters don't go to jail, they get bailouts.
14:33 cotto joined #parrot
14:33 atrodo NotFound> Point
14:34 atrodo I do wish that all I had to do to get out of jail was to roll doubles.  I'd be breaking the law left and right!
14:34 NotFound atrodo: beware of Murphy's Law.
14:35 moritz atrodo: also remember that you're only allowed three rolls a year :-)
14:35 cotto ~~
14:35 Coke mmm, cinnamon rolls.
14:35 moritz 1- (5/6)**3
14:35 purl 0.421296296296296
14:35 atrodo moritz> three rolls then they just let you go!
14:36 moritz atrodo: yes, but you only succeed with a chance of 42%. Otherwise, wait a second year :-)
14:36 moritz 1- (5/6)**6
14:36 purl 0.665102023319616
14:36 moritz 1- (5/6)**9
14:36 purl 0.806193300532185
14:36 moritz and a 20% chance of still being in prison after 3 years
14:36 * NotFound thinks about developing a "Monocoder" game
14:37 atrodo Hmmm, maybe we played by different rules, but when i've played, you're out of jail after your third roll
14:37 NotFound Thinking better, is a bad name, Icaza will sue me.
14:37 atrodo NotFound> Perfect
14:37 moritz atrodo: ah right, but you had to pay a fine (in our rules)
14:38 atrodo Ah, yes, that's what we did as well
14:48 theory joined #parrot
15:03 gbacon joined #parrot
15:07 hercynium joined #parrot
15:24 whiteknight joined #parrot
15:35 PerlJam joined #parrot
15:38 fperrad joined #parrot
15:42 dalek rakudo: c9b7229 | jonathan++ | src/ (2 files):
15:42 dalek rakudo: Make phasers implementation able to remember value produced by phaser.
15:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​9b7229cd4061fc4cc0e6e1aab720ec7f068b1c4
15:42 dalek rakudo: 8ce9aff | jonathan++ | src/ (2 files):
15:42 dalek rakudo: Remove special handling of BEGIN and make add_phaser a littler smarter about
15:42 dalek rakudo: BEGIN (ends up much less code duplication than what we had before.)
15:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​ce9aff4cce660fe8ce74ca86e6e7f5815f61c85
15:42 dalek rakudo: d51e99a | jonathan++ | src/Perl6/Actions.pm:
15:42 dalek rakudo: Put the 'run in lexical scope of the setting' hack that was in the old BEGIN
15:42 dalek rakudo: implementation into add_phaser, so now say and stuff works in all phasers.
15:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​51e99a4e07efd41d27aeaab3df6b9dd70ce9a3e
15:47 Coke jnthn: shouldn't *.WHAT say "EVER"? ;)
15:48 Coke oops
15:55 cotto_work msg khairul A couple of the tests in t/pmc/nci.t fail in your branch.  You should take a look at them when you have the time.
15:55 purl Message for khairul stored.
16:00 cotto_work msg khairul Also, notfound++ committed some of your simpler changes to the core Parrot code to trunk.  I'll be looking at the remaining changes (http://gist.github.com/477154) when I can.
16:00 purl Message for khairul stored.
16:00 cotto_work anyone around with a commit bit?
16:01 ruoso joined #parrot
16:06 cotto_work msg khairul nm.  Pointer's get_string is the culprit.  It's not entirely obvious what the proper behavior is in this case.
16:06 purl Message for khairul stored.
16:12 cotto_work *sigh*
16:13 cotto_work After digging to see who added the failing tests to figure out what the proper behavior for pointer.get_string is, I find out that I added one of the tests.
16:15 atrodo Isn't that just depressing?
16:15 cotto_work I could ask myself, but I already know that I don't know.
16:15 cotto_work tewk added the other tests and I suspect that NotFound or japhb would know something.
16:16 japhb <rez>
16:16 japhb Wubba-huh?
16:16 cotto_work do you have a sense for how Pointer.pmc should behave?
16:17 cotto_work especially its get_string
16:18 japhb I've been away from the NCI stuff for a while, so I'm not sure what you are looking for.
16:19 cotto_work Does it make more sense for it to stringify its pointer with %s or %p?
16:19 cotto_work src/pmc/pointer.pmc +162
16:20 japhb Looking ....
16:20 japhb (well, pulling first, just in case.  :-)
16:25 whiteknight joined #parrot
16:34 japhb cotto_work, OK, looking at the tests and the surrounding code and such, it looks like get_repr is returns the hex for the pointer's actual value, while get_string is returning the "string" pointed to ... on the assumption that it is a regular C-style null terminated string.  What is used for getting raw buffer data of a certain length, containing 0 or more nulls?
16:34 japhb s/is returns/basically returns/
16:35 japhb Or am I now too far away from the current state of NCI for that question to be relevant?
16:36 cotto_work I'm trying to figure out if that behavior (assuming a C string) is correct.
16:38 atrodo cotto_work> completely different subject.  what about shl and shr as lorito opcodes?
16:39 japhb It's certainly reasonable to have that as an option, even an "easy to reach" option -- it will handle a number of useful cases.  But there definitely needs to be another easy-to-reach option that gets raw buffer data.
16:39 japhb And if the C string is supposed to become a Parrot string, there ought to be some way of specifying charset info, neh?
16:40 cotto_work atrodo: Good question.  Having shr would make it possible to optimize multiplication and would be closer to the hardware.  For now I'd leave it out.  It can be added easily later when we need it.
16:40 NotFound japhb: last time I looked, strings from nci are assumed to be iso-8859-1
16:40 atrodo Okay, I'll put it in my list of ops to think about later
16:41 cotto_work or, shl.  Blame lysdexia. ;)
16:41 japhb NotFound, ewww.
16:41 japhb That's just wrong in an era of UTF-8.
16:41 japhb I mean, if you're going to have a default ... we should be getting away from the ancient one.
16:42 cotto_work Tell darbelo.  I'm sure he'll be motivated to do something once he finds out.
16:42 atrodo or s/multiplication/division/, either substitution would work
16:42 cotto_work sure
16:42 NotFound japhb: I'd like better to use binary as default.
16:43 NotFound utf-8 as defalut is problematic, data received can be unacceptable as utf-8
16:43 japhb NotFound, sure ... but get_string does not offer the opportunity to provide a buffer length, so the data has to self-determine its length.
16:43 japhb NotFound, I'll grant you that.
16:43 japhb And I recognize it would be slow to check for compliance and then fall back.
16:43 NotFound japhb: is supposed to be used wicth char * pointing to a zero-deliited C string.
16:44 japhb As long as it is easy to say "Change this string to this charset"
16:44 NotFound japhb: is easy now, using a ByteBuffer.
16:44 japhb NotFound, right.  Which isn't binary.
16:44 japhb Nodnod
16:44 japhb Anyway, I'm clearly not helping here.  :-/
16:44 NotFound japhb: is binry encoded, that is, not assuming any encode at all.
16:45 japhb Ah, makes sense
16:45 NotFound iso-8859-a has the advantage of not having non-decodeable values.
16:45 NotFound I suppose someone uses it because of that.
16:45 NotFound s/uses/used
16:47 NotFound Assuming string of chars, of course, not any sort of wide chars. That should use different types.
17:06 darbelo At some point we are going to have to decide wether we want to handle string data as it comes in, which we do badly now, or enforce a cannonical representation at the system boundaries, which we don't do at all.
17:08 cotto_work The first option is what I've heard allison mention as our intent.
17:08 darbelo Yeah, and that's easier to reach from the current stae of the code.
17:09 darbelo But a canonical representation can be made fast.
17:09 NotFound "string data" is an oversimplification.
17:11 NotFound A char * pointing to zero delimited C string is just that.
17:11 darbelo Sure, but there's plenty more ways you can make 'a string'.
17:11 NotFound A char * pointing to a buffer of size know by whatever mean, a totally different beast.
17:13 darbelo It also could be a wchar * too. There's all sort of stuff you can pass around a call 'a string'.
17:14 NotFound Enforcing some way is limiting. In MySql, for example, you can select at rutime how you pass and receive string. If I have utf-8 strings, and set MySql for that, enforcing any other encoding is losing time.
17:14 NotFound The same if I have iso-8859 or watever.
17:15 darbelo Yeah, but what happens when I pass a GBK string to parrot?
17:15 shockwave joined #parrot
17:16 shockwave Hello
17:16 NotFound What's a GBK string?
17:16 shockwave Is there way to make an include like so: .include 'TestOutput.s_abstract_1_xml_1.main'
17:16 cotto_work gbk?
17:16 shockwave be relative to where that being that's making the inclusion is located, as opposed to where the parrot executable is?
17:16 darbelo A chinese charset. It's what windows uses.
17:17 shockwave I don't know if that made sense. I'll re-state it.
17:18 darbelo It's what was causing jimmyz's build failures a while back.
17:18 tcurtis shockwave: "--include ." or "-I ." does what you want as an argument to parrot, I think.
17:18 NotFound darbelo: right now, you can't. Either use windows unicode api, or add new encodings.
17:19 lucian joined #parrot
17:19 shockwave When including a .include 'file.pir' directive in a PIR file, that inclusion is relative to where the parrot.exe file is located. Is there a way to make that .include directive be relative to the source file that is making the inclusion?
17:20 tcurtis shockwave: try --include/-I with wherever your desired include file is.
17:21 shockwave tcurtis: Perfect! Thanks.
17:22 darbelo I think .include './some/file' works too. But I'm not sure.
17:23 shockwave darbelo: ./ doesn't work.
17:23 NotFound darbelo: I think that is relative to the current working directory, not the directory where the including file is.
17:24 darbelo That could be it.
17:26 darbelo NotFound: back to strings, I think we are confusing the 'shuffling data about' problem with the 'string munging' problem.
17:26 shockwave left #parrot
17:26 NotFound Part of the problem is to clarify the problems %-)
17:27 darbelo Forced translation is bad for shuffling data about. And variable-width encodings are bad for string munging.
17:28 darbelo We should be able to do both gracefully.
17:28 NotFound darbelo: yeah, I just says that we should not force any assumption by defalut. Providing ways to ask for it is fine.
17:30 darbelo Yeah, but if even the guys that invented utf-8 knew it was a bad idea to use it in, say, a regex engine. Then why is there utf-8 in our regex engine?
17:31 darbelo And if you pass in any form of unicode to parrot, you end up with utf-8 at some point or another.
17:31 NotFound My knowledge of our, or any other, regex engines in sverily limited.
17:32 NotFound darbelo: utf-8 is used to interact with the OS, but you can work with ucs4 if you want.
17:37 darbelo I know, I added that encoding :) My point is that we could be a *lot* smarter about how we handle strings in some places.
17:38 NotFound darbelo: fully agree
17:38 darbelo I think we've been agreeing all along.
17:38 darbelo It just took me a while to notice :)
17:39 NotFound My current point is that assuming iso-8859-1 is not so bad for a now. At least you can easily reencode it.
17:41 darbelo You mean assuming utf8 is worse :)
17:41 NotFound darbelo: yes, because it can throw invalid data.
17:43 darbelo All unicode encodings do that. Calling it 'binary' is probably safer, since it forces you to give it a meaninig before you star minging it.
17:43 darbelo Eh, start munging.
17:43 NotFound Yes, but changing it to binary right now risks to break things.
17:44 patspam joined #parrot
17:44 darbelo Hm. True. Better done after the supported release.
17:45 darbelo OTOH, if it works now, it's probably just by chance.
17:46 NotFound darbelo: yes, dynamic ops worked by chance, and look what happened.
17:46 cotto_work *shudder*
17:46 darbelo We ran out of luck, then it went kaboom.
17:47 darbelo I'll go by a set of loaded dice...
17:48 atrodo If you wanted to rig a game of russian roulette, would you get a loaded gun?
17:48 darbelo atrodo: Yes, and fire last.
17:49 NotFound I'd like better spanish lotto, If I can choose.
17:49 darbelo More money, less corpses? I can live with that trade-off.
17:49 darbelo ;)
17:54 Coke oh, right, we never did fix dynops, did we. sad, really.
17:55 darbelo plobsing was working on it, lat I heard.
17:55 cotto_work there's a branch
17:55 NotFound They are still unfixed. Things don't break too much thanks to workarounds.
17:55 darbelo purl: gbk is http://en.wikipedia.org/wiki/GBK
17:55 purl OK, darbelo.
17:57 darbelo I think that page has enough data for a brave person with access to a suitable testing platform to write up a gbk encoding for parrot.
17:57 darbelo In case someone has this pressing need to munge simplified chinese data.
17:59 cotto_work That diagram makes me dizzy.
18:01 darbelo it's no worse than utf8 really.
18:01 cotto_work I mean the presentation, not the contents.
18:02 darbelo It's all chinese to most people anyway.
18:04 Coke ugh. Will we ever be finnish'd with these puns?
18:06 atrodo Ah, gbk looks simple
18:07 Coke ^_O?
18:09 atrodo </sarcasm>
18:10 cotto_work The sarcasm bit, much like the evil bit, remains unimplemented in the large majority of TCP stacks.
18:10 atrodo Aye.  Still waiting for unicode to include both codepoints for sarcasm and evil
18:10 cotto_work It's generally thought best to emulate it at the application layer.
18:11 atrodo They'd be combining codepoints, of course
18:11 cotto_work That's a great idea <EXCLAMATION MARK WITH COMBINING SARCASM BIT>
18:12 atrodo I'm not sure I'd ever type without that turned off tho
18:12 atrodo *on
18:18 dalek winxed: r556 | NotFound++ | trunk/winxedst0.cpp:
18:18 dalek winxed: backport constructor call to stage 0
18:18 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=556
18:23 dalek winxed: r557 | NotFound++ | trunk/winxedst0.cpp:
18:23 dalek winxed: ooops, forgot to optimize constructor args in r556
18:23 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=557
18:32 cotto_work atrodo, you should start handing out commit bits for your lorito project
18:35 atrodo cotto_work> Yep.  Was going to try and get a good chunk done this weekend and then start looking for help
18:35 cotto_work do it naough
18:35 atrodo uhm, sure?
18:35 purl But are you sure you're sure?
18:36 atrodo i'm sure i'm sure purl
18:37 dalek winxed: r558 | NotFound++ | trunk/winxedst1.winxed:
18:37 dalek winxed: now that constructors are available in stage 0, use them in a few places in
18:37 dalek winxed: stage 1
18:37 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=558
18:39 atrodo I might be dense on the github thing, but does commit bit == collaborators under repo admin?
18:40 Coke yes.
18:40 atrodo huh.  I always assumed forking was the way to do it in github.  Learn something new everday.
18:40 atrodo Okay, who wants commit bits?
18:41 atrodo This is only one of three times I ask!
18:41 Coke that is very also the way to do it.
18:41 Coke it depends on if you want to treat your version as "official" or not, IMO.
18:41 Coke I'd just leave it say "go fork."
18:41 Coke *and
18:43 atrodo So new plan.  I'm going to only ask three times, after that, go fork yourself. (i'm going to get into so much trouble)
18:43 tcurtis Speaking of commit bits, anyone else want to help with updating the Squaak tutorial?
18:44 PerlJam tcurtis: I might
18:45 PerlJam (I'm perlpilot on github)
18:45 Coke PerlJam: hey, where's my partcl patches? =-)
18:46 tcurtis PerlJam: added you to the github repo I've been working in(aptly named squaak-tutorial)
18:46 PerlJam Coke: when my interest waxes that direction, you'll see some.  :)
18:48 * cotto_work wants a bit
18:48 darbelo tcurtis: Sign me up.
18:49 cotto_work maybe even a nybble
18:49 * darbelo is darbelo on github, for the record.
18:49 PerlJam Coke: actually, it's more like at the intersection of my interest, my time, and my ability ... then you'll have some
18:49 Tene atrodo: I'll take a commit bit.
18:49 tcurtis The fun bits are the ones that don't work.
18:49 tcurtis cotto_work: was that to me or atrodo?
18:50 cotto_work both eventually, but for atrodo that time
18:51 atrodo Tene> is your github account "tene"?
18:52 cotto_work cotto's github account is cotto
18:52 tcurtis atrodo: I would also like one.
18:53 atrodo atrodo also likes talking about himself in the third person
18:53 tcurtis cotto's github account?
18:53 purl it has been said that cotto's github account is cotto
18:53 dukeleto atrodo: i'll take a bit too, my github is leto
18:53 tcurtis tcurtis' github account is ekiru
18:53 baest joined #parrot
18:54 Tene atrodo: yes
18:54 atrodo atrodo's github account is atrodo
18:54 atrodo Okay, i've got cotto, tcurtis, dukeleto and Tene.  Anyone else?
18:55 tcurtis darbelo: you have a bit.
18:56 joeri joined #parrot
19:06 * moritz raises hand
19:06 moritz github nick eq irc nick
19:06 atrodo for me or tcurtis, or both?
19:07 moritz squaak
19:07 moritz what do you offer? :-)
19:07 tcurtis atrodo: by the way, I'm prototyping an assembler in NQP for another possible syntax for Lorito assembly. Here's an example http://github.com/ekiru/yalp-asm​/blob/master/examples/fact.lasm
19:07 PerlJam tcurtis: I just did a search for squaak-tutorial on github and it gave me no results.
19:07 cotto_work Oh.  I'd like a squaak bit too
19:07 tcurtis PerlJam: http://github.com/ekiru/squaak-tutorial
19:08 * PerlJam wonders why github couldn't find it via search
19:08 tcurtis moritz, cotto_work: done.
19:08 cotto_work Does that mean that the squaak tutorial is living in two different places now?
19:09 atrodo mortiz> lorito prototype
19:09 moritz atrodo: ah. Interesting, but outside of my scope
19:09 tcurtis cotto_work: I just didn't want to mess with it on trunk and don't know much about svn branching.
19:09 cotto_work svn branching isn't hard. It just breaks at stupid times.
19:10 atrodo moritz> understand, there was just a little confusion on which commit bits who wanted
19:10 cotto_work see docs/project/branching_guide.pod
19:10 moritz atrodo: sure
19:10 atrodo svn--
19:10 tcurtis I was planning on creating a svn branch at some point before I got far along, but I didn't get around to it.
19:10 moritz atrodo: btw in most IRC clients you can type the first few (like, 2) characters of a nick name, and then hit the tab key for auto completion
19:10 moritz much like on a shell
19:11 atrodo moritz: huh, sure enough
19:11 * Coke finally thinks to create #albany-pm
19:11 cotto_work In the competent ones (not Mibbit), you can even configure the order in which names appear.
19:11 atrodo i shaltn't misspell moritz again (assuming I did which is why that tip came up)
19:11 Coke (moving tutorial out of trunk)++ from em.e
19:11 moritz atrodo: yeah, it was the typical 'mortiz' misspell :-)
19:12 atrodo my eyes are clearly going, it hard to see at this distance.  Maybe I should work in front of a computer screen all day...
19:13 moritz it's s/it/ti/ :-)
19:13 tcurtis cotto_work: on the other hand, if someone who hasn't broken their git svn install wants to create a svn branch and import what I've done so far, I'd be grateful. ;)
19:14 LoganLK joined #parrot
19:14 cotto_work I don't know anyone like that. ;)
19:15 * tcurtis has broken his git svn install and doesn't know how to do that with it anyway.
19:15 atrodo tcurits> interesting lasm
19:15 moritz somehow a Makefile or even Makefile.in is missing from squaak
19:16 Coke moritz: probably uses distutils.
19:16 Coke look for "setup.pir"
19:16 moritz so, what do I do when I find a setup.pir?
19:16 PerlJam moritz: did you read the README ?  :)
19:16 moritz doh run it.
19:16 tcurtis Coke, moritz: yep. mk_language_shell.pl generates a setup.pir
19:18 moritz any objections to adding vim   set ft=perl6  modelines?
19:18 tcurtis moritz: none.
19:18 cotto_work I haven't found that to be effective.  I always have to set it manually.
19:18 cotto_work but if that should work, +1
19:19 * tcurtis uses emacs, which (frequently fails to) auto-detect sixity.
19:19 moritz currently the t/00-sanity.t fails becuase there's no rule to parse say 'string';
19:20 moritz is the sanity test wrong? or should I add a rule for pasing 'say'?
19:21 tcurtis atrodo: biggest differences are that each op only operates on one argument signature(where different types of registers don't count as different signatures but constant vs. label vs. register does) and that it doesn't have subs.
19:22 tcurtis moritz: I removed the default say statement at some point. You can bring it back if you'd like. I don't think it needed to be removed, in hindsight.
19:24 moritz well, it's useful for testing
19:25 tcurtis moritz: true. although original Squaak doesn't seem to have kept that rule. http://trac.parrot.org/parrot/browser/trunk/ex​amples/languages/squaak/src/parser/grammar.pg
19:27 tcurtis I assume that eventually in the tutorial when we add sub calls that will handle our output  needs.
19:30 cotto_work tcurtis: wouldn'
19:30 cotto_work t coercion (along with boxing and unboxing) be a special case of set?
19:31 cotto_work set P0, S0 #boxing
19:31 cotto_work set S0, P0 #unboxing
19:31 cotto_work set S0, I0 #coercion
19:31 atrodo tcurtis> I'm not sure I follow your concept
19:31 atrodo cotto_work> good thing you haven't look at my concept, i don't have any boxing
19:32 cotto_work tcurtis has a separate coerce op
19:32 tcurtis cotto_work: probably. although coerce is less ambiguous about whether you're getting an object that will change the original object if you change it.
19:32 * cotto_work puts on his boxing gloves
19:32 cotto_work That's true.  We do want minimal magic at the Lorito level.
19:33 atrodo up until yesterday, I had assumed that the parrot middle layer would handle that
19:33 atrodo that=boxing/unboxing
19:33 cotto_work All kinds of assumptions will come to the surface during this phase.
19:34 tcurtis Parrot's concept of setting things is currently very magical.
19:35 atrodo speaking of assumptions, i had a question last night.  what was the reasoning behind removing the limit on the number of register?
19:35 cotto_work and we pay the price by forcing nqp to generate sub-optimal code.
19:36 cotto_work atrodo, Parrot used to think of itself as much closer to the metal than it really is.
19:36 atrodo cotto_work> that I understand
19:37 cotto_work If we're not pretending that we're close to the metal, there's no reason to pretend like we only have a few registers.
19:37 PerlJam atrodo: and no one used the "real" registers because they were limited to 32 each and to do anything interesting you always needed more than 32.
19:37 Coke PerlJam: or a better optimizer. =-)
19:38 atrodo PerlJam> did you need more than 32, or a register allocator?
19:39 PerlJam We had "virtual" registers that were infinite-ish, so ... what cotto_work said
19:40 tcurtis although, for Lorito, having a more limited number of registers wouldn't necessarily be so bad.
19:41 tcurtis As long as it could be done such that the limitation didn't leak up to higher-level code.
19:41 cotto_work and as long as register spilling has some sane meaning for Lorito
19:43 atrodo yea, i was thinking about doing a register stack, so you have an infinite number of registers, but a limited amount you can refrence at one time
19:43 sorear the only sensible numbers of registers to have in an IL are 1. Infinity 2. As many as the CPU
19:43 atrodo ( and why do I forget that as soon as I hit enter means I can spell check? )
19:44 sorear since PIR is supposed to be arch-independant, #2 is ruled out
19:44 cotto_work We could also consider various cache sizes.
19:45 tcurtis sorear: or... as many as you can fit in a convenient number of bits if you're going for a fixed-length bytecode.
19:45 cotto_work2 joined #parrot
19:45 cotto_work2 ohai?
19:45 purl ohai is a town in the Southland Region of New Zealand's South Island.
19:45 Coke can always deal with spilling only if we get to a jit.
19:46 Coke note that parrot doesn't really support inf registers now. and that pir and pasm are asymetrical about it.
19:46 atrodo Coke> is "infinite" the size of an int?
19:47 Coke atrodo: in pasm's case, it's 99.
19:48 atrodo wow, really?  I understood at least hundreds from the conversation yesterday
19:48 tcurtis atrodo: PASM isn't often used.
19:49 Coke atrodo: that's PIR.
19:49 atrodo oh, subtle difference lost on my reading
19:49 Coke PASM's syntax doesn't even allow you to address register P100.
19:50 cotto_work2 left #parrot
19:51 nopaste "coke" at 192.168.1.3 pasted "pasm limits." (21 lines) at http://nopaste.snit.ch/22048
19:52 atrodo wow, cryptic error
19:54 tcurtis imcc--
19:54 tcurtis karma imcc?
19:54 purl imcc has karma of -5
19:55 Coke yah. I filed a bug ages ago but no one cares enough about pasm to fix it. =-)
19:57 sorear what is PIR's register limit?
19:58 darbelo sorear: High enough.
19:58 purl well, high enough is just before your eyes roll back in your head
20:00 Coke note that PIR registers are meta-virtual.
20:00 Coke so $P99999999999 could map to P0
20:01 sorear can I use 101 different PIR registers?
20:02 cotto_work If you want to write the code, sure.
20:02 cotto_work or generate it
20:03 tcurtis sorear: I recommend just writing a moderately complicated expression in any HLL. There you are.
20:03 tcurtis Much quicker and more maintainable
20:06 contingencyplan joined #parrot
20:06 Coke sorear: I do not know off the top of my head /what/ the limit is. I think it's probably INTSIZE.
20:07 cotto_work It's one of those limits which, if you run into it, you're doing something wrong.
20:12 darbelo tcurtis: You can add your projects to the Modules or Languages list on the wiki if you want dalek to track them and report to the channel.
20:13 darbelo http://trac.parrot.org/parrot/wiki/Languages and http://trac.parrot.org/parrot/wiki/Modules by url
20:15 eternaleye joined #parrot
20:40 darbelo msg tcurtis I just added the squaak repo to the Languages page so dalek can report on it.
20:40 purl Message for tcurtis stored.
20:41 tcurtis darbelo: well, hopefully, it'll get imported back into parrot trunk soon(i.e., before 2.6).
20:41 tcurtis But thanks, for now.
20:43 darbelo Ah, I thought you were going for the nqp-rx 'work on it outside an then update in one go' approach.
20:48 cotto_work I like the idea of squaak living outside Parrot.  That's what we expect normal HLLs to do.
20:53 dalek tracwiki: v137 | darbelo++ | Languages
20:53 dalek tracwiki: Add the squaak ressurection effort ot the languages list.
20:53 dalek tracwiki: http://trac.parrot.org/parrot/wiki/L​anguages?version=137&amp;action=diff
20:53 darbelo Bundling a snapshot in examples/ might still be a good idea for our 'example language' of choice.
20:56 * tcurtis doesn't have strong feeling about whether it should be in parrot's repo.
20:56 cotto_work There's charm in that approach too.
20:56 cotto_work just for discoverability
20:56 tcurtis I initially was updating it in a git repo because I didn't feel like creating a svn branch for something I wasn't certain I'd have time to get around to actually doing.
20:59 whiteknight joined #parrot
21:01 * darbelo postpones the distribituion bikeshed until the code works enough to be worth distributing.
21:02 cotto_work release too early and too often
21:03 tcurtis Speaking of it not working; neither throw nor try/catch works.
21:03 cotto_work tcurtis: what langauge
21:03 purl langauge is dead when people stop speaking it entirely (ie no code exists anymore)
21:03 tcurtis cotto_work: Squaak.
21:12 tcurtis Unless there's some way I'm not aware of to get an Exception object in Squaak.
21:12 tcurtis In which case, only try/catch is broken.
21:33 dalek winxed: r559 | NotFound++ | trunk/examples/fly.winxed:
21:33 dalek winxed: add a few towers, a train and some other changes in fly opengl example
21:33 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=559
21:39 cotto_work NotFound: what's required to run that opengl demo?
21:41 cotto_work nm.  I'm not generating opengl bindings
21:44 gbacon joined #parrot
21:51 bacek aloha, humans
21:51 cotto_work aloha, bacek
21:51 bacek hi cotto
21:54 dalek parrot: r48097 | bacek++ | trunk/DEPRECATED.pod:
21:54 dalek parrot: Add :main Sub deprecation notice.
21:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48097/
21:59 tcurtis hello, bacek.
22:01 GeJ Bonjour everyone.
22:03 tcurtis Hi, GeJ.
22:06 GeJ Hey tcurtis.
22:06 purl i guess tcurtis is Tyler Curtis <mailto:tyler.l.curtis@gmail.com>
22:06 GeJ I knew that.
22:23 NotFound cotto_work: opengl is required, indeed.
22:24 NotFound Even magic has its limits ;)
22:24 cotto_work yup.  freeglut3-dev was the magic package
22:25 cotto_work It would be nice if something told me that that was the problem, though.
22:25 cotto_work It's fairly easy for someone who's done some Parrot hacking to find, but it's got potential to mystify users.
22:26 darbelo I doubt parrot can be any more specific than 'you don't have opengl (or it's headers)'.
22:26 cotto_work That would be sufficient.
22:26 darbelo I thought we were doing that.
22:26 * NotFound takes mental note
22:27 cotto_work All I saw was: "load_bytecode" couldn't find file 'OpenGL_funcs.pbc'
22:27 NotFound darbelo: parrot can do, but a parrot based program must do its own checks.
22:28 darbelo Oh, the *winxed* opengl demo. Missed that.
22:29 NotFound Unless we generate a fake package that throws an exception with meaningful message on attempts of usage.
22:30 darbelo We do that in other places.
22:53 kid51 joined #parrot
22:55 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34907), fulltest) at r48097 - Ubuntu 10.04 amd64 (g++)
23:06 jimk joined #parrot
23:11 dalek rakudo: 98163f7 | jonathan++ | src/Perl6/Actions.pm:
23:11 dalek rakudo: Fix generation of attribute initializers so that the generated anonymous method
23:11 dalek rakudo: is in the correct lexical scope. Needs a little care not to break the case where
23:11 dalek rakudo: we have attribute initializers inside parametric roles that reference the role
23:11 dalek rakudo: parameters too.
23:11 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​8163f71d754123f10a193bab1eff64b966bfe3c
23:12 eternaleye joined #parrot
23:56 Psyche^ joined #parrot

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

Parrot | source cross referenced