»ö« 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 1Unhandled 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«ooaraz» | ||
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«ooaraz» | ||
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«1357911» | ||
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)1197531-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-121xE2x90 | 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«1110987654321» | ||
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«XaXbXc» | ||
sjn | rakudo: ("X" «~« <a b c>)>>.say | 19:40 | |
p6eval | rakudo 7175e5: OUTPUT«XaXbXc» | ||
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«12Unhandled 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
|