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 I had to dig out my o'reilly python book, o'reilly javascript book, and my dragon book 00:01
I imagine I am going to be referencing all of those this summer
NotFound I have a Dungeons and Dragons book, does that count? 00:02
whiteknight almost
compiler of +5 intellegence
lexical analyzer of +12 charisma
NotFound Charisma in lexical analyzer... never thought of that. 00:04
cotto NotFound, did you think that "char" meant "character"? 00:06
bubaflub cotto: and int is intelligence 00:07
NotFound He
I don't think I want to hear what float is.
cotto buoyancy 00:08
00:21 mikehh joined 00:28 bacek joined
dalek sella/gh-pages: 877893e | Whiteknight++ | libraries/future.md:
short blurb about how a library becomes stable
00:35
sella: 01b12d8 | Whiteknight++ | / (2 files):
Add tests for memoize/Memoize. Also, add better diagnostics to Assert::output_is
sella: b243214 | Whiteknight++ | / (5 files):
add stub tests for container-related things
00:38 bacek left 00:48 bacek joined
benabik_ cotto: bacek: ping 00:50
00:55 mikehh left
cotto benabik_, pong 00:55
benabik_ cotto: Finished my GSoC proposal for a bytecode generator. You were listed as a possible mentor. gist.github.com/899867 00:56
whiteknight I may like that idea the best of all your proposals so far 00:57
I mean, I like it the most personally. All your proposals are good
cotto same here
benabik_ May still write up a couple others. Like to give people choices. :-) 00:58
whiteknight of course, as soon as we say you should work on that for the summer, bacek is going to fly in from out of nowhere and implement the whole project in an afternoon 00:59
benabik_ Although it took too long to find time to write one.
whiteknight benabik: the downside to having many proposals is that we can only accept one.
cotto benabik_, can you put your proposals on melange?
benabik_ whiteknight: that'd be interesting, although pesky.
cotto: Will do when I get home. 01:00
cotto benabik_, thank you
benabik_ Finished it just in time to run out the door.
whiteknight yes, we need more proposals submitted to melange
cotto whiteknight, most likely
benabik_ whiteknight: I wouldn't write up one I wouldn't like to do. And a long as I can do one, I'm happy. 01:01
cotto having someone else implement POST->pbc would give us a better bus number
whiteknight at the moment, we still don't know exactly how many students are going to apply, and we don't know how many slots we are going to get from Google
I sincerely hope the first number is smaller than the second number 01:02
01:04 mikehh joined
dalek sella: a0e0ade | Whiteknight++ | t/decorate/ (2 files):
add stub tests for decorate
01:09
sella: 34d6828 | Whiteknight++ | t/decorate/ (3 files):
add in some stub test methods. A new file to test end-to-end decoration
bubaflub whiteknight: i think we've got a good history of success and esp. with the high school program doing well 01:16
whiteknight yeah, that's what dukeleto says too. All we can do is hope
01:20 jsut_ joined 01:25 jsut left
cotto dukeleto, ping 01:50
01:50 whiteknight left 02:35 contingencyplan left 04:05 soh_cah_toa left 04:08 bubaflub left 04:42 hudnix left
cotto ~~ 05:06
05:35 benabik_ left 05:50 JimmyZ joined 05:53 JimmyZ left 07:08 plobsing left 07:13 plobsing joined 07:22 davidfetter left 07:33 jimmy joined 07:40 jimmy left 08:18 jrt4 left 09:09 ShaneC left 09:33 luben left 10:01 contingencyplan joined 10:09 bacek left 10:27 lucian joined 10:28 bacek joined
lucian 'morning 10:44
lucian dislikes hangovers
tadzik WHY GOOD MORNING LUCIAN! 10:45
10:45 whiteknight joined
lucian tadzik: is that something in your pants or are you just very happy to see me? 10:46
tadzik my pants are fine, thank you
lucian good. that wasn't very funny, i kniw 10:49
it just felt vaguely appropriate
tadzik: www.antipope.org/charlie/blog-stati...antibodies 10:57
tadzik lucian: what's that? 11:00
lucian tadzik: an interesting book 11:02
in dead-tree terms, i've just made you a present of a book :)
tadzik oh, thank you :)
I'll add it to my toread 11:03
lucian tadzik: i think you can make it an epub if you happen to have a reader
tadzik unfortunately no, I don't
lucian you should. i got one it's one of the best things i've ever bought
sony prs-350
tadzik but that remnds me of some library books I should've given back a week ago or so
lucian heh
lucian is glad to have been helpful 11:04
tadzik well, an ssd goes first, then a rifle, and then I'll see :)
lucian heh
no, for me reader > ssd >>>>>>>>>>>>>>> any weapon
tadzik What about a blackpowder 17.5 mm 19th Century Rifle? :) 11:05
lucian i see no use for it 11:07
tadzik and I need a new disk, the existing one recently got a tendency to evaporate my data
lucian as nice as that would be
i see, in that case i concur that ssd > reader
tadzik oh it's quite fun for recontructing 19th centyury battles
lucian i can imagine
moritz prefers lasers 11:08
comes with my job :-)
tadzik your job is to participate 19th century battles equipped with a laser? :)
that _would_ be quite outstanding :)
moritz and involve time travel :-) 11:09
lucian tadzik: futurama-style
the sithil wars!
moritz no, my job involves lasers
tadzik has never seen futurama
lucian tadzik: you should when you have time 11:10
tadzik I wonder if I can find it inside my TV cable. I have no TV at home, and I only have TV cable because they weren't selling the internet w/o television 11:12
lucian has no tv either 11:13
tadzik: if you have tv, just download it
tadzik I'll probably do that
whiteknight ls 11:24
lucian Applications Desktop Movies Prog School 11:53
Books Documents Library Music Public Sites
Parrot Downloads Pictures Rosella Bar
white-machine:~ whiteknight$
11:54 Patterner left 11:55 Psyche^ joined, Psyche^ is now known as Patterner
whiteknight :) 11:58
NotFound whiteknight: You have a Bar at home? 12:02
whiteknight a Bar? no
NotFound I see it in that listing.
lucian NotFound: ignore the lies, i have seen the Bar 12:12
also the FOo
12:13 DanielC joined
DanielC Hello. Where can I ask a *legal* question about Parrot? I want to ask someone to clarify paragraph (6) of the Artistic License 2.0. That's Parrot's license, so I hope someone here knows someone I can talk to. 12:14
12:17 contingencyplan left
whiteknight DanielC: I can probably help 12:19
DanielC Great. 12:20
whiteknight I'm pulling up the text of the license now
okay, got it
DanielC Ok. Paragraph (6) says that you can distribute the modified version in compiled form as long as you follow section 4... 12:21
whiteknight right
DanielC Does that mean that if I distribute a binary I must *also* do one of (4a) - (4c)? 12:22
Or is that *only* if I also distribute source?
whiteknight hm...that actually is a bit confusing in the text 12:24
DanielC Yeah.
lucian has only recently got the joke behind the name of said license 12:25
whiteknight okay, that it's looking like is that you have to distinctly name your version, make clear what you've changed about it, and one of 4(a) - 4(c) with the source
i think if you ship the compiled version without source, you still need to make the source available under 4(a) - 4(c) 12:26
12:26 clunker9_ is now known as clunker3
DanielC I'm sure that in practice it's not a problem because (4b) is so easy to comply with, but I like to understand the licenses I sue... 12:26
whiteknight DanielC: oh, is there legal trouble a-brewin'?
DanielC Nah.
It's actually for my own software. 12:27
I just like knowing what I'm doing :-)
Too many people slap a license on their work without even knowing what it says.
Anyway, your interpretation is that if I give out a binary, I must also do everything in (4). 12:28
whiteknight If we could go back in time, I'm not sure Parrot would use Artistic 2.0 again
DanielC Has Parrot had problems with this license?
whiteknight DanielC: Yes. You don't want to be confusing or conflicting with the standard version, and you want your changes to be freely available, either to the users or directly upstream 12:29
no, we haven't had problems with it. Artistic 2.0 is not considered a pervasive or popular standard though
DanielC Thanks.
whiteknight In terms of sheer compatibility, GPL2 or GPL3 might be more usable
DanielC If Parrot had to do it over again, what do you think it might have chosen? Artistic 2.0 is GPL compatible... 12:30
Artistic 2.0 is almost BSD-like in what it permits.
It only seems to add the minimal requirements of changing the name of the program and not conflicting with the original. 12:31
lucian whiteknight: is AL copyleft? i thought not 12:32
lucian likes MIT and Apache2
DanielC is 99.87% sure AL is not copyletf.
lucian actually, copyleft licenses are usually mutually exclusive 12:33
i don't quite understand how GPL would've been more compatible
DanielC lucian: Yes, they are.
whiteknight lucian: It's not strong-copyleft, no
there are clauses in there 4(c)(i) for instance, which don 12:34
t require the share-alike aspects
DanielC lucian: I never understood why there is a distinction between the MIT and BSD licenses. They look the same to me.
lucian DanielC: they are, pretty much. MIT is just a bit clearer
and BSD more popular
DanielC yeah
lucian Apache2 is an interesting beast. it has potential patent protection (but never tested), but otherwise quite MIT/BSD-like 12:35
whiteknight MIT license isn't share-alike. BSD license isn't either 12:36
er, sorry. BSD is share-alike
DanielC AL, BSD, MIT and Apache2 are all broadly similar. AL requires that the modified program not conflict with the original, which is nice. Apache adds patent protection, which is also nice.
whiteknight: What do yo mean by share-alike? BSD is not copyleft... 12:38
lucian DanielC: AL is slightly
whiteknight share-alike means that you have to provide your changes under the same license as the original
lucian keeps reding AL
DanielC whiteknight: And BSD is not that.
whiteknight BSD requires that you duplicate the same copyright notice (license) in the modified version
DanielC thinks 12:39
lucian whiteknight: which is a bit odd and slightly inconvenient
DanielC whiteknight: Why is it that "everyone knows" that BSD is not copyleft if the conditions amount to copyleft? 12:40
whiteknight Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
DanielC: copyleft is more than just the share-alike clause
DanielC lucian: I don't think a license can be "slightly copyleft" anymore than a person can be a little pregnant. Either the license allows yo to give your modifications under a different license, or it doesn't... 12:41
lucian DanielC: BSD doesn't enforce BSD on derivatives
DanielC: legalese is much more vague than sperm and eggs
DanielC whiteknight: What's the difference between "share-alike" and copyleft?
whiteknight copyleft typically deals with the ability to make free use of the source, given the executable 12:42
at least, that's the traditional understanding of it
DanielC lucian: I think (4b) is clear enough... That's the AL way of letting you make your modification closed. 12:43
whiteknight BSD license, for instance, doesn't require that you provide the source if you distribute the binary
NotFound DanielC: AFAIK there is no legal document that defines "copyleft", so its meaning is subject to interpretation.
whiteknight NotFound: exactly right. Copyleft is more a tongue-in-cheek play on copyrighy, and not a strict legal term
DanielC NotFound: Well, that's true, but that's true for most words :-)
whiteknight copyright
NotFound DanielC: most words are not used in the context of license disucusions. 12:44
DanielC wonders if there is a legal document that defines "legal" or "document"...
whiteknight I'm sure there are
lucian whiteknight: copyrighty sounds awesome 12:45
DanielC should make a license that includes the words "wallaby" and "hammock"
lucian DanielC: i'm always surprised how much legalspeak try to be like programming languages
lucian thinks they should try Loglan for a change 12:46
or maybe martian
NotFound lucian: the problem is that they don't have debuggers.
12:46 ambs joined
DanielC NotFound: Anyway... Yes, I know that copyleft is not an official term, but I think there is broad agreement on copyleft. At least to the extent that it is "what the GPL does" 12:46
lucian NotFound: i think the problem is that the interpreters/compilers are crap
whiteknight Contrast BSD with something like GPL3, which requires that derivative works must use exactly the same license, must include the full attribution of the original work, and imposes the same restrictions with respect to front-cover and back-cover texts
GPL3 would also require that source code be made available to any user of a binary version. 12:47
BSD only requires the use of the same license. MIT imposes no restrictions
AL imposes some restrictions, but gives latitude in picking which ones
lucian whiteknight: afaik, BSD doesn't require that 12:48
DanielC whitenight: I am still having trouble figuring out what the BSD requires that is "share-alike"... It says that distributions of either source or binary form must include the copyright notice, and you say that that means the license... That interpretation sounds copylefty-ish to me.
whiteknight "Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer."
lucian: That's almost all that BSD does
lucian whiteknight: ah, source redistro. ok 12:49
whiteknight if I take a BSD-licensed software and create a new derivative version of it, I have to release those modifications with the same license declaration
lucian copyrighty! i'm so gonna write a wikipedia article on that
whiteknight: uh, no 12:50
whiteknight BSD does appear to be pervasive enough that we could add additional licensing stipulations on top of it, so maybe it isn't purely share-alike
NotFound DanielC: "a broad agreement" is more or less in the same category of precision as "slightly"
whiteknight copyleft is typically broken up into strong and weak versions 12:52
lucian and now for something exactly the same damnyouautocorrect.com/page/10/
DanielC The "3-clause BSD" license on Wikipedia says: "(1) Redistributions of source code must retain the .. copyright notice ... (2) Redistributions in binary form must reproduce the .. copyright notice..."
NotFound lucian: souns like copykitty
whiteknight DanielC: right 12:53
There are generally two types of copyleft: strong and weak
BSD is typically considered an example of weak copyleft
DanielC What does weak copyleft permit vs strong? What does it prohibit vs MIT?
lucian i have brand new love for AL 2.0 12:54
whiteknight maybe "typically" is too strong a word
BSD is "occasionally" considered an example of weak copyleft
NotFound Someone in some place sometime said something like that.
lucian it's technically copyleft because forks must be BSD or a superset
DanielC lucian: What does superset mean in this context? 12:55
lucian DanielC: BSD + further restrictions on the side 12:56
if it's simplified BSD, then (L)GPL is a superset
DanielC Let's see... the BSD lets you impose new restrictions, but you cannot remove existing restrictions, and existing restrictions basically mean keeping the copyright notice with the restriction that you must keep the copyright notice... 12:57
It sounds almost like a joke.
But anyway, did I get it right? 12:58
lucian DanielC: i think so
whiteknight BSD is basically "Do anything you want with the software, but you MUST include the disclaimer"
BSD is more to protect the author from problems 12:59
DanielC Is the BSD basically a way to make sure you always get credit and a no-liability disclaimer?
Ok, that's making more sense now...
whiteknight BSD doesn't even require credit, as far as I can see
lucian whiteknight: isn't that implied in reproducing the license? 13:00
DanielC So basically it says, "you must tell everyone in perpetuity that I am not responsible if the software explodes and eats your cat"
whiteknight right
DanielC Thanks.
lucian helps whiteknight modestly bow 13:01
DanielC :-)
This was interesting. I always thought of the BSD as an "do whatever you want" license. I can see that it does have one non-trivial restriction. 13:02
s/restriction/condition/
lucian whiteknight: bah, still haven't tried parrot on arm 13:05
13:09 mikehh left 13:16 DanielC left
whiteknight lucian: no worries 13:20
lucian bah, the parrot git repo is *GIGANTIG* 13:21
plobsing lucian: but you only have to download the whole thing once 13:22
lucian plobsing: yeah, i know 13:23
13:23 hudnix joined
whiteknight plobsing: those pod.t failures you are reporting for the imcc branch look weird to me 13:25
I don't get the errors on my machine, and they don't appear to be related to anyting i've modified
plobsing hmmm... not sure where they could be comming from. 13:26
lucian loves silent computers
plobsing I suspect that there is one test that segfaults or something causing TAP errors in all subsequent tests 13:27
whiteknight actually, when I run that file manually I do see some erors
weird
plobsing whiteknight: are you running fulltest?
whiteknight yes
these fragments that are failing are marked as PIR_FRAGMENTINVALID 13:30
PIR_FRAGMENT_INVALID
so they should be todo'd
no wait, not all of them 13:31
ah wait, I think I know what's going on 13:33
IMCC is throwing more exceptions out into Parrot, instead of just returning a 1/0 failure bit
so a lot of fragments which are INVALID are not being marked as such, but are now being caught as errors
marking uncompilable fragments as INVALID should fix the error 13:35
lucian noway this 800mhz machine can function normally while compiling
13:36 mikehh joined
NotFound lucian: try using nice 13:36
lucian NotFound: no, i mean it's fully functional and i can't quite believe it 13:37
doesn't even have a lot of cpu cache
NotFound Compiling C, PIR, or both? 13:38
lucian NotFound: parrot
NotFound Amazing. 13:39
dalek nxed: r924 | NotFound++ | trunk/winxedst1.winxed:
class declarations without body in stage 1
13:44
lucian NotFound: it is slow at compiling, though
NotFound plobsing: ping 13:45
whiteknight plobsing: I've fixed all the pod.t test failures locally, but the test is still reporting out-of-order TAP symbols, which I don't understand
13:45 kid51 joined
plobsing whiteknight: I'm not sure what to do about that. Maybe run with prove -v and pick through with a fine-toothed comb? 13:47
whiteknight plobsing: maybe. I'm not too worried about i 13:48
this is a perl test, using Perl's test libraries. So I dont think it has anything to do with IMCC
NotFound plobsing: I think r924 us what you asked several weeks ago.
s/us/is
lucian whiteknight: parrot built on arm. running make test 13:51
whiteknight really? I'm impressed and incredulous
plobsing NotFound: sweet 13:52
lucian whiteknight: i think this netbook is magic 13:53
NotFound plobsing: you can use class A.B; or namespace A { class B; }
whiteknight lucian: If there are GC-related problems, they would manifest at runtime
lucian whiteknight: yeah, i imagined. let's see what make test figures 13:54
whiteknight blah, t/pmc/threads.t failed because I used TEST_JOBS=5 13:55
I hate that test
one day, under cover of darkness, I'm going to delete it outright and not tell anybody
and nobody is ever going to notice that we're not supposed to be getting random failures from a poorly-written test file for our poorly-written threads system 13:56
lucian aren't threads dead yet?
whiteknight only in my fantasies 13:57
lucian pulls up a chair, fetches popcorn and turns on whiteknight's fantasies
for Turing's sake, that sounded so wrong
whiteknight they aren't nearly as interesting as the fantasies of other men my age
also, it's weird that so many of them involve Parrot, and not, for instance, the cover of the swimsuit edition 13:58
mikehh whiteknight: hey I noticed and said much about it :-}
whiteknight mikehh: I know, you'll be my accomplice and confidant
lucian whiteknight: hmm. mine involve homoiconic self-recursive meta-circular non-s-expression languages 13:59
oh, and girls
hmm, how many failures am i supposed to get in make test?
mikehh whiteknight: we seriously need a thread safe parrot - and the tests too :-} 14:00
lucian mikehh: i'd be fine with thread-safe and thread-less until the jit settles down 14:01
plobsing a variant of threads would be possible once we have thread-safety 14:03
specifically, you could spawn another interp as a shared-nothing thread
lucian plobsing: and have a IPC-but-for-threads for explicit sharing? 14:05
plobsing lucian: yeah, that would work
lucian how would languages with full sharing semantics work?
plobsing in fact, that's one of the things ƘMQ provides 14:06
lucian: I'm not sure. I'm not trying to come up with a full solution.
I'm saying we could get a first approximation for much less
lucian true. and a useful one 14:07
lucian hates sharing mutable data
plobsing lucian hates (FTFY)
lucian heh
well, there are relatively few things that i outright hate 14:08
am i supposed to get test failures on osx? 14:16
kid51 No
lucian kid51: should i write a ticket? 14:17
whiteknight plobsing: I can't run fulltest, because t/perl/Parrot_Test.pl fails mysteriously on my system 14:22
but other tests run individually do not fail
dalek rrot/whiteknight/imcc_compreg_pmc: 8efe43e | Whiteknight++ | docs/ (7 files):
IMCC is now better about reporting errors to the user. As a consequence, PIR examples in documentation which do not compile by themselves were now causing t/examples/pod.t to fail. I've fixed some fragments and marked the rest as INVALID
14:23
rrot/whiteknight/imcc_compreg_pmc: 9086d0d | Whiteknight++ | src/packfile/api.c:
Merge branch 'whiteknight/imcc_compreg_pmc' of github.com:parrot/parrot into whiteknight/imcc_compreg_pmc
nxed: r925 | NotFound++ | trunk/winxedst1.winxed:
rearrange a bit class declaration handling
14:25
nxed: r926 | NotFound++ | trunk/pir/winxed_compiler.pir:
update installable compiler
lucian i've missed a bunch of xkcd. this is awesome xkcd.com/853/ 14:33
kid51 lucian: Generally you should paste test failures first. If there's someone on channel at the moment, you can get some help. If that doesn't work, open TT. 14:34
lucian failures on osx gist.github.com/900444
whiteknight: noway. ALL TESTS PASS ON LINUX ARMEL 14:35
better than my intel osx 14:38
dalek nxed: r927 | NotFound++ | trunk/ (6 files):
rearrange some tests
14:41
whiteknight lucian: awesome. Your work here is complete 14:47
lucian whiteknight: and i didn't even do any work :) 14:48
whiteknight lucian: as a sanity check, is it running in any kind of x86 compatibiity mode?
lucian whiteknight: it doesn't have any
whiteknight ok
lucian no dropbox :(
dalek nxed: r928 | NotFound++ | trunk/t/ (2 files):
rearrange prefix ++ and -- operators tests
14:51
kid51 lucian: failure in t/dynoplibs/debug.t have been showing up in Smolder reports on Darwin/i386;failures in t/src/extend_vtable.t are subject of TT #2084 14:54
Can you add data about extend_vtable.t to TT #2084? Thx.
And, if you have time, open a new TT about debug.t specifying which version of Mac OS X, etc; you use. 14:55
benabik G'morning. 14:57
lucian kid51: hmm. what exactly is wrong about debug.t? i don't know what to post 14:58
14:58 JimmyZ joined 15:01 rohit_nsit08 joined
rohit_nsit08 hello #parrot 15:02
lucian waves
JimmyZ good evening, #parrot
kid51 lucian: Simply re-run the test with 'prove -v' and post output in ticket.
(We should have done this months ago.) 15:03
afk
15:19 marc joined 15:28 JimmyZ left 15:32 rohit_nsit08 left 15:33 rohit_nsit08 joined
lucian kid51: trac.parrot.org/parrot/ticket/2086 15:34
15:36 cognominal left 15:40 Eduardow left 15:44 cognominal joined 15:47 Eduardow joined
dalek TT #2086 created by lucian++: dynoplibs test failures on OS X 15:48
TT #2086: trac.parrot.org/parrot/ticket/2086
15:57 plobsing left 15:59 PerlJam left 16:00 tadzik left, pmichaud left, Util left 16:05 Util joined 16:06 tadzik joined 16:08 PerlJam joined 16:09 pmichaud joined 16:15 M_o_C joined 16:19 plobsing joined
lucian $ fortune "You will be run over by a bus." 16:21
whiteknight lucian.bus_number-- 16:31
mikehh I know this bus driver who once-upon-a-time happened to be a dev, but things happened ... he has amitions... 16:48
ambitions... 16:49
mikehh need to change the batteries on my wireless keyboard :-} 16:50
17:10 kid51 left 17:11 plobsing left 17:27 contingencyplan joined 17:35 M_o_C left 17:42 DanielC joined
DanielC Looks like whitenight is gone :-( He might be interested to know that the Artistic License 2.0 actually has a patent clause like the Apache 2 license. 17:45
knight
whiteknight I am never gone
DanielC oh, there he is... whiteknight: ping
whiteknight well, not never
DanielC :-)
AL paragraph (13) is a patent clause. 17:46
I think it is exactly the same as the license grant from Apache. 17:47
whiteknight I'm not as familiar with the apache license. I've never used that one
DanielC www.apache.org/licenses/LICENSE-2.0 <--- section 3 looks the same as AL paragraph (13) (I think). 17:48
I'm not too familiar with either license. I've just been reading them today.
whiteknight Yeah, the two sections do appear almost identical 17:49
DanielC I think I'm pretty happy with the AL v2 now. 17:50
whiteknight good. you shouldn't use any license you aren't happy with 17:51
or, as you pointed out, you shouldn't use a license you don't understand 17:52
17:52 contingencyplan left
DanielC Indeed. 17:53
17:53 contingencyplan joined 18:05 M_o_C joined 18:12 ambs left, allison_ joined 18:17 ambs joined 18:33 ShaneC joined 18:47 plobsing joined 18:53 mikehh left 18:57 DanielC left 19:02 M_o_C left 19:08 mikehh joined 19:12 bubaflub joined 19:23 theory joined 19:24 luben joined
luben ~~ 19:24
rohit_nsit08 good night #parrot 19:40
19:41 rohit_nsit08 left 19:52 lucian left
bacek Good morning, humans 19:55
seen benabik
aloha benabik was last seen in #parrot 4 hours 57 mins ago saying "G'morning.".
clunker3 benabik was last seen on #parrot 4 hours, 57 minutes and 57 seconds ago, saying: G'morning.
benabik is here. 19:56
bacek benabik, aloha
benabik and surprised to see clunker back again.
bacek: Hello
19:56 lucian joined
bacek benabik, most of PBC emitting was done in PIRATE. 19:56
pct_pbc branch is to bring it back to parrot. 19:57
benabik, github.com/parrot/pir/blob/master/...ompiler.pm 19:58
benabik bacek: So that task would boil down to "merge this code"? That doesn't sound like a summer worth of work.
bacek nope. There is more to do. Much more. Otherwise I already finish it :) 19:59
Main things: POST from pirate (newPOST) is much bigger than current POST. 20:00
Because oldPOST is too "stringish" and was used to emit PIR only.
benabik So a new PAST->POST pass would be needed.
bacek exactly
benabik (Or PAST->newPOST)
bacek and newPOST is implemented in nqp, not pir. 20:01
cotto ~~
bacek pct_nqp branch focusing on rewriting PCT in NQP. It's mostly straight forward move.
cotto good to see benabik and bacek talking
bacek benabik, also there is quite few shortcuts in newPOST in terms of generating PBC. E.g. support for Annonations isn't implemented. 20:03
and Debug 20:04
benabik AFAICT, POST just used inline '.annotation' nodes.
bacek So, if you want to change topic of your GSoC to "Made emitting of PBC from PCT production ready" I'll totally support you :)
benabik, (Annotations) yes, this is correct. 20:05
cotto I like where this is going. 20:06
bacek we do need POST::Node.annotation method and emit PackfileAnnotation in Compiler.to_pbc
benabik It sounds like I'd have to spend the approx half reworking PAST to use newPOST and the other half adding features like annotations.
bacek benabik, I will say 50 for new .to_post, 25 to migrate to PAST to nqp, 25 for new/missing features. 20:07
benabik Probably in 2 1 3 order...
bacek agreed 20:08
implementing .to_post in nqp will be much simpler. This was main reason why I implemented .to_pbc in nqp.
Don't forget to reserve some time to improve Packfile* PMCs if required. 20:09
benabik I think that "Implementing X in NQP" is easier than "Implementing X in PIR" for all X
bacek benabik, :)
benabik I left approx three weeks of "bugfix/unforeseen problems" time in my original proposal. I don't see a reason not to keep that. 20:10
(Well, two and change since one was after the "we suggest you stop working" point on the GSoC timeline.) 20:11
bacek Yes, sounds like a good plan
there is couple of PIR leftovers in POST (nqp_pct branch version). 20:12
benabik Is PIRATE good enough to use for inline nodes, or should I just plan to leave those "NYI"? 20:13
bacek benabik, it should be doable. Put PIRATE into "nice to have if I'll have time to implement it" 20:14
pirate was main testbench for newPOST.
It shortcuts PAST step in PCT. 20:15
Jump directly from parse to post.
benabik Ah. I had found/been pointed at pirate but didn't quite grok it. That jump is probably one reason. 20:16
bacek benabik, may be. And emitting of PBC is quite close to understanding of some "IMCC magicks" 20:17
E.g. "op rewriting" and "constant folding" _must_ be implemented.
benabik Op rewriting? 20:18
bacek Give me a second. I'll find real example
20:19 soh_cah_toa joined
plobsing bacek: there are alternatives to const folding 20:19
bacek benabik, github.com/parrot/pir/blob/master/...er.pm#L189 20:20
plobsing, yes, if we delete "ops.skip" and start generating all variants of ops
plobsing bacek: you can unfold the constants too 20:21
bacek plobsing, but I would like to keep some optimizations for PBC. Mostly because it's good starting point for more complex optimizations. E.g. "inline function", etc.
20:21 theory left 20:22 theory joined
benabik bacek: Does PAST-> work at all on nqp_pct branch? Or does it try to use POST that no longer exists or works? 20:23
*PAST->POST
plobsing bacek: I'd like to see "optimizations" required for generating correct PBC separate from PAST somehow. I really hope we don't force PAST as the new Parrot API.
bacek benabik, it works. newPOST is superset of oldPOST 20:24
plobsing, it's separated from PAST. And POST.
We just have to "rewrite POST before emitting PBC from it".
plobsing, and PAST tree will not changed. We are changing only PAST::Compiler.to_post to emit "newPOST". 20:25
lucian plobsing: if PAST had a textual notation, it wouldn't be too bad
benabik Okay, so I'll try to rewrite my proposal in terms of reworking PAST. I'll start working from the goals "Convert PAST to NQP", "Expand to_post to use newPOST types" and "Add annotations and debug to PAST/POST". Not sure how those'll break down into smaller goals (I'd like have goals be close to one per week), but I'll poke at it tonight and tomorrow. 20:26
bacek benabik, deal 20:27
aloha, clock? 20:28
aloha bacek: LAX: Sun, 13:28 PDT / CHI: Sun, 15:28 CDT / NYC: Sun, 16:28 EDT / UTC: Sun, 20:28 UTC / LON: Sun, 21:28 BST / BER: Sun, 22:28 CEST / TOK: Mon, 05:28 JST / SYD: Mon, 06:28 EST
bacek benabik, it's 6:30AM here. I'll be at $dayjob. But I can try to answer your questions (if any)
seen bacek_at_work 20:29
aloha bacek_at_work was last seen in #parrot 3 days 15 hours ago saying "yes, it works with "token"".
bacek benabik, ping ^^^^^ this guy :)
benabik Well, I have to work out a bit of schoolwork. I spent most of yesterday trying to understand POST and PBC enough to write the proposal and need to play a little catchup.
bacek benabik, PBC knowledge is still applicable. "POST" is just simple tree. POST::Compiler is where magic happens 20:31
bacek hates DST
afk # need more coffee
benabik bacek: But it sounds like much of that magic has been worked out.
soh_cah_toa whiteknight: hey, have you gotten a chance to look over my gsoc proposal at all? 20:32
20:34 woosh joined
woosh hi, im looking at applying for gsoc this year. 20:36
sorear I'm wondering what to apply *for*...
plobsing woosh: is there any project of particular interest to you? 20:38
woosh well, yes.
i was looking at parrot for some time now.
and i was keen on developing a jit compiler for parrot 20:39
soh_cah_toa woosh: have you seen the projects page?
bacek benabik, not all magic was reveled.
woosh soh_cah_toa: yes, but it wasn't specified as a gsoc project. alternatively i'd like to look at opencl backend for parrot
lucian woosh: you're free to come up with new ideas 20:40
i put Python3 on the list myself, and I'm a student
plobsing ping cotto # student interested in lorito-related project
cotto plobsing, hio
woosh lucian: good. i was interested in python3 myself.
benabik woosh: The LALR parser task was added at my suggestion... Although I got distracted by bytecode generation. 20:41
soh_cah_toa woosh: a lot of students believe it or not
benabik bacek: Is there anything major missing other than the annotations?
plobsing cotto: is Lorito on the table for GSoC? we've got a student interested in developing a JIT for parrot.
cotto plobsing, I assume you'r etalking about woosh?
plobsing yep
cotto ok
lucian a jit that goes "woosh" sounds interesting
woosh cotto, plobsin: i haven't added myself to the list.
cotto It's still pretty speculative. 20:42
soh_cah_toa haha
lucian woosh: not to discourage you, the infrastructure for a future parrot jit isn't quite in place (yet)
cotto I don't know if investing time in a jit based on the current spec would be worthwhile.
woosh i wanted to do that earlier, and write up my proposal, but got highly distracted with my dissertation
cotto, lucian: any suggestions? 20:43
bacek benabik, hmm. Probably a lot of things. I can't predict right now how many things will be required to make "PBC emitting" production ready.
woosh, take a look at jit_prototype branch in parrot. This is what I was working on in last few weeks. 20:44
woosh is moving to llvm ir happening anytime soon, or you're set to stay with pir?
bacek: cheers, i ll have a look 20:45
20:45 kid51 joined
bacek woosh, "pir" will stay around. jit_prototype is about emitting llvm ir from pir (actually pbc but it's very close) 20:46
lucian woosh: the general vibe is *not* to move to any particular existing IR
woosh: you might want to read about lorito and M0
bacek benabik, www.rememberthemilk.com/home/bacek...tion.tasks is my old (very-very old) todo list for pirate.
20:47 ShaneC left
cotto lucian, exactly. llvm will be one of many possible backends 20:47
lucian although there is a general tendency towards llvm 20:48
bacek benabik, trac.parrot.org/parrot/wiki/PirateTodo is kind of high-level todo list for pirate.
lucian having read what PyPy, tracemonkey and rubinius folks went through, i disagree with that tendency somewhat
plobsing llvm is a good start, but I've seen remarks by several dynamic JIT systems built on it pointing out some weaknesses.
lucian and plobsing is politely saying that many projects found llvm sucky for dynamic languages 20:49
plobsing It is primarily a compiler framework, and has super-linear behaviour. This isn't an issue for clang, but not good for JIT.
lucian it's almost as much of a JIT as a C compiler is
for example VMkit tries to implement jvm/.net on llvm, and even those are a tad too dynamic for llvm's current capabilities 20:51
of course, it'll still be faster than most interpreters 20:52
sorear mono also implements .net on llvm these days
(optionally)
lucian sorear: yes, with the expected caveats 20:53
plobsing: i'm curious in what way llvm has super-linear behaviour
sorear lucian: other than "very slow startup", what are they?
lucian sorear: a memory usage hit
benabik bacek: So the semi-ultimate goal would be to get PAST->newPOST->PBC in enough shape to bootstrap NQP? 20:54
plobsing lucian: I have not measured. I have only heard reports from unladen swallow and other dynamic JIT projects.
lucian and of course linking llvm which is rather big
sorear lucian: what's your favorite reusable optimization and code generation module?
bacek benabik, yes. I think is we can run nqp it's 99% of work. 20:55
lucian plobsing: i'm sorry, i still don't get it. i thought super-linear had to do with parallelism
sorear super-linear means O(n^2) etc
lucian sorear: i guess nanojit, but that's not very complete
sorear double the code, increase runtime by 4+
lucian sorear: oh, that too
20:55 theory left
woosh lucian: i'm just reading through lorito, is it this supposed to be your low-level language to be compiled and run on llvm? 20:56
sorear most offline compilers have superlinear optimizations of various forms. just ask anyone who's tried to compile the old switch core
lucian woosh: not mine, i'm possibly it's biggest critic
sorear: yeah, i get it. i just didn't link the term superlinear to runtime complexity 20:57
woosh lucian: so would you discourage it as a possible summer project then?
lucian sorear: largely as a response, llvm is sort of getting fast compiles and the beginnings of a hotspot mode
benabik bacek: But that may involve alterations to NQP? Hm. I wonder if there's a smaller but still reasonably complex PCT language to use to test a new stack.
lucian woosh: again, the disclaimer that i'm a student. not really, GSoC is partly about experimentation 20:58
bacek benabik, nope. We should try not to alter nqp at all.
lucian woosh: i mean i wouldn't discourage it because i disagree with certain design decisions
benabik bacek: "the current version uses strings rather than structure to store data and isn't amenable to PBC generation without a full PIR compiler"
bacek benabik, you can use squaak as test HLL
benabik, ("strings") it's about POST. 20:59
20:59 ShaneC joined
bacek benabik, nqp emits PAST. Sometimes with .inline nodes. 20:59
lucian another very common observation i've read about llvm is that its optimisations aren't that useful to languages too different from C 21:00
so you're mostly just getting a portable assembler, some broad general optimisations and a very good assembly-level peephole optimiser
bacek benabik, about 12 :inline nodes in NQP::Actions.
benabik, github.com/perl6/nqp-rx/blob/maste...Actions.pm 21:01
lucian of course the qualifier "just" may be exaggerated 21:02
bacek benabik, and Q:PIR quoting... 21:03
benabik bacek: That falls under "integrating PIRATE", no? While getting that far would be nice, I don't want to set the bar too high. :-/ 21:04
lucian woosh: so, take what i say with the appropriate amounts of salt, and note that i have 0 LOC committed into parrot proper
bacek benabik, yes, it's pirate's job to parse it. Let's use squaak as test bench.
benabik, we can integrate pirate later. 21:05
benabik, examples/languages/squaak
benabik bacek: Are there tests for PAST and POST already?
bacek benabik, yes, t/compilers/pct 21:06
(in parrot)
woosh lucian: ok. will look more deeply into this.
bacek and quite few of them in pirate
benabik, I'm not sure that I moved them into nqp_pct branch
benabik, just for fun - you can also use pirate as test HLL :) 21:07
benabik bacek: If it skips PAST, that's less useful for testing the PAST->POST conversion. 21:08
lucian whiteknight: ping
bacek benabik, pirate it self - yes. But it's implemented in NQP which use full PCT workflow.
benabik bacek: I'll keep it in mind. 21:10
21:23 woosh left 21:31 PacoLinux left 21:33 lucian_ joined 21:34 woosh joined 21:36 lucian_ left 21:38 lucian left, lucian joined
kid51 lucian: ping 21:42
21:42 benabik left 21:43 ambs left
lucian kid51: pong 21:43
kid51 lucian: I forgot some important info when advising you earlier about reporting the errors on Mac OS X 21:44
21:44 benabik joined
lucian kid51: such as? 21:45
kid51 Because of that OS's "dynamic linking" feature, we had problems in the past with an installed parrot looking for libparrot underneath the build directory, even when that build directory had ceased to exist.
So the fix was to always look for libparrot under the installed parrot. 21:46
See config/init/hints/darwin.pm. Look for a now closed TT opened by Coke.
Side effect:
'prove' doesn't really work on Darwin now for tests which require libparrot 21:47
lucian kid51: i ran parrot from the build directory
kid51 Hence, all those failures in your test report
lucian hmm, you're right about prove actually
kid51 My own personal workaround:
When testing Parrot on Darwin, I say: perl Configure.pl --prefix=/Users/user/path/to/pseudoinstall/directory 21:48
I then call "make install"
lucian kid51: actually i think i did that 21:49
kid51 That configures, builds and installs a Parrot in a directory which is only for testing.
lucian i put it in ~/.local/parrot
kid51 I then have to alter my .bashrc:
export DYLD_LIBRARY_PATH=/Users/jimk/work/pseudoinstall/lib:/Users/jimk/gitwork/parrot/blib/lib
And then, I can run prove. 21:50
Cumbersome, but it works for me, and it's what I have to do in reporting errors on Darwin (e.g., just now to parrot-dev for whiteknight's branch)
lucian hmm
kid51 This is needed for 'prove' and for 't/harness' -- but not for the various 'make ....tests' targets, because there's code in there that accounts for this problem (IIRC) 21:51
Lacking this, using 'prove' on Darwin reports failures in *many* more files than 'make test' would. 21:52
lucian right
sad
kid51 I've been meaning to file a TT about this ... but since this problem is a side effect of our "solution" to *other* TTs, I haven't done so 21:53
If the failure is in t/dynpmc, you might try "make dynpmc_tests". It may or may not work.
21:54 tcurtis joined
kid51 Although something like 'make dynpmc_tests' might not give your the verbose output you need to file good failure reports 21:55
21:58 theory joined
dalek tracwiki: v16 | woosh++ | ParrotGSoC2011Students 22:01
tracwiki: added myself to the student list - woosh
tracwiki: trac.parrot.org/parrot/wiki/ParrotG...ction=diff
kid51 If there are any other GSOC candidates who have not yet added themselves to that wiki page, please create a Trac user account, then ping me so that I can give you the necessary permissions to do that (or to file/edit Trac tickets) 22:23
tcurtis whiteknight: ping 22:30
dalek nxed: r929 | NotFound++ | trunk/winxedst (2 files):
multiple declarations in 'using static'
22:32
nxed: r930 | NotFound++ | trunk/pir/winxed_compiler.pir:
update installable compiler
22:37 arnsholt left
whiteknight tcurtis: pong 22:39
22:40 arnsholt joined
tcurtis whiteknight: It's somewhat late for me to be bringing this up, but I saw on the GSoC ideas page that you're interested in mentoring someone to create a LALR parser generator for Parrot? 22:43
whiteknight yessir. You interested? 22:44
tcurtis Very much. 22:45
whiteknight tcurtis: That, or any other ideas you have in mind?
tcurtis: standard warnings will apply: It's probably a very big project, and requires knowledge of the associated theory, etc 22:46
benabik tcurtis: I was interested in that until I got sidetracked with the bytecode generator.
whiteknight 1..2...3...STUDENT FIGHT! 22:47
two students enter, only one gets to take the idea
cotto You'll find a brick taped under your seat. If you don't know what to do, the other student will. 22:48
NotFound Who wants... to live... forever...
tcurtis benabik: Does that mean that you're still interested in doing it or that it has been eclipsed by the bytecode/post stuff? 22:51
whiteknight tcurtis: I would love to see a draft proposal
benabik tcurtis: Sidetracked, as I said. :-) 22:53
tcurtis benabik: Sidetracked thoroughly enough that there would be no risk that you would take offense if I were to submit a proposal for it? :) 22:54
benabik tcurtis: I wouldn't be offended if you submitted a proposal even if I was still working on it. :-) 22:55
tcurtis benabik: Great. :) 22:56
whiteknight: I'll get to work on that, then.
whiteknight tcurtis++ 22:57
benabik++ # for not letting blood be spilled
22:58 theory left
tcurtis NotFound: Is there any convenient way to use the winxed parser to parse a portion of a file? 22:58
whiteknight what do you mean a portion? 22:59
tcurtis NotFound: or alternately, a way to find the end of a block of Winxed code more easily than actually parsing it? 23:00
benabik whiteknight: I just know that I'm awesome enough to be chosen over any possible competitor. :-D 23:01
tcurtis whiteknight: for the actions in the parser specification(if we use the yacc/bison approach of directly embedding them in the specification). Fully parsing them wouldn't really be necessary. 23:03
NotFound tcurtis: I think parsing it is the easier way. 23:04
Maybe if you forbid the usage of heredocs you can use a regex approach. 23:06
Winxed has three types of comments, two types of quotes and the heredocs. So its not easy to define a safe delimiter. 23:08
tcurtis Alright. Separate actions would be rather easier to implement, and language-agnostic. 23:11
NotFound My personal view is that yacc is a tool from a past millenium ;-) 23:13
Both literaly and metaphoricaly.
whiteknight yacc may be dead, but the LALR algorithm is alive and well 23:18
23:18 nopaste left
whiteknight up-front identification of state conflicts, fast rejection of errors, and bounded worst-case parse times are all attractive features that other parsers can't match well 23:19
recursive descent has much worse worst-case performance if there is a lot of backtracking involved
NotFound The ugliness is in its language.
whiteknight right, but we can make a better language
NotFound We always do better languages ;) 23:20
bacek_at_work ~~ 23:23
23:24 nopaste joined
cotto hi, bacek_at_monday 23:24
bacek_at_work aloha, cotto_from_past
NotFound whiteknight: Have you tried the new syntax for getting multiple returned values? 23:25
whiteknight NotFound: I wasn't aware of it
lucian kid51: sorry i dropped off, i'll look into it tomorrow
kid51 np 23:26
NotFound whiteknight: in installable since r922
whiteknight: code.google.com/p/winxed/source/bro...5mreturn.t 23:28
whiteknight awesome
soh_cah_toa whiteknight: hey, how's it going? 23:32
whiteknight soh_cah_toa: pretty well, you?
soh_cah_toa whiteknight: not bad. i was wondering if you had seen my gsoc proposal yet? i submitted it to google last night 23:33
whiteknight soh_cah_toa: yes, I did see it 23:35
we got 4 of them submitted yesterday, I think
4 or 5
aloha 5
whiteknight damnit aloha!
soh_cah_toa ha
is there anything i could improve on? 23:36
whiteknight I haven't read it too closely since it was uploaded. Let me do that now 23:37
soh_cah_toa sure
whiteknight soh_cah_toa: looks good. I don't know if I am the "likely" mentor 23:40
but that really doesn't matter at this stage
soh_cah_toa okay, great 23:41
whiteknight tcurtis: you could apply to be a mentor too :) 23:42
soh_cah_toa on another note - i need to find more info about the join opcode. t/examples/pod.t says that, in a pod fragment, that it has either the wrong type or amount of arguments 23:43
i'm trying to make all tests pass
same thing w/ the kill opcode 23:46