Parrot 3.2.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Parrot is accepted for GSoC 2011! Student application deadline is Apr 8
Set by moderator on 27 March 2011.
whiteknight memcheck provides no information 00:04
running that same command with --gc gms doesn't throw an exception 00:07
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
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
whiteknight soh_cah_toa: you working in a fork? 00:09
soh_cah_toa yeah. well, i think. i made a pull request
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
whiteknight soh_cah_toa: don't run headerizer directly. Type "make headerizer"
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
bacek_at_work soh_cah_toa, tools/dev/headerizer.pl src/pmc.o (notice file extension)
00:11 dafrito joined
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.
just run headerizer
soh_cah_toa bacek_at_work: didn't work. neither did "make headerizer" 00:14
bacek_at_work soh_cah_toa, nopaste error?
soh_cah_toa bacek_at_work: that's the thing. i get a "Headerization complete". no errors. just no prototypes 00:15
oh, wait
i'm not sure which command did it but i see it now in include/parrot/pmc.h 00:16
stupid...i was looking in src/pmc.c for prototypes. the function aren't even static 00:17
bacek_at_work soh_cah_toa, happens all the time to me :) 00:18
soh_cah_toa yay, it's building 00:19
i spoke to soon. time for nopaste 00:21
*too
whiteknight soh_cah_toa: commit and push to github so we can see 00:26
the general rule is: more committing, less not-committing 00:27
soh_cah_toa ha, alright h/o 00:28
alright, i commited 00:33
bubaflub soh_cah_toa++
soh_cah_toa but i can't push for some reason. says permission denied
bubaflub soh_cah_toa: are you on fork on github? 00:34
soh_cah_toa so many problems...sheesh...
yeah
bubaflub soh_cah_toa: could you go into the .git folder and open up the file called config? 00:35
do you have a section that's labelled [remote "origin"]
soh_cah_toa yeah 00:36
url = git://github.com/soh-cah-toa/parrot
bubaflub soh_cah_toa: hmmm, i was thinking you should see something like 00:37
plobsing_ change that url to git@github.com:soh-cah-toa/parrot 00:38
bubaflub url = git@github.com:soh-cah-toa/parrot.git
soh_cah_toa: what plobsing_ said
soh_cah_toa well when i type it explicitly i get the error
bubaflub soh_cah_toa: what's the error? 00:39
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
permission denied (publickey)
fatal: The remote end hung up unexpectedly
where do i do that? 00:41
bubaflub soh_cah_toa: if you are logged in, in the top right hand corner there is "Account Settings" 00:42
then on that page there is a nav on the left that says "SSH Public Keys"
soh_cah_toa right
bubaflub soh_cah_toa: from there you can add any number of public keys - do you have one generated for your system already?
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
bubaflub soh_cah_toa: ok, great.
soh_cah_toa: and like i said, you can have multiple SSH keys associated with a single github account
soh_cah_toa good
i didn't reallize you could only push w/ ssh
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
soh_cah_toa man, i am messing up left and right 00:45
bubaflub soh_cah_toa: haha, no worries.
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.
Still got a segfault building the compiler. :-( 00:48
soh_cah_toa bubaflub: finally! i got it 00:49
bubaflub soh_cah_toa: great!
soh_cah_toa: did you push your commit to your branch?
soh_cah_toa bubaflub: yeah
whiteknight benabik: instruments?
bubaflub soh_cah_toa: fantastic, i'll take a look
benabik whiteknight: OS X tracing tool.
whiteknight oh, okay
00:50 janus left, janus joined
bubaflub soh_cah_toa: that commit looks really good - a bit of refactoring and fixing the docs 00:51
soh_cah_toa: did you put this commit on a separate branch, by any chance?
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 nopaste.snit.ch/40010
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 00:56
01:13 woosley joined
plobsing_ you need to use Parrot_ex_throw_from_c_args() in stead of Parrot_ex_throw_from_op_args() 01:13
01:13 whiteknight left
plobsing_ because you are no longer in an op 01:13
there are plenty of examples of the usage of this function throughout the codebase 01:14
soh_cah_toa alright 01:15
what do i use for the return address argument though? 01:18
plobsing_ Parrot_ex_throw_from_c_args() does not return 01:19
it jumps out
soh_cah_toa nopaste, one of the arguments specifies a return address
aggh! everytime!
01:20 plobsing_ is now known as no
no now you may converse without fear 01:20
soh_cah_toa haha
no that argument is usually left NULL 01:21
01:21 edenc left
soh_cah_toa okay. does that mean it doesn't return in that case? 01:21
no yes 01:22
soh_cah_toa so then i can take out the goto after the function call, right?
no yep 01:23
soh_cah_toa okay, i think i got this now
thanks no :)
or should i say no thanks?
01:25 no is now known as plobsing
plobsing no more no 01:25
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:27
Coke plobsing: are you sure that building parrot without any flags ends up unoptimized? 01:41
plobsing Coke: it used to. and without llvm, it does. 01:42
02:13 loufoque left
dalek rrot: b513a32 | jkeenan++ | config/auto/llvm.pm:
Correct typo in inline comment.
02:40
02:54 kid51 left 02:55 hudnix left 03:09 bubaflub left
cotto ~ 03:21
soh_cah_toa says goodnight to parrot 03:57
03:57 soh_cah_toa left
dalek rrot: 43c75f0 | plobsing++ | src/packfile/api.c:
mark const table internal hashes
04:14
plobsing msg whiteknight I may have fixed the rakudo build in 43c75f0. 04:17
aloha OK. I'll deliver the message.
benabik plobsing: I'm starting a build now, although my system is a bit heavily loaded right now. 04:18
cotto plobsing++ 04:24
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.
benabik Does parrot mostly use github pull requests? I'm used to patch series on the git list. 04:29
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. ;-)
plobsing: Still got a segfault building rakudo. :-( 04:53
plobsing: Although I think I may have forgotten to pull before building parrot... *sigh* Results in another half hour. 04:54
plobsing yeah. it is breaking for me too. again. it was working for a second. what happened? 04:55
04:55 ShaneC left
benabik GC bugs are pesky pesky things. 04:55
(By which I mean bugs that are triggered by GC, not necessarily a bug in the GC itself.) 04:56
05:05 ShaneC joined
benabik plobsing: Rebuilding parrot after actually pulling your change got Compiler.pir to finish successfully. 05:05
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:13
plobsing benabik: if you are using gms, the bug won't manifest 05:15
benabik plobsing: It was crashing for me earlier with gms.
plobsing hmmm... I've only consistently gotten failures on ms2 05:16
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:17
benabik hasn't actually looked under the hood at GC, so is just wildly speculating. 05:18
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:20
benabik Although it appears that I have a good chunk of free memory. Guess my load is CPU heavy but memory light. 05:21
Once rakudo actually finishes building, I'll rebuild parrot without my normal options and see what happens. 05:23
Ah. Well, there's one thing. Parrot thinks I have half as much memory as I actually do. 05:30
dalek rrot: 400f3aa | plobsing++ | src/pmc/imageiofreeze.pmc:
patch small reference-holding gap

if a mark happens *during* ImageIOFreeze.init(), we need the nascent object to mark its partially-allocated children.
05:38
05:39 theory left
nopaste "cotto" at 192.168.1.3 pasted "good name for this function?" (23 lines) at nopaste.snit.ch/40014 05:43
cotto What'd be a good name for that function?
plobsing what is the purpose of it? 05:44
as in, where is it being used?
benabik cotto: I'm a bit sleepy. It appears to be creating a new PMC based on the type of another PMC?
cotto plobsing, it's part of soh_cah_toa's patch to factor out common code in the vivify and fetch ops 05:45
yes
benabik clone_blank?
cotto clone implies that the PMC's data gets copied 05:49
benabik That's why I added blank. 05:50
plobsing *_new_from_type(), *_new_from_proto(), etc... ?
benabik new_with_same_type seems clunkier.'
cotto I like from_type
benabik That reads to me like the argument should be a type... *shrug* 05:51
plobsing I don't really understand why we don't require the argument to be a type 05:52
cotto beats me
plobsing then it would work nicely with our pre-existing allocation functions
benabik Because it looks like it's abstracting out the "figure out the type" part.
plobsing I'm not convinced the thing this function does is a thing we should be doing.
benabik There's two different types of type information it looks at.
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:53
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:54
benabik plobsing: That might be what "should be", but that's not how it works now. 05:57
plobsing refactoring wrong code is wrong
make it right, then make it clean 05:58
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.
cotto NotFound, are you referring to the fetch/vivify changes? 06:00
NotFound cotto: yeah
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:01
plobsing benabik: PMC types can have ProxyPMC classes wrapping them 06:02
cotto NotFound, good catch
plobsing er PMCProxy
dalek TT #2090 created by benabik++: Parrot underestimates memory on OS X 06:05
TT #2090: trac.parrot.org/parrot/ticket/2090
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.
plobsing that's an acceptable intermediary solution. don't spread the bain dramage
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
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.
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
benabik NotFound: That specialization should still support helper functions. I would find the lack of them disturbing.
NotFound Maybe, but we should discuss directions, not ignoring them.
benabik: yes, but there is no rule that forces helper functions to be static. 06:10
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:11
NotFound Also, several runcores => several copies of that static functions going into libparrot. 06:12
plobsing benabik: forcing style on others is rude
NotFound benabik: That means not calling any function from ops?
plobsing NotFound: we only have one copy of the ops currently. the idea that we have multiple "runcores" is misleading ATM. 06:13
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
But I'm also pretty close to passing out.
plobsing should sleep as well. good night.
cotto 'night 06:15
benabik Oog. Closer to passing out than I thought. Can't focus on the screen anymore. 'night #parrot
NotFound benabik: staticness is just a tool. Making functions non static does not mean making them ready for arbirtrary usages from wherever. 06:16
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:19
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.
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.
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.
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:28
NotFound benabik: we don't disallow functions, we have lots of functions in libparrot being used from opcodes. 06:29
Or are you suggesting that throw_from_op`functions should also be static in .ops files?
benabik NotFound: So duplicated code in ops have to be pushed into libparrot, even if it's not appropriate for outside use? 06:30
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.
*outside the file
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.
benabik: C generated from ops needs to be in the repo for bootstrap, then you need to rebuild. 06:35
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.
NotFound benabik: I don't know what "next to" means. 06:40
benabik "in the same file"
NotFound So you want to make them static in other file?
benabik No... Things used in other files have to be non-static. 06:42
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
NotFound My view is: making them static has just one advantage, and several disadvantages, so I don't recommend that way. 06:43
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:46
NotFound benabik: a good reasoning for .c files, but we are talking about .ops files, wich are special beasts. 06:47
benabik NotFound: Which part doesn't apply to .ops? 06:49
06:49 Eduardow joined 06:50 fperrad joined
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:50
For the time being, it makes for better code to use a static function. 06:51
NotFound Factoring *out*. 06:53
Out of the .ops file, for example. 06:54
benabik: part 2) and 3)
cotto That code shouldn't be outside the ops file. I'm a little curious why it's *in* the ops file.
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.
benabik tends to be a little stubborn and slow to understand when tired and apologizes for that.
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
benabik, go to sleep
NotFound benabik: NM.
cotto We need that brain of yours well-rested.
benabik cotto: I'm sure I'll find time to sleep after finals and before GSoC. ;-) 06:59
cotto benabik, that's good
benabik But anyway... Third time's the charm. G'night! 07:00
07:08 benabik_ joined, benabik left, benabik_ is now known as benabik 07:20 UltraDM joined 07:27 dod joined
moritz did anybody open a ticket for the rakudo segfault, or should I? 07:41
07:42 Eduardow left
bacek_at_work moritz, it's probably fixed by plobsing++ already 07:56
check out latest version
moritz bacek_at_work: just tried with RELEASE_3_2_0-352-g400f3aa and it still segfaults 07:59
moritz git clean's and tries again, justin case 08:00
still lots of segfaults 08:37
08:43 mikehh joined 09:01 jrtayloriv left 09:29 dod left 09:32 lucian joined 09:33 dod joined 09:38 Kulag left 09:44 ambs joined 09:49 Kulag joined 09:52 ShaneC left 10:08 woosley left 10:21 ShaneC joined 10:29 wagle left 10:30 ShaneC left 10:32 lucian left 10:35 lucian joined 10:46 woosley joined
ttbot Parrot ade5602c i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/65813 10:59
11:27 Eduardow joined 11:29 contingencyplan left 11:47 brooksbp joined 11:49 mtk joined 11:51 brooksbp left 11:55 Psyche^ joined, Patterner left, Psyche^ is now known as Patterner 12:02 bubaflub joined 12:35 benabik left 12:51 whiteknight joined
whiteknight good morning, #parrot 13:03
13:03 zostay left
lucian 'morning 13:06
whiteknight hello lucian 13:07
mikehh howdy, whiteknight 13:09
moritz \\o 13:10
lucian: I liked your reply on melange
lucian moritz: oh. thanks 13:11
whiteknight lucian: yes. very nice 13:12
it's always good when the student has a clear understanding of the issues 13:13
lucian i wouldn't call mine "clear"
boostrapping is still a bit fuzzy
moritz it takes some time to wrap your head around bootstrapping :-) 13:14
13:14 plobsing left
mikehh lucian: "bootstrapping" is always problematic :-} 13:14
whiteknight moritz: have you tried reproducing your bug after plobsing's patch?
atrodo I've just always mentally equated bootstrapping with magic
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
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
whiteknight moritz: try git pull. plobsing put in a potential fix very recently
RELEASE_3_2_0-134-gfa331ee
I'm running it now, but the fix looks very plausible
mikehh maybe that should be two or three or ...
moritz whiteknight: RELEASE_3_2_0-134-gfa331ee is, like very old 13:17
whiteknight oh shit, sorry
moritz more than 200 commits behind HEAD
13:17 bluescreen joined
whiteknight moritz: okay, my pull didn't succeed the first time. head is RELEASE_3_2_0-352-g400f3aa 13:18
and you're saying it still segfaults? That's worrisome
mikehh just another update to natty that need a re-boot - bbiab
13:18 mikehh left 13:19 Eduardow left
moritz $ ./perl6 -v 13:20
This is Rakudo Perl 6, version 2011.03-12-g4bf1327 built on parrot 3.2.0 RELEASE_3_2_0-352-g400f3aa
$ ./perl6 t/spec/S03-sequence/arity-2-or-more.t
Segmentation fault
that is after 'git clean -xdf' in rakudo, and 'make realclean' in parrot
(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 13:33 hudnix joined
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
moritz doesn't see how it's more odd than any other bootstrap
13:44 Eduardow joined
moritz whiteknight: regarding the Pod parser proposals, I fear that something went terribly wrong 13:52
whiteknight: the Perl 6 folks want a pod6 parser, and we have such a proposal for TPF 13:53
whiteknight: the parrot folks want a POD5 parser, to get rid of another p5 dependency
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:54
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:55
seems I replied only to the list, not to all people involved - in old habit that all people are on the list :/ 13:57
14:00 darbelo joined
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:02
moritz: a Pod5 parser would have benefit, as would a more generalized documentation-handling tool 14:03
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
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
and in any case, we shouldn't criticize the project idea, since we proposed it first on our ideas page
moritz right 14:05
steering it towards parsing p5 seems the most sensible thing to me
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:06
moritz based on their current forms I rather doubt it, but then I'm open to positive surprises :-) 14:07
whiteknight my thoughts exactly
lucian moritz: it's a bit odd because CPython should be able to serve as stage 0, but it can't fully 14:10
14:11 utsl left
lucian moritz: for two reasons: not all of CPython is pure-python and there's no access from python to native parrot features 14:12
moritz lucian: you mean, past generation? 14:13
lucian moritz: that, and data types
i could conceivably write a not quite python first 14:14
but that's significant work, and i will likely be better off using winxed or something
moritz and call it... *drum rolls*.... NQP!
lucian yeah, except no python developer will ever go "Perl syntax? yay!" 14:15
14:17 PacoLinux joined
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.
lucian tadzik: i suppose. but then look at semantics too? meh
Coke: developers would. my main goal is to keep it very hackable
depending on those 6model docs, it might be a non-issue in fact 14:19
(if 6model provides enough help, the object model will be easy)
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
usually the language's "object system" is also boostrapped the same way
like with C 14:26
moritz C doesn't have an "object system"
it just has the machine
lucian but with pynie-ng, it's not possible, short of nqpython
moritz lucian: you can write a faked-up object system in pir
lucian sure, or winxed 14:27
moritz stage0 is all about just getting it work
lucian C does have an object system
types, structs, functions
NotFound lucian: Have you seen my experiment with prototypes, or the variant that whiteknight has added to rosella?
lucian no 14:28
NotFound One second...
lucian moritz: i don't really plan to get it boostrapped soon, because of dependencies
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 nopaste.snit.ch/40118
lucian python's object system is very uniform and recursive
moritz it's unicorns all the way down!
lucian yes, sort of. except it's snakes. and they eat each other's tails too 14:31
NotFound Unicorned snakes.
moritz tail recursion gets a new meaning :-) 14:32
lucian NotFound: hmm, that looks a bit similar to my non-6model plan. thanks
heh
darbelo Except that if you go deep enough you crash into a turtle.
NotFound lucian: probably, but using pir or winxed you can do experiments right now. 14:33
lucian NotFound: if i had time, yes. i do know that this method will work, however. just not very elegantly/fast 14:35
when i get time (and docs), i'll look at 6model first
NotFound: so there's a parrot Class called 'Meta'
that all objects are instances of
NotFound Fast, probably not. Elegancy is in the eye of the beholder. 14:36
lucian in python, in addition i'd have 'class' objects
and instead of a prototype chain, a class chain 14:37
not sure how MI'd work
NotFound lucian: that experiment was oriented towards javascript-alike objects.
lucian yeah, but JS isn't all that different
NotFound The key point is the mechanic to avoid problems with the method cache. 14:38
lucian what's the [vtable] syntax? 14:39
NotFound lucian: it gets translated to a PIR :vtable
lucian right
and ${ } is inline pir? 14:40
NotFound Yes
The [ ] syntax for that is borrowed from C# attributes, but in Winxed I call them modifiers.
Because is mostly used for PIR modifiers. 14:42
14:43 Andy_ joined
lucian right. are winxed classes declared like python ones? 14:43
i.e. just a namespace where assignments get set into class attributes?
14:44 bubaflub left
plobsing lucian: no. they're baseline parrot ones 14:44
NotFound lucian: no, it follows parrot class and object model.
lucian right
it seemed that way from the syntax
NotFound Well, yes, *is*, not just follows. 14:45
lucian: that's Winxed magic, you can figure most of it just by looking at its examples ;) 14:46
lucian hmm 14:47
NotFound: hmm, that find_method doesn't walk the prototype chain afaict 14:51
NotFound lucian: no, it just look ups one level. 14:52
lucian is that 'obj' and explicit this/self?
right, so i read it right
s/and/an/
14:54 PacoLinux left
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
right
it should actually be passable for a js stage0 14:55
14:55 PacoLinux joined
NotFound That's the idea, a way to prototype naive implementations. 14:55
lucian for python, there's already pynie
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
lucian but it's *extremely* naive
whiteknight C3 linearization, prototype-like fallback using multiple prototypes is all possible to do
and probably worthwhile
or, if not prototypes, other interesting object models can be provided 14:57
lucian whiteknight: right. more worthwhile than 6model i wonder?
whiteknight probably not. But in terms of prototyping it can be very valuable
lucian python's object model is prototypal, shouldn't be an issue
(most people don't believe that because there's a 'class' statement)
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
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
it will just get a lot thinner
lucian hmm
6model really needs some docs or something, so far i'm under the impression that 6model requires C-level extension 15:00
s
for each particular implementation of the MOP
15:01 UltraDM left
lucian but i don't know if that's true or not 15:02
15:03 bubaflub joined 15:04 theory joined 15:12 dngor left 15:21 contingencyplan joined 15:28 mj41 joined 15:29 plobsing left 15:33 he joined
whiteknight I think Google is making initial slot allocations tomorrow 15:45
if I am reading the timeline correctly
moritz wow
lucian really? cool 15:46
how many "real" proposal do you have so far? if you can tell
Coke doesn't think so.
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
the rest are poor 15:47
Coke whiteknight: when do we need to vote by?
lucian whiteknight: thanks
PerlJam Still end of the wek isn't it?
s/wek/week/
How many slots did we request?
whiteknight the 17th is the end of the "initial ranking" period
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.
whiteknight the 22nd is when the winners are announced
cotto: yes, quite right
cotto seen dukeleto
aloha dukeleto was last seen in #parrot 2 days 19 hours ago saying "cotto_work: :)".
whiteknight Coke: to answer your question, sometime this week or this weekend would be ideal
Coke k. shouldn't be a problem. 15:49
whiteknight cotto: I think we can scrape together 8 mentors for good projects
And as I mentioned, i'm willing to do two of them, if at least one doesn't need a lot of hand-holding
moritz it's not just about the total, it's also about who can and want to mentor which project
whiteknight also true
cotto moritz, of course. Not everyone will be comfortable mentoring every project.
15:50 plobsing joined
lucian www.youtube.com/watch?v=uL2D3qzHtqY interesting 15:52
whiteknight yes, this is very interesting 15:58
lucian i mean, 10mins in he has yet to reveal something to completely surprise me 15:59
but it helps to have him lay it out
whiteknight he talks quick. I like that. Doesn't waste my time
lucian yep
whiteknight I would be very interested to hear what serialization mechanism he thinks would be better than bytecode 16:03
lucian i think his point is that we shouldn't use bytecode for the actual execution 16:04
16:04 dmalcolm joined 16:06 woosley left
atrodo Apparently, I got too bored with that video too quickly 16:06
16:06 dngor joined 16:07 dngor left 16:08 dngor joined 16:12 rohit_nsit08 joined
rohit_nsit08 whiteknight: hello 16:12
16:23 dodathome joined
whiteknight hello rohit_nsit08 16:23
16:23 plobsing left 16:24 bubaflub left
rohit_nsit08 whiteknight: hi, was going through the irc's chat history 16:25
lots of discussion on bootstrapping python, i missed it :-(
whiteknight: is python's object model also prototype based?
like javascript 16:26
whiteknight similar, but not identical
rohit_nsit08: NotFound and I started adding code for JavaScript objects to Rosella
lucian rohit_nsit08: it's similar in that you can create/modify classes/objects at will
rohit_nsit08: it's class based in that you don't clone objects most of the time, but create new ones 16:27
rohit_nsit08 lucian: can we add properties at run time dynamically like we do it in javascript? 16:28
lucian rohit_nsit08: yep
also, all "methods" are just functions that are properties
"everything is an object"
rohit_nsit08 lucian: ya, in javascript even functions are objects :-)
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?
lucian classes are objects, modules are objects, ints are objects, scopes are objects, etc
whiteknight rohit_nsit08: get plumage. Then "plumage install Rosella"
er, you need plumage and winxed
rohit_nsit08 lucian: ya, i have installed plumage and rosella both
and winxed too 16:30
have used winxed for some simple programs
whiteknight github.com/Whiteknight/Rosella/blo...ass.winxed
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?
whiteknight none really. Rosella is still new 16:32
PerlJam the most interesting part of that JVM talk starts around 36 minutes in.
whiteknight Parrot-Linear-Algebra uses it for the test suite 16:33
16:35 benabik joined
lucian PerlJam: this is true 16:37
16:38 wagle joined
cotto_work ~ 16:39
16:43 jaffa4 joined
jaffa4 hi 16:43
whiteknight hello jaffa4 16:44
jaffa4 I had a problem last time 16:45
I could not run bytecode of perl 6 program
lucian whiteknight: 45:30 about bytecode
jaffa4 on WIndows
moritz ... but oyou used a different nick, just for confusion
jaffa4 exsctly 16:46
but you are here fortunately
PerlJam he was a newbie then. But no more!
jaffa4 that was the way of kvirc
not of my choosing
I just wonder if anything has happened since then 16:47
or not.
Coke as I recall, i was able to duplicate your problem, but I haven't spent any time trying to fix it. 16:50
you should open a trac ticket so it doesn't get lost.
jaffa4 I suspect it must be a minor problem
lucian whiteknight: what he's saying is "java bytecode sucks", which i agree with. not necessarily bytecode in general
whiteknight okay, that makes more sense
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
lucian yep
16:56 jevin joined
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
they seem to care a lot about enterprisey stuff
cotto_work lucian: you might talk to allison and see if she can point you somewhere
lucian cotto_work: thanks, i'll ask 16:57
allison lucian: bradley kuhn has a connection with a university in the US that has an active interest in dynamic languages 16:58
lucian: I forget which one, possibly University of Michigan
16:58 mj41 left
lucian allison: thanks. hmm. i dislike the UI 16:58
US
allison lucian: it's where he did his master's degree (on how impossible it is to implement Perl in Java)
lucian: my best experiences have been with Cambridge and Oxford 16:59
cotto_work he used to hang out in here
allison lucian: Oxford has a big old-school Perl/Ruby crowd
lucian right
i don't think they'll want me, though
allison lucian: also worth finding out where Brett Cannon (CPython) did his PhD
lucian academically, i'm bland
allison lucian: I've had good interest also from ETH Zurich 17:00
lucian right. i'll need to make a list
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
jaffa4 Could sombody fix that bug? 17:04
lucian allison: btw, are you still willing to mentor pynie-ng? 17:05
allison lucian: yup, absolutely 17:06
lucian: do I need to enter that into the system?
lucian allison: don't think so
cotto_work It's important that melange know about mentors.
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
but then again, it probably can't cause any harm
cotto_work The number of projects with mentors is an important signal as to how many slots we'll get.
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"
I'm afraid to click it in case it locks other mentors out
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.
dukeleto has been living under a rock
cotto_work ah dukeleto. jit
allison lucian: I've signed up as a potential mentor for pynie-ng
lucian ok, thanks 17:10
jaffa4 what is pynie-ng
?
lucian jaffa4: python3 on parrot
benabik dukeleto: As long as it was a comfortable rock, that's okay.
lucian done "right"
allison jaffa4: a Python on Parrot implementation, for Google summer of code
jaffa4 I see 17:11
is there Perl 5 on Parrot?
is there no Perl 5 on Parrot?
PerlJam jaffa4: no.
cotto_work no and yes, respectively
jaffa4 it would make sense. 17:12
benabik There's a perl5 next to parrot.
jaffa4 perl5 next
whiteknight it wouldn't make sense. perl5 is extremely difficult to port
people have tried before and failed
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
whiteknight a sanified perl5 subset might be a nice project. So far, no takers
allison it would be possible to do "baby perl 5" though
whiteknight: exactly
benabik "nqp5"? 17:14
jaffa4 ppi?
allison no need to handle all the edge-quirks
whiteknight btp5
jaffa4 what about ppi?
whiteknight better than perl 5
allison ppi is good
isn't that damian's name from a few years ago?
jaffa4 use ppi
allison before perl6?
ah: www.perl.com/pub/2005/06/09/ppi.html 17:15
adam kennedy
lucian i don't much see the point of a perl5 subset
allison those australians all look alike ;)
lucian perl5 compatible would be useful for legacy libs
otherwise, perl6 is nicer and incompatible
whiteknight lucian: a cleaned up, more sane perl5 without all the legacy cruft might be pretty popular indeed 17:16
would probably make chromatic happy
lucian whiteknight: but it wouldn't run CPAN
PerlJam lucian: anything that allows Perl 6 to use the existing CPAN with no change would be awesome :)
whiteknight lucian: that's not the only draw of Perl5
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
yes, that's true
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
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
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)
lucian allison: that's either perl6 missing things or them being change-averse
whiteknight I can't say I'm too much happier with perl6 than with perl5, but I can hardly speak for other perl coders
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
allison lucian: that's the nature of programming language choice in general
dukeleto lucian: it is called "getting paid"
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
lucian * other than legacy stuff
allison: no, not at all. it's not about dislike, it's about sanity 17:21
perl6 seems fine, even though i don't like it much
dukeleto cotto_work: so am I needed? I see a really comfortable rock over there ...
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
dukeleto has been taking IRC diets
lucian my point is that yet another perl derivative seems useless
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
lucian allison: that would involve breaking a lot of code
whiteknight We have two projects without mentors attached, at least one of which looks right up your alley
cotto_work dukeleto: should we have a backup gsoc org admin?
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
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?
dukeleto cotto_work: i think whiteknight is already the backup admin
cotto_work whiteknight: great
lucian allison: no, a full implementation of perl5, quirks and all, would be useful
cotto_work As long as we have one, I'm happy.
whiteknight dukeleto: yes, everything is on the google-melange site now
cotto_work: don't worry, I'm on top of it
cotto_work you can also access it on socghop
lucian allison: same as a full implementation of python2, with broken closures and old-style classes and crappy strings
allison: but a (sane) subset would break legacy code, which is most of the point of it
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
a perl5 subset without the crap would be a pretty nice language
depending on which crap you excised
and if we built-in Moose, it would be quite nice indeed
lucian whiteknight: yes, it might be, i guess
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
whiteknight lucian: might be faster
perl6 has got a hell of a lot going on
lucian whiteknight: i almost always ignore that argument
allison lucian: like, the basic systax is 10%, and duplicating all the weird edge-behaviors is 90%
whiteknight a prettified perl5 subset could be more economical
allison s/systax/syntax/ 17:26
lucian allison: and then getting it to work well is another 90%
whiteknight: if it ran 50% of CPAN, i think it might be a very worthwhile project
allison lucian: yah
whiteknight that's very possible, I think. I mean, much of CPAN is garbage anyway
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
PerlJam If it just ran the non-garbage, that would be awesome. That's only what? 5% of CPAN? :)
lucian PerlJam: does the non-garbage avoid the ubiquitous whale guts?
dukeleto why are we talking about a perl5 subset again? to hear the funny sounds we make? 17:28
because I surely don't see any logical reason for it
whiteknight blah
I think there's plenty of logic for it 17:29
if we show perl5 coders that they have a better situation on Parrot, the sensible ones might migrate
dukeleto whiteknight: i think you are sorely disconnected from the Perl community, buddy :)
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?
cotto_work Once we cut out our work, we'll have our work cut out for us. 17:31
dukeleto is feeling devil's advocate-ish today, it seems 17:33
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:34
cotto_work dukeleto: yeah. I don't hold out much hope for Parrot as an alternate compiler/runtime for Perl 5. 17:35
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?
jaffa4 What is crap in perl 5?
PerlJam benabik: I agree.
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?
lucian jaffa4: depends highly on who you ask
cotto_work dukeleto: because melange--
dukeleto melange-- indeed
cotto_work It's nice how the left the least useful part in. 17:38
*they 17:39
NotFound One thing that p5 on parrot can be used for is as a test framework for proposals and new features. 17:40
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?
arnsholt dukeleto: You're Excess flooding a lot (a LOT) over at freenode
cotto_work dukeleto: it should be on the dashboard 17:42
dukeleto arnsholt: thanks. I had to calm down some dueling irc clients
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
dukeleto whiteknight: am I listed as an org admin when you are logged into melange?
NotFound PerlJam: *= 2 ?
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
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 17:47 hercynium joined 17:48 dngor left, whiteknight left 17:49 whiteknight joined 17:51 whiteknight_ joined
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:52
dukeleto whiteknight: i did apply to be a mentor 17:53
whiteknight_ awesome
dukeleto Coke: possibly.
Coke: but my 'linkid' for gsoc/melange has always been dukeleto and that is what is showing 17:54
Coke: it shows that i submitted org apps for TPF and Parrot, but I am not org admin for Parrot
Coke dukeleto: my linkid is coke for both wcoleda@gmail & will@coleda, methinks. 17:55
17:55 whiteknight left, whiteknight_ is now known as whiteknight
Coke would open a bug report with the melange folks. they are pretty responsive. 17:55
17:58 benabik joined
dukeleto blarg 18:00
18:01 ShaneC joined 18:02 lucian_ joined
jaffa4 is there reflection in perl6? 18:03
?melange
!melange
what is melange
PerlJam jaffa4: perl6 questions are best asked on #perl6 :-) 18:04
jaffa4: melange is the software that google uses to manage GSoC
jaffa4 except when it is best to ask there?
Coke #perl6 on freenode.net
jaffa4 except when it is best to ask here?
benabik aloha, melange?
aloha benabik: melange is crapping out or socghop.appspot.com or /google-melange.com
PerlJam jaffa4: it's best to ask parrot related stuff here.
18:05 lucian left, dngor joined
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:07
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:11
18:12 dngor left
lucian_ aloha: melange is not /google-melange.com 18:16
aloha lucian_: ... but melange is crapping out or socghop.appspot.com or /google-melange.com ...
18:16 lucian_ is now known as lucian
lucian bah. how do you fix aloha's brain entries 18:16
whiteknight hatchet 18:18
lucian flings a hatchet at aloha's skull 18:19
benabik aloha: no, melange is crapping out or socghop.appspot.com or google-melange.com 18:20
whiteknight aloha forget melange
aloha benabik: Okay.
whiteknight: I forgot about melange.
whiteknight aloha melange is google-melange.com
aloha whiteknight: Okay.
whiteknight damn right it's okay
aloha VisualBasic? 18:21
aloha whiteknight: I have no idea.
whiteknight aloha VisualBasic is vomit for stupid people
aloha whiteknight: Okay.
lucian aloha: perl?
aloha lucian: perl is invoked: perl -I/home/klaus/build/exe/lib/parrot/2.9.1/tools/lib t/harness
lucian aloha perl5?
aloha lucian: No clue. Sorry.
whiteknight I can't barely read any of this crap
who invented visualbasic?
lucian aloha: perl5 is surprisingly functional exploded whale guts
aloha lucian: Okay.
atrodo whiteknight> I believe microsoft in some fashion 18:22
whiteknight I can't reconcile that with the fact that they also produced C# 18:23
one language is so good, the other is so appallingly bad
it's like they're taking "bring your kids to work day" too seriously
lucian whiteknight: totally different teams in a big company
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
benabik There's also VB.net
whiteknight lucian: So there's an entire incompetent team, as opposed to one mostly-competent team having a few bad days?
lucian whiteknight: i'm quite certain
whiteknight lucian: I'm not sure that's any better
lucian a few bad days is no excuse for the myriad crappy basic derivatives in windows-land
whiteknight if I were a manager at microsoft, I would fire people all day and all night long 18:25
one after the other
and I would start with the VB.net team
atrodo Also, C# was designed. And by someone competent, Anders Hejlsberg
lucian oddly enough, they hire lots of very smart people
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.
whiteknight no argument, though there are some languages that specifically encourage it 18:29
lucian and plenty of languages really are just crap 18:30
whiteknight thank you
more people need to just accept that sentiment
some languages are just crap
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
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
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. ;)
PerlJam whiteknight: ah, but there's fortran IV, fortran V, fortran 66, fortran 77, fortran 90, .... there are so many fortrans to choose from! :)
lucian Coke: no, i'm not like that at all :)
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
then dump the entire category into the trash
lucian i do like quite a few other languages. and even python is just alright-to-good
lucian goes to eat
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.
atrodo wishes there was a dwim language, with one operation: dwim; 18:34
18:34 dngor joined
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
though php does have its share of infelicities
cotto_work more than its share 18:35
whiteknight in terms of raw syntax, it's not a bad language
it's the haphazard runtime library that gets people frazzled
PerlJam that and the 20 different sorting routines (for instance) 18:36
cotto_work generality is not its strong suit 18:37
tadzik and some of the functions in camelCase, some_with_undercores, and some cstyle
cotto_work or consistency
atrodo cotto_work> Actually, javascript has in a couple places the same concept of callback-as-string
cotto_work but javascript also has actual first-class functions
A string callback is fine if it's not the *only* way of using a callback. 18:38
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
and they make a few mistakes on the way there (namespace syntax anyone?)
Coke wonders where in JS core there is string-as-callback.
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:46
as much as it might be derided, it is a popular dynamic programming language 18:47
we'd have to offer a console variant, I doubt we can compete performance-wise in a server context any time soon
cotto_work I think PHP would be a relatively easy target, apart from all the extensions.
whiteknight I think so too 18:48
moritz cotto_work: PHP has thousands of built-ins that take huge work to duplicate
cotto_work moritz: that's the hard part.
but most of them are unused. We could get a long way with the most popular 5-10 extensions.
PerlJam Wasn't someone working on PHP already? 18:50
cotto_work barney, fperrad and I were.
I want to get Lorito stable before I re-start that work.
whiteknight that was a long time ago. Last time I looked at the source i saw xslt and I stopped reading
github.com/bschmalhofer/pipp 18:51
cotto_work that's the one
whiteknight looks like it uses older PCT
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 ;-)
whiteknight that's my opinion
cotto_work PerlJam: I was thinking of something like that. 18:53
PerlJam Seems to be the common pattern these days.
whiteknight it makes the most sense for established languages
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.
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
benabik And bootstrapping is awesome.
cotto_work Some kind of self-hosted PHP parser exists. I haven't dug too far into it yet.
whiteknight wezfurlong.org/blog/2006/nov/parser...s-for-php/ 18:55
so we have a parser generator
bugs me that this parser is written in C
cotto_work nice
18:57 dafrito left
whiteknight pear.php.net/package/PHP_Parser/ 18:57
dalek nxed: r954 | NotFound++ | trunk/winxedst0.cpp:
change expansion of predef bodies in stage 0, previous way was vulnerable to
18:59
whiteknight it looks like this is not a very popular topic of inquiry 19:00
19:01 [hercynium] joined
NotFound If I remeber well, Microsoft didn't invented Visual Basic, they bought a company that did. 19:03
19:03 [hercynium]_ joined
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
He's the exception though. Only a few stick around historically. 19:05
19:05 hercynium left
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
either school starts back up, or they graduate and get a real job, etc
19:06 [hercynium]_ is now known as hercynium
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
And Python has a big toolset, with lots of compiler experimentation in that community
I wonder if it would ever make sense to get cardinal to self-host
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
whiteknight rohit_nsit08: thanks! 19:08
19:08 [hercynium] left
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
whiteknight or, if we just manage not to lose lucian, that would still be good 19:11
19:13 lucian left, plobsing joined
cotto_work oh noes 19:13
lucian_ heh 19:22
19:22 lucian_ is now known as lucian
lucian that was awesome timing 19:22
whiteknight: i'd expect rubinius to have a lot of reusable ruby code
i'm pretty sure their compiler is pure-ruby
anyone interested in Python3 on Parrot, gather round for a short ceremony 19:23
whiteknight is present
NotFound is half-interested 19:24
lucian We have all gathered here today to christen a new one in our midst
reborn thrice, it now it actually has funding 19:25
(for a couple of months anyway)
Python3 on Parrot, I dub thee Puffin! www.seabird.org/assets/gallery/bird...ffin13.jpg
disclaimer: it might not actually have funding. and it might not actually survive
benabik Puffins, the Parrot of the Sea: www.puffinpalooza.com/puffins-the-p...f-the-sea/ 19:26
NotFound Snakes on a parrot!
lucian NotFound: terrifying. puffins are much more easier on the eye than a snake on a parrot 19:27
s/more//
darbelo lucian: en.wikipedia.org/wiki/Quetzalcoatl 19:28
lucian darbelo: heh, not bad
NotFound That depends... snakes around something have a tradition as symbol of good things ;) 19:29
lucian NotFound: those medic folk are deviants, don't mind them :) 19:30
plobsing Anhinga - snakebird
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
19:32 Andy_ left
lucian NotFound: have you thought how that'd interact with function literals? 19:33
NotFound lucian: of course not, that's part of the project. 19:34
lucian i think i might actually like something like that 19:35
CoffeeScript tackles the problem of lambdas with indentation syntax quite well
NotFound I'm open to be surprised.
Tene whiteknight: explain exactly what you mean by "self host" for cardinal?
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
Tene whiteknight: *all* of it can't be *exclusively* python, as it has to generate something appropriate for parrot eventually.
although, I guess it could generate PAST...
whiteknight Tene: the code generator could be written in python and output a bunch of PIR string literals
Tene Yeah, that's certainly plausible. 19:37
whiteknight it's all still python
NotFound lucian: uh... the ability to allow both syntax in the same compiler will make it a lot more than a toy project.
lucian NotFound: not in the same file, just a switch
Tene whiteknight: Sure, I was just curious where you were thinking of the boundary as in your question.
whiteknight: I certainly plan for it to be significantly self-hosting, at least.
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
hmm 19:39
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++
lucian right. i don't see the point of it if it isn't included, which is why i asked 19:42
NotFound: something like efene/ifene www.marianoguerra.com.ar/efene/
whiteknight PerlJam: Thanks. I do hope that some prospective students actually see it 19:44
it's amazing that I have so much to write about what students are doing wrong
NotFound lucian: looks nice. The problem I see with having alternative syntaxes is fragmenting the community.
lucian NotFound: if the parser can convert between the two, it shouldn't be a problem 19:45
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
we should ask efene folks
it's about as popular as winxed, i guess
NotFound For a now... ;) 19:48
19:49 mj41 joined
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, benabik left
cotto_work whiteknight++ 19:56
karma whiteknight 19:57
aloha whiteknight has karma of 1070.
cotto_work that's proper
tadzik :) 19:58
20:00 dafrito joined
lucian whiteknight+=10 20:01
karma whiteknight
aloha whiteknight has karma of 1070.
lucian NotFound++
lucian closes shop for the day 20:03
20:03 lucian left 20:05 bubaflub joined
whiteknight yay! I finally broke 1k 20:07
not too long now before I can collect a delicious, delicious donut
NotFound Covered with syntactic sugar? 20:08
whiteknight melted down into a sticky syntactic glaze
20:09 jrtayloriv joined
dalek nxed: r955 | NotFound++ | trunk/winxedst1.winxed:
use indent constants instead of spaces in a few remanant places
20:13
20:23 whiteknight left 20:30 utsl joined 20:31 dodathome left
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?
We'll make sure to keep you out of any fights to the death. 20:34
jaffa4 lucian : Is it from StarGate universe?
cotto_work maybe
jaffa4: ENOLUCIAN 20:35
darbelo cotto_work: I can, at best, impersonate a knowledgeable mentor on the subject of two of our proposals. 20:36
cotto_work darbelo: which ones? 20:37
I see you're listed for the LALR project. I'd like to see that one happen. 20:38
darbelo Me too. That's then one I'm most comfortable tackling as well. 20:39
But I guess I can do a passable job on the GMP one. 20:40
... Which I just clicked on :) 20:41
20:41 mj41 left 20:43 nwellnhof joined
darbelo But we do seem to have a set of underapreciated proposals, which nobody so far has volunteered on. 20:44
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:45
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.
darbelo PerlJam: It's all in how you define "low rated". 20:48
cotto_work <10 20:49
(atm)
darbelo Looking at them again, sorting by total score. I'm inclined to agree. 20:51
20:52 fperrad left
moritz it's interesting that sorting by total and average score is mostly the same 20:52
darbelo I was about to remark on that. The middle fluctuates, but the top four are the top four. 20:53
And the bottom three are the bottom three, regardless of sorting.
cotto_work seen justina 20:54
aloha Sorry, I haven't seen justina.
cotto_work I'm hoping she turns out to care. Profiling needs love. 20:55
darbelo Indeed. 20:56
The impact from a HLL-oriented profiler could be enormous. 20:57
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:05
cotto_work It's special. 21:06
moritz it's got *character* 21:07
21:08 jevin left 21:10 jevin joined
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
21:12 davidfetter joined 21:14 ambs left 21:18 jaffa4 left 21:21 [hercynium] joined 21:22 jevin left, jevin joined 21:25 hercynium left, [hercynium] is now known as hercynium 21:32 bluescreen left
darbelo PerlJam: A column got added recently. 21:39
And I think the excessively ajaxy tables are an app-engine thing. 21:40
I'd say "excessively ajaxy" describes most of the stuff build on app engine. 21:41
PerlJam it's the future, only now instead of later. 21:42
21:48 plobsing joined
darbelo I already don't like it. 21:49
21:49 Drossel joined
darbelo I've been disliking the future of the web for years. 21:49
It's the kind of pioneering I do.
PerlJam that's the thing about the future ... whether you like it or not, you have to deal with it. 21:50
darbelo Oh, I deal with it alright. 21:52
I install text-based browser on all of my computers.
Done.
It improves most sites in ways you wouldn't believe :) 21:53
PerlJam I'm sure 21:54
21:54 Kulag left
dalek tracwiki: v79 | cotto++ | ParrotQuotes 22:02
tracwiki: trac.parrot.org/parrot/wiki/ParrotQ...ction=diff
22:07 dngor_ joined 22:11 dngor left
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 :)
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 :-)
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
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
rohit_nsit08 didn't tried youtube
let me see
bubaflub: hmm... ya i could see how the requests were going 22:20
22:20 whiteknight joined
rohit_nsit08 i usually use http headers plugin of mozilla to see 22:20
that
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:23
darbelo I should probably write an HTML5 'app' that lets the younger generations experience text browsing. 22:24
cotto_work You can do text games with the url bar. 22:25
url hunter is only the beginning
rohit_nsit08 cotto_work: text games? pls give me the link
cotto_work rohit_nsit08: url hunter 22:26
probablyinteractive.com/url-hunter
rohit_nsit08 got it :-) trying
dalek rrot/soh-cah-toa/tt1215: 04849ac | Kevin++ | / (3 files):
Patch (almost) for ticket #1215. The .pod file are for another commit.
rrot/soh-cah-toa/tt1215: 1c40b2c | (Kevin Polulak)++ | / (2 files):
Fix for the issues addressed in ticket #1215. Refactored duplicate code in the 'fetch' and 'vivify' opcodes.
22:27 jevin left
cotto_work whoever pulled that, don't merge 22:27
whiteknight I'm no merging
cotto_work k
whiteknight I'm just taking a look, with my fingers
why no merge?
cotto_work I commented in the pull request
whiteknight oh, he hasn't modified it yet?
22:28 soh_cah_toa joined
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.
soh_cah_toa i'm working on it now actually
cotto_work soh_cah_toa: great
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
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.
whiteknight I think it's better to have them in pmc.c, especially if we want to use that behavior from anywhere else
I said it was the best place
22:29 hercynium left
cotto_work The common code is odd. 22:30
whiteknight what do you mean?
oh, actually it doesn't work
cotto_work It creates a new PMC based on the passed parameter, but has separate paths for Class vs normal pmc. 22:31
22:31 Coke left
whiteknight yeah, we can probably refactor this beter 22:32
better
soh_cah_toa alright how
whiteknight the part that takes a key and returns a Class or PMCProxy can be refactored out
cotto_work I'm happy to have a static function, but better suggestions are welcome.
whiteknight Parrot_oo_get_class_from_key can go into src/oo.c
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
soh_cah_toa not quite
whiteknight no?
cotto_work orly?
soh_cah_toa the outer if is in fetch 22:34
then in vivify the function is called within an if
cotto_work Ah. I'd leave the if in the op body
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
i think. let me check
cotto_work worked fine for me last night when I was playing with it
either that or our test coverage of those ops is lacking 22:36
soh_cah_toa your right
why did i do that?
cotto_work looks to his right
soh_cah_toa oh well
oh wait 22:37
if i copied the outer if...
cotto_work btw, welcome to yak shaving
this is relatively shallow for Parrot
soh_cah_toa then it'd have a call to VTABLE_set_pmc_keyed
which uses args $2 and $3 22:38
which i wanted to avoid
b/c the types of $2 and $3 vary
22:38 kid51 joined
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
cotto_work ok
need to focus on $dayjob for a while
soh_cah_toa sure, that's fine 22:40
22:42 bubaflub left
soh_cah_toa whiteknight: i don't think there's a call to Parrot_oo_get_class_from_key 22:42
whiteknight: just Parrot_oo_get_class 22:43
rohit_nsit08 good night #parrot , cotto_work: nice game :-) 22:45
22:46 rohit_nsit08 left 22:48 dmalcolm left
dalek TT #2091 created by jkeenan++: t/op/gc-leaky-box.t, t/op/gc-leaky-call.t: new test failures 22:49
TT #2091: trac.parrot.org/parrot/ticket/2091
whiteknight soh_cah_toa: I'm saying you should create a new function called Parrot_oo_get_class_from_key 22:57
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
or, more importantly, a time when PMCProxy can go the hell away
a function that takes a Key and returns a metaobject is easy to find uses for 23:01
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:04
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.
whiteknight what is not consistent?
plobsing vivify/fetch vis-a-vis the rest of parrot 23:06
whiteknight you don't like vivify/fetch? 23:07
soh_cah_toa plobsing: you mean having them call static functions?
plobsing whiteknight: no. I think they are great, Perl 6-specific, convenience ops.
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
soh_cah_toa i see
whiteknight I won't argue on their behalf
soh_cah_toa me neither
plobsing soh_cah_toa: my prefered option is for them to be static functions.
so that we don't expose the functionality
soh_cah_toa so let me see if i got this... 23:09
whiteknight okay, that's fine. Static funtions work fine form e
for me
soh_cah_toa you'd like it if fetch/vivify were removed as opcodes and made into functions?
for other opcodes to call?
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.
whiteknight soh_cah_toa: refactor those Parrot_store_* functions into static functions in the ops preamble
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.
soh_cah_toa right
but the way to do that is to add the definitions to the preamble which i thought was only for preprocessor directives 23:11
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
soh_cah_toa logically it makes more sense b/c they're only used by fetch/vivify 23:13
23:13 preflex left
soh_cah_toa alright, let me give it a try 23:14
23:16 preflex joined
soh_cah_toa btw, is there a way for me to test my changes w/o having to build the entire thing? 23:18
would i just use ops2c.pl?
cotto_work make corevm 23:19
plobsing opsc --core
and then make corevm 23:20
cotto_work corevm will build all the Parrot stuff, ./opsc --core will just run ops2c
soh_cah_toa perfect
cotto_work corevm is really nice for this kind of change
dalek rrot: 05ea828 | plobsing++ | src/pmc/imccompiler.pmc:
headerizer flags for IMCCCompiler
rrot: 5ebd3eb | plobsing++ | / (2 files):
this function handles NULLs just fine thankyouverymuch
soh_cah_toa alright. still not aware of all the different make targets yet 23:21
whiteknight soh_cah_toa: I recommend you set up an alias for "make -j5" or some reasonable number to run a parallel build 23:22
the number of cores your process has plus 1 or 2 is a good start 23:23
plobsing most of the build isn't CPU-bound. the exception is anything that uses NQP. 23:25
it would be nice to be able to run 'make -j10 except only 2 nqps at a time'
soh_cah_toa okay thanks 23:26
whiteknight you're going to want to learn this process very very well 23:31
soh_cah_toa yeah? alright 23:32
23:33 kid51 is now known as kid51_at_dinner
whiteknight we've also got some tricks to make the tests run faster 23:35
soh_cah_toa do tell 23:38
whiteknight "make -j5 coretest TEST_JOBS=5"
I alias my configure settings to "pc", the make incantation to "mj", and the test incantation to "pt" 23:39
so I can usually type "pc && mj && pt coretest"
soh_cah_toa nice, pretty neat 23:40
cotto_work alias is your friend 23:46
soh_cah_toa oh yeah, i use alias a lot
plobsing realias makes alias even better 23:47
www.modernperlbooks.com/mt/2009/10/...tions.html
soh_cah_toa ah, pretty clever 23:49
whiteknight I haven't seen hide nor hair from chromatic in quite a while 23:50
seen chromatic?
aloha chromatic was last seen in #parrot 59 days 5 hours ago saying "All of the core tests did pass for me, FWIW.".
whiteknight blah, I didn't realize my ubuntu VM was completely unconfigured 23:58
so now I've got to spend time doing that
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. ;] 23:59