»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:04
leprevost joined
00:07
pjcj left,
pjcj joined
00:08
lestrrat left
00:09
lestrrat joined
00:24
leprevost left
00:29
lichtkind_ joined
00:30
lichtkind left,
lichtkind_ is now known as lichtkind
00:39
ggoebel left
00:41
pjcj left
00:43
lichtkind left
00:45
tokuhirom left,
tokuhirom joined
00:46
jaldhar left,
havenn left
00:49
pjcj joined
00:50
tokuhirom left
00:51
jaldhar joined
01:02
leprevost joined
01:07
s1n left
01:08
scott_ joined,
scott_ is now known as Guest91692
01:21
s1n joined
01:27
gsr joined
01:29
am0c left
01:34
lestrrat left,
lestrrat joined
01:35
jaldhar left
01:38
s1n left
01:41
gsr left
01:45
raiph left
01:56
Chillance left
02:05
Guest28222 left
02:21
orafu left,
orafu joined
02:23
spaceships joined
02:31
araujo left
02:37
araujo joined,
araujo left,
araujo joined
02:44
takesako left
02:51
japhb joined
03:10
spaceships left
03:28
DreamingInCode left
03:33
bbkr_ joined
03:34
bbkr left
03:40
alester_ joined,
alester_ left
|
|||
araujo | is there exist a substitution operator or something? | 03:51 | |
04:00
localhost left
|
|||
PerlJam | araujo: subst? | 04:01 | |
04:01
localhost joined
|
|||
araujo | PerlJam, I was searching for replacing a pattern (substr is for index right?) | 04:02 | |
PerlJam | not substr, subst | 04:03 | |
04:05
sisar joined
|
|||
PerlJam | Give me a minute to finish this email on my DNS woes and I'll conjur an example | 04:05 | |
araujo | hehe thanks PerlJam | 04:07 | |
PerlJam | r: "This is my string".subst(/string/, "fish"); | 04:10 | |
p6eval | rakudo dca0fa: ( no output ) | ||
PerlJam | oops | ||
r: say "This is my string".subst(/string/, "fish"); | |||
p6eval | rakudo dca0fa: OUTPUT«This is my fish» | ||
PerlJam | r: say "This is my string".subst(:g, /is/, "at"); | 04:11 | |
p6eval | rakudo dca0fa: OUTPUT«That at my string» | ||
araujo | thanks PerlJam++ | 04:14 | |
:) | |||
PerlJam, I thought the s/pattern/replacement/ syntax was supported before? | 04:15 | ||
PerlJam | oh, it is ... | 04:16 | |
r: my $a = "This is my string"; $a ~~ s:g/is/at/; say $a; | |||
p6eval | rakudo dca0fa: OUTPUT«That at my string» | ||
PerlJam | There's also an assignment syntax that looks interesting ... | 04:19 | |
r: $_ = "hello"; s[h] = "j"; .say | |||
p6eval | rakudo dca0fa: OUTPUT«jello» | ||
araujo | I was missing the :g there | ||
:P | |||
hehe | 04:20 | ||
nice | |||
though probably subst will suit better here | 04:22 | ||
:) | |||
moritz | good morning | 04:29 | |
sisar | \o | 04:31 | |
japhb | o/ | 04:42 | |
I've been snowed under by a big $day_job project, so haven't been able to backlog -- any big news from the last couple weeks? | 04:43 | ||
moritz | japhb: rakudo had quite some new features in its compiler release. sorear is going to rewrite parts of niecza in C# (currently p6) | 04:44 | |
04:45
NamelessTee joined
|
|||
sorear | japhb: sorear's classes have ended for the term and ey will be able to spend much more time on perl6 | 04:46 | |
japhb | moritz, Oooh, cool. Fetching the release announcement ... | 04:48 | |
sorear, Ah, excellent! What parts are you rewriting, and why? (/me guessing "performance" ...) | |||
sorear | japhb: Complicated reasons. Performance is only part of the story | 04:53 | |
it might help performance | |||
japhb | Oh? This is really peaking my interest now. Do you have your plans written down somewhere, or a good log link to read? | 04:54 | |
moritz, wow, you're right, that is quite the impressive ChangeLog. (The release announcement undersells it considerably, if you ask me.) | 04:56 | ||
04:59
Araq joined
|
|||
moritz | well, we only ever pick 3 to 6 items out of the changelog for the release announcement | 05:00 | |
sorear | japhb: Plans are in flux. So far, everyone who has asked has gotten a different answer. | ||
japhb: Where is the changelog? | 05:03 | ||
japhb | moritz, Hmmm. That seems kindof restrictive. I mean, I understand wanting a zoomable level of detail, and the release announcement can easily be the most "zoomed out" LOD, but a big release is a big release, and deserves a little fanfare. | ||
sorear, *chuckle* | |||
sorear, For Rakudo? docs/ChangeLog | |||
sorear, so I guess even if plans are in flux, I'm still curious what the basic motivation is? Why convert high-level code to low-level code (or medium-level, if you prefer), when the project will remain mixed-level, if not for performance? (I can imagine a couple possibilities, but they seem a bit out there.) | 05:05 | ||
Hmmm. Trying to catch up via 'git log' is an exercise in confusion. Too many commits with messages like "first hacky shot at foo" or "beginning to implement bar", without any detail about what does and doesn't work. Of course, I bet I'm guiilty of doing the very same thing. :-/ | 05:08 | ||
(That was regarding the Rakudo 'git log', not niecza) | 05:09 | ||
05:11
Araq left
|
|||
sorear | japhb: The only reason to have modules in a high level language is to save hassle, and... I don't think that's happening | 05:16 | |
I feel like far too much of my time is going in to keeping the bootstrap and various glue layers working | |||
05:17
leprevost left
05:18
birdwindupbird joined
|
|||
japhb | sorear, ah, so rewriting sections of mixed code to single-layer code mostly for maintainability and reduced effort in future iterations? | 05:18 | |
05:19
simcop2387 left,
simcop2387 joined
|
|||
sorear | japhb: yes | 05:20 | |
TimToady made disappointed comments. I am unsure what to make of them. | 05:21 | ||
05:22
adu joined
|
|||
TimToady just wishes that p6 would be as mature as C# :) | 05:22 | ||
sorear | also | 05:23 | |
japhb | Hmmm. I can understand the disappointment. It's an interesting data point -- and will be more interesting when you get enough done to see if your hunch was correct. :-) | ||
sorear | because the niecza compiler is perl6, it needs to be compiled using an older version of niecza | 05:24 | |
but niecza versions are tightly coupled to runtime versions, so the compiler process needs two runtime libraries loaded | |||
and both the compiler and the user code have independant settings with independant systems of types | 05:25 | ||
there are four places data can exist during compilation | |||
by moving to pure C# and eliminating the bootstrap, there will only be two places for data to exist | |||
which means less code dedicated to shuffling data around without doing meaningful operations on it | 05:26 | ||
TimToady | maybe if we designed a | 05:27 | |
VM that was specifically for Perl 6...oh wait... | 05:28 | ||
bonsaikitten | TimToady: maybe one could make it a bit more generic so it could run other bytecode-oriented things? :) | ||
TimToady | there's an idea | ||
let's start with an object-oriented assembly language | 05:29 | ||
what could possibly go wrong? :D | |||
05:34
xjiujiu joined
|
|||
sorear | meh, someone tried that already, didn't work well enough for my tastes | 05:36 | |
:) | |||
bonsaikitten | TimToady: hmm, maybe an abstract assembler like MIX / MMIX ? | 05:37 | |
05:43
mattp_ left,
mattp_ joined,
adu left
05:44
adu joined
05:46
tyatpi joined
05:47
takesako joined
05:50
kaleem joined
|
|||
japhb | sorear, ah yes, I believe I understand the problem. It will be interesting to see how that attempted simplification turns out. | 05:51 | |
05:52
adu left
|
|||
sorear | it seems the largest proportion of the problems exist when compiling the setting, so I could also try eliminating the setting instead... that's less p6 code | 05:59 | |
06:00
NamelessTee left,
replore_ joined
|
|||
sorear | The worst part of all of this is that I feel like a bad person for even entertaining the idea | 06:10 | |
06:13
brrt joined
06:24
jaldhar joined,
benabik left,
benabik joined
06:35
brrt left
|
|||
japhb | sorear, I understand the feeling, but I suspect the reality will be more nuanced: You're probably going to end up discovering all the ways that this is *not* as simplifying as it sounds. Which I think will be really valuable data, both for other implementers and for possible tweaks to the language or setting. | 06:39 | |
06:40
wtw joined
|
|||
masak | morning, #perl6 | 06:41 | |
phenny | masak: 21 May 22:41Z <diakopter> tell masak see the r: LTA errors in irclogs | ||
masak | oki | ||
masak is still a few days back in the backlog | |||
japhb | o/ | 06:42 | |
sorear | masak! | 06:43 | |
masak | \o/ | 06:48 | |
tadzik | \o/ | 06:50 | |
06:53
cognominal left
06:54
cognominal joined
|
|||
masak | r: $_ = "I zah nac cheezburger?"; s[ :s \w+ <( \w+ \w+ )> ] .= flip; .say | 06:55 | |
p6eval | rakudo dca0fa: OUTPUT«===SORRY!===Missing assignment operatorat /tmp/K3Mk8H1cgu:1» | ||
masak | aww :/ | ||
r: $_ = "I zah nac cheezburger?"; s[ :s \w+ <( \w+ \w+ )> ].=flip; .say | 06:56 | ||
p6eval | rakudo dca0fa: OUTPUT«===SORRY!===Missing assignment operatorat /tmp/S0_lmGNboZ:1» | ||
masak | r: $_ = "I zah nac cheezburger?"; s[ :s \w+ <( \w+ \w+ )> ] = 'can haz'; .say | ||
p6eval | rakudo dca0fa: OUTPUT«I can hazcheezburger?» | ||
masak | oh! | ||
r: $_ = "I zah nac cheezburger?"; s[ :s \w+ <( \w+ \w+ )> ] = 'can haz '; .say | |||
p6eval | rakudo dca0fa: OUTPUT«I can haz cheezburger?» | ||
masak | r: $_ = "I zah nac cheezburger?"; s[ :s \w+ <( \w+ \w+)>] = 'can haz'; .say | ||
p6eval | rakudo dca0fa: OUTPUT«I can haz cheezburger?» | ||
sorear | masak: s.=flip is not an actual Perl 6 feature, it only exists in niecza at the moment | 06:57 | |
masak | something about assignment to s[] makes me inexplicably giddy. | ||
sorear: you mean the spec doesn't actually state or imply that .= should work there? | |||
sorear | std: s[\W] .= perl | 06:58 | |
p6eval | std 8632387: OUTPUT«===SORRY!===Undeclared routine: 'perl' used at line 1Check failedFAILED 00:00 42m» | ||
masak | ooh tjs.azalayah.net/new.html | 06:59 | |
it's too visually similar to the compiler features table... but I like where this is going. | 07:00 | ||
07:00
domidumont joined
07:01
xdbr left
|
|||
jnthn | morning, #perl6 | 07:04 | |
moritz | \o | ||
07:04
xdbr joined
|
|||
masak | lol good moritz jnthn! | 07:05 | |
sorear | o/ jnthn | 07:06 | |
07:12
erkan joined,
erkan left,
erkan joined
|
|||
dalek | ar: 067fc69 | moritz++ | skel/Configure.pl: forgot one version update |
07:12 | |
jnthn | Q. How do you know a Star release is in progress? A. At least one "oops, I forgot to update this piece of duplicated information" commit flies by. | 07:14 | |
moritz++ for getting started on it :) | |||
jnthn really thinks we need something that takes a bit more of the manual work out of producing Star releases. | 07:15 | ||
masak looks for, but doesn't find, the "YA THINK" rage face | 07:17 | ||
er, "YA THINK?" | |||
sorear | gist.github.com/2767337 I am now swapping | 07:28 | |
sorear goads masak into asking probing questions. | 07:30 | ||
masak | don't feel dirty. cheating is technique. :) | ||
I don't have any probing questions. I just think it's an interesting direction. might yield some advantages that we don't see right now. | 07:31 | ||
sorear | masak: yeah, I also think that since Rakudo is moving towards bootstrapping, Niecza moving away would help explore design space | 07:36 | |
masak | exactly. | 07:39 | |
07:41
tyatpi left
07:43
replore_ left
|
|||
moritz | "The setting is not compiled, it's all C# code: How will bounded serialization cope with version skew then? | 07:44 | |
" | |||
which version skew? | |||
tadzik: is ufobuilder gone? | 07:46 | ||
seems like | 07:47 | ||
dalek | ar: 9619c1b | moritz++ | skel/tools/build/Makefile.in: ufobuilder is gone do not try to install it anymore |
||
07:49
kaleem left
|
|||
Woodi | hallo | 07:50 | |
masak | Woodi! \o/ | 07:52 | |
Woodi | perl6 -v gives 'This is perl6 version 2012.04.1 built on parrot 4.3.0 revision 0'. Would be nice if it say 'Star' somewhere, at least it is helpful for me... | ||
07:52
kaleem joined
|
|||
masak | huh. ufobuilder. the things people come up with... :) | 07:52 | |
07:53
[hds] joined
|
|||
masak | ufo is meant as a tool for developers. it's not for end users of a module. | 07:53 | |
moritz | Woodi: I've opened github.com/rakudo/star/issues/7 for you | ||
Woodi | btw. backlogging yesterday evening makes me think we starting to be short on goals, clearly visible goals... | 07:54 | |
moritz: thanx :) | |||
moritz | I can't speak for everybody, but I have very clear goals | ||
masak | well, depends what you mean. | 07:55 | |
Woodi | masak: ufo is realy usable, simple and clean to use tool... | ||
masak | it could be argued that at some point, we should do a similar kind of thrust and goal-picking as with Star in 2009. | ||
sorear | btw, tomorrow I'm going to draft a letter to Mark Overmeer, if noone beats me to it | 07:56 | |
masak | ++sorear | ||
moritz | sorear: on what topic? | ||
masak | Woodi: heh! ufo is bloated with featuritis and probably does about twice of what it should :) | 07:57 | |
moritz | ... except for the really interesting things :( | ||
sorear | moritz: having cpan6.org redirect to modules.perl.org or something else | ||
Woodi | but gets works done in few secs :) | ||
moritz | in particular, it doesn't get dependencies right | ||
masak | moritz: intra-module dependencies? | ||
moritz | masak: yes | 07:58 | |
masak | do you have a concrete example? | ||
moritz | in JSON::Tiny, when I edit Grammar.pm, Tiny.pm doesn't get recompiled on 'make test'' | ||
though now that I think of it, my Makefile might be old. Lemme re-check | 07:59 | ||
Woodi | btw. my problems on segfaulting with blib/* on OpenBSD gone now and I think it probably was too long patch for gmake or something... | ||
sorear | I have been informed by a friend of mine (who is possibly going to try to hire me next week) that cpan6.org and Overmeer is currently one of the loudest voices visible from outside the p6-bubble, and is sending an unintentionally negative message | 08:00 | |
moritz | that's interesting to hear | 08:01 | |
masak | yes, very. | ||
sorear | gist updated with some new thoughts | 08:05 | |
08:06
cognominal left,
cognominal joined
|
|||
sorear | another thought which is crossing my mind is, how feasible would it be to eliminate the C# globals like Kernel.IntMO and force all boxing to go through something less direct? | 08:13 | |
08:14
fhelmberger joined
|
|||
sorear | towards the question of "how little hell can break loose if two COREs are allowed to coexist in a compartment?" | 08:15 | |
eh. sleep& | |||
masak | 'night, sorear. | 08:18 | |
dream of heading in yet-untried directions. | |||
08:24
NamelessTee joined
08:30
kresike joined
|
|||
kresike | hello all you happy people ! | 08:30 | |
masak | kresike! \o/ | 08:36 | |
kresike | masak, o/ | ||
08:38
dakkar joined
08:45
jrockway_ left,
jrockway joined
08:48
daxim joined
|
|||
tadzik | moritz: yes, I removed it | 08:48 | |
masak: ufobuilder was a PoC Pies implementation | 08:49 | ||
masak | ok. | 08:53 | |
08:53
brrt joined
08:56
NamelessTee left,
NamelessTee joined
|
|||
masak is finally backlogged | 08:57 | ||
next time I'm away, I'd appreciate it if everyone refrained from speaking so much. :P | |||
masak .oO( was it something I said...? ) | 09:08 | ||
kresike | masak, you either sleep less, or put a borg implant in your head and be here while sleeping :) | 09:09 | |
masak | that sounds fantastic. | 09:11 | |
kresike .oO( when does this masak character find time to write books about perl6 if he's online and working on developing it all the time ? ) | 09:12 | ||
09:13
ab5tract joined
|
|||
masak | metaphors related to time are odd. you neither "have time" or "find time". it keeps flowing through you, like a stream-based database, or the twitter firehose. | 09:14 | |
the only thing you can do is "seize the day". :) | |||
kresike | One whole day ? That's a lot of time ... | 09:16 | |
Can't you "seize" say an hour or just a few minutes ? | |||
masak | you can seize any free contiguous period of time for any purpose. | 09:18 | |
I hope everyone has seen rjbs.manxome.org/rubric/entry/1959 -- HN thread: news.ycombinator.com/item?id=4006150 | 09:19 | ||
moritz | rjbs++ | 09:23 | |
Woodi | can someone blog about latest Star ? there are things I have _no_idea_ how to sort them :) my list: lib.pm, roundrobin, how to use tag names, use with positional, why Real must be role, version literals. or maybe 2 blogs ? :) | 09:42 | |
masak | sounds worthwhile. | 09:43 | |
sounds like something we should do on a regular basis, actually. | 09:44 | ||
moritz | fwiw I've can't remeber ever needing roundrobin | 09:45 | |
I simply implemented it because it's in the specs and in the tests | |||
09:53
cognominal left
09:54
cognominal joined
|
|||
masak | roundrobin sounds a bit like "oh, but someone might want *this* semantics that we didn't put into infix:<Z>" -- "who, exactly?" -- *waves hands* | 09:54 | |
moritz | aye | 09:55 | |
masak | r: .say for roundrobin(1, 2, 3; 4, 5, 6) | 09:57 | |
p6eval | rakudo dca0fa: OUTPUT«142536» | ||
masak | \o/ | ||
r: my @a = <a b c d e>; my @b = <f g>; .say for roundrobin(@a, @b) | 09:58 | ||
p6eval | rakudo dca0fa: OUTPUT«afbgcde» | ||
moritz | r: .say for roundroubin(<a b c>; <X Y>; 3, 4) | ||
p6eval | rakudo dca0fa: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&roundroubin' called (line 1)» | ||
moritz | r: .say for roundrobin(<a b c>; <X Y>; 3, 4) | ||
p6eval | rakudo dca0fa: OUTPUT«aX3bY4c» | ||
masak | "Did you mean: &roundrobin" :P | ||
dalek | ar: 15013ee | moritz++ | skel/docs/UsingPerl6-draft.pdf: update Using Perl 6 to 2012.05 snapshot |
10:00 | |
ar: 281ce87 | moritz++ | skel/docs/announce/2012.05: prepare release announcement |
|||
moritz | everybody, please review and improve the announcement | ||
and please do it *before* I release :-) | |||
RC tarball forthcoming soon | 10:01 | ||
10:03
thou joined
|
|||
felher | moritz: basic support for Version literlas <--- should Version start upper case? | 10:05 | |
jnthn | Version is a type name | ||
So I guess so | |||
I hope it's spent "literals" too ;) | |||
moritz hopes it's spelled "literals" too :-) | 10:06 | ||
felher | Yes, it is :) | ||
masak | I hope it's spelled "spelled", too ;) | 10:07 | |
jnthn | :P | ||
moritz eats some spelled bread. Erm wait, spelt! | 10:09 | ||
better spelt than spoiled | |||
sjn | what typo f bread is that? :) | ||
10:10
Guest91692 left
|
|||
moritz | r: sub typo-f($x) { $x.WHAT.gist }; class Spelt is Str { }; my $x = nqp::box_s('bread', Spelt); say typo-f($x) | 10:11 | |
p6eval | rakudo dca0fa: OUTPUT«Spelt()» | ||
sjn | itym "It's a correctly Spelt bread" :) | 10:13 | |
moritz | r: sub typo-f($x) { $x.WHAT.gist }; class Spelt is Str { }; my $x = Spelt('bread'); say typo-f($x) | ||
p6eval | rakudo dca0fa: OUTPUT«No such method 'Spelt' for invocant of type 'Str' in <anon> at src/gen/BOOTSTRAP.pm:799 in any <anon> at src/gen/BOOTSTRAP.pm:796 in block <anon> at /tmp/TfQKJis3Q_:1» | ||
sjn | (or alternatively, my jokes are too convoluted :-P) | ||
masak | sjn: like pretzels. | 10:14 | |
moritz | somehow it always hurts my eyes to see the word "pretzels" | 10:15 | |
10:15
bonsaikitten left
|
|||
moritz | because I come from a region where people regularly confuse and interchange 'b' and 'p', but always pronounce it as 'b' | 10:15 | |
and it's spelled with a 'B' in German :-) | |||
10:16
lestrrat left
10:17
lestrrat joined
|
|||
masak | arguably "b" makes more sense than "p". | 10:18 | |
moritz | at least the capital B :-) | ||
10:20
bonsaikitten joined
10:22
drbean left
10:24
drbean joined
10:27
tests joined
|
|||
tadzik | could someone install znc on feather? | 10:48 | |
jnthn -> station | 10:55 | ||
11:00
brrt left
11:04
drbean left
11:07
drbean joined
11:08
ab5tract left
11:13
tyatpi joined
|
|||
dalek | blets: 84339ac | raiph++ | docs/appendix-b-grouped.txt: Rename Callframe Methods section to Callframes. Fill out Callframes section. |
11:16 | |
blets: f2a093d | (Herbert Breunung)++ | docs/appendix-b-grouped.txt: Merge pull request #10 from raiph/patch-1 Rename Callframe Methods section to Callframes and fill out section. raiph++ |
|||
11:17
sisar left
11:18
MayDaniel joined
11:19
JimmyZ joined
11:34
benabik left
11:39
snearch joined
|
|||
[hds] | r: my %h; %h<mog>.defined; | 11:47 | |
p6eval | rakudo dca0fa: ( no output ) | ||
moritz | [hds]: you need to produce output, with say() or print() or so | 11:48 | |
[hds] | moritz: yep, forgot that bit. (-; | ||
but is that the correct way to check if a key has been assigned a value? | |||
moritz | well | ||
[hds] | r: my %h; say %h<mog>.defined; | ||
p6eval | rakudo dca0fa: OUTPUT«False» | ||
moritz | r: my %h; %h<mog> = Int; say %h<mog>.defined | 11:49 | |
p6eval | rakudo dca0fa: OUTPUT«False» | ||
moritz | I've assigned a value, but it's not defined | ||
[hds] | hmmmmm, right. | ||
moritz | if you're not happy with that output, use | ||
r: my %h; %h<mog> = Int; say %h.exists('mog') | |||
p6eval | rakudo dca0fa: OUTPUT«True» | ||
[hds] | moritz: is there a better way of doing that? | ||
moritz | according to spec, that should be %h<mog>:exists; | ||
but rakudo doesn't implement that part yet :( | 11:50 | ||
[hds] | r: my %h; %h<mog> = []; say %h<mog>.defined; | ||
p6eval | rakudo dca0fa: OUTPUT«True» | ||
[hds] | that's good enough for me. (-: | ||
masak | well, something can be undefined but still exist as a key. | 11:51 | |
undefined as a value but still exist as a key, I should say. | |||
11:53
xjiujiu left
11:58
benabik joined
|
|||
moritz | r: my %h; %h<mog>.push: 1; say %h.perl | 12:02 | |
p6eval | rakudo dca0fa: OUTPUT«("mog" => [1]).hash» | ||
12:03
bluescreen10 joined
|
|||
masak | r: say now | 12:03 | |
p6eval | rakudo dca0fa: OUTPUT«Instant:1337688247.873362» | ||
masak | r: say now R- now | ||
p6eval | rakudo dca0fa: OUTPUT«0.02538074» | ||
masak | r: my $t = now; my @a; push @a, $_ for 1..100; say now - $t | 12:04 | |
p6eval | rakudo dca0fa: OUTPUT«0.0763741» | ||
12:04
brrt joined
|
|||
masak | r: my $t = now; my %h; %h{$_} = $_ for 1..100; say now - $t | 12:04 | |
p6eval | rakudo dca0fa: OUTPUT«0.0292684» | 12:05 | |
masak | use hashes for all your array needs. they're faster. :P | ||
moritz | r: my $t = now; my @a; loop (my $i = i; $i <= 100; $i++) { @a.push: $i }; say now - $t | ||
p6eval | rakudo dca0fa: OUTPUT«Cannot call 'Real'; none of these signatures match::(Mu:U \$v, Mu *%_) in method Real at src/gen/CORE.setting:674 in sub infix:<<=> at src/gen/CORE.setting:2437 in sub infix:<<=> at src/gen/CORE.setting:2437 in block <anon> at /tmp/4t5wMHgLOr:1»… | ||
moritz | erm, what? | 12:06 | |
masak submits rakuodbug | |||
pmichaud | good morning, #perl6 | ||
phenny | pmichaud: 21 May 18:33Z <jnthn> tell pmichaud 56d136a takes a crack at extending LTM transitivity into protoregexes. It adds time to build the NFA (a good bit for term), but OTOH seems that we trim a load more early. We'd probably do better if <ident> got an NFA - suggestions? | ||
masak | moritz: oh! | ||
moritz: my $i = i | |||
moritz | oh. | ||
r: my $t = now; my @a; loop (my $i = 1; $i <= 100; $i++) { @a.push: $i }; say now - $t | |||
p6eval | rakudo dca0fa: OUTPUT«0.05333191» | ||
moritz | masak++ | ||
\o pmichaud | 12:07 | ||
masak | right. hashes are still faster, but some of the speed penalty is from the for loop. | ||
pmichaud! \o/ | |||
12:07
brrt left
|
|||
moritz | Rakudo Star release candidate at moritz.faui2k3.org/tmp/rakudo-star-....05.tar.gz | 12:07 | |
masak | moritz++ | 12:08 | |
pmichaud | phenny: tell timtoady how strongly do you feel about RT #113026 (irclog.perlgeek.de/perl6/2012-05-21#i_5619358). I thought about it some overnight, and auto-detecting modifications to the array during iteration seems contrary to immutable iterators. | 12:10 | |
phenny | pmichaud: I'll pass that on when timtoady is around. | ||
12:10
cognominal left,
cognominal joined
12:14
JimmyZ_ joined
12:15
cognominal left,
cognominal joined
|
|||
felher | Rakudo iterators are immutable? How does that work? Instead of asking a iterator to increment its position, i ask for a new iterator which has a higher position? | 12:15 | |
12:15
JimmyZ left,
JimmyZ_ is now known as JimmyZ
|
|||
moritz | well, they are immutable in the sense that whenever you ask for an iterator, you'll get an iterator that will return the same elements each time | 12:16 | |
it doesn't mean they are actual value types that never change internally | |||
masak | right. "immutability as far as you are concerned" might be a more exact description. ;) | 12:17 | |
felher | Ah, makes sense :) thnx | ||
pmichaud | the case I'm wondering about it something like | ||
moritz remebers "that" session in Oslo :-) | 12:18 | ||
pmichaud | r: my @a = <a b c d e f>; for @a { @a[9] = 'j'; .say }; | ||
p6eval | rakudo dca0fa: OUTPUT«abcdef» | ||
12:19
tyatpi left
|
|||
pmichaud | the only way the 'for' iterator can learn about the 'j' is if it first passes through the 'lazy' part of the array somehow. | 12:19 | |
moritz | more indirection, even slower? | 12:20 | |
12:20
brrt joined,
xinming_ joined
|
|||
pmichaud | essentially, yes. | 12:20 | |
masak smiles happily at the output of 'panda list' | 12:21 | ||
pmichaud | in some sense it would mean that arrays and lists never are truly "fully generated", if there's always the possibility that pushing elements needs to affect existing iterators. | ||
anyway, afk for a bit -- @kids to @school | 12:22 | ||
masak | pmichaud, moritz: ISTR a p6l thread from years back where it was basically decided that for loops did a snapshot and looped on that. | ||
I don't trust my search-fu enough to find that thread again, sadly. | |||
moritz | lol, p6l :-) | ||
12:23
xinming left
|
|||
masak | moritz: the RC seems to work well here. | 12:28 | |
moritz | masak: great. Any obvious mistakes in the announcement? | 12:29 | |
masak++ # testing the RC | |||
12:31
mdupont_ left
12:32
drbean left
12:33
fglock joined
|
|||
masak | moritz: release announcement looks good. | 12:33 | |
moritz | \o/ | ||
I'll wait a bit before releasing, to give others the option to test it too | |||
12:34
drbean joined
|
|||
masak | not sure outsiders care about 'ported from ng branch', but I don't see how it hurts either. | 12:34 | |
12:35
snearch left
12:36
eiro joined
|
|||
eiro | hello world! | 12:36 | |
masak | eiro! \o/ | 12:37 | |
kresike | hi eiro | ||
did you use perl6 to write that ? :) | 12:38 | ||
masak | r: say "hello world!" | ||
p6eval | rakudo dca0fa: OUTPUT«hello world!» | ||
kresike | masak, eiro's version was much cleaner :) | 12:39 | |
masak is delighted at p6eval's response time nowadays | |||
moritz | jnthn++ is largly to blame for that | 12:42 | |
12:43
wolfman2000 left
|
|||
masak | I'll be happy to blame jnthn++ for ever worse atrocities in the future. | 12:43 | |
12:45
adu joined
|
|||
dalek | blets: 22a6721 | (Herbert Breunung)++ | docs/ (3 files): explain, link and pave way for the ternary operator |
12:45 | |
felher | Yeah. I'm starting to use nom in little every-day-scripts, because i don't have to wait 15 seconds everytime i hit <CR> anymore. That's just amazing :) | 12:47 | |
masak | it's a force multiplier. | 12:48 | |
12:51
bluescreen10 left
|
|||
masak | so is getting features well-documented, error messages clear, and implementations available on various Linux distros. | 12:52 | |
moritz | aye. | ||
felher | :) | ||
moritz | Currently I think that our really, really weak spot is documentation | ||
we have progressed in most other areas (compiler features, resource usage, error messages, module system) | 12:53 | ||
masak | I think you're right. | ||
[Coke] | +# 05/21/2012 - rakudo++ (22246); niecza (91.54%); pugs (34.81%) | ||
(slight drop by niecza, more failures) | |||
masak | moritz: I'd like to arrange a hackathon where we fix this. | ||
moritz: one weekend of focused hacking by ~5 people should work in getting something significant in place. | 12:54 | ||
moritz | masak: count me in (modulo time/travel costs, as always) | ||
masak | and meeting up might combat the extreme thanklessness of working on documentation solo. | ||
masak dubs this future hackathon "the u4x hackathon", just because :) | 12:55 | ||
moritz | I remember working on the book when I didn't feel like the only one. It was great | ||
12:55
daxim left
|
|||
masak | moritz: part of the reason I'm not working on the book is that it's non-trivial to build. | 12:55 | |
the bar is higher than it need be. | |||
moritz | masak: the HTML version is trivial to build | 12:56 | |
masak | ok. | ||
good to know. | |||
moritz | 'make html' | ||
works without the whole latex craziness | |||
masak | excellent. | 12:57 | |
moritz | it might currently miss the pictures, but iirc we only have one or two anyway | 12:58 | |
Juerd | 14:56 < moritz> works without the whole latex craziness | 13:00 | |
PerlJam | moritz: FYI, the book is bubbling up my list of things to do. As crazy as it sounds, I'm hoping (again) we can generate something "publishable" this year :-) | ||
Juerd grins | |||
moritz | Juerd: I'm not refering to merely needing latex and one, two packages | 13:01 | |
Juerd | Two packages. Oh my. | ||
moritz | "not [...] merely" | 13:03 | |
13:03
cognominal left
|
|||
masak | referring # unless you're RFC 1945 :) | 13:03 | |
13:04
PacoAir joined
|
|||
moritz is later than 1945 :-) | 13:04 | ||
13:04
cognominal joined
|
|||
masak | so you should get it right :P | 13:04 | |
masak .oO( keep up! ) | |||
:P | |||
Juerd | We'll be stuck with "Referer" for ever. | 13:06 | |
13:06
leprevost joined
13:07
bluescreen10 joined,
Psyche^ joined
|
|||
moritz | and, what was it, something_CREAT | 13:08 | |
masak | creat(2) | ||
linux.die.net/man/2/creat | |||
moritz | O_CREAT, O_EXCL, O_TRUNC in man 2 open | ||
masak | well, software engineering has expanded in the past few decades into a space where identifiers can breathe properly. | 13:09 | |
moritz | afaict in rakudo we still look up variables by name quite a bit | 13:10 | |
so your programs actually do use less resources if you use short variable names :-) | |||
masak | pfeh. | ||
felher | *lol* | ||
13:10
Patterner left,
Psyche^ is now known as Patterner
|
|||
masak | in other news, if you take shallower breaths, the air will last longer. | 13:10 | |
recommended practice is to hyperventilate really rapidly. | 13:11 | ||
moritz | I wonder if that one is actually true | ||
13:11
stol_ joined
|
|||
moritz | (the shallower breathing, not the hyperventilating) | 13:11 | |
13:11
stol_ is now known as kj
|
|||
masak | I have no idea. | 13:12 | |
if it helps for the analogy, take something that's obviously true: toothpaste, even when used once, works even the day after. so you can save it in a small cup and save some resources! | 13:13 | ||
only need to buy half as much toothpaste. | 13:14 | ||
moritz | well, I never said it's a good idea to use short variables, or that the savings are big :-) | ||
masak | I know, I know. | ||
:) | |||
13:39
leprevost left
|
|||
brrt | moritz: thats probably not true (about the shallower breaths) | 13:45 | |
masak | indeed. feels like hyperventilating would use up oxygen faster, not slower. | 13:46 | |
moritz | brrt: yes, I guess the body just takes what oxygen it needs. If it can't, you'll become unconscious pretty quickly | ||
brrt | supposing you still breathe enough for normal metabolism, you'll simply exhale relatively more co2 | ||
hyperventilating makes you dizzy because it makes the blood less acidic | 13:47 | ||
not much to do with o2, a lot with co2 | |||
anyway, rant off :-) | 13:48 | ||
masak | interesting. | ||
13:49
cognominal_ joined
|
|||
masak | I was once told that air in a room with people and no ventilation feels "used up" not because the o2 runs out, but because it becomes somewhat saturated with co2. | 13:49 | |
moritz | yes, c02 becomes poisonous for the human body much faster than the O2 reduction becomes threatening | ||
benabik | Your body has basically no way to measure oxygen... It kinda guesses based on CO2 levels. | 13:50 | |
You learn a lot about gas exchange and the like when you do SCUBA. | 13:51 | ||
moritz | it has to do with the bindinig affinity of Hemoglobin to O2 and C02 | ||
and because CO has such a high affinity, it's toxic | |||
cognominal_ | p6: 'a' ~~ /a/; say ~$/.WHAT | ||
p6eval | rakudo dca0fa: OUTPUT«use of uninitialized value of type Match in string context in block <anon> at /tmp/gWZAhVgVyY:1» | ||
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** Can't locate P… | |||
..niecza v17-23-gfb775fb: OUTPUT«» | |||
moritz | rakudo++ | 13:52 | |
13:52
cognominal left
|
|||
moritz | niecza++ has the same result, but without warning. Odd | 13:52 | |
cognominal_ | p6: 'a' ~~ /a/; say $/.WHAT | 13:53 | |
p6eval | pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runtime::Match::HsBridge'"*** Can't locate P… | ||
..rakudo dca0fa, niecza v17-23-gfb775fb: OUTPUT«Match()» | |||
13:53
kaleem left,
n0den1te joined
13:54
drbean left
|
|||
cognominal_ | I am always confused with the string value of a type. :( | 13:54 | |
moritz | cognominal_: (nearly) all types stringify to the empty string | 13:55 | |
n0den1te | r: say ~Int | ||
p6eval | rakudo dca0fa: OUTPUT«use of uninitialized value of type Int in string context in block <anon> at /tmp/hcgEyuGIO4:1» | ||
moritz | and warn | ||
just like undef in p5 | |||
13:55
benabik left
|
|||
cognominal_ | yes, but I keep forgetting it. | 13:55 | |
13:55
benabik joined
|
|||
n0den1te | r: Int.perl.say | 13:55 | |
p6eval | rakudo dca0fa: OUTPUT«Int» | ||
13:55
drbean joined,
bonsaikitten is now known as DrEeevil
|
|||
n0den1te | "~" doesn't stringify? | 13:55 | |
13:56
DrEeevil is now known as bonsaikitten
|
|||
masak | n0den1te: it does. | 13:56 | |
n0den1te: but you get a warning when you try to do it on a type object, which was what cognominal_ did. | |||
n0den1te | masak: so should MyType.perl.say | ||
moritz | r: say Int.^name | 13:57 | |
p6eval | rakudo dca0fa: OUTPUT«Int» | ||
n0den1te | masak: I may be wrong, but that one looks inconsistent to me. | ||
masak reads about redox reactions, and wishes he could go back in time a few centuries and explain these things to an alchemist | |||
n0den1te | masak: redox? macros? :D | ||
moritz | masak: that and the periodic table :-) | ||
13:57
leprevost joined
|
|||
n0den1te | Yeah, you're *that* guy. | 13:57 | |
masak | n0den1te: .perl and stringification aren't the same thing. | ||
n0den1te: :P | |||
cognominal_ | I would prefer it to return Int:U for example | ||
moritz | but Int !~~ Int:U | 13:58 | |
13:58
benabik left,
benabik joined
|
|||
brrt | backlog: the whole 'poisonous' thing of CO2 is because it forms the blood acid-base buffer system | 13:58 | |
and proteins are rather sensitive to acidity | |||
cognominal_ | I meant "Int:U" | ||
moritz | cognominal_: but where would that be useful? | 13:59 | |
n0den1te | brrt: if you're talking of enzymes as proteins, then yeah - but then, I'm no biochemist. :P | ||
cognominal_ | r: say Int ~~ Int:U | 14:00 | |
p6eval | rakudo dca0fa: OUTPUT«True» | ||
masak | r: say Int:U ~~ Int:D | ||
p6eval | rakudo dca0fa: OUTPUT«True» | ||
masak | r: say Int:D ~~ Int:U | ||
p6eval | rakudo dca0fa: OUTPUT«True» | ||
brrt | all proteins :-) because the charge on amino acids depends on the acidity of the enviroment, and protein folding depends on the charges of amino acids | ||
masak | the smilies are probably transparent to smartmatching. | ||
moritz | cognominal_: we have the .Str/.gist distinction precisely because we want something (.gist) that returns more debugging info, and something (.Str) that doesn't clutter up our strings | ||
masak: they are simply ignored anywhere except in signatures | 14:01 | ||
known limitation | |||
dalek | blets: 4e3f84c | (Herbert Breunung)++ | docs/appendix-g-glossary.txt: linkfixes in nav menu |
||
moritz | r: my Int:D $x = Int; | ||
p6eval | rakudo dca0fa: ( no output ) | ||
masak | moritz: ok. | ||
n0den1te | we are dying a slow death because we got degenerate enzyme reactions. :) | 14:02 | |
cognominal_ | I know there is a rational and that I keep forgetting it. | ||
brrt | n0den1te: thats one way to see it | ||
14:03
lestrrat left
|
|||
dalek | blets: 26cc707 | (Herbert Breunung)++ | docs/appendix-g-glossary.txt: format fix in ternary entry |
14:03 | |
14:03
n0den1te is now known as isBEKaml
14:04
lestrrat joined
|
|||
cognominal_ | ...probably because it makes me unconfortable. | 14:04 | |
masak | isBEKaml: I'm not sure that's entirely fair to enzymes. :) most of the reactions keep us alive for years and years. | 14:05 | |
isBEKaml | masak: sure, yeah. Just tell them to reuse all that wasted energy in reactions! :P | 14:06 | |
masak | enzymes are often extremely energy-efficient at what they do. Nature has had billions of years traversing configuration spaces. | 14:07 | |
cognominal_ | speaking of RNA and proteins, I am reading Koonin, E. V. 2011. The Logic of Chance: The Nature and Origin of Biological Evolution. | ||
14:08
buubot_backup left
|
|||
masak | cognominal_: looks interesting. | 14:08 | |
isBEKaml | masak: I can see that coming from atleast 2 sources I read. One was the big encyclopedia of a book for biotechnologists (don't remember the name) and the other from Dawkins. :) Not to take anything away from you, ofcourse. | 14:09 | |
cognominal_ | avoid the kindle version. | ||
14:10
wtw left
|
|||
cognominal_ | I lack physical space and I keep being burnt buying kindle. :( | 14:10 | |
Even displayed on a iPad, it is shit. | |||
isBEKaml | cognominal_: sure looks interesting. I vaguely remember sifting through pages in a bookstore... | 14:12 | |
.oO(Where did enzymes get into #perl6? ) |
14:14 | ||
moritz | through breathing, I believe :-) | ||
cognominal_ | genomics is (so far) an epic failure as helping fighting disease but it is great to understand evolution. | ||
moritz | we do breathe while hacking | ||
masak | they've been here for years! o.O | ||
cognominal_: how is it an epic failure? (not challenging this, just curious) | 14:15 | ||
isBEKaml | bah, #perl6 is all 1 and 0s | ||
moritz | cognominal_: is it? (genomics being an epic failure fighting diseases) | ||
cognominal_: got any more material about that? | 14:16 | ||
isBEKaml | moritz: I think he's referring to the whole genome sequencing exercise than the attempt to tackle diseases. | ||
moritz | cognominal_: I kinda thought that it helped a lot, albeit indirectly (ie helped understanding some biochemstry, which then in turn lead to better medication) | ||
14:16
lestrrat left
|
|||
isBEKaml | moritz: not that genome sequencing has been a failure, it's just too complex to be tackled by a select group of people, even as they are competent at what they do. | 14:17 | |
14:17
lestrrat joined
|
|||
moritz | I know that some people said things along the lines of "once we got the human genome sequenced, we can just identify all diseases and engineer medications for them" | 14:18 | |
brrt | i kind of agree with the genomics statement | ||
cognominal_ | moritz: that's the point. It has been sold as solving problems when it is just a precondition to solve them. | ||
brrt | people in the 90s believed that if they knew the whole genome they would know all diseases | ||
moritz | cognominal_: ok, that I can readily agree with | ||
adu | hi | ||
cognominal_ | I am searching a Craig Venter quote about that. | ||
brrt | moritz beat me too it | ||
masak | hi adu! | 14:19 | |
moritz | hello adu | ||
adu | :) | ||
moritz: SMOE | |||
masak | yeah, just reading out the base pairs doesn't cure desease. I agree too :) | ||
moritz | people also believed some crazy stuff about Perl 6 solving all their computing problems :-) | ||
isBEKaml | *lol* | 14:20 | |
moritz | adu: SMOE? | ||
masak | what, you mean it won't!? | ||
cognominal_ | Also, we have discovered we need to understand the proteome of stuff living in our guts as well to do any progress to understand human biology. That enlarges the problem space a lot. | ||
adu | Simple Matter of Engineering | ||
masak | I've spend all this time on Perl 6, and now you're telling me it won't even solve the Halting Problem? | ||
moritz | adu: ah, right. :-) | ||
masak: it might give you the proverbial shotgun :-) | 14:21 | ||
kresike | moritz, perl5 already did that :o) | ||
masak .oO( Perl 6 gives you enough shotguns to hang yourself ) | |||
moritz | I'm kinda fond of that quote (don't know the exact words, or who uttered it): if Perl 5 gives you a swiss army chain saw, perl 6 gives you the swiss army | 14:22 | |
kresike | masak, now the problem is tying them together | ||
adu | cognominal_: guts are complicated | ||
isBEKaml | masak: Perl6 gives you enough needles to pierce yourself with. It's just that you won't feel anything until you die. :P | ||
adu | moritz: I said that | ||
moritz | adu: you did? adu++ | ||
#perl6: resolving questions about quotes by having the original author present :-) | 14:23 | ||
adu | but I think my exactish words were: if Perl5 is a swiss army knife, then is Perl6 the entire swiss army? | ||
irc logs might also help | 14:25 | ||
moritz | yes; *handwave* | ||
isBEKaml | adu: moritz++ set up these irclogs. :) | ||
masak | moritz++ | 14:26 | |
adu | moritz++ | ||
isBEKaml | moritz: selective amnesia? ;) | ||
cognominal_ | moritz++ | ||
adu | isBEKaml: is that the lazy version of shooting yourself in the foot? | ||
moritz | isBEKaml: what? did we talk about anything earlier? | ||
isBEKaml | adu: that's what I was alluding to. glad you caught it. :D | 14:27 | |
moritz: no, you forgot about irclogs. :P | |||
moritz | I did? :-) | ||
14:29
buubot_backup joined
|
|||
cognominal_ | moritz: reading stuff like www.spiegel.de/international/world/...4,00.html, it seems that genomics will help design synthetic cells to replace huge factories we currenly used to produce many molecules. | 14:29 | |
14:29
PacoAir left
|
|||
masak | isBEKaml: I thought moritz was referring to his irclog when he said "*handwave*" above. | 14:30 | |
moritz was | 14:31 | ||
isBEKaml | masak: late realisation, yeah. | 14:32 | |
cognominal_: what's APoE? | 14:34 | ||
adu makes coffee | 14:38 | ||
isBEKaml | cognominal_: never mind. found it. Apoliprotein E, apparently - Wiki says it's the gene that's mostly the main culprit behind brain/neural diseases like Alzheimer's. | 14:39 | |
masak | isBEKaml: "Wiki" is not an unambiguous shortening of "Wikipedia". there are thousands of wikis in the world, of which Wikipedia is but a very important one. | 14:40 | |
I've seen people use "wp" as a short form. | 14:41 | ||
cognominal_ | I say wp as a short for wikipedia | ||
isBEKaml | masak: yes, lazy fingers. too much typing all day. :( | ||
masak finds WikiPathways: www.wikipathways.org/index.php/Pathway:WP430 | 14:43 | ||
14:45
isBEKaml left
|
|||
PerlJam | wp == wordpress for me :) | 14:51 | |
moritz | wordpedia :-) | ||
14:55
slavik1 joined
|
|||
adu | karma adu | 14:56 | |
aloha | adu has karma of 5. | ||
adu | yey | 14:57 | |
masak | \o/ | 15:01 | |
courtesy of the entire swiss army. :) | |||
adu | I noticed that commit messages have username increments | 15:02 | |
moritz | yes | ||
give us patches, get karma in return :-) | |||
adu | maybe I should contribute something :) | ||
15:02
mikemol joined,
tests left
|
|||
masak | commits are a tolerated way to subvert the karma system :) | 15:03 | |
TimToady superverts the karma system :) | 15:04 | ||
phenny | TimToady: 12:10Z <pmichaud> tell TimToady how strongly do you feel about RT #113026 (irclog.perlgeek.de/perl6/2012-05-21#i_5619358). I thought about it some overnight, and auto-detecting modifications to the array during iteration seems contrary to immutable iterators. | ||
15:28
MayDaniel left
15:29
thou left
15:30
derrazo joined,
derrazo left
15:31
fgomez left
|
|||
TimToady | phenny: tell pmichaud I feel pretty strongly, but I think I don't want as much as you guys think I want. You can read a file that is growing, and it only matters when you hit the current end, no the end when you started. Buffering is fine, snapshotting existing elements is fine. Just go back and see if it has grown when you hit the end. | 15:34 | |
phenny | TimToady: I'll pass that on when pmichaud is around. | ||
15:36
sisar joined,
fglock left
|
|||
TimToady | phenny: tell pmichaud It's only one extra check for any array that hasn't grown. Arrays and lists can both be defined lazily; the issue isn't immutability here, but policy toward changing your mind; the API disallows it with a list, but changing existing elements of an iterating array is merely erroneous. | 15:38 | |
phenny | TimToady: I'll pass that on when pmichaud is around. | ||
15:39
kaleem joined
15:43
fgomez joined
15:44
thou joined
|
|||
Woodi | :wq | 15:47 | |
hugme hugs Woodi, good vi(m) user! | |||
TimToady | phenny: tell pmichaud I think this is an area where a tagmemic "you can use an array as a list" is warranted; it's a relatively cheap check; it enables a bit more cargo-cult learning (a Perl feature, you'll recall); and it preserves the abstract idea of the array's identity longer | 15:48 | |
phenny | TimToady: I'll pass that on when pmichaud is around. | ||
15:50
kaleem left
15:55
BinGOs left
15:57
JimmyZ left
|
|||
PerlJam | TimToady: so, changing at the end is okay, but not in the middle? | 15:59 | |
16:00
brrt left,
sergot joined
|
|||
sergot | hi o/ | 16:00 | |
16:00
SDKLive joined
|
|||
kresike | bye all | 16:00 | |
16:00
kresike left
|
|||
SDKLive | hi all | 16:01 | |
16:01
[hds] left
|
|||
masak | hi, SDKLive | 16:01 | |
SDKLive | i m new to perl | ||
16:01
BinGOs joined
|
|||
masak | SDKLive: how do you like it so far? | 16:01 | |
SDKLive: are the perl people treating you well? are you getting the help and nourishment you require? :) | |||
SDKLive | came to perl irc for the first time | 16:02 | |
it feels good | |||
masak | ooh! | ||
r: say "welcome, SDKLive! »ö«" | 16:03 | ||
p6eval | rakudo dca0fa: OUTPUT«welcome, SDKLive! »ö«» | ||
SDKLive | so what is the best way to lern perl ? | ||
masak | a combination of reading stuff and trying stuff out, I would say. | ||
be sure to check out learn.perl.org/ | |||
also www.onyxneon.com/books/modern_perl/index.html | |||
SDKLive | any good books with good examples you people recommend | ||
masak | and of course shop.oreilly.com/product/9780596004927.do | 16:04 | |
sisar | SDKLive: just to be sure, you are aware of the difference between perl and perl6 ? | ||
masak | beyond that, it depends what you need. | ||
SDKLive | thx for the help | 16:05 | |
masak | no problemo | ||
SDKLive | what perl 6 ? | ||
masak | hope you got what you came for. | ||
Perl 6 is a branch of the very popular Perl language. | |||
SDKLive | what about perl 6 ? when its going come in action | ||
masak | whenever you run it on your computer. :) | ||
r: say "here I am!" | |||
p6eval | rakudo dca0fa: OUTPUT«here I am!» | ||
masak | r: say [+] 1, 2, 3, 4 | 16:06 | |
p6eval | rakudo dca0fa: OUTPUT«10» | ||
moritz | (rakudo is the name of a Perl 6 compiler) | ||
SDKLive | hmm.. | ||
masak | r: class Frog { method croak { say "croooaaak!" } }; Frog.new.croak | ||
p6eval | rakudo dca0fa: OUTPUT«croooaaak!» | ||
sisar | SDKLive: www.perl6.org/. And this channel is mainly for #perl6. Thogh we don't mind perl at all :) | ||
And you might also want to checkout #perl | 16:07 | ||
masak | at your own peril. | ||
sisar | masak: #perl is perilious ? | ||
sorear | good * #perl6 | ||
flussence | .oO( it's perlious... ) |
||
masak | sisar: opinions differ. I can't be there for long. too abrasive. | ||
sisar | sorear: p/ | 16:08 | |
masak | sorear! \o/ | ||
sisar | *o/ | ||
flussence: :) | |||
masak .oO( sisar waves and gets hit by a snowball ) | |||
masak ==> le shoppe | |||
SDKLive | hey perl 6 got released or what? | 16:09 | |
PerlJam | perl 6 was being held prisoner? | ||
moritz | SDKLive: we've had monthly releases for the last ~30 months | ||
SDKLive | ok | ||
that means its getting better monthly.. | 16:10 | ||
sisar | SDKLive: it is incorrect to say perl6 has been released or not, it is more correct to say if a compiler has been released or not, since there are multiple compilers for perl6 | ||
eg. rakudo, niecza, pelrito, pugs, etc. | 16:11 | ||
SDKLive | ok i didnt know about that | ||
every compiler will have different purpose | |||
PerlJam | .oO( I'll have 2 pelritos and a large Dr Pepper ) |
16:12 | |
sisar | SDKLive: perl6.org/compilers/ "Perl 6 is a language specification, and just like C or C++ there are multiple compilers for the language." | ||
PerlJam | SDKLive: I don't know about different purpose, but different focus. | ||
SDKLive | ok | 16:13 | |
PerlJam | SDKLive: They all have a common purpose (implement Perl 6 spec), but each go about it in different ways. | ||
SDKLive | PerlJam: this is interesting | ||
sisar | SDKLive: so let me say this, welcome to #perl6 ! | 16:14 | |
moritz | it's like in politics. Everybody agrees that something must be done about unemployment, but not everybody agrees on the right approach :-) | ||
SDKLive | thank you for the welcome.. | 16:15 | |
sisar | .oO (this remind of that story about four men called Anybody, Somebody, Nobody and Everybody ) | ||
PerlJam | moritz: right approach?!? Give people jobs! Problem solved! ;) | ||
moritz | sisar: "Nobody spat in my face and Everybody laughed" -- that one? :-) | 16:17 | |
SDKLive | thank you everybody for the support | 16:18 | |
bye | |||
sisar | moritz: I was thinking about : www.corsinet.com/braincandy/hlife.html | ||
16:19
SDKLive left
|
|||
sisar | "It ended up that Everybody blamed Somebody when Nobody did what Anybody could have done. " | 16:20 | |
16:22
lestrrat left
16:23
lestrrat joined,
cognominal_ left
16:24
cognominal joined
|
|||
adu | moritz: like the number | 16:33 | |
16:35
lichtkind joined
|
|||
dalek | blets: e2203d0 | (Herbert Breunung)++ | docs/appendix- (2 files): ternary op made me think what belongs where, A <> G |
16:36 | |
blets: bbf5621 | (Herbert Breunung)++ | docs/appendix- (2 files): explain arity |
|||
16:38
itz joined
|
|||
sorear | [Coke]: ping | 16:39 | |
[Coke]: lichtkind is here :) | 16:40 | ||
adu | moritz: www.shadowstats.com/alternate_data/...ent-charts … people can't even agree on the number | 16:47 | |
16:50
PacoAir joined
16:54
thou_ joined,
thou left
16:58
kaare_ joined
17:00
sporous left,
sporous joined
|
|||
sorear | adu: do not forget that moritz is Austrian; presumably they have better data there ;) | 17:01 | |
adu | heh | ||
SGS is U.S. | |||
moritz is not Austrian | 17:07 | ||
adu | moritz: European? | 17:08 | |
German? | 17:09 | ||
17:10
icwiener joined
17:11
kj left
|
|||
adu | how would I go about writing a formatting tool? | 17:14 | |
moritz | German, yes | 17:15 | |
adu | like p6indent or p6fmt | ||
moritz | adu: that kinda depends on your goals | ||
adu: if you're fine with only formatting valid Perl 6, then I'd suggest you use one of the existing parsers to parse it | |||
17:15
birdwindupbird left,
aindilis left
|
|||
moritz | adu: then get a parse tree from that, walk it recursively, and format it | 17:15 | |
adu | my goals would be to parse some modifications to the language, like infix operators, and be somewhat configurable, like FilePackages=false | 17:16 | |
if FilePackages=true, then it would allow class X; but warn if FilePackages=false | |||
kinda how c-indent has options | 17:17 | ||
maybe have output options to, so class X; is rewritten as class X { … } with certain options enabled | 17:18 | ||
or visa versa | |||
lichtkind | sorear: yes | 17:19 | |
17:19
bbkr_ left
|
|||
adu | I could call it vindent | 17:20 | |
17:22
wolfman2000 joined,
adu left
17:25
adu joined,
kresike joined
|
|||
kresike | hi all | 17:26 | |
lichtkind | hai kresike | ||
kresike | hello lichtkind | 17:27 | |
dalek | blets: 6f6ceeb | (Herbert Breunung)++ | docs/appendix-b-grouped.txt: renaming table back to "callframe methods" because its about them and if you want rename it, fix backlinks from A too |
17:35 | |
blets: 94eb17c | (Herbert Breunung)++ | docs/appendix-g-glossary.txt: add next 2 G terms |
|||
blets: 2c4811e | (Herbert Breunung)++ | docs/appendix- (2 files): backlink arity and count |
|||
lichtkind | kresike: can I help? | ||
dalek | blets: 2a00cea | (Herbert Breunung)++ | docs/appendix-g-glossary.txt: having one syntax for "See also:" like in A |
17:38 | |
17:46
tyatpi joined
|
|||
kresike | lichtkind, help with what ? | 17:51 | |
could You somehow upload the perl6 book into my brain :) | 17:52 | ||
17:54
cognominal left,
cognominal joined
|
|||
moritz | cat UsingPerl6.pdf > /dev/brain | 17:54 | |
:-) | |||
kresike | moritz, /dev/brain No such file or directory :) | 17:55 | |
moritz | kresike: create one :-). mknod to the help | ||
kresike | hmmm, maybe I could ask the borg to implant me with a USB 3.0 port ... | 17:56 | |
sorear | >> /dev/brain, rather? | ||
kresike | sorear, lol | ||
17:56
cognominal left
|
|||
kresike | I guess the previous version wouldn't erase much important data ... | 17:56 | |
my name maybe, or date of birth, but not much else | 17:57 | ||
17:57
cognominal joined
17:58
stol_ joined,
cognominal left
|
|||
kresike | moritz, useless, without a device behind it you cannot do anything with it | 17:58 | |
17:58
stol_ is now known as kj,
cognominal joined
|
|||
kresike | maybe ln -s /dev/null /dev/brain | 17:58 | |
btw, is it considered rude for beginners like me to use p6eval ? | 18:00 | ||
PerlJam | kresike: nah, just don't over-use it (like some of the regulars tend to do even :) | 18:01 | |
kresike: btw, you can also /msg it | |||
18:02
dakkar left
|
|||
kresike | PerlJam, yes, I'm doing that ... I'm too shy :) | 18:02 | |
PerlJam | kresike++ | 18:03 | |
kresike | I got the three implementations to give me three different outputs, I consider that a milestone :) | ||
18:03
stepnem left
18:07
stepnem joined
|
|||
kresike | karma kresike | 18:09 | |
aloha | kresike has karma of 1. | ||
kresike | weeee | ||
moritz | p6: say (1..200).pick | ||
p6eval | niecza v17-23-gfb775fb: OUTPUT«70» | ||
..rakudo dca0fa: OUTPUT«199» | |||
..pugs: OUTPUT«108» | |||
moritz | p6: say <good fast cheap>.pick(2); # a good ol' favorite | 18:10 | |
p6eval | pugs: OUTPUT«fastgood» | ||
..rakudo dca0fa, niecza v17-23-gfb775fb: OUTPUT«cheap good» | |||
kresike | moritz, :) | ||
p6eval has a serious problem of split personalities | 18:11 | ||
it's harder to get the three implementations to give the same output then the other way around | 18:12 | ||
adu | kresike: 1 impl giving 3 outputs? | 18:20 | |
gfldex | r: say 'output' xx 3; | 18:22 | |
p6eval | rakudo dca0fa: OUTPUT«output output output» | ||
gfldex | that wasn't all that hard | 18:23 | |
kresike | no comment :) | 18:25 | |
18:37
sudokode is now known as zendeavor
18:38
zendeavor is now known as sudokode
18:41
spider-mario joined
18:43
[particle]1 joined
18:44
mikemol left
18:45
[particle] left
18:48
pyrimidine joined
|
|||
felher | Say i have a class Vector. Can i declare an operator (say "+") within that class, so that "+" has direct access to the private attributes of instances of Vector, and still use it from the outside-world? Or do i have to make a method "add" and define "+" outside of the class and make it use that method? | 18:48 | |
PerlJam | felher: no and no. | ||
diakopter | r: say 33 <== 44 | 18:49 | |
p6eval | rakudo dca0fa: OUTPUT«3344» | ||
PerlJam | (well, we could argue over the semantics of "direct access to the private attributes" a bit and make that first one "yes" :) | ||
gfldex | perl6 classes have no friends :( | 18:50 | |
PerlJam | gfldex: that's not really true either. They have "trust" relationships that are analogous to friends. | ||
gfldex: see S12:1389 | 18:52 | ||
felher | PerlJam: The second "no" isn't related to "add a method and define an operator on the outside", is it? Because i don't see any problems with that? :) | 18:53 | |
PerlJam | felher: The second "no" was more about "have to" than not :) | ||
TMTOWTDI after all | |||
felher | PerlJam: Ah, i see :) | 18:54 | |
PerlJam: thanks :) | |||
PerlJam++ | |||
kresike | PerlJam, what is the number 1389 in S12:1389 ? | 18:56 | |
PerlJam | kresike: line number, if you look at irclog.perlgeek.de/perl6/2012-05-22#i_5624307 you'll see that it's a link to the appropriate part of the synopsis | 18:57 | |
kresike | PerlJam, thanks, I got the Synopsis chapter 12 part, just couldn't figure out the number. | 18:58 | |
dalek | blets: a9d1cb9 | (Herbert Breunung)++ | docs/appendix- (2 files): level up callframe emthods |
19:02 | |
19:04
NamelessTee left
19:05
thou_ left
19:06
spider-mario left
19:09
thou joined
19:12
birdwindupbird joined
|
|||
felher | w | 19:13 | |
19:14
araujo left
|
|||
diakopter | no one from #perl6 (except chromatic), afaict, commented on the Slashdot story yesterday that had tons of Perl6-related threads | 19:17 | |
19:17
mdupont left
|
|||
PerlJam | diakopter: URL? | 19:18 | |
diakopter | developers.slashdot.org/story/12/05...0-released | ||
lots of Perl 6 comments there | |||
19:20
fhelmberger left
19:22
araujo joined,
araujo left,
araujo joined
|
|||
PerlJam | I do not like the tenor of those perl6 comments. | 19:25 | |
19:25
havenn joined
19:27
zby_home joined
|
|||
felher | I forgot: how do i get a hash to not stringify its keys? And will that be the default one day? | 19:27 | |
colomon | PerlJam: Wish I had time to explain on there how usable Perl 6 is right now... | 19:28 | |
19:28
havenn left
|
|||
flussence | felher: the syntax is "my X %hash{Y}", where X is the value type and Y is the key type. I think "Any" works there... | 19:29 | |
r: my %hash{Any} = { 3/8 => 'bar' }; say %hash.perl; | |||
p6eval | rakudo dca0fa: OUTPUT«("0.375" => "bar").hash» | ||
flussence | maybe not... | ||
19:29
thou_ joined
|
|||
flussence | r: my %hash{Str} = { 3/8 => 'bar' }; say %hash.perl; | 19:29 | |
p6eval | rakudo dca0fa: OUTPUT«("0.375" => "bar").hash» | ||
flussence | r: my %hash{Num} = { 3/8 => 'bar' }; say %hash.perl; | 19:30 | |
p6eval | rakudo dca0fa: OUTPUT«Nominal type check failed for parameter '$key'; expected Num but got Str instead in method STORE_AT_KEY at src/gen/CORE.setting:6037 in block <anon> at src/gen/CORE.setting:5935 in block <anon> at /tmp/8jsk9nNeXV:1» | ||
flussence | r: my %hash{Num} = ( 3/8, 'bar' ); say %hash.perl; | ||
p6eval | rakudo dca0fa: OUTPUT«Nominal type check failed for parameter '$key'; expected Num but got Rat instead in method STORE_AT_KEY at src/gen/CORE.setting:6037 in method STORE at src/gen/CORE.setting:5937 in block <anon> at /tmp/vU4lUrV3hl:1» | ||
colomon | r: my %hash{Rat} = { 3/8 => 'bar' }; say %hash.perl; | ||
p6eval | rakudo dca0fa: OUTPUT«Nominal type check failed for parameter '$key'; expected Rat but got Str instead in method STORE_AT_KEY at src/gen/CORE.setting:6037 in block <anon> at src/gen/CORE.setting:5935 in block <anon> at /tmp/tNbx3f3zCh:1» | ||
flussence | oh, it was that => doing autoquoting | ||
colomon | oh | ||
flussence | r: my %hash{Num} = { (3/8) => 'bar' }; say %hash.perl; | ||
colomon | r: my %hash{Rat}; %hash{3/8} = "bar"; say %hash.perl; | ||
p6eval | rakudo dca0fa: OUTPUT«Nominal type check failed for parameter '$key'; expected Num but got Str instead in method STORE_AT_KEY at src/gen/CORE.setting:6037 in block <anon> at src/gen/CORE.setting:5935 in block <anon> at /tmp/wDZNFu_uBT:1» | ||
rakudo dca0fa: OUTPUT«(3/8 => "bar").hash» | |||
flussence | yep, colomon's is right | 19:31 | |
colomon | ;) | ||
felher | thanks :) | ||
colomon | r: my %hash{Real}; %hash{3/8} = "bar"; say %hash.perl; | 19:32 | |
p6eval | rakudo dca0fa: OUTPUT«(3/8 => "bar").hash» | ||
colomon | r: my %hash{Real}; %hash{3} = "bar"; say %hash.perl; | ||
p6eval | rakudo dca0fa: OUTPUT«(3 => "bar").hash» | ||
19:33
thou left
|
|||
colomon | r: my %hash{Real}; %hash{3} = "bar"; say %hash.keys[0].WHAT | 19:33 | |
p6eval | rakudo dca0fa: OUTPUT«Int()» | ||
colomon | r: say (3/8 => "bar").perl | ||
p6eval | rakudo dca0fa: OUTPUT«3/8 => "bar"» | ||
colomon | r: say (3/8 => "bar").key.WHAT | ||
p6eval | rakudo dca0fa: OUTPUT«Rat()» | ||
flussence | (I vaguely recall a conversation after key types were added mentioning Hash.perl was lacking...) | 19:34 | |
diakopter | PerlJam: well, I think those comments are very representative of popular opinion/perception. | ||
colomon | sure, but popular opinion doesn't have a clue... | 19:35 | |
19:35
mikemol joined
|
|||
diakopter | I'm not sure I agree with that | 19:36 | |
colomon | Well, let me put it like this: *I* am currently doing real world productive work using Perl 6. | 19:37 | |
diakopter | the first negative-toned comment I see asserts that widespread adoption is a long ways off. | 19:38 | |
that one could be argued until it happens; no one really knows. | 19:39 | ||
the next negative comment asserts that Perl 6's major failing is breaking backwards compatibility. | 19:40 | ||
colomon | Actually, as much as anything I'm complaining about chromatic here: "no implementation is anywhere close to practically useful." | 19:41 | |
diakopter | however, it assumes that breaking backwards compatability also implies the lack of ability to use Perl 5 CPAN modules. As pugs clearly demonstrated, that's not necessarily true. | ||
moritz | www.perlmonks.org/?node_id=971823 | 19:43 | |
diakopter | The next one says "I do want perl 6 -- I'm just not holding my breath for it to be usable very soon for real-world projects. ... perl 6, which has been almost-usable-for-real-work for 5 years." | ||
19:44
brrt joined
|
|||
PerlJam | moritz++ | 19:45 | |
diakopter | That's definitely debatable depending on your definition of real-world projects. If you need threads, you can't use rakudo. If you can't/won't use Mono or .NET (like chromatic), you can't use niecza. | ||
flussence | is he a "can't" or a "won't"? :) | 19:46 | |
diakopter | won't | ||
maybe can't too, I don't know | |||
moritz | he has license/patents concerns | ||
(as if parrot didn't infringe any patents...) | 19:47 | ||
diakopter | The next complains/asserts that Perl 6 is too big to ever complete. This is certainly true by the definition of the full spec as written, as TimToady recently said on channel, but for a 1.0.0 release of the Synopses, it's not true, as that will happen sometime. | 19:48 | |
PerlJam | I'm not sure that participating in such discussions is helpful nor do I believe rehashing them here is helpful. I think "no one from #perl6 participating" was and is the right move. | 19:49 | |
diakopter | The next asserts that multiple implementations cause confusion. This is true, and unfortunate. | ||
Why is it not helpful to rehash them here? In order to respond to assertions/perception, analyzing them is required. | 19:50 | ||
dalek | nda: 7c2667a | (Carl Mäsak)++ | bin/panda: [bin/panda] Make projects come out in alphabetical order |
||
nda: 3cccd5d | tadzik++ | bin/panda: Merge pull request #14 from masak/patch-1 [bin/panda] Make projects come out in alphabetical order |
|||
19:51
leprevost left
|
|||
diakopter | chromatic complains that Rakudo wants VM-independence, implying that it's impossible for him to understand why. What's wrong with the obvious explanation - independence from parrot? | 19:52 | |
PerlJam | diakopter: perhaps I'm just tired. | ||
diakopter: chromatic doesn't see the need for "all the extra work" or something like that. | 19:53 | ||
flussence | random unrelated question - I found myself writing ":.method" the other day hoping it'd produce :method($_.method), but it doesn't. Is there any DRY-ish way to do that? | ||
diakopter | he doesn't think it's worth it. he thinks investing the effort in improving parrot would be time better spent. | 19:54 | |
19:56
pmurias joined
|
|||
diakopter | next, 3 refreshingly positive comments about Perl 6 from different folks. | 19:56 | |
pmurias | diakopter: chromatic refuses to use a Perl6 on either the JVM or .NET | ||
19:56
shinobicl joined
|
|||
pmurias | diakopter: so he doesn't see the point for VM independence | 19:56 | |
diakopter | pmurias: that's a good point, too. | 19:57 | |
PerlJam | flussence: I don't think so. | 19:58 | |
19:58
fibo joined
19:59
icwiener left
|
|||
moritz | flussence: I don't think so either, and so far I haven't had a use case for it | 20:00 | |
flussence: usually if you want to call method .foo to fill a named parameter :foo, going through .capture and/or signature unpacking might (mind you, I said "might") be an option | 20:01 | ||
diakopter | the next comment says "Ultimate glue? That's why I'm interested in Perl 6. It's supposed to be able call C/C++ library functions directly. No more need for wrapper libraries, which is the majority of CPAN. No need for SWIG, which I find bloated." ... which makes me quizzical | ||
pmurias | diakopter: why quizzical? | 20:03 | |
diakopter | the next comment is based on a misunderstanding about Perl 6 deprecating and supplanting perl.exe. Probably also a common misconception. | ||
pmurias: I didn't realize such capability was a spec'd feature | |||
pmurias | diakopter: it's not | 20:04 | |
flussence | bleh, messing with signatures is too complicated. I'll just do it the long way :) | ||
felher | diakopter++ #for doing the work and posting the interesting, perl6 related post here :) | ||
diakopter | pmurias: that's all I'm saying - that I didn't think it was spec'd, even if it's available on rakudo. | ||
they said "supposed to", which I interpreted as "spec'd" | 20:05 | ||
20:05
derrazo joined
20:06
itz left
|
|||
diakopter | the next assertion says in part "The '-e' of Perl 6 will probably stay so slow that it will not be as useful as Perl 5 as a simple tool for small tasks." | 20:06 | |
that remains to be seen, imho. It takes a lot of work to optimize that much. | 20:07 | ||
moritz | well, it'll be very hard to beat p5 at startup time | ||
20:07
araujo left
|
|||
moritz | python, ruby and php have a much larger startup time, which is a more realistic target | 20:08 | |
20:08
itz joined
|
|||
cognominal | p6: sub a($a, $b) { say "$a $b" } ; a(<a b> ) | 20:09 | |
p6eval | niecza v17-23-gfb775fb: OUTPUT«Unhandled exception: No value for parameter '$b' in 'a' at /tmp/8XX2TxKLGK line 0 (a @ 1)  at /tmp/8XX2TxKLGK line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 3855 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3856 (mo… | ||
..pugs: OUTPUT«pugs: Extra space found after &a (...) -- did you mean &a(...) instead?» | |||
..rakudo dca0fa: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in sub a at /tmp/MJXZFtwPUd:1 in block <anon> at /tmp/MJXZFtwPUd:1» | |||
20:10
mikemol left
|
|||
cognominal | r: say <a b>.WHAT | 20:10 | |
p6eval | rakudo dca0fa: OUTPUT«Parcel()» | ||
cognominal | p6: sub a($a, $b) { say "$a $b" } ; a(|<a b> ) | ||
p6eval | pugs: OUTPUT«***  Unexpected "<a" at /tmp/VAOrIqk1_T line 1, column 36» | ||
..rakudo dca0fa, niecza v17-23-gfb775fb: OUTPUT«a b» | |||
felher | Strings are immutable, right? So "class C { has Str $.foo }" doesn't allow someone outside of the class to change anything about $.foo? | 20:12 | |
masak | felher: right, but not for the reason you give. | 20:14 | |
felher: it's because you didn't make the attribute accessor 'is rw'. | |||
sisar | Trued to install LWP::Simple, but got: gist.github.com/2628829. When it say "Parse errors: No plan found in TAP output" what does it mean? | ||
masak | r: for my $/ (); | 20:15 | |
p6eval | rakudo dca0fa: OUTPUT«===SORRY!===Contextual %*PARAM_INFO not found» | ||
masak submits LTA error diakopter++ rakudobug | |||
r: for our $:: (); | |||
p6eval | rakudo dca0fa: OUTPUT«===SORRY!===ResizablePMCArray: index out of bounds!» | ||
masak submits LTA error diakopter++ rakudobug | |||
felher | masak: well, yeah. Str needs to be immuteable and $.foo must not be 'is rw'. If Str isn't immutable there might be a function .convert-to-upper-case, which changes $.foo, even though $.foo isn't 'is rw' :) | 20:16 | |
geekosaur | sisar, "Non-zero wait status: 139" means it segfaulted | ||
the other error actually follows from that since the test framework didn't get a chance to run and therefore didn't output the expected TAP-formatted information | 20:17 | ||
sisar | geekosaur: oh. How can I debug segfaults ? | ||
geekosaur | uhhhh | ||
masak | felher: troo. Str objects are immutable in that sense, yes. the only way to "change" a Str is to get a new one. | 20:18 | |
felher | masak: great :) | ||
thnx :) | 20:19 | ||
masak | pzh :) | ||
phenny: en ru "please."? | |||
phenny | masak: "пожалуйста." (en to ru, translate.google.com) | ||
masak | пж :) | 20:20 | |
geekosaur | anyone else want to comment on debugging rakudo segfault with panda? (on an unspecified platform...) | ||
sisar | on Ubuntu | ||
moritz | one problem is that we kinda conflate containers and values | 20:21 | |
when you write sub inplace(Str $x is rw) { } | |||
then that can only bind to a scalar container containing a Str | |||
but we never mention that container in the signature | |||
20:22
derrazo left
|
|||
moritz | or phrased differently, the containers aren't really first-class citizens, in the sense that we usually try hard to hide them | 20:23 | |
which works great most of the time, except that it confuses everybody when it comes to mutating containers that hold immutable values | |||
20:26
bluescreen10 left,
araujo joined
|
|||
felher | I just think of 'is rw' as passing a pointer to the pointer, instead of a pointer to the object. So the pointer the passed pointer points to may be changed :) This works most of the time. | 20:28 | |
masak | felher: actually, there are still unresolved difficulties in that area. | 20:29 | |
I wish we could resolve them satisfactorily. but it seems real tricky. | |||
felher | masak: difficulties such as? | 20:30 | |
masak | let's see if I can remember them. | ||
the spec says that readonly array variables are readonly "one level deep". that is, you can't push etc to the array itself; nor can you twiddle with its elements. | 20:31 | ||
mj41_ | hi, P5-to-P6 question: $self->SUPER::some_method() in P6 ? | ||
masak | mj41_: nextsame() if you're in that method. | 20:32 | |
mj41_: otherwise, hm. | |||
20:32
snearch joined
|
|||
mj41_ | masak: thanks | 20:32 | |
masak | did that help? oh, good. | ||
moritz | you can also write self.Explict::Class::Name::method() | ||
masak | oh, I thought that was just for roles. | ||
moritz | works for superclasses too, iirc | 20:33 | |
TimToady | but don't, use nextsame instead | ||
masak | r: class A { method foo { say "OH HAI" } }; class B is A { method bar { self.A::foo } }; B.new.bar | ||
p6eval | rakudo dca0fa: OUTPUT«OH HAI» | ||
dalek | blets: 6bce3f6 | moritz++ | docs/tablet-3-variables.txt: clear up some things about item context. Avoid the word "reference" where possible |
||
masak | huh, works! :) | ||
20:33
brrt left
|
|||
PerlJam | What's the use-case though? When do you *want* to break out of normal dispatch into *another* method's super? | 20:33 | |
masak | r: class A { method foo { say "OH HAI" } }; class B { method bar { self.A::foo } }; B.new.bar | ||
p6eval | rakudo dca0fa: OUTPUT«Cannot dispatch to a method on A because it is not inherited or done by B in method dispatch:<::> at src/gen/CORE.setting:790 in method bar at /tmp/RZ6W84SCnj:1 in block <anon> at /tmp/RZ6W84SCnj:1» | ||
masak | hee. | ||
PerlJam: that's what I was wondering too. | 20:34 | ||
masak turns back to felher | |||
felher: so, the elements are immutable too. | |||
dalek | blets: ccaa474 | moritz++ | docs/tablet-3-variables.txt: fix a precedence bug |
20:35 | |
20:35
snearch left
|
|||
masak | now, imagine something like 'sub foo(@a) { @a[3] = 42 }; my @x = 1..4; foo @x' | 20:35 | |
this should fail according to that model. | |||
r: sub foo(@a) { @a[3] = 42 }; my @x = 1..4; foo @x; say @x[3] | 20:36 | ||
p6eval | rakudo dca0fa: OUTPUT«42» | ||
masak | it doesn't. rakudo doesn't implement that. | ||
n: sub foo(@a) { @a[3] = 42 }; my @x = 1..4; foo @x; say @x[3] | |||
p6eval | niecza v17-23-gfb775fb: OUTPUT«42» | ||
dalek | blets: 007c3b4 | moritz++ | docs/tablet-3-variables.txt: avoid ambiguous wording |
||
masak | neither does niecza. | ||
there's a reason for that; it's tricky. :) | |||
20:36
brrt joined
|
|||
masak | the same kind of trickiness shows up when you want to mark an array attribute as readonly, and its elements should also be, and one level down. | 20:36 | |
20:37
birdwindupbird left
|
|||
masak | felher: you'll note that @x in the above isn't readonly at all (and that's correct), but @a is readonly, because it's a parameter. but they're *the same array object*, which is where the tricky sits. | 20:37 | |
so somehow that indicates the need for a level of indirection of some sort -- a *view* of an array that can be readonly. | 20:38 | ||
but it's not allowed to get in the way. it has to be entirely transparent to use. | |||
moritz | lichtkind: in the tablets it says multiple times that there are "no more references" in Perl 6, but they keep appearing everywhere in the text | ||
felher | masak: yeah, i see. Thanks a lot for that explanation :) | ||
20:38
adu left
|
|||
masak | felher: and here the paths end. I wish we would solve this, because it's a bit embarrassing that the spec says one thing and we implement another. but it's like we want to but can't, because no-one's figgered out how. | 20:39 | |
20:39
kaare_ left
|
|||
masak | in fact, this was a bit tricky to get right for scalars, too. but a few iterations we have it right, thanks to pmichaud++ and probably jnthn++ too. | 20:40 | |
diakopter mind is boggled by s3.amazonaws.com/apple-campus2-pro...ittal3.pdf | |||
masak | s/a few iterations/a few iterations later/ | ||
20:41
NamelessTee joined
|
|||
felher | Hm... this makes me wonder. Is Scalar a class too? Just as Array is a class for @? | 20:41 | |
Woodi | just writed something, maybe it can help ? 79.187.154.250/ I hope, it is accessible... | ||
moritz | felher: it is, but usually you don't see it | ||
felher: because the Scalar container forwards basically all methods to its contents, even .WHAT | 20:42 | ||
sergot | good night o/ | ||
20:42
sergot left
20:43
localhost left
|
|||
felher | moritz: Ah, okay. I think i'd find it quite hard to grok if it were not :) | 20:43 | |
s/if it were not/if there isn't something like Scalar for scalars/ | 20:44 | ||
masak | [backlog] what does "tagmemic" mean, really? | 20:49 | |
I usually google these things, but something tells me I might get a better answer by asking. | 20:50 | ||
the humoristic effect of www.corsinet.com/braincandy/hlife.html seems to rest on the fact that it's hard to read according to the premise of the first paragraph. | 20:52 | ||
for somebody who is perfectly able to take the first paragraph at its word, it's a rather unremarkable, pointless, repetitive story :) | 20:53 | ||
au | also, "S got angry about that because it was E's job" was kinda non sequitur. :) | 20:57 | |
20:57
ggoebel joined
|
|||
lichtkind | moritz: yes some parts are very dated, but the almost completed index A and B should be fine | 20:58 | |
masak | au: yeah, it doesn't even make much sense when misread in the way obviously intended :) | 20:59 | |
au | "this sentence no sense" | 21:00 | |
masak | :D | ||
oh btw, "this sentence no verb" is an autopun. | |||
tadzik | :P | 21:01 | |
I think you accidentally a word | |||
au | would "this sentence no autopun" be an autopun? | ||
diakopter cries | |||
tadzik | :P | ||
arnsholt | The Russel's paradox of autopuns =) | ||
21:01
libertyprime left
|
|||
kresike | night all o/ | 21:02 | |
masak | nijt, kresike | ||
au | \o | ||
21:02
kresike left
|
|||
sorear | felher: you can do multi infix:<+>($l, $r) is export { ... } inside the class, it will ahve direct-ish access to the attributes and will be usable from outside | 21:02 | |
masak | au: ...no. mentioning autopuns does not an autopun make. | 21:03 | |
au | but if it's not an autopun as you explained, wouldn't it be describing itself accurately? | ||
masak | it could be argued to be unproblematically self-referent, though :) | ||
21:03
libertyprime joined
21:04
libertyprime left
|
|||
au | concurred | 21:04 | |
masak | we might have to agree to disagree on whether it's an autopun. I'm actually not entirely sure. | ||
I notice that I am confused. :) | |||
21:05
Facefox left
|
|||
sorear | diakopter: chromatic is a Parrot person who takes Rakudo's VM independance moves as personal affronts | 21:05 | |
masak | it just seems to me that "this sentence no autopun" contains a clear *mention* (of autopuns), but no clear *use*. | ||
tadzik | well said | ||
diakopter | au: I made a more-complexly-worded version of that the other day and masak definitively said it wasn't an autopun, so congrats ;) | ||
[Coke] | hey, au. | ||
sorear | moritz: iirc, pugs has startup time in the millisecond range | 21:06 | |
au | masak: yeah. the use relies on auto-completion of russel's paradox on the reader's behalf | ||
masak | diakopter: I wasn't sure whether you cried because you were thinking of au's sentence or whether you were reminded of that recent defeat :) | ||
au | \o [Coke] | ||
felher | sorear: awesome! Thnx :) | ||
au | $ time pugs -e0 | ||
0m0.066s | |||
diakopter | reminded | ||
masak | au: it's not uncommon for such auto-completion to figure in autopuns. they're very culturally rooted. | 21:07 | |
masak hugs diakopter | |||
au to pun <- still holds the record of shorted autopun ever | |||
*shortest | |||
masak | :P | ||
diakopter: I think the fault lies with me for explaining badly. | |||
21:08
libertyprime joined
|
|||
[Coke] | "damn you autocorset." | 21:08 | |
masak | *lol* | ||
sorear | pugs: sub foo(@a) { @a[3] = 42 }; my @x = 1..4; foo @x; say @x[3] | ||
p6eval | pugs: OUTPUT«42» | ||
sorear | o/ au!!! | 21:09 | |
21:09
rsimoes joined,
brrt left
|
|||
lichtkind | moritz: i make my changes rather topic wise, so once i get to the reference thing it will be cleansed in all tablets | 21:10 | |
au | o/ ⇈ sorear | ||
21:10
zipf joined
|
|||
sorear | .u ⇈ | 21:11 | |
phenny | U+21C8 UPWARDS PAIRED ARROWS (⇈) | ||
jnthn | evening, #perl6 | ||
masak | jnthn! \o/ | ||
sorear | paired arrows? /me wonders if that's intended for molecular orbital diagrams | ||
au | it's the tetration symbol, actually | ||
masak | au: what are you working on these days? are you still at SocialText? | ||
sorear had dozed off but is now back in the present | |||
au | # en.wikipedia.org/wiki/Knuth%27s_up...w_notation | 21:12 | |
masak: yeah. attending socialtext f2f meeting atm. still retainer @ socialtext and apple | |||
plus obra's checkmarkable.com | |||
masak | ooh | 21:13 | |
he twittled about that not long ago. | 21:14 | ||
au | "youtube for checklists, inspired by the p5p release process" | ||
masak | will check it out. (har har) | 21:15 | |
au | nice remark | ||
sisar | jnthn: how to debug rakudo+panda segfaults ? | ||
jnthn | sisar: What platform are you on? | 21:16 | |
sisar | jnthn: Ubuntu | ||
jnthn whips out the Visual Studio debugger in these situations... :) | |||
sisar: Well, then run it under gdb. | |||
sisar: It should give a backtrace. | 21:17 | ||
Lemme know if you need guidance. | |||
sisar | jnthn: i simply tried `gdb panda install LWP::Simple` and it said "/home/siddhant/.perl6/bin/panda": not in executable format: File format not recognized". (my gdb-fu is limited to debugging small c programs) | 21:18 | |
21:20
ggoebel left
|
|||
jnthn | sisar: you'll need to | 21:21 | |
gdb perl6 | |||
r /home/siddhant/.perl6/bin/panda install LWP::Simple | |||
then when it explodes, type bt | |||
sisar | ok, will try that. | 21:22 | |
thanks | |||
shinobicl | niecza: my Date $d; | 21:24 | |
p6eval | niecza v17-23-gfb775fb: OUTPUT«===SORRY!===Malformed my at /tmp/agCyYgWyXN line 1:------> my⏏ Date $d;Parse failed» | ||
21:25
ggoebel joined,
thou_ left
21:29
daxim joined
21:31
adu joined
|
|||
skids | gist.github.com/2771728 # <--- Fun with Proxy and CStruct attributes. | 21:31 | |
21:32
adu left
|
|||
masak | skids: cool. | 21:32 | |
looks like there are a few potential rakudobugs in there. | 21:33 | ||
jnthn | More NYI than bugs. | ||
diakopter | r: gist.github.com/2771728 | ||
p6eval | rakudo dca0fa: OUTPUT«1958-10-242012-10-102012-10-102012-11-11» | ||
daxim | in a grammar, what's the straight-forward way to describe a repeated token/rule separated by commas, no trailing comma? e.g. data foo bar { fnord quux {3}, {34}, {356} } | 21:34 | |
I imagine there must be some idiom for that | |||
skids | There's a special construct, but I don't remember it offhand. | ||
masak | daxim: <rule>+ % <sep> | 21:35 | |
jnthn | <the_rule>+ % ',' | ||
daxim | I knew I could count on yall | ||
masak | :) | ||
21:37
[particle]1 left
21:39
PacoAir left
|
|||
sisar | Well, this is weird. URI was built and passed all test when running under gdb ! No segfault ! | 21:41 | |
s/running/intalling using panda | 21:42 | ||
tadzik | rebuild it, try again | ||
sisar | tadzik: you want a segfault, don't you :p | ||
tadzik | yes :) | 21:43 | |
dalek | blets: fd28b7e | (Herbert Breunung)++ | docs/ (3 files): explain terminators |
||
blets: 0db0540 | (Herbert Breunung)++ | docs/tablet-3-variables.txt: Merge branch 'master' of github.com:perl6/tablets |
|||
tadzik | also, it will work | ||
both URI and Panda compile non-deterministically for some reason | |||
sisar | will the backtrace help in any way ? | 21:44 | |
jnthn | Sometimes they do. | 21:45 | |
lichtkind | moritz: seen you changes now, these were once true, its almost the oldest parts of the tablets | 21:46 | |
21:47
flussence_ joined
|
|||
PerlJam | lichtkind: tablet 0 bothers me. | 21:48 | |
lichtkind: It looks like it takes ideas of Perl 6 from the future and transports them to 2000 | 21:49 | ||
lichtkind: or, let's say ... that's not how I remember it. | |||
masak 's interest gets piqued | 21:50 | ||
21:50
flussence left,
flussence_ is now known as flussence
|
|||
masak | github.com/perl6/tablets/blob/mast...istory.txt in case others are interested. | 21:50 | |
I'm sorry, I find it very hard to tell what the text is about. | 21:52 | ||
it feels like a draft of some kind. | |||
21:54
fibo left
|
|||
PerlJam | I've attributed the ... quirkiness to an impedence mismatch between languages. | 21:55 | |
sisar | jnthn: Wht causes the error mentioned at nqp/src/6model/serialization_context.c:105 ? Because that is the non-deterministic error which we get when installing modules. | ||
*What | |||
21:56
frettled left
|
|||
dalek | blets: d95593e | (Herbert Breunung)++ | docs/tablet-3-variables.txt: fix whole array section |
21:56 | |
masak | PerlJam: no, it just doesn't feel all that focused. it could be made a lot clearer, I think. | 21:57 | |
lichtkind | PerlJam: i hardly started tablet 0 | ||
masak | there you go, then. | ||
lichtkind | PerlJam: feel free to edit it | ||
masak | or start anew. | 21:58 | |
PerlJam: ooc, were you there at the conf where Perl 6 was announced? | |||
sorear | who here was? | 21:59 | |
PerlJam | no, I was not actually at TPC | ||
sorear | other than TimToady | ||
sisar | masak: is there any video or transcript of that announcement ? | ||
masak | sisar: I've seen a transcript, yes. | ||
don't remember where. it's probably out there on the web somewhere. | |||
sorear | hmm, I was thinking of the coffee mug incident | ||
jnthn | sisar: Well, that bit of code is just doing a bounds check on an index lookup. | 22:00 | |
masak | sorear: that wasn't the announcement, though. | ||
sorear | the proper announcement may have seen more people | ||
masak | yes. | ||
22:00
Facefox joined
|
|||
jnthn | sisar: It's only really interesting if we know what is below it in the call stack. | 22:00 | |
PerlJam | masak: As I usually do though, I was participating vicariously via IRC and other avenues. | ||
sisar | jnthn: should that error leak out? | 22:01 | |
i mean, it does not even mention any line no. or anything. | |||
masak | PerlJam: I'd be interested to hear about your recollection of that day. | 22:02 | |
jnthn | sisar: There's no sensible line number it could report really | ||
sisar: It means "the calling code tried to access an object at an index that does not exist" | |||
sisar: It should never happen. | |||
sisar: And it's going to be the C callstack that is interesting, I expect. | 22:03 | ||
sisar | how can i get more information for the cause? | ||
jnthn | Not the HLL one | ||
sisar: If you have the gdb skills you could set a breakpoint at the error. | |||
And then look at the call stack at that point. | |||
I don't know gdb enough to tell you how to do that. | |||
sisar | i was not able to reproduce the segfault i and tadzik++ were hoping for | 22:04 | |
jnthn | Yeah. It feels like some kind of heap corruption. :/ | 22:05 | |
sisar | well, brekapoints i know. But given the complexity of perl6/nqp, i doubt i'll be able to do anything | ||
jnthn | sisar: If you put a breakpoint on that error, and can get it to fire, the call stack may well mean something to me. | 22:06 | |
sisar | ok, i'll try to get a calltrace. | ||
masak | 'night, #perl6 | 22:07 | |
jnthn | sisar: OK. Please gist it if you do | 22:08 | |
I'm teaching tomorrow so must go and sleep very soon. | |||
sisar | jnthn: sure. | ||
22:09
zby_home left
|
|||
jnthn | OK, thanks :) | 22:10 | |
jnthn -> sleep | |||
PerlJam | masak: I don't know if I could give you an honest recollection any more. For instance, I do remember hearing/reading about the coffee mug incident as if it happened in "legendary" style. ("Jon Orant smashed a coffee mug and we all stopped arguing then he said 'blah blah blah'") But then I also remember hearing about how many coffee mugs were actually involved and how much forethought went into the whole thing. | 22:11 | |
sorear | orwant | 22:16 | |
PerlJam | aye, that guy :) | ||
22:21
adu joined
22:31
DreamingInCode joined
|
|||
sisar | well before i run `gdb perl6` don't i need to compile pler6 for gdb-debugging first? Hoq do I do that? | 22:33 | |
22:33
zipf left
|
|||
sisar | *perl6 | 22:33 | |
*How | |||
diakopter | sisar: I think I heard somewhere it's the default | 22:34 | |
maybe I'm wrong | |||
sisar | diakopter: ok. | ||
22:34
adu left
|
|||
sisar | diakopter: familiar with gdb ? | 22:35 | |
diakopter | no :( | ||
sisar | no problem. | ||
diakopter: nqp is also "compiled" for gdb-debugging ? | 22:36 | ||
diakopter | I don't know. I just remember others being instructed to try using gdb, and nothing was mentioned about special builds of parrot, nqp, or rakudo | 22:37 | |
sisar | diakopter: ok. | 22:38 | |
22:39
NamelessTee left
|
|||
sisar afk | 22:39 | ||
22:39
sisar left
|
|||
benabik | Parrot builds with debugging by default and nqp/Rakudo use the same options as Parrot. | 22:40 | |
diakopter memory didn't fail me for once | 22:41 | ||
phenny: tell sisar < benabik> Parrot builds with debugging by default and nqp/Rakudo use the same options as Parrot. | 22:45 | ||
phenny | diakopter: I'll pass that on when sisar is around. | ||
22:50
DreamingInCode left,
DreamingInCode joined
22:53
fgomez left
22:59
ggoebel left
23:02
fgomez joined
23:08
[particle] joined
23:13
mtk left
23:17
shinobicl left
23:19
cognominal_ joined
23:22
cognominal left
23:27
kj left,
pmurias left
23:33
benabik left
23:35
DreamingInCode1 joined
23:36
DreamingInCode1 left
23:37
DreamingInCode left
23:41
DreamingInCode joined
23:45
ponbiki joined
23:47
libertyprime left
23:49
libertyprime joined
|