»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:06 ymasory joined 00:12 [Coke] left 00:14 [Coke] joined 00:19 arulprasad left 00:22 [Coke] left 00:24 [Coke] joined
dalek p/ctmo: 0936e24 | jonathan++ | src/pmc/sixmodelobject.pmc:
Turns out the last fix wasn't quite the whole story; this should be closer to it.
00:39
p/ctmo: 7c92758 | jonathan++ | src/ (2 files):
Install subs in packages through the SC.
p/ctmo: 5a37cdf | jonathan++ | src/stage0/ (7 files):
Update bootstrap.
p/ctmo: 7d0bcd9 | jonathan++ | src/Regex.pir:
Fix up PAST and _dumper imports so they make entries in GLOBALish. Need to do this until they're converted to NQP.
jnthn All being well, looks like tomorrow may be "breakthrough day" for much of the stuff I've been doing of late.
For now, sleep & 00:40
colomon jnthn++ 00:42
00:44 ymasory left 00:47 coldhead joined
tewk :q 00:53
hugme hugs tewk, good vi(m) user!
01:14 whiteknight left 01:15 woosley joined 02:01 Sarten-X left 02:11 Sarten-X joined 02:15 Enzo joined 02:21 leprevost joined 02:28 Chillance left 02:33 donri left, Enzo left 02:37 plobsing joined 02:56 aindilis left 03:08 leprevost left 03:17 plobsing_ joined 03:19 plobsing left 03:20 hudnix left 03:34 Sarten-X left 03:36 Enzo joined 03:41 Sarten-X joined 03:50 ymasory joined 03:55 Enzo left 04:03 agentzh joined 04:05 ymasory left 04:10 nymacro joined 04:17 orafu left 04:18 orafu joined 05:10 sftp left 05:13 justatheory left 05:29 birdwindupbird joined 06:41 jaldhar left 06:42 jaldhar joined 06:56 woosley left 07:18 Mowah joined 07:24 masak joined
masak mornin', zebras 07:24
07:28 birdwindupbird left 07:30 moritz joined
moritz good morning 07:30
masak morning, moritz. 07:32
tadzik good morning 07:33
07:33 _ilbot left
moritz today is a big day in gsoc land 07:34
07:34 _ilbot joined
moritz iirc 1900 UTC is the announcement of accepted student 07:35
s
07:39 yarp_ joined
masak exciting! 07:49
08:04 SHODAN joined
masak this shell looks interesting: github.com/banister/pry/ 08:05
maybe we can stea^Wborrow some ideas from it? 08:06
08:09 woosley joined, woosley left
masak don't know if this has been brought up here before: perlbuzz.com/2011/04/slipping-away.html 08:11
I feel with alester.
I have no idea what to do about the situation he describes. it's easy to steer a smaller boat, but hard to steer a bigger one. 08:12
moritz it was #1 on reddit/r/programming yesterday
(where many pointed out that this problem is hardly uniq to the perl community, but that doesn't influence the particular frustration with that community) 08:13
masak no, the problem is not unique to the Perl community. 08:15
partly to blame is the anonymity of Internet socializing. it's far too easy to say and do things one wouldn't afk. 08:16
moritz agreed 08:17
masak then there's the demographics issue.
as long as programming communities consist mostly of male twenty-somethings, there's bound to be useless testosterone flying around.
08:18 r0b86 left
masak sorry if that sounds sexist. I'm not saying all male twenty-somethings are jerks. :) 08:18
just that if you put fifty of them in a room, a certain dynamics will arise, with a high probability.
moritz just like with fifty women you might get dynamics you'd want to avoid :-) 08:25
masak didn't Randall Munroe describe such a community in his Google Authors talk? 08:26
anyway, I don't think such a community would be problem-free either. of course not. 08:27
moritz roughly, yes
08:27 coldhead left
tadzik am I right to read that as the conflicts in the headquarters rather than conflicts in the community per se? 08:28
masak no, I think it's in the community per se.
tadzik I personally have never seen any anger and arguments
masak huh.
tadzik maybe besides the rakudo-targetting-many-vms on the PDS few months ago 08:29
masak tadzik: how much time do you spend in the Perl 5 community?
tadzik masak: well, very little actually, in the global one
that's right
masak there you go, then.
tadzik hmm
masak here in the neighbourhood of #perl6, we don't have much of that.
tadzik well, at least it's invisible for me on the NLPW and the PM meetings 08:30
masak tadzik: strangelyconsistent.org/blog/how-ca...e-kindness
tadzik: I believe I wrote that partly because I saw how the larger Perl community had some kindness problems. 08:31
tadzik: yes, but people who go to Perl Workshops (et al) are self-selected to be interested in meeting up with people and having a good time ;) 08:32
moritz agreed, people at workshops and conferences aren't interested in getting into fights, generally
tadzik so the hate and anger is present on the mailing lists and the irc?
masak tadzik: also, once you're physically in the same room, many of the technology-caused problems have already vanished.
tadzik: and Twitter and Identica and blogs.
tadzik well, it's easy to call someone an dork over the wire a couple of thousand kilometers long 08:33
that's a part of it I suppose
08:34 Rotwang joined
tadzik one might be very interested in the psychological reasons for this 08:35
08:35 jaldhar left
masak yes. the problem is lack of "rooting" in the things that normally make us think "oh wait, that's an actual human being with feelings". I guess. 08:35
08:35 jaldhar joined
masak even talking on the phone will mitigate those effects. at least if you've met previously. 08:35
moritz having met previously does help a lot, even on IRC 08:36
being able to associate a voice, a face and real-world interaction patterns with a nick makes it almost impossible for me to shout at a nick handle 08:37
(except for joking, of course :-)
08:38 Rotwang left
masak more problem description: blogs.perl.org/users/erez_schatz/20...er-be.html 08:39
and here's the rationale: www.shadowcat.co.uk/blog/matt-s-tro...a-bastard/ 08:42
(I don't want to single out mst, but he *is* a self-confessed bastard, and takes pains to explain why)
08:42 bs338 joined
masak I've always read that latter post as "we have scaled to the point where our only recourse is to be coarse to people, use capital letters, and occasionally ban them" 08:43
08:43 perladiator joined
moritz that's one thing. The other is the first impression you give a newcomer 08:44
we also occasionally ban somebody
masak sure.
moritz but only after we tried to be friendly, and it didn't work
masak it's also at least an interesting point that the bastard community member fills a niche in "protecting" the non-bastard supporters.
I don't feel the need for that here on #perl6. 08:45
08:45 birdwindupbird joined
moritz thinks he's one who conducted the most kicks/bans in here in the last two years 08:45
masak moritz++ # tough job, carried out seamlessly 08:47
I've always like this post: www.shadowcat.co.uk/blog/matt-s-tro...community/
the relation between a newcomer and the people already on the channel is always assymetric. 08:48
we see that all the time.
a newcomer coming in and asking "why isn't Rakudo faster?" is qualitatively different from jnthn och pmichaud asking "why isn't Rakudo faster?" :) 08:49
masak was *so* close to writing a super-snarky answer to the "is Rakudo slow by design?" post on p6u 08:50
"Yes -- a few of us sat down and drew up the design criteria for the Perl 6 implementation on Parrot. One of the most important items to us was runtime slowness. So we put it on top of our list."
moritz too 08:52
tadzik "actually, we're a sikkret Perl 5 devs and we wanted it to appear even faster"
as in twitter.com/#!/awwaiid/status/62173638710931457, but different 08:53
masak ooh. there've been further emails in that thread.
pmichaud++ # reply
pmichaud approaches it in exactly the right way: giving appropriate background ("apples-to-oranges comparison"), and then actually addressing the question.
moritz fwiw nobody in #parrot had a good answer to why the .pbcs are so large 08:54
masak I agree with pmichaud that the mmap thing is more important than compressing to a smaller size. 08:55
disk is cheap. we shouldn't waste it, of course -- but I'll take quicker startup any day over small file size.
moritz a factor of 5 to 8 in size win would mean less IO time 08:58
so it's not clear that uncompressed is actually faster
masak point.
sounds like a job for good old empirical science. 08:59
and such an experiment doesn't need to wait for anything -- load-times are fairly independent from other components of Parrot.
"It seems to me that there have been two really clean, consistent models of programming so far: the C model and the Lisp model." -- Paul Graham, lib.store.yahoo.net/lib/paulgraham/jmc.ps 09:05
interesting viewpoint.
09:10 pmurias joined
masak "Over time, the median language, meaning the language used by the median programmer, has grown consistently closer to Lisp. So by understanding `eval` you're understanding what will probably be the main model of computation well into the future." -- ibid. 09:33
so *that's* what a "smug Lisp weenie" is ;)
srsly though, the definition of eval is wonderfully elegant. 09:34
maybe someone in here would be interested in taking a weekend at some point to implement the Lisp described in that paper in Perl 6? :) 09:35
pmurias masak: as similiar project idea i had recently is to implement r7rs scheme as a niecza frontend (trac.sacrideo.us/wg/attachment/wiki...aft-1.pdf) 09:39
masak ooh 09:41
yes. if I would do what I suggested above, I'd do it in Niecza.
pmurias masak: not that i'll actually do that
masak ;)
pmurias as i have to finish the hoopl optimiser first, and it's progressing slowly 09:42
masak nod.
I think implementing a simple Lisp like that would be very instructive. a combination of "wow, it really is that simple!" and "huh, didn't realize there were these hidden subtleties in the implementation". 09:43
(sounds contradictory, but isn't really)
colomon is starting to get nervous about the p6 presentation he's giving at Penguicon on Saturday 09:47
tadzik colomon: p6 in general? 09:48
colomon yes
moritz colomon: what's the audience? 09:49
colomon It's a Linux and science fiction convention.
colomon has never given a technical presentation before....
moritz sounds like a fun mixture 09:50
masak colomon: remember to enjoy yourself. the rest will follow :) 09:52
jnthn oh hai, #perl6 09:54
colomon I need to collection a list of p6 resources...
masak hm. that, and being well-rehearsed and -prepered.
jnthn! \o/
colomon jnthn, \o/
masak jnthn: you made it on this side of noon! :P
moritz and on which side of nom? :-)
masak speaking of which...
jnthn :) 09:59
10:01 perladiator left
jnthn So...where had I got to before I took sleeps... 10:07
masak $jnthn.continuation.invoke;
10:07 IllvilJa joined
masak IllvilJa! \o/ 10:08
jnthn Ah yes. I needed my circularity saw... 10:09
pmurias masak: one interesting part about hoopl is that it forces me to treat haskell as a typed language rather then ignoring types and letting the compiler infer everything for me 10:15
masak .oO( Perl 6 is a Swiss circularity chainsaw... )
pmurias: ah, yes.
pmurias jnthn: are you sure a saw is the right tool for waking up?
masak pmurias: I've been wanting to just start TDD'ing some code analysis behvaiours that I'd like. not sure how far I'd get -- it would probably become a steep uphill pretty soon. 10:16
s/soon/quickly/
jnthn pmurias: Fear not, I have coffee!
masak Greg Young mentioned that some preconditions you don't want to enforce at runtime. and he had a very good example: the precondition of binary search. 10:17
sub binary-search(@list) { PRE { [<=] @list }; ... } 10:18
moritz masak: the Eiffel philosphy would be to enforce it at runtime, but dissable that check for production deployment 10:19
masak moritz: because nothing ever goes wrong in production? :P
moritz masak: no
masak: user input validation shouldn't happen with preconditions, so they act like smart C assert()ions 10:20
masak nod. 10:21
moritz ie they are invariants in the API, but there shouldn't be a need to actually check them at the user
they are a tool for the developer, and useless to the user
masak method register-user(ValidatedUserString $user) { ... }
subtype ValidatedUserString of Str where { ... } 10:22
moritz that's also not the kind of validation you want to do with user input
masak moritz: how do you mean "actually check them at the user"?
moritz because it doesn't throw the exception you want
s/at the user/when deployed to the user's PC/
masak ah. 10:23
this is starting to sound like the "there's two sets of tests" discussion.
some tests are worth running when installing with CPAN, because the user actually wants those to pass. some tests are just useful for a developer.
& 10:24
moritz it's more like "the tests are actually *in* the code, and you don't want to run them in production"
dalek p/ctmo: ef63ac2 | jonathan++ | src/NQP/Actions.pm:
Correct and clean up global lookup logic.
10:26
p/ctmo: 6f58a6d | jonathan++ | src/HLL/SerializationContextBuilder.pm:
Make serialization Event class lexical inside of the serialization context builder. Partly because we can, also because it avoids a NYI in the new package handling.
p/ctmo: 3a9acf3 | jonathan++ | src/NQP/Actions.pm:
Don't hardcode KnowHOW in the actions, but grab it from the current %*HOW.
10:26 Trashlord left 10:28 Trashlord joined 10:38 Chillance joined
moritz tadzik++ and masak++ # postcards for my nephew arrived 10:42
maja++ 10:43
tadzik moritz: did he like it? 10:47
moritz tadzik: yes 10:48
tadzik Great :) 10:49
flussence
.oO( that precondition thing gave me an idea, then I realised I was just thinking of the exact same mechanism taint flags use in p5... )
10:51
moritz flussence: you want to taint unchecked user input, and warn every time it hits a precondition? 10:52
flussence no, more like "Array.sort sets a 'this is sorted' flag, calling mutators on that array clears it" sort of thing 10:53
10:53 Tedd1^ left
masak the apocalypses theorize that taint is just an enum trait nowadays. we've yet to see an implementation of that. 10:53
flussence: yes, I think something like that might be useful. I think the analyzer might want customizable rules like that. 10:54
moritz currently as I see it, it would need duplication of most operators
masak and not just booleans. if it kept integers, an analyzer would be able to detect the useless .pop in [email@hidden.address] @a.pop; @a.pop'
er, 'my @a; ...'
moritz: not necessarily duplication. just projections down to the important aspects. like length, in the context of push and pop. 10:55
moritz I meant for taint mode 10:56
Q: What's yellow, and equivalent to the Axiom of Choice? 11:00
A: Zorn's Lemon.
masak I wonder if there's a name of that category of pun, wherein someone has realized that (in this case) "lemma" sounds a bit like "lemon", and then goes on to construct the rest of the pun around that. 11:05
tadzik I wonder it this has anything to do with bored studendts. We tend to change the names of things to make them sound funny sometimes 11:06
jnthn Aren't most puns constructed around realizing one thing sounds like another? :)
masak well, there's at least one other kind: spur-of-the-moment puns. 11:08
jnthn: you're quite good at these :)
the "Zorn's Lemon" kind seems a bit more... constructed.
bs338 it's much funnier when drunk and at a party of only mathematicians 11:09
jnthn masak: Maybe I just construct them really fast... :P 11:10
jnthn spends a few minutes madly panicing about how his latest refactor broke stings, while leaving classes intact. 11:11
masak <masak> jnthn: sometimes you manage to angle your puns just right! <jnthn> masak: Thanks for the complement.
jnthn: that's still my all-time favorite :P
jnthn ...turns out that using the same types of quote in your shell as you use for the strings in the program will make it look that way...
masak: :P
Oh no, what terror have I visited upon us...I think I just added a way in NQP to declare that you want to export a different meta-object to replace the in-built definition of class/grammar/whatever. :) 11:12
Just wait until *that* makes it into Rakudo. :) 11:13
masak whoa. 11:14
dalek p/ctmo: c67bd2d | jonathan++ | / (7 files):
The compiler so far has been using the HOWs that it is implemented with rather than the ones defined by the meta-objects library the program we're compiling uses, which was obviously wrong. This fixes it, by introducing a mechanism for exporting stuff in a way that will see it end up in %*HOW. Note, not official API for this. And yes, this means you can now customize what class means in NQP by writing a meta-object in a module and stuffing it into E
11:16
jnthn oh no truncation! 11:17
masak jnthn: this would never happen if you didn't insist on writing the whole commit comment in one line! :P
jnthn I cba to configure EDITOR :P
masak orka! 11:18
moritz dalek cba to line-wrap for you
masak lazybot. 11:19
jnthn moritz: That's fine, then people have to click the link to see the rest of the message, then I win free code review...if I'm lucky. <grin>
OK, so now I accidentally implemented custom meta-object usage...let's see if I can do what I was actually trying to. :) 11:20
moritz jnthn: fwiw in bash I can also write multi-line commit messages without any editor 11:21
masak yes, I thought about that too.
11:22 sulletf joined
masak jnthn: how does COMMAND.COM behave if you press Enter with unclosed quotes? 11:22
moritz just git commit -am 'foo<RETURN>rest of message'
masak tries
moritz probably double quotes for teh Win(dows) 11:23
masak aye.
jnthn masak: I...think it assumes I missed a quote off the end...
masak jnthn: early trials seems to suggest that.
jnthn ...and helpfully pretends I wrote one.
masak that is teh sux.
jnthn :P 11:24
sulletf how can i commit efficiently ?
tadzik oh, this "orka" word, this was something interesting 11:25
phenny: "orka"?
phenny tadzik: "energy" (is to en, translate.google.com)
tadzik not really
phenny: se "orka"?
phenny tadzik: "energy" (se to en, translate.google.com)
tadzik pff
jnthn tadzik: It's Swedish for something like "oh, who can be bothered"
tadzik ah, exactly
jnthn is kinda impressed that Swedish huffmanized this expression so well :) 11:26
11:27 Moukeddar joined
masak it's also funny how that word came to mean that expression. sv:"orka" is a verb meaning "to have the energy to do [sth]" 11:31
11:34 dual left 11:35 IllvilJa left 11:36 IllvilJa joined
dalek p/ctmo: 26f67b1 | jonathan++ | src/HLL/SerializationContextBuilder.pm:
A little chop with the circularity saw. :-)
11:52
p/ctmo: 0c29c72 | jonathan++ | src/NQP/Grammar.pm:
We never actually install KnowHOW in the package (yet), so just obtain it directly from the 6model core for now.
p/ctmo: 9e9d521 | jonathan++ | src/Regex/P6Regex/Actions.pm:
Add a missing 'our' that we somehow got away with before.
11:54 Moukeddar left 11:55 Patterner left 11:57 Psyche^ joined, Psyche^ is now known as Patterner
pmurias sorear: ping 12:00
jnthn std: GLOBAL::mysub := { ok(5, 'bare GLOBAL works'); }; mysub(); 12:12
p6eval std 3468e14: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix := instead at /tmp/44QLbNomEG line 1:␤------> GLOBAL::mysub ⏏:= { ok(5, 'bare GLOBAL works'); }; mysu␤Parse failed␤FAILED 00:01 120m␤» 12:13
jnthn std: &GLOBAL::mysub := { ok(5, 'bare GLOBAL works'); }; mysub();
p6eval std 3468e14: OUTPUT«===SORRY!===␤Undeclared routines:␤ 'mysub' used at line 1␤ 'ok' used at line 1␤Check failed␤FAILED 00:01 125m␤»
jnthn niecza: &GLOBAL::mysub := { ok(5, 'bare GLOBAL works'); }; mysub();
p6eval niecza v4-70-gfb79b12: OUTPUT«===SORRY!===␤␤Undeclared routines:␤ 'mysub' used at line Any()1␤ 'ok' used at line Any()1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 388 (CORE die @ 2)␤ at /home/p6eval/niecza/src/STD.pm6 line 1141
..(STD P6.comp_unit @ …
jnthn TimToady: ^^ Correct?
12:16 agentzh left 12:19 Shlomo joined
Shlomo helo, what is the status of perl version 6? is it coming out soon to production? I heard of it looong time ago but did not have time to check it.. 12:19
12:20 woosley joined 12:22 Rotwang joined, mtk joined
masak Shlomo: hi, glad you're here. it's a common question. will try to give you a good answer :) 12:23
Shlomo masak: great 12:24
masak labels like "beta", "development", "production" make more sense for more delimited application in well-known territories.
Perl 6 is a whole new programming language. it's been in constant development for 10 years. we've come a really long way. we still have quite a long way to go. 12:25
when people ask "when's it gonna be released" and similar things, what they really want to know is "when should I start to care about it?"
12:26 sftp joined
Shlomo exactly. 12:26
masak and that depends :) for some people, it's already very usable and useful.
if you're doing software for nuclear warheads or precision surgery, maybe Perl 6 isn't for you yet.
because it's probably not "stable" enough for those things. 12:27
Shlomo we are using python3 for mission critical apps and it is not that old..
masak but Rakudo Perl 6 already has a very mature type system, OO tools, grammars, built-in functions, operators, etc. it's relatively mature.
Shlomo why not announce a release then?
a production one 12:28
masak we're announcing a release every month.
we just don't use the word "production", because it's so subjective.
12:28 Trashlord left
masak we're happier to explain what I just explained to each person that stops by :) 12:28
Shlomo mmm.. production level phobia? :)
masak wow, I sure hope not.
I for one am eager to push Perl 6 out into the world. 12:29
but what you're saying isn't completely baseless. we do change things around sometimes.
perhaps more than other similar projects.
we do that when we believe that we've learned something, and we can make things better by changing the specification.
12:29 Trashlord joined
dalek p/ctmo: 5613e50 | jonathan++ | src/NQP/Actions.pm:
Switch over the majority of lookups to the new packages model. A bunch of new regressions to hunt down, but most things work.
12:29
p/ctmo: 628e050 | jonathan++ | src/NQP/ (2 files):
Load the Regex library by default; NQP users expect Regex::Match and so forth to be to hand by default. Recovers some of the broken tests.
p/ctmo: f4a923d | jonathan++ | src/NQP/Actions.pm:
Fix GLOBAL::foo and contextual fallback. Fixes regressions in package var test script, apart from one that is dubious.
p/ctmo: c17da73 | jonathan++ | build/Makefile.in:
Need to actually respect declaration order of things now. This fixes the regressed roles tests - it's just a reordering in the meta-objects file.
Shlomo so the sepcification is not final yet?
masak Shlomo: that's someone working on Perl 6 right there :P
Shlomo ?
pmurias masak: how did you TDD static analysis
?
masak Shlomo: the specification is largely final. we tend to think of parts of it as either "frozen" or almost-frozen/"sludgy".
pmurias: I haven't, yet. I'd like to try to. 12:31
Shlomo oh... it looks to be a long way..
masak Shlomo: yes. have a look at Rosetta Code, it contains many examples of working Perl 6 code.
Shlomo: then you'll get a sense of how far it's already come. 12:32
jnthn Shlomo: The problem with declaring the spec "final" without having an implementation of all of it, is that our experience has been that the first implementations of a feature tend to need tweaks to the spec. Freezing it would actually make compiler implementation harder.
masak (the Rosetta Code examples are also good in that they often state the limitations of Rakudo and things that will improve in the future)
Shlomo which is not that bad
you must define your needs
then start to implement them
limited by your specs
masak and sometimes we must discover our needs :)
jnthn The spec changes today aren't "shiny new stuff" but "we implemented this and it was hard in this way" or "we implemented this and users said OH NOES" :)
Shlomo otherwise you will spend your life tweaking your specs!
masak things that look good on paper sometimes don't work out in bits. 12:33
Shlomo: or suffer under a bad/unimplementable spec.
Shlomo masak: you can fix that with new realses and patches..
masak tends to be one of the user that says OH NOES
Shlomo masak: it will never be perfect 12:34
masak Shlomo: yes, and we might one day "release" the spec and have implementations conform to that version.
Shlomo: that would probably count as an "official release of Perl 6".
people sometimes describe that as "Perl 6.0.0". it's even in the spec itself in a few places.
things that are extra tricky are labeled as "not needed in Perl 6.0.0" :) 12:35
Shlomo I think the problem is that perl6 have a community of perfectionists.. I think the time from 2000 till today is more than enough for specs to be confirmed :)
dalek p/ctmo: 12f14b1 | jonathan++ | t/hll/05-commandline.t:
We don't import HLL automatically any more, so explicitly do so in the 05-commandline.t tests. They all pass.
12:36
masak Shlomo: we have perfectionists on our community. we also have lots of pragmatists, and people somewhere in-between. 12:38
and yes, many parts of the design are about "doing it right this time". as opposed to some of the design decisions that went into (and are limiting the growth of) Perl 5. 12:40
Shlomo I wonder in group is larry himself.
in what
masak but! do not thinnk that we've been working for 11 years on one single thing. 12:41
12:41 hudnix joined
masak there have been many roads taken, and many lessons learned. even Rakudo itself has been very much an iterative thing. 12:41
Shlomo I always thought that since most of you know what was good and what was bad in perl5 should be a great guide to come out with a great new language is short time.. 12:42
masak and each time we build a little piece of Perl 6, we're getting better at it. that's not perfectionism, that's sound development. :)
12:42 dual joined
Shlomo unless perl6 is a not related to perl5 at all.. 12:43
masak Shlomo: well, it was possible to run Perl 6 code as early as 2005.
oh sure, they're related.
there was even a project meant to put Perl 5 on Parrot and make the distance between the two languages very small.
the project was called Ponie. it didn't make it all the way. 12:44
12:44 mtk left
masak it had skilled core developers, from what I gather. but it never got the community buy-in that was needed to make it take off. perhaps because it *required* skilled contributors, I dunno. 12:45
it might also have been way too early to try something like that back in 2003. 12:46
we should try it again sometime. :)
arnsholt Indeed. Even if it's another failure, it'd be an interesting way to compare the two vintages of Parrot 12:47
masak the problem with making a Perl 5 runtime is that there already is a Perl 5 runtime. it's called `perl`. 12:48
12:49 mtk joined
masak so Ponie would have to be very clear on what it offered that `perl` doesn't. 12:49
Shlomo one last thing, why not announce a release data (or year) ? 12:50
s/data/date
masak it has to do with this being a community effort carried forward by volunteers. 12:52
largely unpaid volunteers, who do this out of the joy of bringing Perl 6 into the world. 12:53
it turns out that you can't put a deadline on that kind of work. it just makes no sense.
arnsholt masak: Yeah, that definitely warrants a certain amount of thought 12:54
masak (and that question, "why not announce a release date?", is just a reformulation of "when is Perl 6 going to be released?". so, see above.)
Shlomo so perl6 needs funding? So you assume that python or haskell or any other opensource language did get more funding than perl6? 12:55
masak we have funding.
money isn't the limiting resource.
people's time is.
that's why we're happy to bring in curious newcomers :)
Shlomo i thought of money because you talked about unpaid volunteers 12:56
masak yes. I was just describing the structure of the project.
Shlomo anyway, how can we donate? since we opened the topic..
masak hm, wow.
Shlomo I mean financial support
masak consider donating by downloading Rakudo and trying it out, maybe finding a bug or so... :)
as to money, I... I don't know. TPF? 12:57
www.perlfoundation.org/
ah, donate.perlfoundation.org/index.pl...ion%20Info
Shlomo masak: so now you know :) 12:58
masak yes, the power of Google :)
Shlomo: I held a Perl 6 Coding Contest last December, with the prize being 100 EUR worth of books. so in a way, I've donated to Perl 6 this year :) 12:59
Shlomo 100 EUR :) good for you :) 13:00
masak it was a blast. I want to do it again next year.
well, this year. :)
Shlomo that is the spirit of a great community.. perl6 will be a great power i think... thanks for your time. 13:02
13:02 mtk left 13:03 Shlomo left
jnthn Good news: 13:04
> my module Foo { our sub bar() { say("yay") } }; Foo::bar()
yay
Bad news:
I broke the bootstrap... :/
masak Shlomo++ # ideal newcomer
jnthn Indeed!
13:05 bluescreen10 joined
masak .oO( why is Perl 6 being developed in schlo-mo...? ) 13:06
13:07 ggoebel__ left 13:09 donri joined, mtk joined 13:12 ggoebel__ joined 13:13 beejeebus joined
dalek p/ctmo: fb745e0 | jonathan++ | t/hll/01-language.t:
Another missing use HLL.
13:16
p/ctmo: dcc0d96 | jonathan++ | src/Regex/Method.pir:
Partial fix for broken regex interpolation tests.
13:18 Fardad joined 13:20 beejeebus left 13:21 leprevost joined 13:22 kaare__ joined 13:29 Fardad left 13:36 yarp_ left 13:37 birdwindupbird left
masak 'A healthy community can put up with a certain amount of tension and compression. It's called "tensegrity" when it helps hold us all together. It's probably called something else when it drives us apart. Please aim for the tensegrity, because I don't want to figure out what to call the other.' -- TimToady++, www.nntp.perl.org/group/perl.perl6....31897.html 13:37
moritz hopes he never becomes famous, people could cite the wrong phrases from my year-old mailing list postings 13:39
masak moritz: I'm not sure the causal arrows point only in the direction you imply. 13:41
dalek p/ctmo: 3fdc2de | jonathan++ | build/Makefile.in:
Keep CLEANUPS up to date, so make clean actually cleans.
14:01
p/ctmo: eec5353 | jonathan++ | src/ModuleLoader.pm:
D'oh. It's all well and good every module getting a clean slate (aka separate compilation), but it really shouldn't enforce its limited world view on its loader. Particularly when it's loader is the compiler, which would really rather its own symbols don't go missing. Fixes the broken bootstrap.
jnthn *its
D'oh. :)
I'm...really not sure how that bug managed not to break far more... 14:02
dalek p/ctmo: e9a452a | jonathan++ | src/stage0/ (7 files):
Update the bootstrap.
masak rakudo: my %h=1=>"happy";sub h {my %s;sub r {return "sad" if%s{$^n}++;%h{$n}//=r [+]$n.comb>>**>>2};r $^n};say $_=>h($_) for ^10 14:03
trying to fit it into a tweet. :)
p6eval rakudo ecc4ef: OUTPUT«(timeout)appy␤2 sad␤3 sad␤4 sad␤5 sad␤6 sad␤7 happy␤8 sad␤»
masak std: my %h=1=>"happy";sub h {my %s;sub r {return "sad" if%s{$^n}++;%h{$n}//=r [+]$n.comb>>**>>2};r $^n};say $_=>h($_) for ^10
p6eval std 3468e14: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/PwBJ1_7js4 line 1:␤------> {return "sad" if%s{$^n}++;%h{$n}//=r [+]⏏$n.comb>>**>>2};r $^n};say $_=>h($_) for␤ expecting any of:␤ POST␤ bracketed infix␤ infix or meta-infix␤ postfix␤
.. postfix_prefix_meta_…
masak bleh. 14:04
std: my %h=1=>"happy";sub h {my %s;sub r {return "sad" if %s{$^n}++;%h{$n}//=r [+]$n.comb>>**>>2};r $^n};say $_=>h($_) for ^10
p6eval std 3468e14: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/bZA4SF99sn line 1:␤------> return "sad" if %s{$^n}++;%h{$n}//=r [+]⏏$n.comb>>**>>2};r $^n};say $_=>h($_) for␤ expecting any of:␤ POST␤ bracketed infix␤ infix or meta-infix␤ postfix␤
.. postfix_prefix_meta_…
masak should read the error message
std: my %h=1=>"happy";sub h {my %s;sub r {return "sad" if%s{$^n}++;%h{$n}//=r [+] $n.comb>>**>>2};r $^n};say $_=>h($_) for ^10
p6eval std 3468e14: OUTPUT«ok 00:01 123m␤»
14:05 alester joined
jnthn Anyone who fancies verifying that ctmo builds cleanly for them is most welcome to do so. I'm going to do some more bits, but expect a merge of latest ctmo to master later today. 14:06
I'll also blog about what on earth I've been doing for the last several days ;)
14:08 [particle]1 joined 14:09 [particle] left
sorear pmurias: hi 14:13
14:14 birdwindupbird joined 14:15 JimmyZ_ joined
jnthn walk & 14:16
14:17 mj41 joined
masak std: my %h=1=>"happy";my %s;say [$_,(sub r {return "sad" if%s{$^n}++;%h{$n}//=r [+] $n.comb»**»2})($_)] for ^10 14:19
p6eval std 3468e14: OUTPUT«ok 00:01 124m␤»
JimmyZ_ E:\Open Source\nqp>nqp
masak rakudo: my %h=1=>"happy";my %s;say [$_,(sub r {return "sad" if%s{$^n}++;%h{$n}//=r [+] $n.comb»**»2})($_)] for ^10
JimmyZ_ Null PMC access in instantiate()
p6eval rakudo ecc4ef: OUTPUT«Could not find sub code_73␤ in <anon> at line 22:/tmp/jF1UApu1Ty␤ in main program body at line 1␤»
masak submits rakudobug
14:19 MayDaniel_ joined, [particle]1 is now known as [particle]
masak rakudo: (sub r {})() for 5 14:21
p6eval rakudo ecc4ef: OUTPUT«Could not find sub code_73␤ in <anon> at line 22:/tmp/r25g6FjHN3␤ in main program body at line 1␤»
masak niecza: (sub r { say "OH HAI" })() for 5
p6eval niecza v4-70-gfb79b12: OUTPUT«OH HAI␤»
masak rakudo: (sub r { say "OH HAI" })() for 5 14:22
p6eval rakudo ecc4ef: OUTPUT«Could not find sub code_73␤ in <anon> at line 22:/tmp/LeVlNG7yDT␤ in main program body at line 1␤»
masak pugs: (sub r { say "OH HAI" })() for 5
p6eval pugs: OUTPUT«*** ␤ Unexpected "r"␤ expecting "=", subroutine parameters, trait or block␤ at /tmp/qqcEAxdcjd line 1, column 6␤»
sbp std: (sub r { say "OH HAI" })() for 5
p6eval std 3468e14: OUTPUT«ok 00:01 120m␤»
masak rakudo: say "compiles OK"; (sub r { say "OH HAI" })() for 5 14:23
p6eval rakudo ecc4ef: OUTPUT«compiles OK␤Could not find sub code_73␤ in <anon> at line 22:/tmp/Vkscj22K2J␤ in main program body at line 1␤»
masak rakudo: for 5 { (sub r { say "OH HAI" })() } 14:24
p6eval rakudo ecc4ef: ( no output )
masak rakudo: for 5 { (sub r { say "OH HAI" })() }; say "alive" 14:25
p6eval rakudo ecc4ef: OUTPUT«alive␤»
masak wtf
niecza: for 5 { (sub r { say "OH HAI" })() }; say "alive"
p6eval niecza v4-70-gfb79b12: OUTPUT«Potential difficulties:␤ &r is declared but not used at /tmp/5pPtRrAxWC line 1:␤------> for 5 { (sub r⏏ { say "OH HAI" })() }; say "alive"␤␤OH HAI␤alive␤»
14:25 mkramer joined
masak TimToady, sorear: ^^ 14:26
14:26 mkramer left
masak it is used. just not by name. 14:26
TimToady it's the name it's complaining about, since you could have made it anonymous
masak niecza: for 5 { (sub { say "OH HAI" })() }; say "alive"
p6eval niecza v4-70-gfb79b12: OUTPUT«OH HAI␤alive␤»
masak oh all right :) 14:27
rakudo: for 5 { (sub { say "OH HAI" })() }; say "alive"
p6eval rakudo ecc4ef: OUTPUT«alive␤»
TimToady same with our not using the lexical name
sink bug?
rakudo: for 5 { say "OH HAI" }; say "alive" 14:28
p6eval rakudo ecc4ef: OUTPUT«OH HAI␤alive␤»
TimToady not sink bug
rakudo: say (sub { say "OH HAI" }).WHAT 14:29
p6eval rakudo ecc4ef: OUTPUT«Sub()␤»
TimToady rakudo: say (sub { say "OH HAI" })()
p6eval rakudo ecc4ef: OUTPUT«OH HAI␤Bool::True␤»
TimToady rakudo: say (sub { say "OH HAI" })() for 5
p6eval rakudo ecc4ef: OUTPUT«OH HAI␤Bool::True␤» 14:30
TimToady rakudo: (sub { say "OH HAI" })() for 5
p6eval rakudo ecc4ef: OUTPUT«OH HAI␤»
JimmyZ_ TimToady: the perlchina conference in beijing will be hold at 7/2/2011
14:31 ymasory joined
TimToady rakudo: for 5 { (sub { say "OH HAI" })() } 14:31
p6eval rakudo ecc4ef: ( no output )
TimToady rakudo: my @x = do for 5 { (sub { say "OH HAI" })() }
p6eval rakudo ecc4ef: ( no output )
JimmyZ_ *on
masak std: for 5 { (sub r {})() } 14:33
p6eval std 3468e14: OUTPUT«Potential difficulties:␤ &r is declared but not used at /tmp/N2soMwQjKf line 1:␤------> for 5 { (sub r⏏ {})() }␤ok 00:01 120m␤» 14:34
masak std: (sub r {})() for 5
p6eval std 3468e14: OUTPUT«ok 00:01 120m␤»
masak TimToady: why does the former complain but not the latter?
TimToady hmm, we'd been planning to spend the whole week in Asheville, which would make it hard to get to China
but write to gloria, who plans my calendar 14:35
JimmyZ_ oh, ok
TimToady (Asheville is where YAPC is)
masak: it's probably attached to the block logic rather than the scope logic, so likely a bug 14:38
masak TimToady: when I find stdbugs, what should I do? 14:39
TimToady panic
masak ;)
TimToady ^_^' <- sweat drop 14:40
masak no, I mean, is there any action I can take to... I don't know, offload your cognitive load in keeping track of unfixed bugs?
(also, it would give me some satisfaction to be able to add it to a list somewhere) :P
JimmyZ_ submit it to github? 14:41
TimToady well, I do keep a "todo" file 14:42
masak oh, ok.
TimToady I guess a good question is whether you complain about imported subs that are used... 14:44
*n't
^ another sweat drop
14:45 JimmyZ_ left
TimToady jnthn: yes, it's correct; the package is not searched for sub calls by default 14:45
masak walk & 14:47
14:54 justatheory joined
TimToady you can either call into the package directly with OUR::, or register a failover to the package with CANDO 14:55
jnthn TimToady: OK, so sub lookups are essentially just lexical? 14:59
TimToady hai
jnthn o/ 15:00
TimToady (unless there's a CANDO in the outer lexical scope)
jnthn oh, wait, hai was "yes"?
TimToady and that just adds to the end
hai! 15:01
はい!
jnthn TimToady: fwiw, I'm planning to be at the Beijing Perl Workshop 15:02
OK, I'll fix that test :)
sorear it's probably related to this 15:04
jnthn Doing packages righter has shaken out all kinds of dodgy assumptions and orderings in the code. :)
sorear std: sub foo { sub bar { }; bar }
p6eval std 3468e14: OUTPUT«ok 00:01 118m␤»
sorear std: sub foo { sub bar { }; &bar() }
p6eval std 3468e14: OUTPUT«ok 00:01 122m␤»
sorear hey did you fix that while I wasn't looking?
niecza: sub foo { sub bar { }; &bar() }
p6eval niecza v4-70-gfb79b12: ( no output )
sorear used to warn 15:05
TimToady yes, fixed that one, iirc
the current problem is that it's checked in getsig
and the main block doesn't have a sig
TimToady wonders if the main block should have a sig... 15:11
15:11 birdwindupbird left
moritz *@*ARGV ? 15:15
probably without that second *
TimToady you can't have a global as a parameter...
and it'd be @ARGS
but then it'd probably complain if you don't use it :) 15:16
moritz right
TimToady it'd probably want to be a copy of @*ARGS so that different interpreters can access the original args correctly 15:17
otoh we're probably reinventing MAIN here 15:18
15:19 kfo_ joined 15:20 leprevost left
TimToady so I guess what we say is that if there are multiple interpreters the PROCESS::<@ARGS> gets copied into GLOBAL::<@ARGS> for each interpreter, which works since @*ARGS is contextual and looks in GLOBAL before PROCESS 15:21
so we don't really have multiple interpreters fighting over a mutable @*ARGS 15:22
15:22 sahadev joined 15:23 kfo left
sorear does sharing variables between interpreters make any sense whatsoever? 15:27
is Mu really PROCESS::Mu? If not, what is PROCESS::<$*OUT>.^mro[*-1]? 15:28
pmurias sorear: hi 15:30
15:30 MayDaniel_ left
pmurias sorear: are there ops which don't return a value at all? 15:30
sorear: with the exception of sink? 15:31
sorear Do you consider void a value?
15:33 MayDaniel_ joined
pmurias do a lot of regs return void? 15:34
sorear: if consider void a value everything returns a value
s/consider/i consider
sorear "regs"? 15:37
pmurias meant to say ops
15:41 sulletf left 15:45 Moukeddar joined 15:46 Moukeddar left
sorear pmurias: yes, a lot of ops have void returns 15:47
like 'say' 15:48
15:55 ymasory left
dalek p/ctmo: cd12868 | jonathan++ | src/ (2 files):
Refactor to ensure proper handling of --module-path.
15:55
p/ctmo: 04274af | jonathan++ | build/Makefile.in:
Use --module-path in stage2 building. This should mean that we're achieving real separate compilation.
p/ctmo: 6080095 | jonathan++ | src/stage0/ (6 files):
Update bootstrap with latest fixes.
p/ctmo: cbaf9e0 | jonathan++ | build/Makefile.in:
Use --module-path in stage 1 build, so it's also doing separate compilation.
15:56 ymasory joined
jnthn Finally. 15:56
colomon sorear: doesn't say return a Bool indicating success, or something like that?
jnthn++
dalek ecza: 9b0380d | pmurias++ | / (7 files):
[hoopl] partway into optimising simple-tests/if.t
ecza: 6367c9c | pmurias++ | hoopl/ (4 files):
[hoopl] refactor all the ops from Insn to Op
ecza: 808eb1f | pmurias++ | hoopl/ (3 files):
[hoopl] convert if statements correctly
ecza: 87f44f0 | pmurias++ | hoopl/Nam.hs:
[hoopl] translate letn correctly
sorear colomon: &say does, but the low-level say op doesn't
pmurias so how does &say know it succeded? 15:59
and why do we have both a say and print opcode?
sorear history; say came first, and when I heard print was needed, it was easiest to do it as a new op 16:09
SHODAN because sometimes you want to print something
you know, to a printer ;)
tadzik and sometimes you want do display() 16:12
you now, to a screen :)
dalek p/ctmo: a60d76e | jonathan++ | t/nqp/43-package-var.t:
Toss a bogus test; TimToady++ for confirming bogusness.
16:24
p/ctmo: 319fc03 | jonathan++ | src/NQP/Actions.pm:
Make typename rule lookup symbols properly, not using legacy packages.
p/ctmo: ace800f | jonathan++ | src/NQP/Actions.pm:
Add parent class using compile time meta-object. Also give decent compile time error indicating missing parent classes.
p/ctmo: ec8a1e6 | jonathan++ | src/HLL/SerializationContextBuilder.pm:
Locate meta-object via the SC. This way, we'll be able to have lexically imported/exported meta-objects, etc...plus it's a faster lookup.
p/ctmo: aab21a5 | jonathan++ | src/stage0/ (6 files):
Update bootstrap.
SHODAN yes. i always assumed "say" uses some sort of text-to-speech thingie to do its magic
tadzik and parrot has an opcode for that! Talk about high-level 16:25
16:27 woosley left
sorear pings TimToady 16:28
pmurias tadzik: say is a niecza opcode 16:29
sorear parrot has an opcode for it too 16:30
does the same thing
tadzik as I said :)
pmurias tadzik: re high-level opcodes, niecza has to_json,from_json etc. 16:32
tadzik that's just a matter of bundled JSON module, no?
pmurias i don't understand 16:33
16:33 impious joined, impious left, spq joined
tadzik those are opcodes, the json things? 16:33
pmurias yes 16:34
tadzik I see
pmurias only used by a bundled JSON module
tadzik: that's what you meant? 16:36
tadzik pmurias: no, I didn't read that the opcodes you mention are actually opcodes, I thought they are some sort of other builtins 16:37
16:38 alester left
sorear in niecza-think opcodes are the only way to access generic VM functionality 16:39
16:39 cdarroch joined, cdarroch left, cdarroch joined 16:40 jevin left, jevin joined 16:42 leprevost joined 16:50 pernatiy left
tadzik jnthn: fwiw, nqp/ctmo builds fine and still fails in 4 test files 16:56
jnthn tadzik: regex interpolation, and 3 in t/hll? 16:57
tadzik jnthn: nopaste.snit.ch/41769
so, yes :)
jnthn Thanks, that's consistent with what I'm seeing.
moritz sees those too 16:58
jnthn OK, great.
I know what the regex interpolation issue is.
dalek p/ctmo: 5375140 | jonathan++ | src/Regex/Cursor.pir:
Make sure Regex::Cursor ends up in an SC.
16:59
p/ctmo: e42c76e | jonathan++ | src/HLL/SerializationContextBuilder.pm:
Improved error.
p/ctmo: ea71689 | jonathan++ | src/NQP/Actions.pm:
Set default parent via the SC.
p/ctmo: 9f893e0 | jonathan++ | src/NQP/Actions.pm:
Add roles via compile time meta-object; good error if role not found.
pmurias sorear: if i have nam in a form with basic blocks, (conditional) jumps between them and registers what's the best form to feed them into backends?
pmurias sorear: try to represent those things with the current format?
17:01 alester joined, araujo left 17:08 risou joined, araujo joined 17:15 risou left 17:21 MayDaniel_ left
pmurias masak: how do you plan to test that the static analysis are correct? 17:26
sorear pmurias: I'm not sure; probably yes, though 17:27
pmurias: does the hoopl optimizer know about which primitives require spilling? 17:28
pmurias: do you think a May release is justified?
pmurias May release of the optimiser? 17:29
17:29 mkramer1 joined
pmurias sorear: the hoopl optimiser doesn't know about spilling at all yet 17:29
sorear pmurias: May release of Niecza 17:30
pmurias if you are doing date base releases why not? 17:31
17:31 mkramer1 left
pmurias i don't know how much work does it take to make a release 17:31
17:32 mkramer1 joined 17:34 mkramer1 left 17:35 isBEKaml joined
isBEKaml ohayo, panda folks! :) 17:35
phenny isBEKaml: 24 Apr 19:01Z <jnthn> tell isBEKaml best bet is probably to golf it. But check the String candidate in the multi set in PAST2JSTCompiler. I suspect an inconsistency with PAST2DNSTCompiler, which is tracks.
isBEKaml: 24 Apr 19:02Z <jnthn> tell isBEKaml if removing the say makes it work, that's a big hint that it's the String rule.
isBEKaml jnthn: oh, yeah. I kind of golfed it down to something, but that was not the &say. :) 17:36
17:36 Moukeddar joined
isBEKaml jnthn: I'm seeing this with the golf'd down snippet. I can understand the inconsistency with method signatures in the java branch. Do you see that in dotnet too? gist.github.com/940871 17:40
17:40 Moukeddar left 17:41 Moukeddar joined
Moukeddar hello pandas (both evil and good) 17:41
PerlJam there are evil pandas?
Moukeddar oh, you didn't know ?
isBEKaml tadzik: you must be happy that panda's turning into your meme.. ;)
tadzik isBEKaml: it's funny :) 17:42
Moukeddar evil one butt-rape you
beware
isBEKaml tadzik:yeah, I always thought pandas fell into two types. Dour pandas and sad pandas. :P
isBEKaml hopes someone with mono and 6model would try out that snippet to see if that works against the dotnet branch. 17:45
pmurias sorear: does any one use niecza releases as opposed to the repo? 17:46
moritz yes 17:48
people have asked about how to compile releases in here
and the bootstrap uses releases too 17:49
Moukeddar damn , our services killed two persons due to protesting 17:50
jnthn isBEKaml: No, but I suspect it's down to a refactor done in the dotnet one with $*BIND_VALUE that didn't make it over into the Java one. 17:52
isBEKaml: It's the generated cod ehtat's wrong, so it'll be a bug somewhere in PAST2JST.pm.
oops, fishy sentence.
generated *code*
:)
isBEKaml jnthn: "cod", as ever, great timing. (but bad memories of chewing cod liver oil capsules) :P 17:53
jnthn: as to PAST2JST or the method signatures in runtime, it's either of the two that are fishy. One misses what the other needs. :) 17:54
jnthn isBEKaml: Right. The code generated in PAST2JST is meant to pass three args. The first is the thread context, the second is the name. It gets both of those right. The third one is the value to bind into the lexical. It fails it at this one.
isBEKaml: When a lexical get or bind is compiled, it's compiled either in bind context or not. If it's in bind context (carried by a contextual), it's meant to emit code to add the value to bind. 17:55
17:56 mj41 left
jnthn I'm guessing at some point there was a mis-translation or something when mberends++ was updating PAST2JST to keep it in line wiht the way PAST2DNST works. 17:56
isBEKaml jnthn: I noticed that late last night, I was about to dive into runtime when I said, "Oh, wait. It might be one of the compile phases acting up.... " :) 17:57
jnthn Yeah, the runtime looks correct to me.
isBEKaml jnthn: So, why have many compile phases inbetween? Why not use parrot's builtin tools for grammar checking and leave the implementation/execution to runtime? 17:58
jnthn isBEKaml: What phases exactly? 17:59
isBEKaml jnthn: To add more context, I was thinking about how I would wire things up with some sort of a mapping with PAST tree.
jnthn: instead of doing a PAST to java syntax tree transformation, isn't there a more direct way of doing a transformation to runtime classes and hand over execution? 18:00
jnthn Oh
No
Been there. Tried that. :)
isBEKaml Oh, what were the issues? Just curious.. 18:01
jnthn Originally it was PAST => C#. As soon as the prototype felt like it was going somewhere, I added in the extra step.
18:01 Trashlord left
jnthn Well, it was getting really messy for one. 18:01
But also, I didn't want to have to re-write all of the stuff in PAST2DNST when going to emit IL instead of C# 18:02
18:02 pernatiy joined
isBEKaml IL's to DLR as C# is to CLR? (Bear with me, not very familiar with C# architecture) 18:02
Moukeddar DLR ? 18:03
jnthn No, IL is basically .Net bytecode
Moukeddar is perl ported to Run on the DLR ?
isBEKaml Well, one issue I saw in doing this was if PAST were dynamically changing, we would have to rewrite steps..
18:03 Trashlord joined
isBEKaml er, s/dynamically// 18:03
jnthn isBEKaml: By the time we get to runtime, PAST is gone. 18:04
18:04 Moukeddar_ joined
jnthn isBEKaml: The point isn't to walk PAST and interpret it, it's to generate code from it. 18:04
isBEKaml jnthn: yeah, saw that. :) But, we would have so much time in writing the runtime just prior to actual execution.
masak pmurias: I thought I'd test behaviour. so if I put in a piece with code that can never be reached, I'd expect the static analyzer to throw up a warning that the code can never be reached. things like that. 18:05
isBEKaml curses long days at work... affects coherent construction of thoughts.
masak pmurias: I'm envisioning this thing as something that matches ASTs in some way. 18:06
isBEKaml: that would explain a lot.
isBEKaml: (in my life right now, I mean)
isBEKaml masak: haffun! :P
jnthn isBEKaml: Well, the thing is that this way, since NQP itself is written in NQP, we can eventually get it to compile itself to the JVM. :)
Then it's bootstrapped there. :)
That's the "goal" as it were. Not to cross-compile forever. 18:07
isBEKaml jnthn: wait, emit bytecodes from nqp. That's a *distant* goal. :)
18:08 Moukeddar left
Moukeddar_ is Perl ported to the .NET ? 18:09
jnthn isBEKaml: Well, on .Net we currently do large subset of NQP => ... => DNST => C# => .Net bytecode. That "just" leaves to write a DNST => .Net bytecode emitter. :)
Moukeddar_: Perl 5: no, afaik. Perl 6: see Niecza.
Moukeddar_ that's a good thing 18:10
isBEKaml jnthn: Don't you already have a compiler architecture builtin in C# ? You can compile C# code programmatically, right? That could save you some time, I guess... 18:11
jnthn: that's instead of an external call to the compiler.
jnthn isBEKaml: Could happen, but tbh I don't think writing the bytecode emitter is so hard, tbh. 18:12
oops, too honest :)
I did work with .Net bytecode files before, so maybe I'm just less scared of them. :)
But probably it's best to generate more textual IL ASM first.
And then after that use the .Net APIs for generating bytecode files 18:13
isBEKaml jnthn: if you have the bytecode emitter, you don't need to generate source files at all. Since you'll have already validated the program structure with nqp's grammar and action steps.
18:13 mtk left
jnthn isBEKaml: Right, the "generate C#" is a temporary, "make something work" solution. 18:13
18:13 mtk joined
isBEKaml jnthn: Right, I'll take the same approach to ASM. Get something out first and tune it later. :) 18:14
jnthn Yes, small steps that produce something are good. :) 18:15
18:15 Moukeddar_ left
isBEKaml jnthn: though tbh, the "C#"ized java code looks alien to me... :) 18:15
.oO(C#ified)
18:26 jaldhar left 18:27 jaldhar joined 18:43 birdwindupbird joined
dalek ecza: 1a70b51 | pmurias++ | hoopl/ (4 files):
[hoopl] fix the way facts are distributed by branching statements
18:44
ecza: 7bf5ef9 | pmurias++ | hoopl/Nam.hs:
[hoopl] fix a bug
takadonet rakudo: my %here;my @genomes=('yo','be','ad'); map { %here{$_}++ } , @genomes; %here.perl.say; 19:00
p6eval rakudo ecc4ef: OUTPUT«{}␤»
jnthn sink fail? 19:02
takadonet Any idea to populate the hash without do a straight assignment from the map since the map statement will be inside of a for loop
?
jnthn rakudo: my %here;my @genomes=('yo','be','ad'); eager map { %here{$_}++ } , @genomes; %here.perl.say; 19:03
p6eval rakudo ecc4ef: OUTPUT«{"yo" => 1, "be" => 1, "ad" => 1}␤»
tadzik heh, even google can get their servers overloaded
melange--
jnthn takadonet: In void context it's meant to force evaluation of the lazy list...but apparently doesn't...
takadonet jnthn: looks like it. Thanks
tadzik mdk.per.ly/2011/04/25/gsoc-the-tpf-...-students/ 19:04
\o/ 19:05
takadonet tadzik++!!!!
jnthn tadzik++ # yay!! :D 19:06
tadzik beer to everyone!
jnthn \o/
19:08 ymasory_ joined, nymacro left
colomon tadzik++ indeed! 19:11
tadzik moritz: are you there?
masak tadzik++! 19:14
tadzik Thank you guys :') 19:15
19:16 noganex_ left
moritz tadzik: yes 19:16
tadzik++ 19:17
tadzik moritz: I assume you are my mentor?
moritz tadzik: congratulations. Yes.
masak moritz++ 19:18
moritz tadzik: and masak++ is backup mentor
19:18 clkao left
masak yay 19:18
it's the one thing in GSoC I haven't been so far ;)
well, that and organization overlord.
19:18 noganex joined
tadzik so I'm entering the Community Bending Period now 19:18
masak bend on!
masak hands tadzik a beer
moritz tadzik: so in the next few weeks, we expect you to make contact with the community, set up your development environment and become familiar with the existing code base :-) 19:19
tadzik oh, and I get to know my mentor :)
moritz reread S26 maybe
moritz waves hi
tadzik probably
oh hello Mr. Moritz
moritz tadzik: if you happen to travel to Germany in the next few weeks, we can community-bond IRL :-) 19:21
tadzik moritz: oh, I'd love too :)
moritz I just fear that my own family and travel plans don't permit me to easily 19:22
tadzik but I doubt I will :/
oh, I don't want to get on your (Your, Signe and Ronja)'s head :) 19:23
masak heads, surely ;) 19:35
tadzik oh of course :) 19:36
19:36 leprevost left 19:43 Moukeddar joined
masak ooh, IPv6. :) 19:45
Moukeddar where? 19:46
masak Moukeddar: in your sign-in thingy.
*** Moukeddar (Moukeddar@2002:295c:2f08::295c:2f08) has joined channel #perl6
Moukeddar hehe
i didn't know they were on IPv6
they didn't even inform me 19:47
masak I don't believe I've seen that before in here.
TimToady
.oO(everyone wants the colon...)
masak :D
Moukeddar hehe
moritz :-)
Moukeddar i must be Speshul :)
that would explain why i was diconnected for 1 week
they were installing it right ? 19:48
masak finally resting on the IPv7th day.
Moukeddar when would that be
i checked here 19:49
www.whatismyipv6.net/
and i get the usual
Your IP is 41.92.47.8
:p
TimToady 295c:2f08 is that part of it
Moukeddar hehe 19:50
if my PC is on IPv6
would that explain why i get crappy download speed?
tadzik I doubt it 19:51
flussence 2002::/16 is 6to4
fake IPv4 basically, you're just tunnelling over ipv4.
Moukeddar ah
flussence s:1st/4/6
Moukeddar must be the windows service
my ISP mus love me :) 19:52
must*
moritz why would your ISP care?
flussence nah, it's a client-side thing. My ISP barely has a clue but I could run 6to4 over it with a bit of effort. 19:53
Moukeddar no i mean they switched fast to IPv6
flussence chances are you just did some OS update that turned it on... 19:54
tadzik hi hi :)
flussence o/
sbp Moukeddar gets the colon! 19:55
Moukeddar hehe
the DL speed is kinda bad 19:56
19:57 SHODAN left
flussence yeah, if it's 6to4 then it bounces all traffic off a single pre-defined IPv4 address running another endpoint... 19:57
Moukeddar maaaan
i'll turn utorrent to use IPv6
would that help ?
flussence v4 would be faster
tadzik I hope you're downloading free music or Unix distros :) 19:58
Moukeddar tadzik, yes , free music and linux distro
that's all i do
i swear
tadzik ok, fine then
Moukeddar will it help with the speed ? 19:59
tadzik heh, like in this Java ad. "We're just enjoying some porn" - "I hope you're doing no Java, or Open-Source?"
masak Scala Johansen :D
Moukeddar hehe 20:00
tadzik my sohn is a monhster!
flussence oh, I remember seeing that one :) 20:01
20:01 ymasory_ left
tadzik I found it on reddit on a Lug meeting, and we watched it like 6 times that day 20:02
Moukeddar where can i get 10 bucks fast 20:03
i mean except prostitution
moritz try an ATM 20:04
tadzik yeah, those are quite friendly
dalek p/ctmo: fb7d90b | jonathan++ | src/NQP/Actions.pm:
Toss unneeded old package installation code; remove a XXX comment that's been long dealt with.
20:05
p/ctmo: 8f36dee | jonathan++ | src/ModuleLoader.pm:
Explicitly stash the module loader object away somewhere we'll be able to find it even after old package installation code is dropped.
p/ctmo: 25b6538 | jonathan++ | src/ (2 files):
Get the regex interpolation tests passing again, after I busted 'em earlier.
Moukeddar moritz, i need it on paypal 20:07
which sucks 20:08
i can't use online transactions
moritz Moukeddar: please try to stay a bit more on topic here
Moukeddar Ko
sorry 20:11
moritz jnthn: \o/ down to three failures
20:15 pothos left, y3llow left 20:16 Vlavv_ left 20:17 y3llow joined 20:18 pothos joined 20:20 pothos left, pothos joined 20:23 justatheory left 20:26 Sarten-X left, justatheory joined, bluescreen10 left 20:29 Moukeddar left 20:30 Vlavv_ joined 20:37 Sarten-X joined, Vlavv_ left 20:38 bluescreen10 joined 20:46 Mowah left 20:51 Vlavv_ joined 20:52 MayDaniel joined, sftp left 20:55 [Coke] left 20:56 [Coke] joined
masak chromatic++, as usual: www.modernperlbooks.com/mt/2011/04/...th-me.html 20:58
jnthn moritz: Some aspects of those three tests are kinda bogus now (e.g. EXPORT is now lexical, not package scoped, HLL::Compiler is managed by NQP HLL compiler now since it's in that HLL).
moritz: Going to skip them for now as some of the bits there need a re-design, but it's not yet critical path stuff for Rakudo on 6model. 20:59
21:00 kaare__ left
masak tadzik: there are some examples of abusive behaviour linked from that post. 21:01
21:02 sftp joined 21:03 noganex left 21:04 noganex joined, [Coke] left
masak I have a feeling the channels he's describing include #perl6 ;) 21:05
variations of both of those quotes have happened here recently.
21:06 impious joined 21:07 [Coke] joined
arnsholt masak: I had the exact same thought =) 21:07
masak I urge people to follow chromatic's advice at the bottom of the post, and speak up. 21:09
masak posted a comment to the post 21:12
dalek p/ctmo: 4579af8 | jonathan++ | t/hll/0 (3 files):
Skip a few tests for now that need significant revision due to design/spec changes.
21:16
21:17 impious left
dalek Heuristic branch merge: pushed 134 commits to nqp by jnthn 21:19
jnthn nqp master has just been updated with the stuff I've been doing over the last several days.
moritz all hail the magic merge abilities of git 21:21
jnthn \o/
PerlJam jnthn: and rakudo survives? 21:22
jnthn There's a couple of mildly tricky problems left to solve, but the Epic Refactor is over
PerlJam: Rakudo uses nqp-rx, not new nqp.
PerlJam oh, I misread
jnthn PerlJam: Rakudo's nom branch will use new nqp. 21:23
moritz /home/moritz/p6/nqp/parrot_install/bin/parrot: symbol lookup error: dynext/nqp_ops.so: undefined symbol: Parrot_get_ctx_HLL_namespace
jnthn huh...
moritz should be Parrot_hll_get_ctx_HLL_namespace
jnthn thought all of those had been corrected
moritz too
jnthn Was it a problem in the ctmo branch? 21:24
moritz last I tested ctmo was fine
moritz -> sleep
oh, my master is too old
nevermind
jnthn ah, OK
phew :)
Though I think that "kill this" comment may now be applicable :) 21:25
21:26 Rotwang left
dalek p/ctmo: 6e8751b | jonathan++ | src/ops/nqp.ops:
Remove a now-unrequired workaround.
21:28
jnthn nqp: say("alive?")
p6eval nqp: OUTPUT«alive?␤»
jnthn nqp: class Foo is LolWut { }
p6eval nqp: OUTPUT«Can only use get_how on a RakudoObject␤current instr.: 'nqp;NQPClassHOW;compute_c3_mro' pc 1498 (gen/nqp-how.pir:430)␤»
jnthn Not updated yet. :)
21:29 fridim_ joined
masak 'night, #perl6 21:39
thanks for being a place of civility and kindness.
21:40 masak left
alester :-) 21:42
21:42 lue left 21:43 lue joined 21:46 sahadev left, sftp left 21:47 hercynium joined 21:50 birdwindupbird left
jpr5 ~. 21:53
doh.
jnthn :) 21:55
22:01 Moukeddar joined 22:05 TiMBuS left 22:16 alester left 22:19 clkao joined 22:31 hercynium left 22:35 whiteknight joined 22:43 Moukeddar_ joined 22:44 Moukeddar_ left 22:45 Moukeddar left
jnthn I blug at last: 6guts.wordpress.com/2011/04/25/sepa...hat-a-mix/ 22:56
23:00 PacoLinux left
jnthn sleep & 23:01
23:07 pmurias left 23:08 MayDaniel left, fridim_ left 23:34 Sarten-X left 23:44 Sarten-X joined 23:45 donri left 23:50 molaf__ joined 23:51 Moukeddar joined 23:52 Moukeddar left 23:53 molaf_ left