Camelia, the Perl 6 bug

IRC log for #parrot, 2011-04-11

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:04 whiteknight memcheck provides no information
00:07 whiteknight running that same command with --gc gms doesn't throw an exception
00:08 plobsing_ you could reduce that sanity check from equality to sufficient size and see what else fails
00:08 soh_cah_toa i don't mean to interrupt but i'm having some trouble with headerizer
00:08 soh_cah_toa i've added some functions to src/pmc.c but when i run tools/dev/headerizer.pl src/pmc.c the function prototypes still aren't there
00:09 whiteknight soh_cah_toa: you working in a fork?
00:09 soh_cah_toa yeah. well, i think. i made a pull request
00:10 whiteknight soh_cah_toa: commit and push what you have, so I can take a look at it
00:10 soh_cah_toa whiteknight: alright, give me a second
00:10 whiteknight soh_cah_toa: don't run headerizer directly. Type "make headerizer"
00:11 soh_cah_toa oh, let me try that first
00:11 plobsing_ headerizer can be picky about style/formating. best to cargo-cult that from existing code
00:11 bacek_at_work soh_cah_toa,  tools/dev/headerizer.pl src/pmc.o (notice file extension)
00:11 dafrito joined #parrot
00:12 soh_cah_toa bacek_at_work: so i need to compile pmc.c first into an object file?
00:12 bacek_at_work soh_cah_toa, nope.
00:12 bacek_at_work just run headerizer
00:14 soh_cah_toa bacek_at_work: didn't work. neither did "make headerizer"
00:14 bacek_at_work soh_cah_toa, nopaste error?
00:15 soh_cah_toa bacek_at_work: that's the thing. i get a "Headerization complete". no errors. just no prototypes
00:15 soh_cah_toa oh, wait
00:16 soh_cah_toa i'm not sure which command did it but i see it now in include/parrot/pmc.h
00:17 soh_cah_toa stupid...i was looking in src/pmc.c for prototypes. the function aren't even static
00:18 bacek_at_work soh_cah_toa, happens all the time to me :)
00:19 soh_cah_toa yay, it's building
00:21 soh_cah_toa i spoke to soon. time for nopaste
00:21 soh_cah_toa *too
00:26 whiteknight soh_cah_toa: commit and push to github so we can see
00:27 whiteknight the general rule is: more committing, less not-committing
00:28 soh_cah_toa ha, alright h/o
00:33 soh_cah_toa alright, i commited
00:33 bubaflub soh_cah_toa++
00:33 soh_cah_toa but i can't push for some reason. says permission denied
00:34 bubaflub soh_cah_toa: are you on fork on github?
00:34 soh_cah_toa so many problems...sheesh...
00:34 soh_cah_toa yeah
00:35 bubaflub soh_cah_toa: could you go into the .git folder and open up the file called config?
00:35 bubaflub do you have a section that's labelled [remote "origin"]
00:36 soh_cah_toa yeah
00:36 soh_cah_toa url = git://github.com/soh-cah-toa/parrot
00:37 bubaflub soh_cah_toa: hmmm, i was thinking you should see something like
00:38 plobsing_ change that url to git@github.com:soh-cah-toa/parrot
00:38 bubaflub url = git@github.com:soh-cah-toa/parrot.git
00:38 bubaflub soh_cah_toa: what plobsing_ said
00:38 soh_cah_toa well when i type it explicitly i get the error
00:39 bubaflub soh_cah_toa: what's the error?
00:40 bubaflub soh_cah_toa: did you add your SSH keys to github?
00:40 soh_cah_toa git push git@github.com:soh-cah-toa/parrot.git master
00:40 soh_cah_toa permission denied (publickey)
00:40 soh_cah_toa fatal: The remote end hung up unexpectedly
00:41 soh_cah_toa where do i do that?
00:42 bubaflub soh_cah_toa: if you are logged in, in the top right hand corner there is "Account Settings"
00:42 bubaflub then on that page there is a nav on the left that says "SSH Public Keys"
00:42 soh_cah_toa right
00:42 bubaflub soh_cah_toa: from there you can add any number of public keys - do you have one generated for your system already?
00:43 bubaflub should be ~/.ssh/id_dsa.pub or ~/.ssh/id_rsa.pub
00:43 soh_cah_toa no but i know how. i gotta make a new one since i'm doing it from a vm
00:43 bubaflub soh_cah_toa: ok, great.
00:43 bubaflub soh_cah_toa: and like i said, you can have multiple SSH keys associated with a single github account
00:43 soh_cah_toa good
00:43 soh_cah_toa i didn't reallize you could only push w/ ssh
00:44 soh_cah_toa but now that i think about it, i do kinda remember reading that in pro git
00:44 bubaflub soh_cah_toa: also, inside the vm don't forget to do the whole git config --global name  and git config --global email business
00:45 soh_cah_toa man, i am messing up left and right
00:45 bubaflub soh_cah_toa: haha, no worries.
00:45 benabik Wow.  When building Rakudo's core, parrot spends a lot of time doing GC.  Like 88% of its time, if I'm reading Instruments right.
00:48 benabik Still got a segfault building the compiler.  :-(
00:49 soh_cah_toa bubaflub: finally! i got it
00:49 bubaflub soh_cah_toa: great!
00:49 bubaflub soh_cah_toa: did you push your commit to your branch?
00:49 soh_cah_toa bubaflub: yeah
00:49 whiteknight benabik: instruments?
00:49 bubaflub soh_cah_toa: fantastic, i'll take a look
00:49 benabik whiteknight: OS X tracing tool.
00:49 whiteknight oh, okay
00:50 janus left #parrot
00:50 janus joined #parrot
00:51 bubaflub soh_cah_toa: that commit looks really good - a bit of refactoring and fixing the docs
00:51 bubaflub soh_cah_toa: did you put this commit on a separate branch, by any chance?
00:52 soh_cah_toa just the one i cloned w/ pull request
00:52 nopaste "soh_cah_toa" at 192.168.1.3 pasted "Here's what I get when running" (122 lines) at http://nopaste.snit.ch/40010
00:56 soh_cah_toa like it says...since i'm not too familiar w/ the op syntax, i don't know what to replace things like "expr" and "ADDRESS" with in src/pmc.c
01:13 woosley joined #parrot
01:13 plobsing_ you need to use Parrot_ex_throw_from_c_args() in stead of Parrot_ex_throw_from_op_args()
01:13 whiteknight left #parrot
01:13 plobsing_ because you are no longer in an op
01:14 plobsing_ there are plenty of examples of the usage of this function throughout the codebase
01:15 soh_cah_toa alright
01:18 soh_cah_toa what do i use for the return address argument though?
01:19 plobsing_ Parrot_ex_throw_from_c_args() does not return
01:19 plobsing_ it jumps out
01:19 soh_cah_toa nopaste, one of the arguments specifies a return address
01:19 soh_cah_toa aggh! everytime!
01:20 plobsing_ is now known as no
01:20 no now you may converse without fear
01:20 soh_cah_toa haha
01:21 no that argument is usually left NULL
01:21 edenc left #parrot
01:21 soh_cah_toa okay. does that mean it doesn't return in that case?
01:22 no yes
01:22 soh_cah_toa so then i can take out the goto after the function call, right?
01:23 no yep
01:23 soh_cah_toa okay, i think i got this now
01:23 soh_cah_toa thanks no :)
01:23 soh_cah_toa or should i say no thanks?
01:25 no is now known as plobsing
01:25 plobsing no more no
01:25 soh_cah_toa :)
01:27 soh_cah_toa anyway, i gotta split but i'll be back in about 45 minutes. i'll let you know if there's anymore problems (please no)
01:41 Coke plobsing: are you sure that building parrot without any flags ends up unoptimized?
01:42 plobsing Coke: it used to. and without llvm, it does.
02:13 loufoque left #parrot
02:40 dalek parrot: b513a32 | jkeenan++ | config/auto/llvm.pm:
02:40 dalek parrot: Correct typo in inline comment.
02:40 dalek parrot: review: https://github.com/parrot/parrot/commit/b513a32096
02:54 kid51 left #parrot
02:55 hudnix left #parrot
03:09 bubaflub left #parrot
03:21 cotto ~
03:57 * soh_cah_toa says goodnight to parrot
03:57 soh_cah_toa left #parrot
04:14 dalek parrot: 43c75f0 | plobsing++ | src/packfile/api.c:
04:14 dalek parrot: mark const table internal hashes
04:14 dalek parrot: review: https://github.com/parrot/parrot/commit/43c75f050c
04:17 plobsing msg whiteknight I may have fixed the rakudo build in 43c75f0.
04:17 aloha OK. I'll deliver the message.
04:18 benabik plobsing: I'm starting a build now, although my system is a bit heavily loaded right now.
04:24 cotto plobsing++
04:28 cotto msg soh_cah_toa Thanks for the patch!  In the future, you should make separate branches for each pull request.
04:28 aloha OK. I'll deliver the message.
04:29 benabik Does parrot mostly use github pull requests?  I'm used to patch series on the git list.
04:30 cotto We usually use either github pull requests, patches attached to trac or nopaste (for minor changes)
04:30 benabik Ah, yes.  An actual bug tracking system.  Forgot about those.  ;-)
04:53 benabik plobsing: Still got a segfault building rakudo. :-(
04:54 benabik plobsing: Although I think I may have forgotten to pull before building parrot...  *sigh*  Results in another half hour.
04:55 plobsing yeah. it is breaking for me too. again. it was working for a second. what happened?
04:55 ShaneC left #parrot
04:55 benabik GC bugs are pesky pesky things.
04:56 benabik (By which I mean bugs that are triggered by GC, not necessarily a bug in the GC itself.)
05:05 ShaneC joined #parrot
05:05 benabik plobsing: Rebuilding parrot after actually pulling your change got Compiler.pir to finish successfully.
05:13 benabik Sampling parrot while it runs rakudo to build "core.pir" makes me think the gms GC needs some tuning.  It spends about 60% of it's time in gc_gms_mark_and_sweep (and things it calls).
05:15 plobsing benabik: if you are using gms, the bug won't manifest
05:15 benabik plobsing: It was crashing for me earlier with gms.
05:16 plobsing hmmm... I've only consistently gotten failures on ms2
05:17 benabik It was consistently failing for me, but I've also had my computer doing a lot of things at once.  Perhaps it just needs more memory pressure to trigger under gms?
05:18 * benabik hasn't actually looked under the hood at GC, so is just wildly speculating.
05:20 plobsing gc queries the system for 'available memory', a value upon which it bases its pool size. different OSes respond differently. on some, memory load will affect things.
05:21 benabik Although it appears that I have a good chunk of free memory.  Guess my load is CPU heavy but memory light.
05:23 benabik Once rakudo actually finishes building, I'll rebuild parrot without my normal options and see what happens.
05:30 benabik Ah.  Well, there's one thing.  Parrot thinks I have half as much memory as I actually do.
05:38 dalek parrot: 400f3aa | plobsing++ | src/pmc/imageiofreeze.pmc:
05:38 dalek parrot: patch small reference-holding gap
05:38 dalek parrot:
05:38 dalek parrot: if a mark happens *during* ImageIOFreeze.init(), we need the nascent object to
05:38 dalek parrot: mark its partially-allocated children.
05:38 dalek parrot: review: https://github.com/parrot/parrot/commit/400f3aa081
05:39 theory left #parrot
05:43 nopaste "cotto" at 192.168.1.3 pasted "good name for this function?" (23 lines) at http://nopaste.snit.ch/40014
05:43 cotto What'd be a good name for that function?
05:44 plobsing what is the purpose of it?
05:44 plobsing as in, where is it being used?
05:44 benabik cotto: I'm a bit sleepy.  It appears to be creating a new PMC based on the type of another PMC?
05:45 cotto plobsing, it's part of soh_cah_toa's patch to factor out common code in the vivify and fetch ops
05:45 cotto yes
05:45 benabik clone_blank?
05:49 cotto clone implies that the PMC's data gets copied
05:50 benabik That's why I added blank.
05:50 plobsing *_new_from_type(), *_new_from_proto(), etc... ?
05:50 benabik new_with_same_type seems clunkier.'
05:50 cotto I like from_type
05:51 benabik That reads to me like the argument should be a type...  *shrug*
05:52 plobsing I don't really understand why we don't require the argument to be a type
05:52 cotto beats me
05:52 plobsing then it would work nicely with our pre-existing allocation functions
05:52 benabik Because it looks like it's abstracting out the "figure out the type" part.
05:52 plobsing I'm not convinced the thing this function does is a thing we should be doing.
05:52 benabik There's two different types of type information it looks at.
05:53 plobsing yes, but in terms of the 'fetch' and 'vivify' opcodes, the fallback argument shouldn't be a prototype argument, it should simply be a type-object.
05:54 plobsing in Perl 6, these are the same thing (more or less), so I can see the point there, but it doesn't really make sense in Parrot-world.
05:57 benabik plobsing: That might be what "should be", but that's not how it works now.
05:57 plobsing refactoring wrong code is wrong
05:58 plobsing make it right, then make it clean
05:59 cotto plobsing, it does strike me as questionable from a parrot perspective
05:59 NotFound Note that making the exception thrown by those opcodes non resumable is a significant semantic change, you should ask nqp and rakudo people before doing it.
06:00 cotto NotFound, are you referring to the fetch/vivify changes?
06:00 NotFound cotto: yeah
06:01 benabik There appears to be two different type of types in that function, which have two different types.  (Ow.)  A class is a PMC, but a type for pmc_new is an int.  Is there an easy way other than a proto-object to pass in something that might be either?
06:02 plobsing benabik: PMC types can have ProxyPMC classes wrapping them
06:02 cotto NotFound, good catch
06:02 plobsing er PMCProxy
06:05 dalek TT #2090 created by benabik++: Parrot underestimates memory on OS X
06:05 dalek TT #2090: http://trac.parrot.org/parrot/ticket/2090
06:06 cotto I should probably just put it into a static function in the .ops file and not pretend that it's general.
06:06 NotFound cotto: I'm not sure if we do support, or if we should, static function in .ops files.
06:06 plobsing that's an acceptable intermediary solution. don't spread the bain dramage
06:07 benabik plobsing: I'm not quite sure why there's two types of type to begin with.
06:07 plobsing benabik: it is a long, boring, and insanity-inducing story
06:08 benabik NotFound: We probably do want to support it.  Writing code without helper functions is how we get copypasta like the fetch and vivify ops.  And copy/pasted code is something worth avoiding.
06:08 NotFound benabik: suppossedly we are going towards specializing .ops files, not towards making them generic C files.
06:09 cotto NotFound, we support adding arbitrary C code to the output of a ,ops file
06:09 plobsing NotFound: I think that direction is severely limiting, and ultimately a bad decision
06:09 benabik NotFound: That specialization should still support helper functions.  I would find the lack of them disturbing.
06:09 NotFound Maybe, but we should discuss directions, not ignoring them.
06:10 NotFound benabik: yes, but there is no rule that forces helper functions to be static.
06:11 benabik NotFound:  Leaking functions into wider scope that don't need to be seems poor.  I'd almost argue we shouldn't support non-op non-static functions in an ops file.
06:12 NotFound Also, several runcores => several copies of that static functions going into libparrot.
06:12 plobsing benabik: forcing style on others is rude
06:12 NotFound benabik: That means not calling any function from ops?
06:13 plobsing NotFound: we only have one copy of the ops currently. the idea that we have multiple "runcores" is misleading ATM.
06:14 benabik NotFound: It would mean that the only functions visible from outside an ops file are the ops.  I'm not sure what use could be made of such non-static functions anyway.
06:14 benabik But I'm also pretty close to passing out.
06:14 * plobsing should sleep as well. good night.
06:15 cotto 'night
06:15 benabik Oog.  Closer to passing out than I thought.  Can't focus on the screen anymore.  'night #parrot
06:16 NotFound benabik: staticness is just a tool. Making functions non static does not mean making them ready for arbirtrary usages from wherever.
06:19 benabik NotFound: But OTOH, static-ness keeps them from being used arbitrarily from outside the ops, which would mean they'd be able to be mangled by opsc.
06:21 benabik NotFound: I don't feel strongly about it, it just seems odd to me that any non-ops function wouldn't be static.  I'm just not sure what use making the function available elsewhere would be.  Perhaps someone else could make good use of it.
06:21 NotFound benabik: also means that any mistake in trivial changes in that functions may mean being unable to build.
06:22 benabik NotFound: I'm not sure how a function being static or not affects how fragile it is.
06:22 NotFound benabik: it doesn't, fragility is in the way .ops file are processed during the build.
06:24 benabik NotFound: That is true, but any problems with opsc would already cause issues in the ops.
06:24 NotFound benabik: yes, and we already have enough, better to not adding more.
06:28 benabik NotFound: Not allowing functions just causes a different kind of fragileness.  Duplicated code has a huge tendency to bit-rot.  Our own ops have this new_from_type code repeated at least six times.  Enforcing that ops code has to work that way is bad.
06:29 NotFound benabik: we don't disallow functions, we have lots of functions in libparrot being used from opcodes.
06:29 NotFound Or are you suggesting that throw_from_op`functions should also be static in .ops files?
06:30 benabik NotFound: So duplicated code in ops have to be pushed into libparrot, even if it's not appropriate for outside use?
06:31 NotFound benabik: better thatn forcing a full parrot rebuild for trivial changes in helper functions, absolutely yes.
06:31 benabik No, I'm not suggesting ops can't use non-static functions.  I'm saying that non-op functions in op files should probably not be used outside the function, and functions not used outside a file should be static.
06:31 benabik *outside the file
06:34 benabik Changes to an ops file causes a rebuild of everything in parrot?  I wouldn't expect that...  Although I guess the ops are fairly central.
06:34 NotFound Also, using static functions means you are forcing the op and the function being in the same .ops file, giving less flexibility. In this case it means, for example, that should move out of experimental all the ops or none.
06:35 NotFound benabik: C generated from ops needs to be in the repo for bootstrap, then you need to rebuild.
06:37 NotFound The main point is just: .ops files are not generic .c files.
06:37 benabik As is, any trivial change to that code requires that rebuild anyway.  And I don't see how I'm forcing the function to stay next to the ops....  I'm saying that if the function is next to the ops, it shouldn't be used outside the ops.
06:40 NotFound benabik: I don't know what "next to" means.
06:40 benabik "in the same file"
06:40 NotFound So you want to make them static in other file?
06:42 benabik No...  Things used in other files have to be non-static.
06:42 benabik I'm suffering communications failure and I'm not sure where or how, but I bet it's because it's nearly 3AM here.
06:42 Eduardow left #parrot
06:43 NotFound My view is: making them static has just one advantage, and several disadvantages, so I don't recommend that way.
06:46 benabik 1) Repeated code should be moved into a function.  2) Special-purpose helper functions should be in the file they're used in.  3) Functions not used outside the file they're declared in should be static.  4) If a function is used for more than the ops in the file, it shouldn't be in the ops file.
06:47 NotFound benabik: a good reasoning for .c files, but we are talking about .ops files, wich are special beasts.
06:49 benabik NotFound: Which part doesn't apply to .ops?
06:49 Eduardow joined #parrot
06:50 fperrad joined #parrot
06:50 cotto We shouldn't avoid factoring out common code because it makes llvm ops generation harder.  We can solve that problem when we don't have other things blocking it.
06:51 cotto For the time being, it makes for better code to use a static function.
06:53 NotFound Factoring *out*.
06:54 NotFound Out of the .ops file, for example.
06:54 NotFound benabik: part 2) and 3)
06:54 cotto That code shouldn't be outside the ops file.  I'm a little curious why it's *in* the ops file.
06:57 NotFound Anyway, moving that functions if it becomes needed will be a mater of minutes, a lot shorter that this discusion, so I give up.
06:57 cotto NotFound, quite true.
06:57 * benabik tends to be a little stubborn and slow to understand when tired and apologizes for that.
06:58 cotto I got lazy and told soh_cah_toa which changes to make, and I'm certain that doing took longer than it would just to clean up and push what I had.
06:58 cotto benabik, go to sleep
06:58 NotFound benabik: NM.
06:58 cotto We need that brain of yours well-rested.
06:59 benabik cotto: I'm sure I'll find time to sleep after finals and before GSoC.  ;-)
06:59 cotto benabik, that's good
07:00 benabik But anyway...  Third time's the charm.  G'night!
07:08 benabik_ joined #parrot
07:08 benabik left #parrot
07:08 benabik_ is now known as benabik
07:20 UltraDM joined #parrot
07:27 dod joined #parrot
07:41 moritz did anybody open a ticket for the rakudo segfault, or should I?
07:42 Eduardow left #parrot
07:56 bacek_at_work moritz, it's probably fixed by plobsing++ already
07:56 bacek_at_work check out latest version
07:59 moritz bacek_at_work: just tried with RELEASE_3_2_0-352-g400f3aa and it still segfaults
08:00 * moritz git clean's and tries again, justin case
08:37 moritz still lots of segfaults
08:43 mikehh joined #parrot
09:01 jrtayloriv left #parrot
09:29 dod left #parrot
09:32 lucian joined #parrot
09:33 dod joined #parrot
09:38 Kulag left #parrot
09:44 ambs joined #parrot
09:49 Kulag joined #parrot
09:52 ShaneC left #parrot
10:08 woosley left #parrot
10:21 ShaneC joined #parrot
10:29 wagle left #parrot
10:30 ShaneC left #parrot
10:32 lucian left #parrot
10:35 lucian joined #parrot
10:46 woosley joined #parrot
10:59 ttbot Parrot ade5602c i386-linux-thread-multi make error http://tt.taptinder.org/cmdinfo/65813
11:27 Eduardow joined #parrot
11:29 contingencyplan left #parrot
11:47 brooksbp joined #parrot
11:49 mtk joined #parrot
11:51 brooksbp left #parrot
11:55 Psyche^ joined #parrot
11:55 Patterner left #parrot
11:55 Psyche^ is now known as Patterner
12:02 bubaflub joined #parrot
12:35 benabik left #parrot
12:51 whiteknight joined #parrot
13:03 whiteknight good morning, #parrot
13:03 zostay left #parrot
13:06 lucian 'morning
13:07 whiteknight hello lucian
13:09 mikehh howdy, whiteknight
13:10 moritz \o
13:10 moritz lucian: I liked your reply on melange
13:11 lucian moritz: oh. thanks
13:12 whiteknight lucian: yes. very nice
13:13 whiteknight it's always good when the student has a clear understanding of the issues
13:13 lucian i wouldn't call mine "clear"
13:13 lucian boostrapping is still a bit fuzzy
13:14 moritz it takes some time to wrap your head around bootstrapping :-)
13:14 plobsing left #parrot
13:14 mikehh lucian: "bootstrapping" is always problematic :-}
13:14 whiteknight moritz: have you tried reproducing your bug after plobsing's patch?
13:14 atrodo I've just always mentally equated bootstrapping with magic
13:15 moritz whiteknight: rakudo on RELEASE_3_2_0-352-g400f3aa still segfaults
13:15 whiteknight bootstrapping is not magic. It's very sequential. Build one thing, use it to build something bigger. Use that to build something bigger still
13:16 moritz circular logic is the best kind of logic, because it's circular!
13:16 mikehh one hopes it is incremental, but one has to be careful
13:16 whiteknight moritz: try git pull. plobsing put in a potential fix very recently
13:16 whiteknight RELEASE_3_2_0-134-gfa331ee
13:16 whiteknight I'm running it now, but the fix looks very plausible
13:16 mikehh maybe that should be two or three or ...
13:17 moritz whiteknight: RELEASE_3_2_0-134-gfa331ee is, like very old
13:17 whiteknight oh shit, sorry
13:17 moritz more than 200 commits behind HEAD
13:17 bluescreen joined #parrot
13:18 whiteknight moritz: okay, my pull didn't succeed the first time.  head is RELEASE_3_2_0-352-g400f3aa
13:18 whiteknight and you're saying it still segfaults? That's worrisome
13:18 * mikehh just another update to natty that need a re-boot - bbiab
13:18 mikehh left #parrot
13:19 Eduardow left #parrot
13:20 moritz $  ./perl6 -v
13:20 moritz This is Rakudo Perl 6, version 2011.03-12-g4bf1327 built on parrot 3.2.0 RELEASE_3_2_0-352-g400f3aa
13:20 moritz $ ./perl6 t/spec/S03-sequence/arity-2-or-more.t
13:20 moritz Segmentation fault
13:20 moritz that is after 'git clean -xdf' in rakudo, and 'make realclean' in parrot
13:20 moritz (note that the 'git clean' also wipes out parrot's install location, because that's a subdir of my rakudo source tree)
13:32 plobsing joined #parrot
13:33 hudnix joined #parrot
13:36 lucian i'm fine with the general concept of boostrapping, but boostrapping python on parrot is a bit odd
13:36 * lucian goes to eat
13:36 * moritz doesn't see how it's more odd than any other bootstrap
13:44 Eduardow joined #parrot
13:52 moritz whiteknight: regarding the Pod parser proposals, I fear that something went terribly wrong
13:53 moritz whiteknight: the Perl 6 folks want a pod6 parser, and we have such a proposal for TPF
13:53 moritz whiteknight: the parrot folks want a POD5 parser, to get rid of another p5 dependency
13:54 moritz whiteknight: those two have not much in common - and it's very unfortunate that the parrot proposal list seems to contain the wrong one
13:55 moritz whiteknight: I've replied to the thread by Joseph Lewis on parrot-dev, and said it would be better suited to apply at TPF with a pod6 proposal, but seems he (and other students) haven't read that
13:57 moritz seems I replied only to the list, not to all people involved - in old habit that all people are on the list :/
14:00 darbelo joined #parrot
14:02 whiteknight moritz: no proposal is perfect the first time it is drafted. POD parsing proposals can be steered in a way that is more useful and acceptable to Parrot
14:03 whiteknight moritz: a Pod5 parser would have benefit, as would a more generalized documentation-handling tool
14:03 whiteknight if we had tools for storing metadata in packfiles and then being able to extract them again, POD could be just one input format for those tools
14:04 whiteknight or, if we had tools for parsing documentation into PAST, then outputting documentation into various formats through subclasses of POST, that would be a very interesting project also
14:04 whiteknight and in any case, we shouldn't criticize the project idea, since we proposed it first on our ideas page
14:05 moritz right
14:05 moritz steering it towards parsing p5 seems the most sensible thing to me
14:06 whiteknight we have three proposals on that same project idea right now. The big question is whether any of them can get their act together and become compelling enough to get accepted
14:07 moritz based on their current forms I rather doubt it, but then I'm open to positive surprises :-)
14:07 whiteknight my thoughts exactly
14:10 lucian moritz: it's a bit odd because CPython should be able to serve as stage 0, but it can't fully
14:11 utsl left #parrot
14:12 lucian moritz: for two reasons: not all of CPython is pure-python and there's no access from python to native parrot features
14:13 moritz lucian: you mean, past generation?
14:13 lucian moritz: that, and data types
14:14 lucian i could conceivably write a not quite python first
14:14 lucian but that's significant work, and i will likely be better off using winxed or something
14:14 moritz and call it... *drum rolls*.... NQP!
14:15 lucian yeah, except no python developer will ever go "Perl syntax? yay!"
14:17 PacoLinux joined #parrot
14:18 tadzik lucian: you can just overload the NQP grammar
14:18 Coke even if you use nqperl (instead of nqpython, as I think moritz was implying), most python on parrot users wouldn't have to touch it, would they? just you.
14:18 lucian tadzik: i suppose. but then look at semantics too? meh
14:18 lucian Coke: developers would. my main goal is to keep it very hackable
14:19 lucian depending on those 6model docs, it might be a non-issue in fact
14:19 lucian (if 6model provides enough help, the object model will be easy)
14:25 NotFound lucian: any language can serve as stage 0 if you generate pir.
14:25 lucian NotFound: sure, for the compiler. but then i need objects
14:25 lucian usually the language's "object system" is also boostrapped the same way
14:26 lucian like with C
14:26 moritz C doesn't have an "object system"
14:26 moritz it just has the machine
14:26 lucian but with pynie-ng, it's not possible, short of nqpython
14:26 moritz lucian: you can write a faked-up object system in pir
14:27 lucian sure, or winxed
14:27 moritz stage0 is all about just getting it work
14:27 lucian C does have an object system
14:27 lucian types, structs, functions
14:27 NotFound lucian: Have you seen my experiment with prototypes, or the variant that whiteknight has added to rosella?
14:28 lucian no
14:28 NotFound One second...
14:28 lucian moritz: i don't really plan to get it boostrapped soon, because of dependencies
14:29 lucian but even if i did, it wouldn't be much help
14:29 nopaste "NotFound" at 192.168.1.3 pasted "Experiments with prototype based objects" (133 lines) at http://nopaste.snit.ch/40118
14:29 lucian python's object system is very uniform and recursive
14:29 moritz it's unicorns all the way down!
14:31 lucian yes, sort of. except it's snakes. and they eat each other's tails too
14:31 NotFound Unicorned snakes.
14:32 moritz tail recursion gets a new meaning :-)
14:32 lucian NotFound: hmm, that looks a bit similar to my non-6model plan. thanks
14:32 lucian heh
14:32 darbelo Except that if you go deep enough you crash into a turtle.
14:33 NotFound lucian: probably, but using pir or winxed you can do experiments right now.
14:35 lucian NotFound: if i had time, yes. i do know that this method will work, however. just not very elegantly/fast
14:35 lucian when i get time (and docs), i'll look at 6model first
14:35 lucian NotFound: so there's a parrot Class called 'Meta'
14:35 lucian that all objects are instances of
14:36 NotFound Fast, probably not. Elegancy is in the eye of the beholder.
14:36 lucian in python, in addition i'd have 'class' objects
14:37 lucian and instead of a prototype chain, a class chain
14:37 lucian not sure how MI'd work
14:37 NotFound lucian: that experiment was oriented towards javascript-alike objects.
14:37 lucian yeah, but JS isn't all that different
14:38 NotFound The key point is the mechanic to avoid problems with the method cache.
14:39 lucian what's the [vtable] syntax?
14:39 NotFound lucian: it gets translated to a PIR :vtable
14:39 lucian right
14:40 lucian and ${ } is inline pir?
14:40 NotFound Yes
14:40 NotFound The [ ] syntax for that is borrowed from C# attributes, but in Winxed I call them modifiers.
14:42 NotFound Because is mostly used for PIR modifiers.
14:43 Andy_ joined #parrot
14:43 lucian right. are winxed classes declared like python ones?
14:43 lucian i.e. just a namespace where assignments get set into class attributes?
14:44 bubaflub left #parrot
14:44 plobsing lucian: no. they're baseline parrot ones
14:44 NotFound lucian: no, it follows parrot class and object model.
14:44 lucian right
14:44 lucian it seemed that way from the syntax
14:45 NotFound Well, yes, *is*, not just follows.
14:46 NotFound lucian: that's Winxed magic, you can figure most of it just by looking at its examples ;)
14:47 lucian hmm
14:51 lucian NotFound: hmm, that find_method doesn't walk the prototype chain afaict
14:52 NotFound lucian: no, it just look ups one level.
14:52 lucian is that 'obj' and explicit this/self?
14:52 lucian right, so i read it right
14:52 lucian s/and/an/
14:54 PacoLinux left #parrot
14:54 NotFound The proof of concept was being able to avoid problems with the method cache and to bypass getting and setting of attributes.
14:54 lucian NotFound: see, if I go this route, I'll have to reimplement a lot of things myself, like C3
14:54 lucian right
14:55 lucian it should actually be passable for a js stage0
14:55 PacoLinux joined #parrot
14:55 NotFound That's the idea, a way to prototype naive implementations.
14:55 lucian for python, there's already pynie
14:56 lucian i think it's bitrotten and doesn't work right now
14:56 whiteknight lucian: Rosella wants to provide things like that in any case. If there are things that you need, it's very probable that Rosella can provide them
14:56 lucian but it's *extremely* naive
14:56 whiteknight C3 linearization, prototype-like fallback using multiple prototypes is all possible to do
14:56 whiteknight and probably worthwhile
14:57 whiteknight or, if not prototypes, other interesting object models can be provided
14:57 lucian whiteknight: right. more worthwhile than 6model i wonder?
14:57 whiteknight probably not. But in terms of prototyping it can be very valuable
14:57 lucian python's object model is prototypal, shouldn't be an issue
14:57 lucian (most people don't believe that because there's a 'class' statement)
14:58 lucian but it's prototypal where it matters
14:58 whiteknight A lot of what Rosella is, is future-proofing. If Rosella provides an interface, that interface will try to be stable even if Parrot changes underneith it
14:59 whiteknight so if Rosella provides an interface for a particular object model, and eventually Parrot adopts 6model into it's core, the Rosella version will still work
14:59 whiteknight it will just get a lot thinner
14:59 lucian hmm
15:00 lucian 6model really needs some docs or something, so far i'm under the impression that 6model requires C-level extension
15:00 lucian s
15:00 lucian for each particular implementation of the MOP
15:01 UltraDM left #parrot
15:02 lucian but i don't know if that's true or not
15:03 bubaflub joined #parrot
15:04 theory joined #parrot
15:12 dngor left #parrot
15:21 contingencyplan joined #parrot
15:28 mj41 joined #parrot
15:29 plobsing left #parrot
15:33 he joined #parrot
15:45 whiteknight I think Google is making initial slot allocations tomorrow
15:45 whiteknight if I am reading the timeline correctly
15:45 moritz wow
15:46 lucian really? cool
15:46 lucian how many "real" proposal do you have so far? if you can tell
15:46 * Coke doesn't think so.
15:46 whiteknight by my count, we have 6 projects which are pretty fantastic and should be accepted. 2 more that are good enough to accept, but not wowsers
15:47 whiteknight the rest are poor
15:47 Coke whiteknight: when do we need to vote by?
15:47 lucian whiteknight: thanks
15:47 PerlJam Still end of the wek isn't it?
15:47 PerlJam s/wek/week/
15:47 PerlJam How many slots did we request?
15:47 whiteknight the 17th is the end of the "initial ranking" period
15:48 whiteknight I don't quite know what that means
15:48 cotto more important is to make sure the proposals we want to be accepted have a potential mentor.
15:48 whiteknight the 22nd is when the winners are announced
15:48 whiteknight cotto: yes, quite right
15:48 cotto seen dukeleto
15:48 aloha dukeleto was last seen in #parrot 2 days 19 hours ago saying "cotto_work: :)".
15:48 whiteknight Coke: to answer your question, sometime this week or this weekend would be ideal
15:49 Coke k. shouldn't be a problem.
15:49 whiteknight cotto: I think we can scrape together 8 mentors for good projects
15:49 whiteknight And as I mentioned, i'm willing to do two of them, if at least one doesn't need a lot of hand-holding
15:49 moritz it's not just about the total, it's also about who can and want to mentor which project
15:49 whiteknight also true
15:49 cotto moritz, of course.  Not everyone will be comfortable mentoring every project.
15:50 plobsing joined #parrot
15:52 lucian http://www.youtube.com/watch?v=uL2D3qzHtqY interesting
15:58 whiteknight yes, this is very interesting
15:59 lucian i mean, 10mins in he has yet to reveal something to completely surprise me
15:59 lucian but it helps to have him lay it out
15:59 whiteknight he talks quick. I like that. Doesn't waste my time
15:59 lucian yep
16:03 whiteknight I would be very interested to hear what serialization mechanism he thinks would be better than bytecode
16:04 lucian i think his point is that we shouldn't use bytecode for the actual execution
16:04 dmalcolm joined #parrot
16:06 woosley left #parrot
16:06 atrodo Apparently, I got too bored with that video too quickly
16:06 dngor joined #parrot
16:07 dngor left #parrot
16:08 dngor joined #parrot
16:12 rohit_nsit08 joined #parrot
16:12 rohit_nsit08 whiteknight: hello
16:23 dodathome joined #parrot
16:23 whiteknight hello rohit_nsit08
16:23 plobsing left #parrot
16:24 bubaflub left #parrot
16:25 rohit_nsit08 whiteknight: hi, was going through the irc's chat history
16:25 rohit_nsit08 lots of discussion on bootstrapping python, i missed it :-(
16:25 rohit_nsit08 whiteknight: is python's object model also prototype based?
16:26 rohit_nsit08 like javascript
16:26 whiteknight similar, but not identical
16:26 whiteknight rohit_nsit08: NotFound and I started adding code for JavaScript objects to Rosella
16:26 lucian rohit_nsit08: it's similar in that you can create/modify classes/objects at will
16:27 lucian rohit_nsit08: it's class based in that you don't clone objects most of the time, but create new ones
16:28 rohit_nsit08 lucian: can we add properties at run time dynamically like we do it in javascript?
16:28 lucian rohit_nsit08: yep
16:28 lucian also, all "methods" are just functions that are properties
16:28 lucian "everything is an object"
16:28 rohit_nsit08 lucian: ya, in javascript even functions are objects :-)
16:29 lucian rohit_nsit08: same as in python, yes
16:29 rohit_nsit08 whiteknight: thanks, i'll check rosella today, how can i start to get some hands on it?
16:29 lucian classes are objects, modules are objects, ints are objects, scopes are objects, etc
16:29 whiteknight rohit_nsit08: get plumage. Then "plumage install Rosella"
16:29 whiteknight er, you need plumage and winxed
16:29 rohit_nsit08 lucian: ya, i have installed plumage and rosella both
16:30 rohit_nsit08 and winxed too
16:30 rohit_nsit08 have used winxed for some simple programs
16:30 whiteknight https://github.com/Whiteknight/Rosella/bl​ob/master/src/prototype/Protoclass.winxed
16:31 whiteknight that's the code for the javascript-like objects. It's not included in the build yet. No tests
16:31 rohit_nsit08 hmm. let me have a look , btw which projects are using rosella at present?
16:32 whiteknight none really. Rosella is still new
16:32 PerlJam the most interesting part of that JVM talk starts around 36 minutes in.
16:33 whiteknight Parrot-Linear-Algebra uses it for the test suite
16:35 benabik joined #parrot
16:37 lucian PerlJam: this is true
16:38 wagle joined #parrot
16:39 cotto_work ~
16:43 jaffa4 joined #parrot
16:43 jaffa4 hi
16:44 whiteknight hello jaffa4
16:45 jaffa4 I had a problem last time
16:45 jaffa4 I could not run bytecode of perl 6 program
16:45 lucian whiteknight: 45:30 about bytecode
16:45 jaffa4 on WIndows
16:45 moritz ... but oyou used a different nick, just for confusion
16:46 jaffa4 exsctly
16:46 jaffa4 but you are here fortunately
16:46 PerlJam he was a newbie then.  But no more!
16:46 jaffa4 that was the way of kvirc
16:46 jaffa4 not of my choosing
16:47 jaffa4 I just wonder if anything has happened since then
16:47 jaffa4 or not.
16:50 Coke as I recall, i was able to duplicate your problem, but I haven't spent any time trying to fix it.
16:50 Coke you should open a trac ticket so it doesn't get lost.
16:50 jaffa4 I suspect it must be a minor problem
16:50 lucian whiteknight: what he's saying is "java bytecode sucks", which i agree with. not necessarily bytecode in general
16:50 whiteknight okay, that makes more sense
16:55 lucian whiteknight: i'd really like to try my hand at a PhD on parrot 2012 or later. depends highly on whether any uni wants me
16:55 whiteknight lucian: heh, harder part is finding a university with a research program that matches your interests
16:55 lucian yep
16:56 jevin joined #parrot
16:56 whiteknight I've been looking myself. There aren't a hell of a lot of places around where I live that care about dynamic language runtimes
16:56 lucian i haven't looked to much in the UK
16:56 lucian they seem to care a lot about enterprisey stuff
16:56 cotto_work lucian: you might talk to allison and see if she can point you somewhere
16:57 lucian cotto_work: thanks, i'll ask
16:58 allison lucian: bradley kuhn has a connection with a university in the US that has an active interest in dynamic languages
16:58 allison lucian: I forget which one, possibly University of Michigan
16:58 mj41 left #parrot
16:58 lucian allison: thanks. hmm. i dislike the UI
16:58 lucian US
16:58 allison lucian: it's where he did his master's degree (on how impossible it is to implement Perl in Java)
16:59 allison lucian: my best experiences have been with Cambridge and Oxford
16:59 cotto_work he used to hang out in here
16:59 allison lucian: Oxford has a big old-school Perl/Ruby crowd
16:59 lucian right
16:59 lucian i don't think they'll want me, though
16:59 allison lucian: also worth finding out where Brett Cannon (CPython) did his PhD
16:59 lucian academically, i'm bland
17:00 allison lucian: I've had good interest also from ETH Zurich
17:00 lucian right. i'll need to make a list
17:01 lucian i haven't thought about it too much since 1) i'm busy right now and 2) i'll be busy for 1 year after i graduate
17:01 allison lucian: yeah
17:04 jaffa4 Could sombody fix that bug?
17:05 lucian allison: btw, are you still willing to mentor pynie-ng?
17:06 allison lucian: yup, absolutely
17:06 allison lucian: do I need to enter that into the system?
17:06 lucian allison: don't think so
17:06 cotto_work It's important that melange know about mentors.
17:07 whiteknight We don't have any slot allocations from Google yet. I don't know if it's premature to start putting that stuff in
17:07 whiteknight but then again, it probably can't cause any harm
17:07 cotto_work The number of projects with mentors is an important signal as to how many slots we'll get.
17:08 lucian if it can be put in, why not? i've never been a mentor though, and at least 2 years ago you couldn't
17:08 whiteknight The only button I have is "I wish to mentor this project"
17:08 whiteknight I'm afraid to click it in case it locks other mentors out
17:09 dukeleto ~~
17:09 cotto_work That's the important one.  I'm pretty sure that multiple people can register their willingness to mentor a project.
17:09 * dukeleto has been living under a rock
17:09 cotto_work ah dukeleto.  jit
17:09 allison lucian: I've signed up as a potential mentor for pynie-ng
17:10 lucian ok, thanks
17:10 jaffa4 what is pynie-ng
17:10 jaffa4 ?
17:10 lucian jaffa4: python3 on parrot
17:10 benabik dukeleto: As long as it was a comfortable rock, that's okay.
17:10 lucian done "right"
17:10 allison jaffa4: a Python on Parrot implementation, for Google summer of code
17:11 jaffa4 I see
17:11 jaffa4 is there Perl 5 on Parrot?
17:11 jaffa4 is there no Perl 5 on Parrot?
17:11 PerlJam jaffa4: no.
17:11 cotto_work no and yes, respectively
17:12 jaffa4 it would make sense.
17:12 benabik There's a perl5 next to parrot.
17:12 jaffa4 perl5 next
17:12 whiteknight it wouldn't make sense. perl5 is extremely difficult to port
17:12 whiteknight people have tried before and failed
17:13 benabik jaffa4: The only real specification for perl5 is the perl5 parser.  Duplicating that is what I call "non-trivial"
17:13 PerlJam jaffa4: There was a TPF grant to get the Perl 5 innards to use an honest-to-goodness AST.  If that ever happens it might make sense to do an P5AST to PAST translator
17:13 whiteknight a sanified perl5 subset might be a nice project. So far, no takers
17:13 allison it would be possible to do "baby perl 5" though
17:13 allison whiteknight: exactly
17:14 benabik "nqp5"?
17:14 jaffa4 ppi?
17:14 allison no need to handle all the edge-quirks
17:14 whiteknight btp5
17:14 jaffa4 what about ppi?
17:14 whiteknight better than perl 5
17:14 allison ppi is good
17:14 allison isn't that damian's name from a few years ago?
17:14 jaffa4 use ppi
17:14 allison before perl6?
17:15 allison ah: http://www.perl.com/pub/2005/06/09/ppi.html
17:15 allison adam kennedy
17:15 lucian i don't much see the point of a perl5 subset
17:15 allison those australians all look alike ;)
17:15 lucian perl5 compatible would be useful for legacy libs
17:15 lucian otherwise, perl6 is nicer and incompatible
17:16 whiteknight lucian: a cleaned up, more sane perl5 without all the legacy cruft might be pretty popular indeed
17:16 whiteknight would probably make chromatic happy
17:16 lucian whiteknight: but it wouldn't run CPAN
17:16 PerlJam lucian: anything that allows Perl 6 to use the existing CPAN with no change would be awesome  :)
17:16 whiteknight lucian: that's not the only draw of Perl5
17:17 lucian whiteknight: is there another? even for perl lovers, there's perl6
17:17 whiteknight the language has other merits, even if a python coder can't admit them
17:17 whiteknight yes, that's true
17:18 lucian i do admit that some things are easier in perl5. but it's such a crazy language, it's not worth it.
17:18 moritz agreed
17:19 moritz I like to program in Perl 5, but some ideas behind it are just too broken to replicate it without breaking your own heart
17:19 whiteknight my happiness with perl5 has decreased pretty precipitously in the last few years
17:19 allison lucian: I'm not sure perl5-lovers would agree that perl6 is all the perl they need (at least, they haven't agreed so far)
17:19 lucian allison: that's either perl6 missing things or them being change-averse
17:19 whiteknight I can't say I'm too much happier with perl6 than with perl5, but I can hardly speak for other perl coders
17:20 allison lucian: does it really matter which? they love what they love
17:20 lucian allison: i don't think there can be any sane excuse to write new perl5 code
17:20 allison lucian: that's the nature of programming language choice in general
17:20 dukeleto lucian: it is called "getting paid"
17:20 allison lucian: the same could be said of *any* language one doesn't like, but the people who do like it want to use it
17:20 lucian * other than legacy stuff
17:21 lucian allison: no, not at all. it's not about dislike, it's about sanity
17:21 lucian perl6 seems fine, even though i don't like it much
17:21 dukeleto cotto_work: so am I needed? I see a really comfortable rock over there ...
17:21 allison lucian: a bigger question for me is whether anyone who loves perl5 would be interested in moving to a sanitized perl5, if that makes sense
17:21 * dukeleto has been taking IRC diets
17:21 lucian my point is that yet another perl derivative seems useless
17:22 whiteknight dukeleto: if you are able/interested, could you volunteer as a mentor for some GSoC projects that catch your attention?
17:22 allison lucian: it's exactly the same problem as a new implementation of Python 2.x
17:22 lucian allison: that would involve breaking a lot of code
17:22 whiteknight We have two projects without mentors attached, at least one of which looks right up your alley
17:22 cotto_work dukeleto: should we have a backup gsoc org admin?
17:22 dukeleto whiteknight: are they using the google-melange.com site now? I attempted to use it for a minute a few days ago, but everythin was different
17:23 whiteknight cotto_work: I'm a gsoc org admin
17:23 allison lucian: if someone is open to change, they'll be open to Python 3. If they aren't open to change, why would they use anything other than CPython 2.x?
17:23 dukeleto cotto_work: i think whiteknight is already the backup admin
17:23 cotto_work whiteknight: great
17:23 lucian allison: no, a full implementation of perl5, quirks and all, would be useful
17:23 cotto_work As long as we have one, I'm happy.
17:23 whiteknight dukeleto: yes, everything is on the google-melange site now
17:23 whiteknight cotto_work: don't worry, I'm on top of it
17:23 cotto_work you can also access it on socghop
17:23 lucian allison: same as a full implementation of python2, with broken closures and old-style classes and crappy strings
17:23 lucian allison: but a (sane) subset would break legacy code, which is most of the point of it
17:24 allison cotto_work: I vaguely remember that I agreed to be a potential mentor on another GSoC project, but I can't seem to find it now
17:24 whiteknight that's not the only point of it
17:24 whiteknight a perl5 subset without the crap would be a pretty nice language
17:24 whiteknight depending on which crap you excised
17:24 whiteknight and if we built-in Moose, it would be quite nice indeed
17:24 lucian whiteknight: yes, it might be, i guess
17:25 allison lucian: yeah, getting to the full set of quirks is always the hard part
17:25 lucian would it be nicer than perl6? i don't know
17:25 whiteknight lucian: might be faster
17:25 whiteknight perl6 has got a hell of a lot going on
17:25 lucian whiteknight: i almost always ignore that argument
17:25 allison lucian: like, the basic systax is 10%, and duplicating all the weird edge-behaviors is 90%
17:25 whiteknight a prettified perl5 subset could be more economical
17:26 allison s/systax/syntax/
17:26 lucian allison: and then getting it to work well is another 90%
17:26 lucian whiteknight: if it ran 50% of CPAN, i think it might be a very worthwhile project
17:26 allison lucian: yah
17:26 whiteknight that's very possible, I think. I mean, much of CPAN is garbage anyway
17:27 whiteknight where we would invariably run into problems would be with the multitude of special global variables
17:27 allison lucian: automated integration tests across a wide collection of real code from CPAN would be the critical test
17:27 PerlJam If it just ran the non-garbage, that would be awesome.  That's only what?  5% of CPAN?  :)
17:27 lucian PerlJam: does the non-garbage avoid the ubiquitous whale guts?
17:28 dukeleto why are we talking about a perl5 subset again? to hear the funny sounds we make?
17:28 dukeleto because I surely don't see any logical reason for it
17:28 whiteknight blah
17:29 whiteknight I think there's plenty of logic for it
17:29 whiteknight if we show perl5 coders that they have a better situation on Parrot, the sensible ones might migrate
17:29 dukeleto whiteknight: i think you are sorely disconnected from the Perl community, buddy :)
17:30 whiteknight so there are no sensible ones?
17:30 PerlJam whiteknight: what makes you so sure that they'd have a better situation on Parrot?
17:31 cotto_work Once we cut out our work, we'll have our work cut out for us.
17:33 * dukeleto is feeling devil's advocate-ish today, it seems
17:34 dukeleto whiteknight: if there was a 0.001% chance that "perl5 on parrot" was not bug-for-bug compatible with Perl 5, no one would want to run their code on it
17:35 cotto_work dukeleto: yeah.  I don't hold out much hope for Parrot as an alternate compiler/runtime for Perl 5.
17:36 benabik Blizkost (embedded Perl5) really seems like the best solution to integrate Perl5 into the Parrot-verse.
17:36 PerlJam why are people always advocating for the devil?  doesn't he have enough advocates already?
17:36 jaffa4 What is crap in perl 5?
17:36 PerlJam benabik: I agree.
17:37 jaffa4 WHat do you consider bad in Perl 5?
17:37 dukeleto i am logged into melange. I have used melange for 4 years, and now nothing makes sense. Why, why, why?
17:37 lucian jaffa4: depends highly on who you ask
17:37 cotto_work dukeleto: because melange--
17:37 dukeleto melange-- indeed
17:38 cotto_work It's nice how the left the least useful part in.
17:39 cotto_work *they
17:40 NotFound One thing that p5 on parrot can be used for is as a test framework for proposals and new features.
17:41 NotFound Provided that its compiler will be a lot easier to hack on tnan regular p5, of course.
17:41 dukeleto whiteknight: how in the *** do i see our student proposals?
17:41 arnsholt dukeleto: You're Excess flooding a lot (a LOT) over at freenode
17:42 cotto_work dukeleto: it should be on the dashboard
17:42 dukeleto arnsholt: thanks. I had to calm down some dueling irc clients
17:43 dukeleto cotto_work: nope. I see nothing. It doesn't seem to think that I am an org admin
17:43 * PerlJam wonders what happens to already-scored proposals if the org admin changes the max rating from 5 stars to 10 stars
17:43 dukeleto whiteknight: am I listed as an org admin when you are logged into melange?
17:43 NotFound PerlJam: *= 2 ?
17:44 whiteknight dukeleto: no, I don't see you listed at all
17:44 PerlJam NotFound: probably nothing now that I think about it for more than 1 second
17:45 PerlJam Although melange might just do something entirely different for all I know
17:45 whiteknight dukeleto: apply to be a mentor :)
17:46 benabik left #parrot
17:47 hercynium joined #parrot
17:48 dngor left #parrot
17:48 whiteknight left #parrot
17:49 whiteknight joined #parrot
17:51 whiteknight_ joined #parrot
17:52 Coke dukeleto: melange supports logging in via google-hosted accounts (not just gmail accounts) - perhaps you have the auth from a different account than your admin account in effect.
17:53 dukeleto whiteknight: i did apply to be a mentor
17:53 whiteknight_ awesome
17:53 dukeleto Coke: possibly.
17:54 dukeleto Coke: but my 'linkid' for gsoc/melange has always been dukeleto and that is what is showing
17:54 dukeleto Coke: it shows that i submitted org apps for TPF and Parrot, but I am not org admin for Parrot
17:55 Coke dukeleto: my linkid is coke for both wcoleda@gmail & will@coleda, methinks.
17:55 whiteknight left #parrot
17:55 whiteknight_ is now known as whiteknight
17:55 * Coke would open a bug report with the melange folks. they are pretty responsive.
17:58 benabik joined #parrot
18:00 dukeleto blarg
18:01 ShaneC joined #parrot
18:02 lucian_ joined #parrot
18:03 jaffa4 is there reflection in perl6?
18:03 jaffa4 ?melange
18:03 jaffa4 !melange
18:03 jaffa4 what is melange
18:04 PerlJam jaffa4: perl6 questions are best asked on #perl6  :-)
18:04 PerlJam jaffa4: melange is the software that google uses to manage GSoC
18:04 jaffa4 except when it is best to ask there?
18:04 Coke #perl6 on freenode.net
18:04 jaffa4 except when it is best to ask here?
18:04 benabik aloha, melange?
18:04 aloha benabik: melange is crapping out or http://socghop.appspot.com or http:///google-melange.com
18:04 PerlJam jaffa4: it's best to ask parrot related stuff here.
18:05 lucian left #parrot
18:05 dngor joined #parrot
18:07 dukeleto jaffa4: we can answer questions about how Rakudo Perl 6 and Parrot VM interact, but perl6-specific questions should be asked in #perl6 on freenode
18:11 Coke not that we don't like perl6, but the folks over there (some of who is us) are better able to talk about perl6.
18:12 dngor left #parrot
18:16 lucian_ aloha: melange is not http:///google-melange.com
18:16 aloha lucian_: ... but melange is crapping out or http://socghop.appspot.com or http:///google-melange.com ...
18:16 lucian_ is now known as lucian
18:16 lucian bah. how do you fix aloha's brain entries
18:18 whiteknight hatchet
18:19 * lucian flings a hatchet at aloha's skull
18:20 benabik aloha: no, melange is crapping out or http://socghop.appspot.com or http://google-melange.com
18:20 whiteknight aloha forget melange
18:20 aloha benabik: Okay.
18:20 aloha whiteknight: I forgot about melange.
18:20 whiteknight aloha melange is http://google-melange.com
18:20 aloha whiteknight: Okay.
18:20 whiteknight damn right it's okay
18:21 whiteknight aloha VisualBasic?
18:21 aloha whiteknight: I have no idea.
18:21 whiteknight aloha VisualBasic is vomit for stupid people
18:21 aloha whiteknight: Okay.
18:21 lucian aloha: perl?
18:21 aloha lucian: perl is invoked: perl -I/home/klaus/build/exe/lib/parrot/2.9.1/tools/lib t/harness
18:21 lucian aloha perl5?
18:21 aloha lucian: No clue. Sorry.
18:21 whiteknight I can't barely read any of this crap
18:21 whiteknight who invented visualbasic?
18:21 lucian aloha: perl5 is surprisingly functional exploded whale guts
18:21 aloha lucian: Okay.
18:22 atrodo whiteknight> I believe microsoft in some fashion
18:23 whiteknight I can't reconcile that with the fact that they also produced C#
18:23 whiteknight one language is so good, the other is so appallingly bad
18:23 whiteknight it's like they're taking "bring your kids to work day" too seriously
18:23 lucian whiteknight: totally different teams in a big company
18:24 atrodo whiteknight> It's called legacy.  And the fact that I don't think they care at all about VB except that it keeps people on VB
18:24 lucian also C# was close enough to Java to be able to learn from its mistakes easily
18:24 benabik There's also VB.net
18:24 whiteknight lucian: So there's an entire incompetent team, as opposed to one mostly-competent team having a few bad days?
18:24 lucian whiteknight: i'm quite certain
18:24 whiteknight lucian: I'm not sure that's any better
18:24 lucian a few bad days is no excuse for the myriad crappy basic derivatives in windows-land
18:25 whiteknight if I were a manager at microsoft, I would fire people all day and all night long
18:25 whiteknight one after the other
18:25 whiteknight and I would start with the VB.net team
18:25 atrodo Also, C# was designed.  And by someone competent, Anders Hejlsberg
18:25 lucian oddly enough, they hire lots of very smart people
18:28 whiteknight I'm reading VB code, and I'm thinking to myself "Compared to this, IMCC is a masterwork of human acheivement"
18:28 Coke eh. you can write crap code in anything.
18:29 whiteknight no argument, though there are some languages that specifically encourage it
18:30 lucian and plenty of languages really are just crap
18:30 whiteknight thank you
18:30 whiteknight more people need to just accept that sentiment
18:30 whiteknight some languages are just crap
18:30 lucian when you get to the point where it's easier to design a language that compiles to that language than actually write it, it's very obvious
18:31 lucian but there are earlier signs
18:31 whiteknight I had a professor who used to say "you can write fortran in any language", which is true. However in fortran, you can only write fortran
18:32 whiteknight the joke was about the poor quality and readability of early fortran dialects
18:32 Coke lucian: like everything aside from python, yes, we know. ;)
18:32 PerlJam whiteknight: ah, but  there's fortran IV, fortran V, fortran 66, fortran 77, fortran 90, .... there are so many fortrans to choose from!  :)
18:32 lucian Coke: no, i'm not like that at all :)
18:33 lucian php, perl5, java are however on my craplist
18:33 whiteknight PerlJam: don't need to choose. We can lump them all together into the same category
18:33 whiteknight then dump the entire category into the trash
18:33 lucian i do like quite a few other languages. and even python is just alright-to-good
18:33 * lucian goes to eat
18:33 cotto_work It's not fair to put php in the same category as anything.  Its idea of a callback is a string containing the name of a function.
18:34 * atrodo wishes there was a dwim language, with one operation: dwim;
18:34 dngor joined #parrot
18:34 lucian cotto_work: i'm not so sure. i've seen perl5's arrays-things
18:34 whiteknight cotto_work: php is still not terrible. I've used PHP before and not been too unhappy with it
18:34 whiteknight though php does have its share of infelicities
18:35 cotto_work more than its share
18:35 whiteknight in terms of raw syntax, it's not a bad language
18:35 whiteknight it's the haphazard runtime library that gets people frazzled
18:36 PerlJam that and the 20 different sorting routines (for instance)
18:37 cotto_work generality is not its strong suit
18:37 tadzik and some of the functions in camelCase, some_with_undercores, and some cstyle
18:37 cotto_work or consistency
18:37 atrodo cotto_work> Actually, javascript has in a couple places the same concept of callback-as-string
18:37 cotto_work but javascript also has actual first-class functions
18:38 cotto_work A string callback is fine if it's not the *only* way of using a callback.
18:39 whiteknight the @ operator in PHP is its own breed of special
18:39 PerlJam PHP is asymptotically approaching sanity though.  It's slope is just a little shallower than it should be
18:39 PerlJam and they make a few mistakes on the way there (namespace syntax anyone?)
18:39 * Coke wonders where in JS core there is string-as-callback.
18:46 whiteknight if we can get JS and Python3 working on Parrot with a reasonable amount of success, and if Cardinal can get moving again, I think the next big target is PHP
18:47 whiteknight as much as it might be derided, it is a popular dynamic programming language
18:47 whiteknight we'd have to offer a console variant, I doubt we can compete performance-wise in a server context any time soon
18:47 cotto_work I think PHP would be a relatively easy target, apart from all the extensions.
18:48 whiteknight I think so too
18:48 moritz cotto_work: PHP has thousands of built-ins that take huge work to duplicate
18:48 cotto_work moritz: that's the hard part.
18:48 cotto_work but most of them are unused.  We could get a long way with the most popular 5-10 extensions.
18:50 PerlJam Wasn't someone working on PHP already?
18:50 cotto_work barney, fperrad and I were.
18:50 cotto_work I want to get Lorito stable before I re-start that work.
18:50 whiteknight that was a long time ago. Last time I looked at the source i saw xslt and I stopped reading
18:51 whiteknight https://github.com/bschmalhofer/pipp
18:51 cotto_work that's the one
18:51 whiteknight looks like it uses older PCT
18:52 cotto_work yes
18:52 PerlJam yeah ... when you restart it, you should take advantage of all those PHP programming language hackers out there and write the compiler in PHP   ;-)
18:52 whiteknight that's my opinion
18:53 cotto_work PerlJam: I was thinking of something like that.
18:53 PerlJam Seems to be the common pattern these days.
18:53 whiteknight it makes the most sense for established languages
18:53 cotto_work A (mostly) self-hosted compiler will be a much easier sell than one written in some framework and language that nobody in the PHP community knows or cares to learn.
18:54 whiteknight for new languages, a toolset like PCT makes great sense. For an existing language with a large enough base, self-hosting is a natural concept
18:54 PerlJam do people write parsers and such in PHP? I never even considered it enough to look
18:54 benabik And bootstrapping is awesome.
18:54 cotto_work Some kind of self-hosted PHP parser exists.  I haven't dug too far into it yet.
18:55 whiteknight http://wezfurlong.org/blog/2006/nov/​parser-and-lexer-generators-for-php/
18:55 whiteknight so we have a parser generator
18:55 whiteknight bugs me that this parser is written in C
18:55 cotto_work nice
18:57 dafrito left #parrot
18:57 whiteknight http://pear.php.net/package/PHP_Parser/
18:59 dalek winxed: r954 | NotFound++ | trunk/winxedst0.cpp:
18:59 dalek winxed: change expansion of predef bodies in stage 0, previous way was vulnerable to
18:59 dalek winxed: args containing marks
18:59 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=954
19:00 whiteknight it looks like this is not a very popular topic of inquiry
19:01 [hercynium] joined #parrot
19:03 NotFound If I remeber well, Microsoft didn't invented Visual Basic, they bought a company that did.
19:03 [hercynium]_ joined #parrot
19:04 tadzik whiteknight: “When the summer ends and the student disappears forever”, you write. Is it common, people come and go, rarely stay?
19:04 cotto_work whiteknight used to be a gsoc student
19:05 cotto_work He's the exception though.  Only a few stick around historically.
19:05 hercynium left #parrot
19:05 cotto_work whiteknight: yeah.  The nature of PHP doesn't encourage language experimentation in the same way that Perl and Perl 6 do.
19:05 whiteknight tadzik: it's more common than we would like. The fact is that these students have other exciting things to work on
19:05 whiteknight either school starts back up, or they graduate and get a real job, etc
19:06 [hercynium]_ is now known as hercynium
19:06 whiteknight cotto_work: JS has been showing quite an explosion recently, so there are lots of tools available for that language to self-host
19:06 whiteknight And Python has a big toolset, with lots of compiler experimentation in that community
19:06 whiteknight I wonder if it would ever make sense to get cardinal to self-host
19:07 whiteknight but I'm sure we would have to wait until after the metamodel improvements for that
19:07 rohit_nsit08 whiteknight: agree, summer vacations are followed by the placement session. Btw nice blog post about rosella test-suite, cleared lots of doubts
19:08 whiteknight rohit_nsit08: thanks!
19:08 [hercynium] left #parrot
19:08 PerlJam "ruby parser" gets tons of good hits on google.
19:08 cotto_work If we get one good long-term contributor out of gsoc, that's still pretty good.
19:09 lucian_ joined #parrot
19:11 whiteknight or, if we just manage not to lose lucian, that would still be good
19:13 lucian left #parrot
19:13 plobsing joined #parrot
19:13 cotto_work oh noes
19:22 lucian_ heh
19:22 lucian_ is now known as lucian
19:22 lucian that was awesome timing
19:22 lucian whiteknight: i'd expect rubinius to have a lot of reusable ruby code
19:22 lucian i'm pretty sure their compiler is pure-ruby
19:23 lucian anyone interested in Python3 on Parrot, gather round for a short ceremony
19:23 * whiteknight is present
19:24 * NotFound is half-interested
19:24 lucian We have all gathered here today to christen a new one in our midst
19:25 lucian reborn thrice, it now it actually has funding
19:25 lucian (for a couple of months anyway)
19:25 lucian Python3 on Parrot, I dub thee Puffin! http://www.seabird.org/asset​s/gallery/birds/puffin13.jpg
19:25 lucian disclaimer: it might not actually have funding. and it might not actually survive
19:26 benabik Puffins, the Parrot of the Sea: http://www.puffinpalooza.com/p​uffins-the-parrot-of-the-sea/
19:26 NotFound Snakes on a parrot!
19:27 lucian NotFound: terrifying. puffins are much more easier on the eye than a snake on a parrot
19:27 lucian s/more//
19:28 darbelo lucian: http://en.wikipedia.org/wiki/Quetzalcoatl
19:28 lucian darbelo: heh, not bad
19:29 NotFound That depends... snakes around something have a tradition as symbol of good things ;)
19:30 lucian NotFound: those medic folk are deviants, don't mind them :)
19:30 plobsing Anhinga - snakebird
19:32 NotFound BTW if somenone wants a toy project with a plus on ugliness: write an alternate parser for winxed that uses indentation python style instead of braces ;)
19:32 Andy_ left #parrot
19:33 lucian NotFound: have you thought how that'd interact with function literals?
19:34 NotFound lucian: of course not, that's part of the project.
19:35 lucian i think i might actually like something like that
19:35 lucian CoffeeScript tackles the problem of lambdas with indentation syntax quite well
19:35 NotFound I'm open to be surprised.
19:35 Tene whiteknight: explain exactly what you mean by "self host" for cardinal?
19:36 lucian if i find the time, and if you're willing to include it in winxed, i might do it
19:36 whiteknight Tene: be written in Ruby
19:36 Tene whiteknight: *all* of it can't be *exclusively* python, as it has to generate something appropriate for parrot eventually.
19:36 Tene although, I guess it could generate PAST...
19:36 whiteknight Tene: the code generator could be written in python and output a bunch of PIR string literals
19:37 Tene Yeah, that's certainly plausible.
19:37 whiteknight it's all still python
19:37 NotFound lucian: uh... the ability to allow both syntax in the same compiler will make it a lot more than a toy project.
19:37 lucian NotFound: not in the same file, just a switch
19:37 Tene whiteknight: Sure, I was just curious where you were thinking of the boundary as in your question.
19:37 Tene whiteknight: I certainly plan for it to be significantly self-hosting, at least.
19:38 NotFound lucian: yes, but changes in the current parser to ignore or not newlines will not be trivial.
19:38 lucian NotFound: newlines aren't so significant as indent/dedent are
19:39 lucian hmm
19:41 NotFound lucian: maybe there is a way, but on principle I don't want to add complexity to the parser, son don't take the idea too seriously.
19:41 PerlJam whiteknight: I just read your blog post on gsoc proposals.  It should be required reading for proposal submisison next year.  whiteknight++
19:42 lucian right. i don't see the point of it if it isn't included, which is why i asked
19:42 lucian NotFound: something like efene/ifene http://www.marianoguerra.com.ar/efene/
19:44 whiteknight PerlJam: Thanks. I do hope that some prospective students actually see it
19:44 whiteknight it's amazing that I have so much to write about what students are doing wrong
19:44 NotFound lucian: looks nice. The problem I see with having alternative syntaxes is fragmenting the community.
19:45 lucian NotFound: if the parser can convert between the two, it shouldn't be a problem
19:47 NotFound lucian: most people are not so able to mixing syntaxes it his minds as the ones interested in language design like us. So there is a problem.
19:47 lucian perhaps
19:47 lucian we should ask efene folks
19:47 lucian it's about as popular as winxed, i guess
19:48 NotFound For a now... ;)
19:49 mj41 joined #parrot
19:50 cotto_work whiteknight: thank you for writing that.  I'm about 1/3 through it, but so far it sounds like we need to make that required reading for future gsoc students.
19:50 lucian yes, i expect efene to get a lot more popular :P
19:51 plobsing left #parrot
19:51 benabik left #parrot
19:56 cotto_work whiteknight++
19:56 cotto_work whiteknight++
19:56 cotto_work whiteknight++
19:57 cotto_work karma whiteknight
19:57 aloha whiteknight has karma of 1070.
19:57 cotto_work that's proper
19:58 tadzik :)
20:00 dafrito joined #parrot
20:01 lucian whiteknight+=10
20:01 lucian karma whiteknight
20:01 aloha whiteknight has karma of 1070.
20:01 lucian NotFound++
20:03 * lucian closes shop for the day
20:03 lucian left #parrot
20:05 bubaflub joined #parrot
20:07 whiteknight yay! I finally broke 1k
20:07 whiteknight not too long now before I can collect a delicious, delicious donut
20:08 NotFound Covered with syntactic sugar?
20:08 whiteknight melted down into a sticky syntactic glaze
20:09 jrtayloriv joined #parrot
20:13 dalek winxed: r955 | NotFound++ | trunk/winxedst1.winxed:
20:13 dalek winxed: use indent constants instead of spaces in a few remanant places
20:13 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=955
20:23 whiteknight left #parrot
20:30 utsl joined #parrot
20:31 dodathome left #parrot
20:33 darbelo Hm. Does melange have a way to indicate "I could probably help mentor for this if needed" as opposed to "I would fight to the death over the honor of mentoring this"
20:33 cotto_work darbelo: do you even have to ask?
20:34 cotto_work We'll make sure to keep you out of any fights to the death.
20:34 jaffa4 lucian : Is it from StarGate universe?
20:34 cotto_work maybe
20:35 cotto_work jaffa4: ENOLUCIAN
20:36 darbelo cotto_work: I can, at best, impersonate a knowledgeable mentor on the subject of two of our proposals.
20:37 cotto_work darbelo: which ones?
20:38 cotto_work I see you're listed for the LALR project.  I'd like to see that one happen.
20:39 darbelo Me too. That's then one I'm most comfortable tackling as well.
20:40 darbelo But I guess I can do a passable job on the GMP one.
20:41 darbelo ... Which I just clicked on :)
20:41 mj41 left #parrot
20:43 nwellnhof joined #parrot
20:44 darbelo But we do seem to have a set of underapreciated proposals, which nobody so far has volunteered on.
20:45 cotto_work Most of the low-rated ones aren't worth looking at until the student shows up and demonstrates an interest in working with the community.
20:46 PerlJam "most"?
20:46 cotto_work A couple students have at least left comments on their proposals in response to questions.  It's necessary but not sufficient.
20:48 darbelo PerlJam: It's all in how you define "low rated".
20:49 cotto_work <10
20:49 cotto_work (atm)
20:51 darbelo Looking at them again, sorting by total score. I'm inclined to agree.
20:52 fperrad left #parrot
20:52 moritz it's interesting that sorting by total and average score is mostly the same
20:53 darbelo I was about to remark on that. The middle fluctuates, but the top four are the top four.
20:53 darbelo And the bottom three are the bottom three, regardless of sorting.
20:54 cotto_work seen justina
20:54 aloha Sorry, I haven't seen justina.
20:55 cotto_work I'm hoping she turns out to care.  Profiling needs love.
20:56 darbelo Indeed.
20:57 darbelo The impact from a HLL-oriented profiler could be enormous.
21:05 PerlJam there has got to be a bug in the melange code that generates the table of proposals.  each time I login, I get a different column configuration.
21:06 cotto_work It's special.
21:07 moritz it's got *character*
21:08 jevin left #parrot
21:10 jevin joined #parrot
21:12 cotto_work I'm glad Google is continuing to do GSoC.  I can't fathom what they were thinking with the ui change and why they didn't change the excessively ajaxy tables.
21:12 davidfetter joined #parrot
21:14 ambs left #parrot
21:18 jaffa4 left #parrot
21:21 [hercynium] joined #parrot
21:22 jevin left #parrot
21:22 jevin joined #parrot
21:25 hercynium left #parrot
21:25 [hercynium] is now known as hercynium
21:32 bluescreen left #parrot
21:39 darbelo PerlJam: A column got added recently.
21:40 darbelo And I think the excessively ajaxy tables are an app-engine thing.
21:41 darbelo I'd say "excessively ajaxy" describes most of the stuff build on app engine.
21:42 PerlJam it's the future, only now instead of later.
21:48 plobsing joined #parrot
21:49 darbelo I already don't like it.
21:49 Drossel joined #parrot
21:49 darbelo I've been disliking the future of the web for years.
21:49 darbelo It's the kind of pioneering I do.
21:50 PerlJam that's the thing about the future ... whether you like it or not, you have to deal with it.
21:52 darbelo Oh, I deal with it alright.
21:52 darbelo I install text-based browser on all of my computers.
21:52 darbelo Done.
21:53 darbelo It improves most sites in ways you wouldn't believe :)
21:54 PerlJam I'm sure
21:54 Kulag left #parrot
22:02 dalek tracwiki: v79 | cotto++ | ParrotQuotes
22:02 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Pa​rrotQuotes?version=79&amp;action=diff
22:07 dngor_ joined #parrot
22:11 dngor left #parrot
22:17 rohit_nsit08 darbelo: hi, any benefits in using text based browser? was just curious to hear
22:17 darbelo You don't have to deal with anything that isn't text :)
22:18 cotto_work rohit_nsit08: fire up lynx and give it a shot
22:18 rohit_nsit08 cotto_work: was doing it from last 15 minutes :-)
22:19 darbelo Yeah. Take a look at, say, youtube. Isn't is much nicer this way?
22:19 rohit_nsit08 cotto_work: was simple but lots of features we get from browser were missing
22:19 bubaflub rohit_nsit08: if you have to do webdesign, looking at a page in a text browser is a good approximation on how a search engine sees your page
22:19 rohit_nsit08 didn't tried youtube
22:19 rohit_nsit08 let me see
22:20 rohit_nsit08 bubaflub: hmm... ya i could see how the requests were going
22:20 whiteknight joined #parrot
22:20 rohit_nsit08 i usually use http headers plugin of mozilla to see
22:20 rohit_nsit08 that
22:23 rohit_nsit08 can't play youtube video, its asking for adobe flash plugin anyway it is good for static website and i must say quick also
22:24 darbelo I should probably write an HTML5 'app' that lets the younger generations experience text browsing.
22:25 cotto_work You can do text games with the url bar.
22:25 cotto_work url hunter is only the beginning
22:25 rohit_nsit08 cotto_work: text games? pls give me the link
22:26 cotto_work rohit_nsit08: url hunter
22:26 cotto_work http://probablyinteractive.com/url-hunter
22:26 rohit_nsit08 got it :-) trying
22:26 dalek parrot/soh-cah-toa/tt1215: 04849ac | Kevin++ | / (3 files):
22:26 dalek parrot/soh-cah-toa/tt1215: Patch (almost) for ticket #1215. The .pod file are for another commit.
22:26 dalek parrot/soh-cah-toa/tt1215: review: https://github.com/parrot/parrot/commit/04849ac110
22:26 dalek parrot/soh-cah-toa/tt1215: 1c40b2c | (Kevin Polulak)++ | / (2 files):
22:26 dalek parrot/soh-cah-toa/tt1215: Fix for the issues addressed in ticket #1215. Refactored duplicate code in the 'fetch' and 'vivify' opcodes.
22:26 dalek parrot/soh-cah-toa/tt1215: review: https://github.com/parrot/parrot/commit/1c40b2c407
22:27 jevin left #parrot
22:27 cotto_work whoever pulled that, don't merge
22:27 whiteknight I'm no merging
22:27 cotto_work k
22:27 whiteknight I'm just taking a look, with my fingers
22:27 whiteknight why no merge?
22:27 cotto_work I commented in the pull request
22:27 whiteknight oh, he hasn't modified it yet?
22:28 soh_cah_toa joined #parrot
22:28 whiteknight soh_cah_toa sent in his CLA. Somebody nominate him to become a committer tomorrow
22:28 cotto_work I'd rather see some more patches.
22:28 soh_cah_toa i'm working on it now actually
22:28 cotto_work soh_cah_toa: great
22:29 whiteknight I don't think that common code should be moved into a static function
22:29 soh_cah_toa the reason i put it src/pmc.c is b/c someone said it was the best place since the op preamble was really only for macros and includes
22:29 cotto_work soh_cah_toa: apologies for the conflicting direction.  src/pmc.c is the place for generally useful pmc-related code, but the common code shouldn't be generally used.
22:29 whiteknight I think it's better to have them in pmc.c, especially if we want to use that behavior from anywhere else
22:29 whiteknight I said it was the best place
22:29 hercynium left #parrot
22:30 cotto_work The common code is odd.
22:30 whiteknight what do you mean?
22:30 whiteknight oh, actually it doesn't work
22:31 cotto_work It creates a new PMC based on the passed parameter, but has separate paths for Class vs normal pmc.
22:31 Coke left #parrot
22:32 whiteknight yeah, we can probably refactor this beter
22:32 whiteknight better
22:32 soh_cah_toa alright how
22:32 whiteknight the part that takes a key and returns a Class or PMCProxy can be refactored out
22:32 cotto_work I'm happy to have a static function, but better suggestions are welcome.
22:32 whiteknight Parrot_oo_get_class_from_key can go into src/oo.c
22:33 whiteknight the code in Parrot_stock_vivify looks like an exact copy of the internal part of Parrot_stock_fetch
22:33 cotto_work it is
22:33 soh_cah_toa not quite
22:33 whiteknight no?
22:33 cotto_work orly?
22:34 soh_cah_toa the outer if is in fetch
22:34 soh_cah_toa then in vivify the function is called within an if
22:34 cotto_work Ah.  I'd leave the if in the op body
22:35 whiteknight yeah, take the if out of the function, and move that into the op
22:35 soh_cah_toa there was a reason i didn't do that. i think that would require another argument
22:35 soh_cah_toa i think. let me check
22:35 cotto_work worked fine for me last night when I was playing with it
22:36 cotto_work either that or our test coverage of those ops is lacking
22:36 soh_cah_toa your right
22:36 soh_cah_toa why did i do that?
22:36 * cotto_work looks to his right
22:36 soh_cah_toa oh well
22:37 soh_cah_toa oh wait
22:37 soh_cah_toa if i copied the outer if...
22:37 cotto_work btw, welcome to yak shaving
22:37 cotto_work this is relatively shallow for Parrot
22:37 soh_cah_toa then it'd have a call to VTABLE_set_pmc_keyed
22:38 soh_cah_toa which uses args $2 and $3
22:38 soh_cah_toa which i wanted to avoid
22:38 soh_cah_toa b/c the types of $2 and $3 vary
22:38 kid51 joined #parrot
22:39 cotto_work soh_cah_toa: how much longer are you online?  I'd like to dig into this more at home.
22:39 soh_cah_toa i'll be here
22:39 cotto_work ok
22:39 cotto_work need to focus on $dayjob for a while
22:40 soh_cah_toa sure, that's fine
22:42 bubaflub left #parrot
22:42 soh_cah_toa whiteknight: i don't think there's a call to Parrot_oo_get_class_from_key
22:43 soh_cah_toa whiteknight: just Parrot_oo_get_class
22:45 rohit_nsit08 good night #parrot , cotto_work: nice game :-)
22:46 rohit_nsit08 left #parrot
22:48 dmalcolm left #parrot
22:49 dalek TT #2091 created by jkeenan++: t/op/gc-leaky-box.t, t/op/gc-leaky-call.t: new test failures
22:49 dalek TT #2091: http://trac.parrot.org/parrot/ticket/2091
22:57 whiteknight soh_cah_toa: I'm saying you should create a new function called Parrot_oo_get_class_from_key
22:59 plobsing whiteknight: but that isn't what those do. they don't use keys to create new PMCs, they use proto-objects.
22:59 whiteknight whatever we call them. I'm looking forward to a future where Class and PMCProxy are unified
22:59 whiteknight or, more importantly, a time when PMCProxy can go the hell away
23:01 whiteknight a function that takes a Key and returns a metaobject is easy to find uses for
23:04 plobsing but that's not what the task was. the task was to refactor common code out of vivify/fetch. these use neither keys nor metaobjects to identify type.
23:05 soh_cah_toa oh, alright
23:05 plobsing that behaviour is not consistent with the rest of parrot, and for that reason should not be allowed to spread further.
23:05 whiteknight what is not consistent?
23:06 plobsing vivify/fetch vis-a-vis the rest of parrot
23:07 whiteknight you don't like vivify/fetch?
23:07 soh_cah_toa plobsing: you mean having them call static functions?
23:07 plobsing whiteknight: no. I think they are great, Perl 6-specific, convenience ops.
23:08 plobsing but Perl 6 proto-object OO is not how parrot OO works and is not likely to be what it becomes in the future
23:08 whiteknight okay, that's fair
23:08 soh_cah_toa i see
23:08 whiteknight I won't argue on their behalf
23:08 soh_cah_toa me neither
23:08 plobsing soh_cah_toa: my prefered option is for them to be static functions.
23:08 plobsing so that we don't expose the functionality
23:09 soh_cah_toa so let me see if i got this...
23:09 whiteknight okay, that's fine. Static funtions work fine form e
23:09 whiteknight for me
23:09 soh_cah_toa you'd like it if fetch/vivify were removed as opcodes and made into functions?
23:09 soh_cah_toa for other opcodes to call?
23:10 whiteknight no, they need to be opcodes
23:10 plobsing the opcodes to call static functions. they need to be opcodes. just static functions would be pointless.
23:10 whiteknight soh_cah_toa: refactor those Parrot_store_* functions into static functions in the ops preamble
23:10 cotto_work soh_cah_toa: the problem is that they don't match how the rest of Parrot works.  The function should be factored out into a static so that there's less repeated code, but it shouldn't be used apart from the ops.
23:10 soh_cah_toa right
23:11 soh_cah_toa but the way to do that is to add the definitions to the preamble which i thought was only for preprocessor directives
23:12 plobsing why does it have to be? do static functions work there? try it. if it works...
23:12 soh_cah_toa that's just what i was told. i have no problem doing it that way
23:13 darbelo left #parrot
23:13 soh_cah_toa logically it makes more sense b/c they're only used by fetch/vivify
23:13 preflex left #parrot
23:14 soh_cah_toa alright, let me give it a try
23:16 preflex joined #parrot
23:18 soh_cah_toa btw, is there a way for me to test my changes w/o having to build the entire thing?
23:18 soh_cah_toa would i just use ops2c.pl?
23:19 cotto_work make corevm
23:19 plobsing opsc --core
23:20 plobsing and then make corevm
23:20 cotto_work corevm will build all the Parrot stuff, ./opsc --core will just run ops2c
23:20 soh_cah_toa perfect
23:20 cotto_work corevm is really nice for this kind of change
23:20 dalek parrot: 05ea828 | plobsing++ | src/pmc/imccompiler.pmc:
23:20 dalek parrot: headerizer flags for IMCCCompiler
23:20 dalek parrot: review: https://github.com/parrot/parrot/commit/05ea8289a7
23:20 dalek parrot: 5ebd3eb | plobsing++ | / (2 files):
23:20 dalek parrot: this function handles NULLs just fine thankyouverymuch
23:20 dalek parrot: review: https://github.com/parrot/parrot/commit/5ebd3ebadf
23:21 soh_cah_toa alright. still not aware of all the different make targets yet
23:22 whiteknight soh_cah_toa: I recommend you set up an alias for "make -j5" or some reasonable number to run a parallel build
23:23 whiteknight the number of cores your process has plus 1 or 2 is a good start
23:25 plobsing most of the build isn't CPU-bound. the exception is anything that uses NQP.
23:25 plobsing it would be nice to be able to run 'make -j10 except only 2 nqps at a time'
23:26 soh_cah_toa okay thanks
23:31 whiteknight you're going to want to learn this process very very well
23:32 soh_cah_toa yeah? alright
23:33 kid51 is now known as kid51_at_dinner
23:35 whiteknight we've also got some tricks to make the tests run faster
23:38 soh_cah_toa do tell
23:38 whiteknight "make -j5 coretest TEST_JOBS=5"
23:39 whiteknight I alias my configure settings to "pc", the make incantation to "mj", and the test incantation to "pt"
23:39 whiteknight so I can usually type "pc && mj && pt coretest"
23:40 soh_cah_toa nice, pretty neat
23:46 cotto_work alias is your friend
23:46 soh_cah_toa oh yeah, i use alias a lot
23:47 plobsing realias makes alias even better
23:47 plobsing http://www.modernperlbooks.com/mt/2009/1​0/remove-the-little-pessimizations.html
23:49 soh_cah_toa ah, pretty clever
23:50 whiteknight I haven't seen hide nor hair from chromatic in quite a while
23:50 whiteknight seen chromatic?
23:50 aloha chromatic was last seen in #parrot 59 days 5 hours ago saying "All of the core tests did pass for me, FWIW.".
23:58 whiteknight blah, I didn't realize my ubuntu VM was completely unconfigured
23:58 whiteknight so now I've got to spend time doing that
23:59 cotto_work whiteknight: apparently he's had a lot of contract work lately.  He's been blogging about Java, which I assume he wouldn't be using if he wasn't being paid. ;]

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

Parrot | source cross referenced