»ö« 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.
TimToady or something more OO-y 00:01
00:02 dual left
TimToady or event-streamy 00:02
up till now, we've been trying to sweep event filters under the carpet of feed operators 00:03
though it's not clear whether bonded upstream-downstream filters are well supported by our current model 00:04
there's also some of the flavor of "are strings really lists of chars instead of scalars oh wait that's too slow" about the whole thing 00:06
lichtkind tadzik: do you know which modules have some final or productive stauts? 00:08
TimToady in any case we can probably plug a PerlIO workalike extension into P6 more easily than P5
which takes some of the pressure off trying to put it into the core langauge 00:09
*guage
lichtkind but qp/.../ ~~ :d will become official syntax? 00:10
TimToady it will until it won't :) 00:11
00:12 dual joined
lichtkind a spiritual correct answer :) 00:13
00:13 cotto left
sorear so why is it that older programmers seem to hate STREAMS and the like so much, and what is better about PerlIO? 00:13
00:26 cotto joined 00:29 tokuhir__ left 00:30 thou left 00:40 impious left 00:49 jdhore1 left 00:59 jdhore1 joined 01:01 noganex_ joined 01:04 noganex left 01:05 envi_laptop joined 01:06 kboga left 01:07 kboga joined 01:11 kboga left 01:24 kboga joined 01:25 kboga left
lichtkind does enaybody know something about web.pm? 01:49
sorear masak would. 01:53
unfortunately, he is unavailable at this late|early hour
01:57 whiteknight left
lichtkind sorear: i had make my question more precise, anybody else then him :) 02:00
02:21 sjn joined 02:22 woosley joined 02:28 Reaganomicon joined 02:40 wolfman2000 joined
wolfman2000 ...been awhile since I've been here 02:40
sorear Welcome back! 02:41
wolfman2000 thanks
I actually need a reminder on something silly, and not fully Perl 6 related. I recall that someone here wanted the null value to be Mu. What's the kanji for it again?
sorear 02:42
xjdic was swapped out 02:43
wolfman2000 thanks. I never understood why we went with that...still find it fascinating
sorear we didn't, we went with "Mu"
wolfman2000 ah
...also, why do I have to readjust my terminal for utf-8...gah
02:44 Chillance left
sorear much to the annoyance of Chinese programmers who want to call it wu2 :D 02:44
lichtkind :=
i actually anderstand this joke :) 02:45
good night
sorear wú looks better
lichtkind softer 02:46
night
02:46 lichtkind left 03:03 pjcj left 03:09 donri left, donri joined 03:12 jaldhar joined
sorear wolfman2000: anything else? :D 03:16
it has been a while!
wolfman2000 things have been...very crazy
grad school is done for now: finished up first summer 03:17
C++ programing for StepMania has picked up, and I finally managed to include some features.
sorear has mostly spent the last year messing with Perl 6.
wolfman2000 how stable is it now? 03:18
sorear what, Perl 6? 03:19
wolfman2000 yes
sorear *shrug* seems fairly stable.
TimToady it's stable enough to have almost 300 working examples on rosettacode.org that are expected to continue working for the most part 03:20
wolfman2000 ...okay, this looks like a webpage I should visit more often 03:21
sorear I've been maintaining a 13kloc program since January and haven't had any *major* issues with the semantics changing out from under me
It's not at the point where you can abandon a large app for 5 years and expect it to still work
03:23 Su-Shee_ joined 03:24 Su-Shee left 03:36 daniel-s joined 03:46 daniel-s left, daniel-s_ joined 03:49 cotto left 03:53 jaldhar left, jaldhar joined 04:00 daniel-s_ left 04:17 jaldhar left, jaldhar joined 04:21 molaf joined 04:22 satyavvd joined 04:27 cotto joined 04:39 thou joined 05:04 molaf left 05:11 birdwindupbird joined 05:22 cotto left 05:25 buubot_backup joined 05:34 bakedb joined 05:36 koban joined 05:43 jaldhar left 06:00 buubot_backup left
moritz good morning 06:10
lue good morning o/
(that's very inconsiderate of Parrot to force -march on me when it doesn't work on my machine :/) 06:11
06:14 Su-Shee_ is now known as Su-Shee 06:25 envi_laptop left 06:27 buubot_backup_ joined, jaldhar joined
sorear lue: Why did you leave #parrot? 06:27
moritz sorear: re pushing from evalbot, if you su - p6eval, you should be able to push in the evalbot repo 06:28
06:29 buubot_backup_ is now known as buubot_backup
sorear moritz: that's what I thought; it just took ~5 minutes for the push command to finish, so I thought I did something wrong 06:29
but it worked, eventually
p6eval: help 06:30
p6eval sorear: Usage: <(nom|nqpnet|star|pugs|nqp|mildew|std|niecza|rakudo|perlesque|nqprx|yapsi|alpha|highlight|partcl)(?-xism::\s) $perl6_program>
06:35 buubot_backup left 06:39 wtw joined 06:44 beekar left, beekar joined 06:45 thou left 06:51 buubot_backup joined
tadzik seen litchkind 06:57
aloha Sorry, I haven't seen litchkind.
tadzik seen lichtkind 06:58
aloha lichtkind was last seen in #perl6 4 hours 12 mins ago saying "night".
06:58 awoodland joined 07:05 bakedb left 07:11 birdwindupbird left 07:12 pjcj joined 07:18 birdwindupbird joined
lue sorear: because I solved my problem. Apparently running Rakudo's perl Configure.pl causes -march to be used. Running Parrot's configure script directly (and not thru Rakudo's) corrects it. 07:21
[although now I have a cannot load libpcre error compiling Parrot...] 07:22
07:22 stepnem left 07:24 wamba joined
tadzik go for --without-pcre 07:29
lue that's what I'm doing right now. 07:31
07:34 stephanepayrard_ left, eternaleye_ joined, stephanepayrard_ joined 07:35 bbkr_ left, bbkr_ joined 07:40 mj41 joined 07:42 stepnem joined 07:45 benabik left, benabik_ joined 07:58 bakedb joined
moritz sorear: I don't know what's wrong with the network connection, but git interaction on the evalbot server often takes ages 07:59
08:07 daxim joined 08:10 daniel-s joined 08:24 Woodi left 08:26 Woodi joined 08:28 koban left, koban joined 08:52 dakkar joined 08:57 donri left 09:16 awoodland left 09:28 bkolera joined, _twitch joined 09:30 cognominal_ joined 09:31 Reaganomicon left, Reaganomicon joined 09:33 stephanepayrard_ left 09:38 bkolera left, bkolera joined 09:50 jjore joined 09:57 kboga joined 09:58 tzhs joined 10:02 Reaganomicon left, Reaganomicon joined 10:04 [particle] joined 10:06 [particle]1 left 10:08 woosley left 10:12 daniel-s left
kboga hi p6 10:13
small patch to fix some typo and the missing % operator: pastebin.com/Gd1kynKh (btw, both nom's Actions.pm and NQP's NQP.pir seem to have mod_i => 'mod__Iii',)
moritz kboga: thank you. Unfortunately I can't apply it right now (I'm on the wrong machine) 10:15
or maybe, just maybe...
10:17 awoodland joined
kboga np moritz, there's plenty of time :) 10:18
moritz kboga: it's mostly not about time, but about not forgetting it 10:19
(which is why we usually prefer pull requests and patches in RT)
kboga right, let me try to do that instead :)
moritz kboga: no need, I just pushed 10:20
after I remembered my github password, I could just add this machine's ssh key on the web frontend
kboga++
kboga i see
dalek kudo/nom: 9ccc8eb | moritz++ | src/ (2 files):
fix pow_n opcode, add missing mod_n and infix:<%> for Num.

Patch courtesy by kboga++
10:22
kboga I'm inexperienced with git (came from svn) but having used the basics it feels right
thanks for committing moritz++ 10:23
dalek p: 5a7d782 | moritz++ | src/PAST/NQP.pir:
add missing mod_n opcode, kboga++
10:24
moritz kboga: it's nice to see that some people actually read the code, and not just the blog posts :-) 10:25
kboga I'm just interesting in learning new things. Having used p5 in the past I’m starting to like p6. 10:26
moritz \o/
kboga: submitting a patch for the compiler is quite a nice introduction to the community :-) 10:27
s/the/a/
moritz -> lunch
kboga but hey, the patches I submitted are quite simple 10:28
10:31 jaldhar left, envi_laptop joined 10:37 Woodi left 10:38 Woodi joined 10:39 kanishka joined 10:47 awoodland left 11:05 envi_laptop left 11:06 jaldhar joined 11:12 jaldhar left 11:14 jaldhar joined 11:18 paul1234 joined 11:25 bbkr_ left 11:33 jaldhar left, jaldhar joined 11:38 satyavvd left 11:45 bbkr_ joined 11:48 bkolera left 11:53 wamba left
tadzik it doesn't matter, only jnthn and pmichaud submit complex patches :) 11:54
moritz tadzik: thank you for calling all my patches "simple" :-) 11:56
tadzik oh, pardon :) Was just encouraging 11:57
11:57 xinming left
moritz (though most of my patches *are* simple, I have to admit. Just not all of them :-) 11:58
12:00 Grrrr left 12:01 Chillance joined 12:04 koban left 12:05 Bzek joined 12:06 koban joined
takadonet morning all 12:06
12:07 orafu left, orafu joined, leprevost joined 12:10 Woodi left 12:11 Woodi joined 12:15 tzhs left 12:21 PacoLinux joined 12:24 lichtkind joined 12:41 Shozan joined, bluescreen10 joined 12:42 lichtkind left 12:43 lichtkind joined 12:46 Holy_Cow joined 12:49 bluescreen10 left
dalek ecs: d885007 | (Felix Herrmann)++ | S03-operators.pod:
[S03] fix filetest example
12:53
12:54 wamba joined 12:56 cotto joined 13:03 xinming joined 13:04 Grrrr joined 13:07 Holy_Cow left 13:10 icwiener joined 13:15 dukeleto left, dukeleto joined 13:16 molaf joined, daniel-s joined
kboga moritz: a pull request is sent: github.com/rakudo/rakudo/pull/25 13:23
13:23 _twitch left
moritz \o/ 13:23
13:24 icwiener left
kboga still many pir ops left tho 13:26
moritz kboga: in your next patch/pull request, please add yourself to CREDITS 13:28
kboga hmm ok, but this is nothing really :) 13:29
moritz kboga: it's much more than nothing - those are useful patches for us 13:30
13:32 kanishka left
kboga Was studying for my driver's licence, but got bored and wanted to play a bit with git & p6 ... 13:39
lichtkind jnthn: can i drop a 6model question? 13:43
13:43 xinming left 13:55 kcwu joined 13:56 silug_ joined 13:57 ashleyde1 joined 13:58 _twitch joined, Shozan left 14:00 ashleydev left 14:21 tylercurtis left
pmichaud good morning, #perl6 14:21
moritz good am, pm
pmichaud: if you want you can review github.com/rakudo/rakudo/pull/25
pmichaud: I plan to do it later today/tonight, but I won't complain if you beat me to it :-) 14:22
kboga hi pm
pmichaud moritz: I plan to do it a bit later also, but won't complain if you beat me to it :) 14:23
14:25 koban left 14:30 tokuhirom joined 14:36 TBA2 joined
sorear good * #perl6 14:37
14:37 aloha left 14:38 george_z0rwell joined
moritz good morning, sorear 14:38
14:40 _twitch left, Reaganomicon left, hercynium joined
daniel-s o/ 14:40
14:41 aloha joined 14:42 cotto left
colomon o/ 14:44
sorear stashes-rewrite is now in debugging phase 14:45
14:47 hercynium left 14:48 bakedb left, envi joined 14:53 thou joined 14:54 wtw left 14:57 daxim left 14:59 bakedb joined 15:01 cotto joined 15:02 dobie_gillis joined 15:03 daniel-s left 15:06 Mowah joined, tylercurtis joined, ruoso joined 15:10 kaare_ joined 15:11 takadonet joined
lichtkind moritz: that was actually funny (wonder if it was a first time joke) 15:22
15:23 cotto left, MayDaniel joined 15:24 REPLeffect joined
moritz lichtkind: no, it's quite old 15:29
15:33 mkramer joined 15:34 mkramer left 15:44 estrabd joined 15:51 mikemol joined 15:52 mj41 left 16:06 xinming joined 16:07 paul1234 left, cotto joined
moritz finsiehd the review of kboga's patch. Now compiling a new nqp to tet it :-) 16:10
16:17 bitpart joined 16:21 bitpart left 16:22 kaare_ left, mkramer joined
moritz writes a small script that automates pir:: -> nqp:: translations 16:23
at least the simple ones :-) 16:24
dalek p: 1572977 | moritz++ | src/ (2 files):
a few simple pir:: to nqp:: changes, and remove trailing whitespace
16:26
16:28 birdwindupbird left
pmichaud moritz: why patch the files in src/old/ ... ? ;-) 16:29
16:30 cdarroch joined, cdarroch left, cdarroch joined
dalek kudo/nom: b54894d | kristof++ | src/ (14 files):
Substitute several more pir ops by their nqp op counterparts.
16:30
kudo/nom: a60c86a | moritz++ | src/ (14 files):
Merge remote branch 'kboga/nom' into nom
kudo/nom: d92d750 | moritz++ | src/ (5 files):
more pir:: to nqp:: rewrites
moritz pmichaud: accident, 'find src/' found them :-)
pmichaud afk, lunch 16:34
TimToady rosettacode.org/wiki/Number_names#Perl_6 16:35
dalek kudo/nom: 1bb9b53 | pmichaud++ | src/ (3 files):
Switch the infix:<=> op to use the perl6 assignment opcode directly

speed improvement on a simple while $count < 100000 { $count++ } benchmark.
kudo/nom: d20aa18 | pmichaud++ | src/ (18 files):
Merge branch 'nom' of github.com:rakudo/rakudo into nom
PerlJam TimToady: the @M assignment almost looks lispy 16:36
pmichaud ...doesn't work in rakudo?
TimToady no constants
pmichaud ah
pmichaud bumps up the 'get constants working in nom' counter 16:37
really lunch this time 16:38
moritz pmichaud: should ++ and -- use pir::perl6_container_store instead of = ? (when you're back from lunch :-) 16:39
ah, probably not needed
nevermind
pmichaud since they're using =, they're already using container_store :-) 16:40
moritz yes, I noticed after asking 16:41
pmichaud i.e., every assignment in the core gets equally optimized by the above patch :)
moritz \o/
TimToady PerlJam: I felt sorry to put the map in, but I needed to vary the left side of X~ faster than the right 16:43
mabye RXR~ would work... 16:44
or something...
mikemol pmichaud: Isn't there still a level of indirection between ++/-- and container_store, simply due to calling =?
TimToady sorear: also had to work around a couple buggies 16:45
mikemol (Just an educated guess; I've not looked at the source code)
moritz mikemol: no, pmichaud changed rakudo so it compiles = down to an opcode, not to a dispatch to &infix:<=>
TimToady like the = in a list constant doesn't flatten, and probably should
mikemol ah 16:46
16:46 Mowah left 16:47 impious joined
TimToady likewise the 'for' doesn't seem to want to flatten out a .comb(/(\d) ** 1..3)/ -> $i, $x?, $c? 16:47
so I was forced to recomb 16:48
16:51 kst` joined 16:53 kst left
lichtkind thou: i do always tinker a lot with the texts perlpunks.de/paste/show/4e021dba.7fbb.d 16:53
thou :-)
lichtkind thou: the added section goes a bit in the direction you proposed yesterday
thou lichtkind: is an english translation of this desirable? i'm not clear on the final audience 16:55
16:57 broquaint joined
lichtkind thou: its for $foo perl magazine 17:01
thou: german audience
but if you think english reader could benefit
thou: so you think the new section is fine?
17:02 Bzek left 17:04 dakkar left 17:05 masak joined
masak oh hai, #perl6! 17:06
moritz \o
masak I can no longer find the time to read logs...
moritz you need to teach your computer to do it for you
17:06 mkramer left
masak ah, that'd be great. 17:06
TimToady you need to find some exponential time to read the logs
masak the computer could summarize the logs, too. 17:07
moritz accepts patches to his IRC logs
TimToady perl6: say log 42
p6eval pugs: OUTPUT«3.7376696182833684␤»
..niecza v6-177-g365e216: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'log' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1133 (STD P6.comp_unit @ 30) ␤ at
../home/p6eval/…
..rakudo 7175e5: OUTPUT«3.73766961828337␤»
TimToady 3.7376696182833684 is not a very good summary of log 42 17:08
TimToady concludes that computers are not good at summarizing logs
moritz ouch
17:17 zamolxes joined, PerlJam joined 17:22 dukeleto left, dukeleto joined 17:24 lue joined 17:26 wamba left
masak TimToady: does it make sense for a nested class to implicitly trust its outer class? or does it only make sense in Java/C# ? 17:28
17:29 molaf left, wamba joined
TimToady hmm, offhand I'd say it makes more sense for the outer class to trust its inner class 17:32
gfldex does augment work on nested classes?
TimToady why wouldn't it?
a class is just a class on that level
nestedness is merely its location
gfldex so the outer class could augment the inner class at runtime with a method to get what it wants anyway 17:33
TimToady well, only if you use MONKEY_TYPING 17:34
.oO(Planet of the Monkeys...)
17:35
pmichaud notes the interesting contradiction in S32/Str.pod lines 207 and 530-535. :-)
gfldex there was little trust on that planet IIRC
TimToady I suppose role composition could be considered "ape" typing
17:36 jaldhar left
masak role composition is at least "primate" typing. 17:37
TBA2 masak: what do you mean by implicit trust in java/c#? afaik all classes (in .net at least) regardless of nesting are subject to the same modifiers (so private in a nested class still means private to the outer class), even when inheriting (since only protected members are available to subclasses), and protected only applies to inheritance, not plain nested calsses 17:38
s/calsses/classes/
masak TimToady: my use case is the Memento pattern, in which a nested class has the responsibility of freezing/thawing its outer class. instances of the nested class can then be passed around without breaking encapsulation/data hiding.
TBA2: hold on, I'll get you the code I was looking at. 17:39
17:39 apejens joined
masak TBA2: en.wikipedia.org/wiki/Memento_pattern 17:39
gfldex TBA2: is the outer class would not trust it's nested classes by default you would have to set it as friend. IIRC that was not possible with all compiles before the outer class was declared completely (had it's closing '}'). 17:40
17:40 kanishka joined
masak TBA2: the outer class calls the nested class's private methods. 17:40
TBA2: I'm assuming only it can do that.
gfldex you need that to have fast iterators
17:40 araujo left
TBA2 afaik thats not possible in .net, perhaps only a java thing? 17:41
17:41 araujo joined
TBA2 personally seems odd to me, private should mean private, always 17:41
masak unless there's a trusts relation.
TBA2 yes, of course, but should that be default? 17:42
masak that's what I'm asking.
TBA2 imho if someone wants the outer class to access it, then they'll declare it as such
masak yes, half of me agrees :) 17:43
TBA2 could get confusing for everyone if people can (easily) start messing with the internals of another class
gfldex it's a special case
a nested class is quite close to the heart of it's mommy
masak exactly.
the same person is always the author of both. 17:44
TBA2 not necessarily though, they can be logically nested without being directly related
gfldex well, what are nested classes for in perl6?
or better, what does it mean to be nested?
masak right now it doesn't mean anything, much. 17:47
TBA2 that there's a logical relationship between the two? e.g. in classes representing just a car, it might be decided to put 'SteeringWheel', 'Seat', 'Ashtray' etc inside the Car class, since that makes logical sense, however none of those things are directly related to the 'Car' class
masak only ordinary lexical nesting, so it can see outer variables.
but not instances of the surrounding class or anything like that.
17:48 lue left
TBA2 but nested classes for the most part don't achieve much (even in .Net), unless the purpose is to hide a class from the outside world (e.g., a private class nested inside another class is never visible to anyone outside the outer class) 17:48
17:49 wamba left, wamba joined
masak we can do that with 'my' classes, I guess. but then we still can't pass instances outside, because then others can call methods on it. 17:49
17:49 lue joined
TBA2 is it really necessary to hide inner classes in perl anyway? has some (minor) benefits where only the compiled code is distributed, but where the source is regularly distributed it makes very little difference since it can be changed 17:50
gfldex if you dont give the nested class special rights, the outer class become redundant to a namespace
TBA2 gfldex: good point, and thats what makes them virtually useless in other languages too, except for logical organisation :) 17:51
gfldex it's quite useful in c++ 17:52
TBA2 what do they do there? (not a c++ programmer in the slightest, can compile it and kinda debug it but thats about it lol)
gfldex you can reuse sane names, mostly for iterators and therefor use a naming convention 17:53
TBA2 doesnt that come back to semantics and organisation though?
gfldex so you end up with a individual type for each iterator and the compiler can slap you if you try to use A::iterator on class B 17:54
on top of that c++ will optimise a lot of stuff away on nested classes because their are friend by default 17:55
masak it's nice to hear you discuss a lot of points I've been thinking about in the last few days :) 17:56
gfldex so masak question might even best be asked to the cunning idividual that is writing the optimiser :)
TBA2 does it do the same optimisation if the class isn't nested but are marked friend?
(or can't it be?)
gfldex i believe so
well it's more looking for the const in 'void foo() const {}' anyway 17:57
TBA2 so nesting them simply enables friend, and allows some compiler safety checks?
masak it bears repeating: in Perl 6 currently, a nested class isn't special in any way besides being located spatially instide another class.
17:58 jaldhar joined
TBA2 masak: i'm thinking thats how it should be in P6, since nested doesn't define any relationship between the two, except on a logical basis 17:58
gfldex TBA2: it allowes the compiler to _drop_ safety checks
TBA2 ahh, i see
gfldex and that may be desireable for perl6 aswell 17:59
if you compile iterator down in c++ you end up with bare pointer arithmetic
and that's where quite a bit of it's speed comes from 18:00
as less you do as faster you get :)
*meep* *meep*
TBA2 lol, well i think you might be right about this being a question for the optimiser :)
gfldex maybe somebody can promise jnthn some beer to make him read the above? 18:01
18:05 cotto left
moritz gfldex: you can 18:06
lichtkind pmichaud: when parrot has 6model built, you will change rakudo? 18:09
pmichaud lichtkind: I don't understand the question
lichtkind i hear that frequently :) 18:10
pmichaud it's the "change rakudo" part that confuses me, I think. change it to what?
tadzik to yapsi 18:11
pmichaud or change it how?
lichtkind pmichaud: parrot devs plan to adopt the 6model into core, when that is implemented, how that would change rakudo
moritz lichtkind: rakudo will continue to use nqp. If parrot implements 6model, it will be a nqp change to adopt
pmichaud it might make it faster. other than that, I don't think it'll change much -- we're already using 6model in the 'nom' branch of rakudo (which we expect to become the new mainline trunk soon)
lichtkind pmichaud: or could you then put some parts out of rakudo
pmichaud: thatswhy i asked, i thought when they provied then everything you could sorta drop it but on the other hand for a .net port you need it anyway 18:13
pmichaud nqp is going to be the layer where we map rakudo needs to our backends
18:13 envi left
lichtkind makes sense 18:13
so you have a nom version of NQP too? 18:14
pmichaud right now there's "nqp" and "nqp-rx"
nqp-rx is the version created in 2009, that is bundled with parrot and that rakudo master uses
nqp is the version created in 2011, that runs 6model and that rakudo-nom uses
nqp is the version we expect to be using and maintaining going forward 18:15
when (if?) parrot adopts 6model, then that will simply make it easier to implement nqp.
lichtkind pmichaud: so that would just make the nqp version of parrot slim 18:16
thank you very much
18:16 cognominal_ left
pmichaud slimmer, not slim. 18:16
there's a lot more to nqp than just 6model
lichtkind sure :)
18:16 cognominal joined 18:18 bakedb left, lue left
lichtkind pmichaud: that helped me greatly 18:18
pmichaud good
I still need to draft the article explaining the rakudo universe. I haven't figured out where to put it yet... I'm thinking maybe a page on rakudo.org 18:19
although maybe it makes more sense as a dated article
18:21 lue joined
dalek p: ba48021 | pmichaud++ | / (3 files):
Add some more nqp:: ops and tests.
18:21
sjn o/ 18:23
moritz pmichaud: any ideas for naming the bitwise operators?
nqp::bitwise_and_s ? 18:24
I find the parrot names (bands) a bit obscure
sjn newbie-question: what do you do to concatenate every two array elements in the result from an @foo X @bar ?
moritz X~ 18:25
sjn oh nixe
nice*
masak used to be X~X at one point, to mirror [~] and >>~<<, I guess. 18:26
I'm glad it changed. :)
sjn actually tried X~X, but was a bit confused when it didn't work 18:27
18:27 lue left
masak we also got Z~ along the way. a pleasant addition. 18:27
there's no Y~, because cross and zip appear to be the only two fundamental list metaoperations. :P 18:28
sjn ok, next one. how do I strip the _first_ character of all elements in an array?
masak map { (.comb)[1..*].join }, @array 18:29
moritz @arr>>.substr(1)
masak ah, better. :)
rakudo: my @a = <foo bar baz>; .say for @a>>.substr(1)
p6eval rakudo 7175e5: OUTPUT«oo␤ar␤az␤»
sjn thanks! :) 18:30
pmichaud in general I'm wanting to keep the nqp names short.
masak rakudo: my @a = <foo bar baz>; .say for @a>>.flip>>.chop>>.flip
p6eval rakudo 7175e5: OUTPUT«oo␤ar␤az␤»
pmichaud see also the note about "aim for consistency with underscores"
moritz pmichaud: I don't think the bit ops deserve much huffmanization, but you're the boss
18:30 Woodi left
pmichaud well, it'd likely be band_i and band_s 18:31
instead of "bands"
masak +1
18:31 lue joined
pmichaud I agree they don't deserve much huffmanization. as of yet I'm wondering if they deserve a place in the opcode set at all. 18:31
(which is why I haven't done them yet)
could also be "bitand_i" or "bwand_i" ('bw' == 'bitwise') 18:32
then instead of 'shl' we have 'bitshiftleft' or 'bshiftl' or 'bshiftleft' or somesuch
or 'bwshiftl' or something like that 18:33
18:33 cotto joined
masak .oO( naming conventions. they're just a load of bshift. ) 18:33
pmichaud parrot's inconsistency in names has caused me no end of trouble.
sjn btw, is there a "File" type? 18:34
masak sjn: IO
pmichaud the other nice thing about the nqp:: namespace is that we aren't committed to a name -- if we decide something should be renamed, we can just add a new mapping for the new name and then slowly migrate over the old usages
sjn ok, so I can write a sub MAIN(IO $infile, IO :$outfile) { ... } 18:35
masak sjn: well...
sjn :)
masak sjn: everything that comes in as MAIN parameters is a Str.
sjn: because that's what we write at the prompt.
sjn right
masak sjn: there's been discussion about having a layer of magic convert things to Num and stuff. 18:36
sjn but there's no magic checking if those files exist
masak right now there's no magic at all.
sjn ok
masak none in Rakudo, none in spec.
sjn Str it is then
pmichaud MAIN($infile where ... )
masak MAIN($infile as IO)
dalek p: be6433c | pmichaud++ | t/nqp/59-nqpop.t:
Add more nqp:: list/iterator tests.
18:38
masak mini-challenge: read the Java code in en.wikipedia.org/wiki/Memento_pattern , and create a corresponding mechanism in Perl 6, using *only spec'd Perl 6 constructs*. doesn't have to be nested classes; the only thing that needs preserving is that only the Originator can restore its state using a Memento instance. 18:39
I'm curious if it can be done, and if so, how elegantly. 18:40
18:40 cognominal left, cognominal joined 18:41 envi joined 18:43 dual left 18:44 cognominal left 18:45 cognominal joined
moritz $obj.^get_value 18:48
erm, wrong usage
$attrib.get_value($obj) or so
masak huh. I'd consider attribute introspection to be a very heavy-handed solution. 18:51
18:54 cotto left
lichtkind rakudo: 1,3,5...11 18:55
p6eval rakudo 7175e5: ( no output ) 18:56
lichtkind rakudo: say 1,3,5...11
p6eval rakudo 7175e5: OUTPUT«1357911␤»
masak rakudo: .say for 1, 3 ... 11
p6eval rakudo 7175e5: OUTPUT«1␤3␤5␤7␤9␤11␤»
lichtkind rakudo: say 11,9...1
p6eval rakudo 7175e5: OUTPUT«1197531␤»
lichtkind great
masak rakudo: .say for 11, 9 ... 0
p6eval rakudo 7175e5: OUTPUT«(timeout)11␤9␤7␤5␤3␤1␤-1␤-3␤-5␤-7␤-9␤-11␤-13␤-15␤-17␤-19␤-21␤-23␤-25␤-27␤-29␤-31␤-33␤-35␤-37␤-39␤-41␤-43␤-45␤-47␤-49␤-51␤-53␤-55␤-57␤-59␤-61␤-63␤-65␤-67␤-69␤-71␤-73␤-75␤-77␤-79␤-81␤-83␤-85␤-87␤-89␤-91␤-93␤-95␤-97␤-99␤-101␤-103␤-105␤-107␤-109␤-111␤-113␤-115␤-117␤-119␤-121􏿽xE2􏿽x90 18:57
masak hehe :)
lichtkind: make sure you cover that behaviour :P
lichtkind what did happen? 18:58
masak it missed.
lichtkind and why stopped?
rakudo: say 11...1
p6eval rakudo 7175e5: OUTPUT«1110987654321␤»
pmichaud it's an infinite list, so it timed out
masak rakudo: .say for 11 ... 1
p6eval rakudo 7175e5: OUTPUT«11␤10␤9␤8␤7␤6␤5␤4␤3␤2␤1␤»
lichtkind rakudo: say 11,$^n-2...1 18:59
p6eval rakudo 7175e5: OUTPUT«Null PMC access in can()␤ in main program body at line 1:/tmp/K1CiBlyyTE␤»
masak submits rakudobug
dalek p: 68ed28c | pmichaud++ | / (2 files):
Fix nqp::cmp_{i|n|s} opcodes, add tests.
thou lichtkind: sorry, i had a phone call, am now getting back to your article....
lichtkind thou: everythings fine
thou: the paste is still some hours valid
sorear niecza: say "abcdefghij".comb(/(\d) ** 1..3/).perl 19:00
p6eval niecza v6-177-g365e216: OUTPUT«[].list␤»
lichtkind rakudo: say 11,*-2...1 19:01
p6eval rakudo 7175e5: OUTPUT«1197531␤»
lichtkind i love perl 6
masak :) 19:02
rakudo: $^n
p6eval rakudo 7175e5: ( no output )
masak rakudo: say $^n
p6eval rakudo 7175e5: OUTPUT«Null PMC access in type()␤ in main program body at line 22:/tmp/xTpZaXwJ9H␤»
lichtkind rakudo: say 11,{$^n-2}...1 19:03
p6eval rakudo 7175e5: OUTPUT«1197531␤»
lichtkind now i got it
TBA2 masak: pastebin.com/heFLEaB4 19:04
sorear good * #perl6
TBA2 just as easily it seems
masak sorear: \o
19:05 dual joined
masak TBA2: Memento.getSavedState breaks the data hiding we meant to preserve by using the pattern in the first place. 19:05
TBA2 masak: oops lol, let me take another look
masak anyone can call it and get the value, not just an Originator.
nice code, though :) 19:06
TBA2++
TBA2: the ::Memento in the signature on line 14 doesn't do what you probably meant.
TBA2: ::Foo is a forward reference to some not-yet-declared type. unless you're in a signature, then it's a type variable. 19:07
TBA2 ahh yes, had forgotten about that
masak: aside from that, could you clarify what you mean by it breaks the pattern? just reread the pattern and (im probably missing something) but the memento isn't changeable once its created? 19:09
masak TBA2: private String getSavedState()
the method is private; it can't be called from outside of Originator. 19:10
TBA2 ahh the other way around, only that class should be able to *get* the data
masak yes.
TBA2 is sure this can be done
masak that way, we don't expose the internal state of Originator.
TBA2 well 19:11
dalek kudo/nom: a3b692d | pmichaud++ | / (2 files):
Bump NQP_REVISION to get new nqp:: opcode definitions (and reduce
TBA2 we cant enforce it just by making it private in the same way java can (hence the discussion we had earlier i assume?), but could we look at the caller and make sure its an Originator? 19:12
TBA2 consults the synopsis
(after making a cup of tea :p)
masak that's an original idea. :)
if I derived from Originator, would the deriving class then be able to call Memento.getSavedState? probably not a good idea if it could. 19:13
TBA2 presumably we'd want it not to, hence hiding the data, so we need to know if its 100% definitely that type, not just if its that type or a subclass 19:14
TBA2 seems to have the word 'hence' stuck in his head
19:15 ChrisDennis left 19:16 jevin joined
TBA2 what happens in the java pattern? can subclasses of the originator see the data or only the originator? i assume only the originator, that would be protected otherwise? 19:16
gfldex one could use introspection to build the nested class Memento and augment Originator by that nested class 19:19
19:19 pochi left
gfldex at least if all private members have state 19:19
19:19 pochi joined
TBA2 if people can augment classes, couldn't they simply augment originator to get the nested memento and even augment the memento to retrieve the data? 19:21
gfldex they could
but if you like you can have with a shotgun to keep them away
s/have/wave/
TBA2 lol
im just thinking if we can augment the class, why bother trying to hide anything in the first place? 19:22
gfldex and you can use a role to stick sateTomemento and restoreFromMemento into the class
19:23 lue left, donri joined
thou lichtkind: was ich verstehe, sieht mich gut aus ;-) 19:24
19:25 birdwindupbird joined 19:26 lue joined
TBA2 i take it caller() isn't implemented in rakudo yet? 19:28
moritz right
TBA2 any way to get similar info by calling parrot?
moritz or... not sure. But callframe() is implemented in master
rakudo: say callframe().file 19:29
p6eval rakudo 7175e5: OUTPUT«/tmp/Za_yKdAbsS␤»
moritz rakudo: say callframe(1).file
p6eval rakudo 7175e5: OUTPUT«Any()␤»
TBA2 not sure callframe will help :( 19:31
moritz TBA2: what do you need? 19:32
TBA2 thinking about it im not really sure lol, was hoping the name of the class which owns the sub that made the call 19:33
i suppose something like p5's ref($obj) =~ m/ObjectType/
moritz don't
if you want it for debugging, use $obj.WHAT 19:35
TBA2 in what way dont? :) im not sure itd have worked anyway, it could be easily fooled
moritz if you want it for type checks, use ~~ or isa or does
TBA2 the problem is, without knowing who the caller is, we cant do any type checks anyway?
sjn how does one prepend a string to every element in an array? 19:36
sorear for @array { $_ = $string ~ $_ }
@array = $string X~ @array
@array = $string »~« @array 19:37
TBA2 sorear: what happened to the BSCINABTE bit? ;)
moritz: dont really know enough about rakudo yet, but im not sure that the entire pattern can be implemented properly as it is, not without some major trickery going on, which would be rather pointless anyway :) 19:39
sjn rakudo: ("X" «~» <a b c>)>>.say
p6eval rakudo 7175e5: OUTPUT«Xa␤Xb␤Xc␤»
sjn rakudo: ("X" «~« <a b c>)>>.say 19:40
p6eval rakudo 7175e5: OUTPUT«Xa␤Xb␤Xc␤»
moritz rakudo: say (<X Y> »~« <a b c>).perl 19:41
p6eval rakudo 7175e5: OUTPUT«Sorry, lists on both sides of non-dwimmy hyperop are not of same length:␤ left: 2 elements␤ right: 3 elements␤␤ in 'hyper' at line 192:src/gen/core.pm␤ in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp␤»
19:41 icwiener joined
moritz rakudo: say (<X Y> «~» <a b c>).perl 19:41
p6eval rakudo 7175e5: OUTPUT«["Xa", "Yb", "Xc"]␤»
TBA2 thats pretty cool lol!
19:42 cotto joined
jlaire karma c 19:53
aloha c has karma of 474.
19:53 cotto left
jlaire karma c++ 19:53
aloha c++ has karma of 0.
jlaire karma c
aloha c has karma of 475.
gfldex some get all the blame and some get all the fame. it's a dogs world 19:54
jlaire c++++ 19:55
karma c++
aloha c++ has karma of 0.
jlaire karma c+
aloha c+ has karma of 0.
jlaire yup
sjn Any way to get rid of this message, when running perl6 from outside it's build dir? PARROT VM: Could not load bytecode 19:56
Could not load oplib `perl6_ops'
19:56 envi left
TBA2 make install? 19:56
sjn fair enough 19:57
moritz git rm README 19:59
20:03 leprevost left 20:04 mkramer1 joined
sjn how does one do secondary sorts? 20:08
e.g. first by length of a string, then alphabetically
moritz two options: 20:09
masak @a.sort(&alpha).sort(+ *.chars)
moritz what is &alpha?
masak er. I cheated. 20:10
moritz just use @a.sort.sort(*.chars)
masak oh, troo.
or .sort(*.Str)
moritz second option: @a.sort: { $a.chars <=> $b.chars || $a leg $b }
sjn sort(*.chars | *.Str)
masak doesn't guarantee ordering. 20:11
sjn right
masak junctions are inherently unordered.
and you want the order.
sjn mm 20:12
masak not sure how the above would behave, actually.
sjn remembers
masak rakudo: my @a = "foo", "foo_long", "bar", "gah", "gafz"; .say for @a.sort( *.chars | *.Str )
p6eval rakudo 7175e5: OUTPUT«any("foo", "bar", "gah", "gafz", "foo_long")␤»
masak seems to sort on length only in Rakudo. 20:13
not immediately sure why.
moritz well, it returns a junction
and that is unordered
masak guess that could be explanation enough, yes.
moritz ah well 20:14
masak thinking about that junction threading through the sorting algorithm makes my head hurt a little, though :)
junctions are a bit dangerous.
moritz the sort does the equivalent of { ($^a.chars | $^a.Str) cmp ($^b.chars | $^b.Str) } 20:15
masak right.
which might well be any(True, False)
moritz right
masak which boolifies to True.
moritz but
the algorithm will do something like
if $result == -1 { ... } elsif $result == 1 { ... } else { ... } 20:16
masak oh right.
cmp gives any(-1, 0, 1)
moritz and since $result will likely boild down to any(1, -1, 0) or so
it depends on the internal ordering of the branches
masak aye
hm, Rakudo has ChangeLog and release announcements going back to 2009, but git logs going back all the way to 2006. 20:20
moritz masak: that's because in parrot times it didn't have separate releases
masak ah, yes.
moritz masak: but the revision history for languages/perl6/ was imported into the rakudo git repo 20:21
masak git++
masak makes a "highlights" summary of Rakudo's history since 2006
so 2009-02 marks "Rakudo detached from Parrot repo" :) 20:22
moritz: oh btw, congratulations on becoming Rakudo-Parrot spokesperson.
dalek kudo/nom: 8086939 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Optimize boolification a little.
moritz oh, has it been announced?
masak I saw something on parrot-dev about it. 20:23
might've read too much into it, I dunno.
20:24 chris99 joined, starcoder2 joined
masak the point where the draft becomes a real document seems to be on Friday. 20:24
pmichaud I sent a message to parrot-dev and p6c 20:25
TimToady masak: re irclog.perlgeek.de/perl6/2011-06-22#i_3983685 you can always pass an instance out wrapped in another class that gives no access to it except to carry it back into somewhere with private access to the wrapper class; a typed (void*) as it were
20:26 Woodi joined
masak mulls over this 20:27
ooh look that is so cute: github.com/rakudo/rakudo/blob/9dfa.../grammar.g :)
five years ago, and then some.
TimToady since then it's been turning into a teenager 20:28
masak "Perl 6: now a teenager" 20:29
that's a blog post in itself.
actually, I'll use that in my first FPW talk on Sat ;)
though after actually counting a bit... don't the teens begin at... 13? :) 20:30
Perl 6 only turns 11 this year.
pmichaud tell that to my daughter
masak :P
pmichaud she definitely started being a teenager before 13.
TimToady "no longer almost a pre-teen..."
huf soon it'll be legal? 20:31
oy vey
masak I'm sure Perl 6 will be a very responsible youth. 20:32
wow, 'infix:-' looks so ugly nowadays... :)
huf depends on the circle of friends
it's very hard to go against peer pressure when you're a t een 20:33
masak I'd say 2006-04-14 marks the "birth" of Rakudo. at least according to the story told my the logs. so much activity that day. pmichaud++ 20:34
jnthn oh noes, masak is gonna dredge up my awful first commits :) 20:35
masak mwhaha
thanks for tipping me off :P
wow, Leo was still around in 2006. 20:36
TimToady masak: irclog.perlgeek.de/perl6/2011-06-22#i_3984044 is half wrong, see S06:3239 20:37
masak TimToady: indeed. how did I manage to forget that? :) 20:39
20:40 mj41 joined
TimToady it the primitive handling <1 2.3 1+3i> as well 20:40
*it's 20:41
masak right.
TimToady or any other situation where the user is forced to express values as text
but doesn't really want to use eval
masak back in 2006 Zop was called Yop.
TimToady: a kind of "val eval" :) 20:42
TimToady eval without the e-vil.
buubot_backup TimToady: ERROR: syntax error at (eval 28) line 2, at EOF
TimToady buubot_backup: you have a tremendous grasp of the obvious
buubot_backup TimToady: Couldn't match input.
TimToady as I said...
masak :) 20:43
20:48 birdwindupbird left
masak it's a bit saddening to see all the HLLs mentioned in the git (svn) logs from around 2006. 20:49
I don't get the impression that as many are around today.
maybe it's just that they're less visible from having left the nest, but... I'm not sure that's it.
pmichaud not as many are around today 20:50
masak zCode, ook, pheme...
TimToady perl6: my @array = <a b c>; @array [XR~]= 'X'; say ~@array;
p6eval niecza v6-177-g365e216: OUTPUT«Xa Xb Xc␤» 20:51
..rakudo 7175e5: OUTPUT«===SORRY!===␤Confused at line 22, near "@array [XR"␤»
..pugs: OUTPUT«*** ␤ Unexpected "["␤ expecting operator␤ at /tmp/HnU4KnCNLe line 1, column 29␤»
masak niecza++
TimToady perl6: my @array = <a b c>; @array XR~= 'X'; say ~@array; 20:52
p6eval niecza v6-177-g365e216: OUTPUT«Unhandled exception: Unable to resolve method ctxzyg in class List␤ at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 185 (NieczaPassSimplifier run_optree @ 3) ␤ at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 188 (NieczaPassSimplifier run_optree @
..8) ␤ …
..rakudo 7175e5: OUTPUT«a b c␤»
..pugs: OUTPUT«*** ␤ Unexpected "XR"␤ expecting operator␤ at /tmp/Ic_vb7pThY line 1, column 29␤»
masak hm. how does Rakudo parse that? 20:53
jnthn std: my @array = <a b c>; @array XR~= 'X'; say ~@array;
p6eval std 37a0cdd: OUTPUT«ok 00:01 122m␤»
pmichaud rakudo parses it exactly the way it reads :) 20:54
TimToady probably XR[~=]
masak why isn't that an erroneous modification of a constant?
TimToady maybe that's why niecza blows up on it 20:55
masak submits rakudobug
TimToady if so, message is LTA
jnthn may be a lack of decontainerization somewhere
masak rakudo: my $a = 'a'; $a R~= 'X'; say $a
p6eval rakudo 7175e5: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1:src/metamodel/RoleToInstanceApplier.nqp␤ in 'reverseargs' at line 134:src/gen/core.pm␤ in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp␤»
masak rakudo: my $a = 'a'; $a XR~= 'X'; say $a
p6eval rakudo 7175e5: OUTPUT«a␤»
jnthn rakudo: ('a' R~ 'b') = 1 20:56
p6eval rakudo 7175e5: ( no output )
jnthn golfd. 20:57
masak jnthn++
sorear masak: today is also the 1 year anniversary of niecza's first commit
diakopter putt for dough
masak sorear: btw, 'ctxzyg' is a wonderful method name :P
sorear: ooh, happy anniversary!
TimToady niecza: my @array = <a b c>; @array X[R~]= 'X'; say ~@array;
p6eval niecza v6-177-g365e216: OUTPUT«Unhandled exception: Unable to resolve method ctxzyg in class List␤ at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 185 (NieczaPassSimplifier run_optree @ 3) ␤ at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 188 (NieczaPassSimplifier run_optree @
..8) ␤ …
moritz niecza.age++
TimToady niecza: my @array = <a b c>; @array X[[R~]=] 'X'; say ~@array; 20:58
p6eval niecza v6-177-g365e216: OUTPUT«Unhandled exception: Unable to resolve method ctxzyg in class List␤ at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 185 (NieczaPassSimplifier run_optree @ 3) ␤ at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 188 (NieczaPassSimplifier run_optree @
..8) ␤ …
sorear bah, ctxzyg shouldn't be leaking out like that...
masak "leaking out" is a subset of "LTA" ;) 20:59
TimToady niecza: my @array = <a b c>; @array [XR~]= 'X'; say ~@array;
p6eval niecza v6-177-g365e216: OUTPUT«Xa Xb Xc␤»
TimToady well, at least the part that's supposed to work works :)
masak rakudo: ('a' R~ 'b') = 1; say "alive"
p6eval rakudo 7175e5: OUTPUT«alive␤»
TimToady niecza: ('a' R~ 'b') = 1; say "alive" 21:00
p6eval niecza v6-177-g365e216: OUTPUT«Unhandled exception: assigning to readonly value␤ at /tmp/tJLrMAqJYE line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1770 (CORE C837_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1771 (CORE module-CORE @ 57) ␤ at
../home/p6eval/niecz…
21:02 lue left
TimToady hmm, p6eval seems to be emitting orfins again 21:04
sorear orfins?
ohright
21:06 lue joined 21:07 lue left
diakopter what's an orfin 21:08
21:08 p6eval left 21:09 p6eval joined, ChanServ sets mode: +v p6eval
sorear diakopter: secure.wikimedia.org/wikipedia/en/...pesetting) 21:10
diakopter oh
21:11 p6eval left, p6eval joined, ChanServ sets mode: +v p6eval 21:12 p6eval left 21:13 p6eval joined, ChanServ sets mode: +v p6eval
sorear is using bytes::substr as bad an idea as it sounds? 21:15
21:15 mkramer1 left
moritz in p5? 21:15
diakopter in the p6eval bot, I assume he means 21:16
masak it's confusing when the same feature is implemented several times in the history of Rakudo. :) 21:17
21:17 p6eval left
masak statement_mod if/unless were implemented first in April 2006, then again in Dec 2007. 21:18
jnthn Can't wait for you to start tracking all the lists implementations :P
masak o.O
diakopter talk about a LoL
moritz oh, and please summerize what each could do, and what they couldn't 21:19
masak :P
masak skims harder
21:19 pjcj left
pmichaud sometimes the "same feature" isn't the same, because the spec changed :) 21:20
21:20 wamba left
pmichaud masak: all of this skimming is for a talk? I think I should be worried. 1/2 :-) 21:20
masak I see the half smiley, but I don't understand the cause for any worry :) 21:21
I research my talks, is that worrying?
jnthn
.oO( I hystery of Rakudo )
s/I/A/
:)
sorear what's masak gonna do?
masak sorear: talk about Rakudo and Niecza in Paris. 21:22
sorear D:
21:22 p6eval joined, ChanServ sets mode: +v p6eval
jnthn omgz what did they get up to in Paris?! 21:22
PerlJam "What would Rakudo look like today if we'd kept the list semantics of <insert some date>?"
masak what happens in Paris stays in Paris.
jnthn :P
sorear PerlJam: A right mess.
pmichaud masak's talks often contain a few nuggets of potential embarassment for me :)
masak pmichaud: oh!
21:23 cotto joined
pmichaud "Rakudo: a long List of fail()s" :-P 21:23
masak pmichaud: I'm not out to do that at all. I want to show the progress that's happened in the past two-three years.
but yes, inherent in that is a lot of rewrites. but I don't think that's embarrassing.
dalek albot: be41d10 | sorear++ | lib/EvalbotExecuter.pm:
Tweak orphan avoidance again; take revision strings into account.
21:24
pmichaud masak: thus the half-smiley. your talks are uniformly excellent, and humorous, and fun, and often contain a comment or two at my expense (which I actually enjoy also)
sorear lots of rewrites, sure, but I don't think the actual semantics have changed much at all in the last year
pmichaud well, except for lists and iterators. :)
and stringy.
jnthn and multis.
sorear yes, masak++'s sense of humor is second to none
masak pmichaud: thanks for the kind words. I've never intentionally set out to put you or any other Rakudo dev in a tight spot. 21:25
pmichaud masak: it's probably not coming across well, but any worry I have is mostly feigned. :)
21:25 kanishka left
masak I suspected that :) 21:25
pmichaud oh, and we changed the meaning of the ? quantifier in regexes
masak twice. 21:26
jnthn pmichaud: Did we catch up with that change in Rakudo/nqp yet?
pmichaud jnthn: not yet. we should do that soon.
masak or maybe we just thought about it the second time...
jnthn pmichaud: We could always wiat for it to change a third time. :P
pmichaud masak: yes, it's changed twice
PerlJam The meaning of ? didn't change ... just the results ;)
tadzik hello, the herd
pmichaud meaning == results to me :)
masak tadzik! \o/
jnthn o/ tadzik
masak hii, jnthn++'s first commit! :) 21:27
bf6fe0dc4 on 2007-12-16.
dalek kudo/nom: de6123d | pmichaud++ | NOMMAP.markdown:
NOMMAP update for $foo.&var() not working.
kudo/nom: a099c6c | pmichaud++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
Merge branch 'nom' of github.com:rakudo/rakudo into nom
kudo/nom: 9b36ac2 | pmichaud++ | src/core/Cool.pm:
Add first implementation of Cool.fmt .
masak it starts implementing junctions. way to dive into a project, jnthn! :)
back then, .eigenstates was called, .values 21:28
pmichaud oh, and we keep changing the meaning of booleans, too :)
tadzik my LUG group thinks writing a C compiler is close to insanity and undoable during the summer. I'm now both confused and motivated
pmichaud or at least the boolean API
masak pmichaud: "But what is truth?" :P
pmichaud 42!
jnthn masak: You do know the reason I ended up in Rakudo is because I drank a load of beer at Oscon and then told Pm I'd implement Junctions? :)
pmichaud answer comes tomorrow!
lichtkind thou: next paste comes soon 21:29
masak jnthn: yes, I've heard the story :)
pmichaud rakudo (and Perl 6) as we know it doesn't exist without alcohol
lichtkind jnthn: sounds plausible :)
jnthn What I didn't realize was the dependencies doing junctions implied :)
pmichaud afk for a bit 21:30
oh, before I go
PerlJam jnthn: the rest of rakudo? :)
masak could someone write a working example of TimToady's idea at irclog.perlgeek.de/perl6/2011-06-22#i_3984668 ? I loosely understand it, but can't make it solidify in my mind into actual code.
pmichaud I should mention that I now consider rakudo to be an "official" Perl 6 compiler. :)
masak (kthxbai)
pmichaud (have for several months, in fact)
PerlJam pmichaud: you need to make a prominent public announcement about it though :)
jnthn Like Yapsi! \o/
pmichaud yes, so yapsi is no longer the only one. :) 21:31
masak yeah ywah, join the club.
now you only have to be a complete implementation, too :P
TimToady niecza: my @array = <a b c>, <d e f>; say @array[1] 21:32
p6eval niecza v6-177-g365e216: OUTPUT«b␤»
masak 2007-12-17: jnthn's first "oops" commit :P
TimToady niecza: constant @array = <a b c>, <d e f>; say @array[1]
p6eval niecza v6-177-g365e216: OUTPUT«def␤»
TimToady sorear: note the difference ^^
jnthn masak: One day after? :P
masak :P
jnthn masak: There's also one where I mis-spelt Rakudo. :P
sorear I should join a LUG
masak it hasn't changed name yet.
sorear TimToady: yeah. 21:33
jnthn masak: I didn't learn the new name properly before using it in a commit message :P
sorear TimToady: I'm not sure what the semantics should be though
masak jnthn: I understand, it's not that easy.
moritz it should be consistent :-)
TimToady sorear: I had to sprinkel some .flats into rosettacode.org/wiki/Number_names#Perl_6 because of that
*kle
sorear TimToady: yeah, I saw. 21:34
tadzik ooh, YAPC::EU schedule
sorear TimToady: what were you trying to do with .comb(/(\d) ** 1..3/) ?
masak New Year's Eve 2007: jnthn++ implements the 'given' statement :)
PerlJam masak: as long as you're perusing history, it might be an interesting trek to see all of the parrot commits that were a result of changes to rakudo and vice-versa 21:35
TimToady trying to bind it to -> $i, $x, $c {...}
on a reversed string of digits
lichtkind TimToady: sometimes i think the origin of the word perl was a simple pun involving the word shell :)
PerlJam s/were a result/were a direct result/
TimToady well, $i, $x?, $c?
sorear TimToady: I thought .comb returned only strings, not matches
masak PerlJam: urgh. this bit of research is already to big... :)
sorear checks S32 again
PerlJam masak: file it away for the next one then :)
TimToady oh, I think you're right
lemme try it with .match 21:36
sorear hmm, I wonder if just .comb would do what you want
.comb -> $i, $x?, $c?
TimToady I thought I tried that one
sorear I wouldn't be suprised if "for" with optional parameters is broken in niecza. 21:37
niecza: for 1,2,3 -> $x, $y? { say $x; say $y // 10 }
p6eval niecza v6-177-g365e216: OUTPUT«1␤2␤Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤ at Niecza.Kernel.NewBoundVar (Int32 mode, Niecza.STable type, Niecza.Variable rhs) [0x00000] in <filename unknown>:0 ␤ at MAIN.C0_mainline (Niec…
TimToady yeah, that... 21:38
sorear niecza: given 1 -> $x, $y? { }
p6eval niecza v6-177-g365e216: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/reK6iAhbQA line 1:␤------> given 1 -> ⏏$x, $y? { }␤ $y is declared but not used at /tmp/reK6iAhbQA line 1:␤------> given 1 -> $x, ⏏$y? { }␤␤»…
sorear niecza: given 1 -> $x, $y? { } #OK
p6eval niecza v6-177-g365e216: ( no output )
masak seems the perl6->rakudo rename happened on 2008-01-16. 21:39
jnthn sleep & 21:40
lichtkind jnthn: o/ 21:42
tadzik lichtkind: o/
you were asking about something...
lichtkind tadzik: thanks but that was directed to jnthn
tadzik oh, final or production status of modules
lichtkind i will stay a bit
tadzik that's a tricky one :)
lichtkind yes 21:43
simple questions i can answer myself :)
TimToady narcolepsis & 21:44
masak rakudo: sub foo { -> { say "OH HAI" } }; foo.()
p6eval rakudo 7175e5: OUTPUT«OH HAI␤» 21:45
masak in 2008, that seems to have meant 'foo()'
21:45 Patterner left 21:47 Psyche^ joined, Psyche^ is now known as Patterner
masak my colleagues don't believe in uncuddling 'else's. should I care? 21:47
tadzik no
I love cuddling
diakopter no
be tolerant 21:48
masak aye
TBA2 } masak {?
diakopter lol
masak TBA2: that's cuddling :)
tadzik the cuddle operator
} masak { should parse as "hugme: hug masak"
masak TBA2: wait, was that an invitation, or just a query for clarification? :P
TBA2 masak: you decide 21:49
masak deftly changes the subject
it's raining here.
TBA2 its always raining here lol
masak TBA2: are you in a rainforest? 21:50
TBA2 rain is good for programming
no, Wales lol
masak :)
TBA2 i think its actually wetter here than the Amazon in rainy season
masak back in 2008, we had a class called Object. 21:51
those were the days.
TBA2 likes S17... a lot! 21:54
masak it's one of the fairly liquid ones. 21:55
TBA2 if it can be kept roughly as it is, it'll be a massive improvement to threading compared to almost every other language i've used
perl5's ithreads and .net threading are a nightmare, S17 makes it looks extremely neat (and easy to follow) 21:56
sorear wait, really?
I couldn't understand S17 so I implemented .net threading instead
masak I'm surprised, too.
TBA2 perhaps i just have more experience with threading than i ever cared for lol 21:57
:/
diakopter waits for jnthn to chime in
sorear if you understand S17, perhaps you could explain it to me. :/
TBA2 also been doing a lot with threading in p5 the last few weeks
masak most of S17 looks like blue-sky ruminations.
TBA2 lol, not sure i could explain it in terms of a compiler implementation :p but so far as being understandable and usable, it looks pretty good to me lol
masak diakopter: jnthn's asleep, and won't chime until the morning :) 21:58
PerlJam TBA2: even the signal stuff?
diakopter oh
lichtkind tadzik: so you dont know of any modules you would recommend, even as good coding practice? 21:59
TBA2 PerlJam: reasonably yeah, well, it seems a hell of a lot better than the way p5 does it 22:01
tadzik lichtkind: good coding practice, to read?
lichtkind tadzik: yes
lichtkind: but practical modules would also be important 22:02
TBA2 sorear: what is it you didnt like about S17? 22:03
tadzik most of them are good :) ABC, JSON, Web.pm has lots of good code
TBA2 masak: do you think S17 should change, or will need to?
tadzik URI gets better and better recently
sorear TBA2: I just read it and I'm confused about what exactly is critical means 22:04
masak TBA2: just skimming it makes alarm bells go off in my head.
tadzik Druid is very nice too
masak tadzik: it was the first OO project I wrote in Perl 6 :) long ago, back in 2008.
TBA2 sorear: the way i read it is, if you mark something as 'is critical', that will never be interrupted during execution (and neither will anything thats called from it). if theres any interruptions, they wait until the 'is critical' block has ended 22:05
sorear TBA2: what if there are more than one thread?
TBA2 presumably they get stored on the signals queue
sorear: what type of threads? OS threads or Perl6 'threads'?
masak finally reaches a point of information overload
TBA2 the only risk i see with is critical would be the 'and stuff called from it' bit, could potentially leave an entire program as uninterruptable 22:06
sorear this is 2011. Perl 6 threads have to be able to take advantage of people's 48-core MacBooks
yapsi: say 5 22:07
masak Rakudo Timeline: gist.github.com/1041370 -- neither very authorative or complete. I've tried to focus on the big picture.
p6eval yapsi: OUTPUT«(timeout)»
sorear yapsi: say 5
masak wow, Yapsi is slow.
p6eval yapsi: OUTPUT«(timeout)»
diakopter you can timeout that again
masak I didn't get to edublog today. :( I hope to find some catch-up time tomorrowish. 22:08
need sleep. 'night, #perl6.
diakopter 'n
TBA2 night masak
22:08 masak left 22:09 wooden joined, wooden left, wooden joined
sorear yapsi does work correctly on the p6eval box 22:10
but user 0m49.487s
out of a 12s timeout...
diakopter OoO
TBA2 id better sleep too lol, night #perl6 22:12
sorear yapsi: say 5 22:14
p6eval yapsi: OUTPUT«5␤»
sorear precompiling Yapsi.pm to pir helps a lot.
mikemol Once I finish getting this chatterbot working the way I want it to, I think I'll set my sights on that C++ implementation of NQP. It's sounding like more and more fun. 22:16
22:16 alester left
lichtkind tadzik: thank you 22:20
22:25 Sarten-X left
lichtkind what was the new regex feature that largely drove the ng branch? 22:25
sorear lichtkind: protoregexes 22:28
lichtkind thank you
sorear they require a tight integration between the regex engine and the OO system to work
lichtkind and is it possible to get 100% of rakudo written in NQP? 22:29
sorear pre-ng, our regex engine was completely separate from almost everything else
yes
lichtkind but were not yet there?
sorear we're very close
well
we're sort of cheating
lichtkind :) 22:30
sorear a lot of the C and all of the PIR that was in Rakudo has been moved to NQP
ultimately some things have to be implemented as primitives 22:31
22:33 MayDaniel left
diakopter karma jnthn 22:34
aloha jnthn has karma of 872.
lichtkind sorear: but some of it was stolen code from niecza? 22:35
sorear no
lichtkind but inspired?
sorear my dreams of niecza being a fruitful prototyping ground have yet to be released
realized
lichtkind dream are always urging to come true :) 22:40
22:40 mj41 left 22:44 pjcj joined 22:49 TBA2_mobi joined
TBA2_mobi sorear: just wanted to add, to implement something like is critical in .net IL you'd need to hook into windows messaging to absorb any messages (signals) your compiler gets, that way you can ignore them or pass them on to the perl code. Not sure how that would work in terms of mono, but in windows it should be (reasonably) straightforward windows api calls to intercept the messages before .net framework takes its default actions 22:54
22:55 jferrero left
sorear TBA2_mobi: what if there is more than one OS thread? does is critical need to grab the GIL? 23:00
23:02 TBA2_mobi left 23:05 AndroUser2 joined
AndroUser2 Terrible connection lol 23:06
Its tba2 btw, damn android irc lol
You'll need to queue any messages until the perl code has exited all of the critical blocks, then presumably release them in the same order, should seem invisible to perl 23:08
Also, if perl programmers shouldnt have to care about the underlying os, then perhaps all signals/messages should be captured and verified before they reach perl. Would come with a performance penalty thoufh 23:10
sorear AndroUser2: what if there is more than one OS thread? does is critical need to grab the GIL? 23:11
23:11 spq1 left
sorear you have the same username and you're coming in from the same /28; it's obvious you're the same person 23:11
diakopter obvious only to someone who notices that 23:12
23:12 Sarten-X joined 23:14 AndroUser2 left 23:17 AndroUser2 joined
AndroUser2 I give up with this mobile thing lol, ok if we discuss it more tomorrow sorear? 23:19
sorear yes
AndroUser2 Gives me a chance to think about my answer too lol ;p
Lol :) night (again) #perl6 23:20
23:20 cdarroch left, AndroUser2 left 23:26 bitpart joined
lichtkind good night 23:28
and remember lol isnt funny in perl 6 :) 23:29
its just a list context :)
dalek ecza: 2c21c29 | sorear++ | / (13 files):
Rewrite stash handling

There are no more grafts, no more real concept of "stash paths", and Foo::Bar really does define and use package Foo now. As per jnthn's design, non-packages can now replace packages in place, allowing class Foo::Bar; class Foo to work again. Things are generally simpler; starting support for CORE:: and friends.
23:30
23:35 cotto left 23:37 thou left 23:39 ashleyde1 left, tokuhirom left 23:40 tokuhirom joined 23:41 tokuhirom left, tokuhirom joined 23:42 cotto joined
dalek ecza: ad0bcf6 | sorear++ | src/ (3 files):
Mergeback augments
23:44
23:44 whiteknight joined
lichtkind good night 23:48
23:53 cotto left 23:54 Woodi left 23:55 bitpart left