»ö« 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:05
Transformer joined
00:06
Transformer left
00:34
woosley joined
00:47
Alias_ joined
00:49
Alias left
00:50
kensanata left
01:03
am0c joined
01:34
[Coke] left
01:35
Bucciarati left
01:36
[Coke] joined
01:42
Chillance left
01:50
[Coke] left
01:52
[Coke] joined
02:05
[Coke] left
02:06
[Coke] joined
02:07
Bucciarati joined
02:11
Bucciarati left
02:16
[Coke] left
02:18
[Coke] joined
02:19
sftp left,
sftp joined
02:25
[Coke] left
02:26
Bucciarati joined
02:27
[Coke] joined
02:31
estrabd left,
[Coke] left
02:33
[Coke] joined,
estrabd joined
02:34
nymacro joined
02:37
Bucciarati left
02:46
Bucciarati joined
02:47
alester joined
02:56
Bucciarati left
03:00
Bucciarati joined
03:01
skyheights joined
|
|||
skyheights was happy to see all the activity on #perl6 yesterday | 03:02 | ||
03:02
skyheights left
|
|||
TimToady too | 03:06 | ||
03:06
JimmyZ left
03:12
Juerd left
03:13
PerlJam left,
Util left,
Util joined,
Juerd joined,
hatseflats left
03:14
PerlJam joined,
hatseflats joined
03:18
JimmyZ joined
03:29
am0c left
03:32
hudnix left,
[Coke] left
03:34
[Coke] joined
03:48
[Coke] left
03:49
araujo left
03:50
envi joined,
[Coke] joined
03:56
orafu left,
orafu joined
04:02
[Coke] left
04:03
JimmyZ left,
[Coke] joined
04:13
[Coke] left
04:15
[Coke] joined
04:22
[Coke] left
04:24
[Coke] joined
04:44
alester left
|
|||
TiMBuS | www.winestockwebdesign.com/Essays/L...Curse.html i dont get it | 05:34 | |
doing things in lisp is so easy that nothing gets done ? | 05:35 | ||
TiMBuS looks at cpan | |||
so, perl is.. hard? | |||
06:04
gente joined,
gente left
06:08
woosley left
06:09
woosley joined
|
|||
s1n | TiMBuS: that guy is a goon, proof: | 06:15 | |
"Endgame: A random old-time Lisp hacker's collection of macros will add up to an undocumented, unportable, bug-ridden implementation of 80% of Haskell because Lisp is more powerful than Haskell." | |||
06:19
woosley left
06:40
envi left
06:44
envi joined
06:56
araujo joined
|
|||
dalek | rixel: d7e7c61 | diakopter++ | / (11 files): some cursor work and a bit of non-basic-block-detecting optimization of simple variables that aren't captured, making them CIL locals. meh. |
07:00 | |
07:01
justatheory left
|
|||
sorear | diakopter: interesting-sounding | 07:01 | |
diakopter | ish | 07:02 | |
07:03
dju__ joined
|
|||
diakopter | it needs a full basic-block pass or two | 07:03 | |
perlesque: my $x = 2_000_000_000; 1 while --$x; # shouldn't time out (any longer; it used to) | 07:05 | ||
p6eval | perlesque: ( no output ) | ||
diakopter | my desktop pc is a lot faster than p6eval | 07:06 | |
07:06
dju_ left
|
|||
diakopter | sorear: i guess it's fully effective if all the computation heavy basic blocks were manually separated out by the programmer | 07:09 | |
well, sorta | |||
out& | 07:10 | ||
07:20
Tedd1 left
07:26
Tedd1 joined
07:30
_jaldhar left
07:31
_jaldhar joined
07:45
daxim joined
07:55
molaf joined
07:56
donri joined
08:36
plobsing left
08:41
plobsing joined
|
|||
ncow | ok, I understand what people have said earlier about the long compile times for rakudo, I really do. The machine in question is a PIII with 256 mb ram, so no exactly top of the line. It can usually build Perl 5 from source, for instance, in around 30 min. So far, building rakudo for the first time, it's been over 30 hours. Honestly, this is getting ridiculous. I really can't remember anything taking so long to compile on this machine. I could have built ha | 08:42 | |
I'm not trying to critize rakudo or perl 6, but anything that takes more then a day to compile is difficult, imho, to want to invest a lot of time into, despite the fact that I want to finally check this out (and I still want to, assuming it ever finishes compiling) | 08:43 | ||
08:44
Axius joined
|
|||
frettled | ncow: you need to load splitlong.pl, your first statement stopped at «I could have built ha» | 08:45 | |
ncow | I'm trying really hard, and I've built pretty much everything there is from source under Linux, and I really can't recall anything taking more than 30 min to build (other than Linux 2.6 kernel, which usually takes 3-4 hours max to finish building both the kernel and modules) | ||
frettled: I'm not sure I understand? Are my lines coming as truncated to you? I'm fairly certain my lines are maxing out at a normal length? | 08:47 | ||
frettled | In 1994, building X took more than 24 hours on a SparcStation 2, which was closer to state-of-the-art than your now ancient hardware. When Mozilla (the web browser-mail client-news client) arrived on the scene, the source was around 1 GB, and also took more than 24 hours to compile. | ||
ncow: Yes, they do come as truncated, if they're too long. Use splitlong.pl. | |||
ncow | frettled: are you sure? the hardware I'm building on was new in 2003, nearly 10 years /later/ | ||
so how could my hardware be ancient compared to 1994 hardware | 08:48 | ||
frettled | ncow: it's ancient _today_. | 08:49 | |
ncow: building these programs I spoke of took ages on more-current hardware than your hardware is current today | |||
ncow | frettled: I honestly think that it's your irc client that is truncated. I can clearly see my lines coming from the server on my other client and it looks fine | ||
frettled | ncow: while that hardware was merely 1-3 years old at the time, yours is 8 years old. | ||
ncow: No, it's not my IRC client. It's how IRC works. Trust me on this. | |||
ncow: Load splitlong.pl. Guess why it's even needed... | 08:50 | ||
ncow | frettled: why do I see the full likes in /another/ client then | ||
frettled | That your client prints what you type is just how it is, and always have been. | ||
ncow: it was only the ONE statement that was truncated, the others were not. | |||
moritz | ncow: irclog.perlgeek.de/perl6/2011-04-17#i_3526308 | 08:51 | |
ncow | I'm not talking about /this/ client's local echoing, I'm talking about another client (on my phone) that I can see all the lines (including the one you meantioned) in full, which is why I believe it's your client doing that, as it's clearly not the server doing it | ||
frettled | ncow: The IRC protocol does not support more than 512 8-bit characters on a single line. | ||
ncow | frettled: not every server strictly adheres to the RFCs | 08:52 | |
s/servers/daemon software/ | |||
frettled | ncow: /script load splitlong.pl | ||
just do it | |||
moritz | ncow: back to the original topic... what do you actually want? | ||
frettled | ncow: Yes, and sending lines more than 512 chars is in violation of the protocol, which is why you must split those lines. | ||
huf | so it doesnt even get cut off at the same length for all servers on freenode? _nice_ | 08:53 | |
ncow | and where exactly am I supposed to get this script from? You seem to be assuming you even know what client I'm on right now | ||
frettled | ncow: Yes, I did a /ctcp ncow version, and got the response that you're using irssi. | ||
moritz | ncow: we know that the compilation time is less than awesome, and there's work under way to fix it | ||
ncow | huf: apparently | ||
huf | good work irc, just like when you specified the encoding of the messages properly... | 08:54 | |
ncow | "/script load splitlong.pl" gives me unknown command | ||
huf | just dont write long lines then | ||
or do, and expect them to be cut off and play this "fun" game every time | |||
ncow | I usually try not to, and to be honest, I didn't think my lines were all that long | ||
huf | this is why we load splitlong ;) | ||
ncow | I get that. I'm still wondering why I can see the full lines on my phone that I sent from my laptop | 08:55 | |
oh well | |||
I'm off to bed, sorry for any trouble | |||
frettled | ncow: okay, you've probably not installed scriptassist, then. Please follow the instructions here instead: bugs.launchpad.net/ubuntu/+source/...comments/3 | ||
ncow | ok, noted | 08:56 | |
frettled | ncow: don't fret about it :) | ||
tadzik | ncow: pardon me, but didn't you complain about exactly the same thing yesterday? | 09:00 | |
moritz | tadzik: which is why I asked what exactly he wanted. I didn't get any reply | 09:01 | |
tadzik | I think that question was already answered | ||
moritz | seems that line-length-in-IRC discussions are more interesting | 09:02 | |
frettled | Anyway, I think it's hard to solve long compile times on eight year old hardware with a low amount of RAM - 256 MB isn't much, it wasn't much eight years ago, either (1024 seemed pretty common then), so it's not unreasonable to expect trashing because of low memory. However, as moritz++ noted, Rakudo does take a rather long time to compile even on more current hardware with plenty of RAM, even though it's just a matter of tens of minutes rather ... | 09:03 | |
... than tens of hours. | |||
(w00t, splitlong.pl in action) | |||
sbp | hitting enter more often works too :-) | 09:04 | |
frettled | Hmm, I haven't tried compiling Rakudo on my new-ish Mac Mini, which has an SSD. | ||
sbp: that looks too much like work ;) | |||
moritz doesn't think rakudo compilation is CPU bound, except when swapping :-) | |||
frettled spends a lot of time and energy being lazy. Works well with being a sysadmin - laziness (automation) is _good_. | |||
sbp | could be a good slogan for perl6! | 09:05 | |
moritz | .u ellipsis | ||
phenny | U+0EAF LAO ELLIPSIS (ຯ) | ||
sbp | "Automated laziness." | ||
moritz | .u horizontal ellipsis | ||
phenny | U+2026 HORIZONTAL ELLIPSIS (…) | ||
moritz | something to teach splitlong.pl to use :-) | ||
frettled | perl Configure.pl --gen-parrot for Rakudo Star 2011.01: Around 2.5 minutes on a shared-time computer with a 2.4 GHz CPU and 8 GiB RAM. | ||
frettled is now running make -j8 :) | 09:06 | ||
moritz: not compatible with US-ASCII and Latin-1, but perhaps splitlong.pl could check irssi's configuration regarding UTF-8-ness. | 09:07 | ||
huf | ascii and latin1 can go where the sun dont shine | ||
frettled | sbp: nice slogan :) | ||
tadzik | isn't jnthn's work on lexical-settings going to help Rakudo too? | ||
09:08
mj41 joined
|
|||
frettled | 27416 jani 20 0 321m 261m 8504 R 100 3.3 1:17.38 parrot | 09:08 | |
Hah, I remembered correctly regarding memory usage. :D | 09:09 | ||
This is on an x86_64 computer, though, so memory usage is higher than it would be on x86_32. | |||
It's still climbing, around 400 MiB virtual now. | |||
I recall that we had some problem reports last year about computers running out of memory while running Parrot to make Rakudo, tee-hee. | 09:10 | ||
And there it broke the 512 MiB resident barrier. | 09:11 | ||
Warp 1? | |||
09:12
Axius left
|
|||
jnthn | morning o/ | 09:13 | |
09:14
masak joined
|
|||
masak | oh hai, zebras! | 09:14 | |
jnthn | hah, I beat masak to proving my awakeness by 1 minute :P | 09:16 | |
frettled | Pandas. We're pandas. | ||
jnthn: \o/ | |||
masak | frettled++ # preserving our image | ||
jnthn | You make it seem to black and white... | ||
*so | 09:17 | ||
frettled munches on some bamboo sprigs. | |||
jnthn considers a bacon sarnie | |||
masak | frettled: you realize that you're not a *real* panda until you have the panda badge on modules.perl6.org? :) | ||
frettled | masak: uhoh | ||
Perhaps I'll lay off the bamboo sprigs until I know my stomach can handle it, then. D | 09:18 | ||
masak | waking up, I had this idea about attribute initialization and BUILD and all that stuff. | 09:19 | |
I haven't thought it through since that half-asleep state, but I'd like to hear what you think about it :) | |||
frettled | Is it coherent? :D | 09:20 | |
masak | think so. | ||
basically, we ditch the restriction of "you can't access $!foo because this is a type object, sonny". | |||
frettled | Hmm, building Rakudo Star 2011.01 took less than 15 minutes on less-than-current hardware. I'll be darned yellow, that's less than I recall it was for the 2010 editions. | 09:21 | |
masak | when we see an assignment 'has $!foo = "OH HAI";', we do that assignment at class construction time, to the type object. | ||
jnthn | wait, what? | ||
masak | not a good idea? :) | ||
jnthn | Well, type objects are "empty instances". | 09:22 | |
It's the lack of storage that makes them undefined. | |||
arnsholt | frettled: IIRC there have been a number of Parrot performance improvements in the last year or so | ||
masak | no, it's being undefined that makes them undefined. | ||
jnthn | And how do we decide that it's undefined? | 09:23 | |
frettled | arnsholt: yes, I recall some of the chatting about it. | ||
jnthn | Anyway, doing it at class construction time is hard. | ||
frettled | arnsholt: funnily enough, this hardware is just over four years old :) | ||
jnthn | We don't have all the attributes yet, and maybe not all the parents. We need to know to compute a storage approach for, e.g. P6opaque. | 09:24 | |
And we can't do that until after class composition. | |||
So in that case the type object really *doesn't* get allocated with anywhere to store the attributes. | |||
I'm guessing where you're going is "and then we just clone the type object to make an instance", though :) | 09:25 | ||
frettled | jnthn: I'm just waiting to hear why that is bad as well :) | 09:26 | |
jnthn | It'd work in the case masak++ suggested | ||
But for has $.c = $.a + $.b; | |||
It's rather more problematic, as you want to do some evaluation there each time. | 09:27 | ||
frettled | Hmm, I thought $! and $. were disjunct. | 09:28 | |
jnthn | Well, I coulda written has $!c = $!a + $!b; as well :) | ||
09:28
hanekomu joined
|
|||
frettled | (: | 09:28 | |
jnthn | (Also, has $!a = foo(); has the issue that foo() might to be defined by class construction time...it may be post declared.) | 09:29 | |
mberends | ncow: US$2.50 should get you 1GB RAM to massively upgrade your computer: us.webuy.com/product.php?sku=SMEMM8DHD | 09:30 | |
masak | as I said, it's just an idea, and I was curious where it would lead us; if it solves any problems, etc. | 09:32 | |
yesterday I was creating a bunch of small classes just for giving names to things. | |||
they looked like this: 'class OpType::Comma is OpType { method tightness { 2 } };' | 09:33 | ||
my first instinct was to write it as 'class OpType::Comma is OpType { has $.tighness = 2 }' | |||
but I realized I would only be using these classes as type objects, never as instances. so that idea was out. :/ | 09:34 | ||
frettled | Isn't declaring tightness as a constant very restricting? | ||
masak | frettled: I was basically after a way to assign a constant to the type. | ||
so that I can later do 'if $op1.tightness < $op2.tightness { ... }' | 09:35 | ||
jnthn | std: class Foo { constant $.bar = 2; } | ||
p6eval | std 4608239: OUTPUT«ok 00:01 121m» | ||
masak | ah, that would be it. | ||
jnthn | Doesn't need an attribute, should be able to just have a constant and a method to access it :) | ||
Granted Rakudo almost certainly doesn't yet handle that. | 09:36 | ||
masak | jnthn++ | ||
jnthn | :( | ||
masak | no, rakudo doesn't handle 'constant'. alpha might've. | ||
jnthn | Well | ||
I think it "handled" it. :) | |||
masak | jnthn: but that's not your fault :) it's everybody's "fault" :) | ||
jnthn | Part of what I've been doing in nqp/ctmo is letting us have a much more proper implementation of constant :) | 09:37 | |
frettled | masak: Ah, I think I see what you're getting at now. | ||
masak | \o/ | ||
jnthn: right. | 09:38 | ||
09:42
woosley joined
|
|||
masak | rakudo: class C {}; use Test; is_deeply C.new, C.new, "the are alike" | 09:48 | |
p6eval | rakudo 5ac05e: OUTPUT«not ok 1 - the are alike# got: C.new()# expected: C.new()» | ||
masak | s/the/they/ | ||
anything we can do about that? or would that just be overkill? | |||
jnthn | Well, the fallback could be "are they exactly the same type, and if so, do they deeply have the same attributes" | 09:52 | |
masak | that's what I'm thinking. | ||
oh well, I'll just write an adapter this time. | |||
turning the objects into hashes. | |||
jnthn | .Capture.hash will pretty much do that for you, btw :) | 09:54 | |
masak | even for private attributes? | ||
09:55
icwiener joined
|
|||
jnthn | ah, good question | 09:55 | |
forget offhand | |||
masak | rakudo: class C { has $!a }; say C.new(:a(42)).Capture.hash.perl | 09:56 | |
p6eval | rakudo 5ac05e: OUTPUT«{}» | ||
09:56
zby_home_ joined
|
|||
masak | rakudo: class C { has $.a }; say C.new(:a(42)).Capture.hash.perl | 09:56 | |
p6eval | rakudo 5ac05e: OUTPUT«{"a" => 42}» | ||
masak | jnthn++ | ||
and, phew. :) | |||
rakudo: class C { has $!a; method a { $!a } }; say C.new(:a(42)).Capture.hash.perl | 09:57 | ||
p6eval | rakudo 5ac05e: OUTPUT«{}» | ||
masak | hm... | ||
jnthn | It'll go by .has_accessor on the meta-attribute. | 09:58 | |
masak | nod. | 09:59 | |
10:04
MayDaniel joined
|
|||
masak | rakudo: given 42 { when SomeUndeclaredTyp { say "OH HAI" }; default { say "OH NOES" } } | 10:07 | |
p6eval | rakudo 5ac05e: OUTPUT«===SORRY!===Missing block at line 22, near "; default "» | ||
masak | er, s/Typ/Type/ | ||
std: given 42 { when SomeUndeclaredTyp { say "OH HAI" }; default { say "OH NOES" } } | 10:08 | ||
p6eval | std 4608239: OUTPUT«===SORRY!===Function 'SomeUndeclaredTyp' needs parens to avoid gobbling block at /tmp/ggW4TXS4y1 line 1:------> given 42 { when SomeUndeclaredTyp⏏ { say "OH HAI" }; default { say "OH NOEMissing block (apparently gobbled by | ||
..'SomeUndeclaredTyp'… | |||
masak | I like STD's error messages much better here. | ||
masak submits rakudobug | |||
10:13
MayDaniel left
|
|||
jnthn | Hmm, may not be too hard to add a basic version of that | 10:13 | |
masak | rakudo: role A { our sub foo { say "OH HAI" } }; A::foo | ||
p6eval | rakudo 5ac05e: OUTPUT«Cannot find sub A::foo in main program body at line 1» | ||
masak | jnthn: should that work? | ||
jnthn | mumble | 10:14 | |
masak submits rakudobug | |||
jnthn | :) | ||
I don't know, tbh. | |||
I can argue it both ways. | |||
masak | me too. | ||
but I wrote it by accident, and now that I'm thinking about it, it doesn't seem so odd. | |||
jnthn | role A { our sub foo { say $?CLASS } } # ouch :) | ||
masak | well, yeah. but there will always be edge cases. | 10:15 | |
jnthn | True | ||
frettled | masak: cutting edge cases, even :) | ||
masak | I can distinguish methods using the $obj.A::foo syntax, so why not subs using just A::foo? | ||
frettled: that's why they're double-edged swords? :P | 10:16 | ||
jnthn | rakudo: sub foo($x) { our sub bar() { say $x; } }; bar() | ||
p6eval | rakudo 5ac05e: OUTPUT«Null PMC access in type() in 'bar' at line 22:/tmp/5gk1BaNW3F in main program body at line 22:/tmp/5gk1BaNW3F» | ||
jnthn | It's basically this :) | ||
frettled | masak: or used as razors by Mr. Occam? | 10:17 | |
jnthn | std: sub foo($x) { our sub bar() { say $x; } }; bar() | ||
p6eval | std 4608239: OUTPUT«Potential difficulties: &bar is declared but not used at /tmp/GLTX5X17cG line 1:------> sub foo($x) { our sub bar⏏() { say $x; } }; bar()ok 00:01 122m» | ||
jnthn | Interesting. :) | ||
masak | I know STD is a bit wrong in that area. | ||
so take that with a granum of salus. | 10:18 | ||
jnthn | It complained about &bar not being used, but not about bar() not being defined. | ||
masak | this is untenable. the sun is shining, and I haven't had my run this weekend. | 10:23 | |
as lue++ would've said: "curse you, nice weather!" | |||
frettled | See masak run. | ||
10:24
satyavvd joined
10:26
satyavvd_ joined
10:27
awoodland joined
10:28
satyavvd left
10:34
sftp_ joined,
sftp left
10:38
awoodland left
10:50
whiteknight joined
10:52
satyavvd_ left
11:07
dayangkun_ joined
11:12
Chillance joined
|
|||
dalek | rors: 62aa2c5 | moritz++ | notes.pod: Exception isa Capture |
11:13 | |
masak | Capture: Function call arguments (right-hand side of a binding) | 11:30 | |
moritz: is this so that you'll be able to match Signatures against Exceptions? | |||
um... we're overloading $0 etc for exceptions? | 11:32 | ||
that feels... odd. | |||
moritz: I'd have expected the uniquely identifying part of an exception to be the type object of the Exception (a subtype of X:: or whatever). | 11:34 | ||
moritz: why use strings or integers when we have a type system? | |||
moritz | masak: because I don't want to force people to create a new type for every possible error | 11:39 | |
masak: note that you can still create enums of errors, and stick them in as IDs | |||
this is not java after all :-) | 11:40 | ||
masak | I'm not saying it's Java. | ||
I am saying, however, that I looked forward to the interaction between smartmatching on X:: types and inheritance. | 11:41 | ||
I think the long-term benefits of that should be at least considered. | |||
moritz | you can create X:: enums, and smartmatch .[0] against them | 11:42 | |
you can also subclass yourself, or compose roles into your own exception objects | 11:43 | ||
they are just objects after all | |||
11:44
icwiener left
|
|||
masak | I'm thinking of the use case "catch any numeric exception" or "catch any I/O exception". | 11:49 | |
moritz | masak: would you be happier with coarse grained types and carrying finer grades of information via the capture elements? | 11:53 | |
11:54
Patterner left
11:56
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
masak | moritz: at this point, it's not so much about happiness. I just want to make sure we don't put a poor man's type system in place where we could have had... our type system. | 11:59 | |
I already know 'when' clauses work very well with types. | 12:01 | ||
12:01
arnsholt left
|
|||
moritz | 'when' clauses work well with everything that smart-matches | 12:01 | |
masak | yes, but you know what I mean. when I use a type, I have exactly one word, and I write that. 'when SomeType'. | 12:02 | |
if you want to talk about happiness, handling exceptions that way would make me happy. :) | |||
moritz | I see what you mean, but I have some reservations | 12:03 | |
those include: I don't want to define a huge number of empty classes or roles solely for classification. That just feels wrong. | |||
if those types are composed at runtime on demand, that itself can lead to further errors | 12:04 | ||
masak | could you give a concrete example? | 12:05 | |
moritz | methods can clash when composing multiple roles | ||
or does that only happen at compile time? | 12:09 | ||
jnthn | Depends. | ||
If you mix them in one by one, no clash. | |||
If you do like $foo does (Bar, Baz, WTF) | |||
Then you could get a conflict. | 12:10 | ||
Note that if matching against signatures is important, that mostly involves defining .Capture to do whatever sort of mapping from the exception object you wish | |||
It doesn't have to be a capture | |||
$foo ~~ :(...) will, as a fallback if none of the other smartmatching cases match, do a capture coercion. | 12:11 | ||
12:14
dayangkun_ left
|
|||
masak | the "conflict" you get with '$foo does (Bar, Baz, WTF)' isn't an error; it's just later methods applied winning. | 12:19 | |
jnthn | No | ||
$foo does (Bar, Baz, WTF) is "derive an anonymous subclass, and .^add_role each of them, then compose it" | 12:20 | ||
(See S14) | 12:21 | ||
It's different from | |||
(($foo does Bar) does Baz) does WTF | |||
masak | ah. | 12:24 | |
I sit corrected. | |||
jnthn | The semantics you want are available, just not with the syntax you mentioned. :) | 12:29 | |
masak | right. | 12:33 | |
12:34
Chillance left
|
|||
jnthn | stroll & | 12:36 | |
12:41
arnsholt joined
|
|||
masak | hunting for food & | 12:57 | |
13:05
arnsholt left
13:17
MayDaniel joined
13:27
MayDaniel left
13:32
yegor left
13:35
pmurias joined
|
|||
jnthn | Hunting? Gee, I normally just go to the supermarket these days... | 13:40 | |
13:41
alester joined
13:47
yarp joined
14:03
yegor joined
14:08
hudnix joined
14:09
arnsholt joined
14:39
uniejo left
14:41
yarp left
|
|||
TimToady | it seems that std: isn't updating, 'cuz I fixed this several weeks ago | 14:46 | |
std: sub foo($x) { our sub bar() { say $x; } }; bar() | |||
p6eval | std 4608239: OUTPUT«Potential difficulties: &bar is declared but not used at /tmp/c4_DUQ3F35 line 1:------> sub foo($x) { our sub bar⏏() { say $x; } }; bar()ok 00:01 122m» | ||
14:47
Chillance joined
14:49
yegor left
|
|||
TimToady | and I think roles are the right approach to use on exception classifications | 14:49 | |
if you compose at compile time, you'll get conflicts at compile time | 14:50 | ||
14:50
yegor joined
|
|||
TimToady | and that's exactly what roles are for, inheritance without hierarchy | 14:51 | |
we can also ensure that if an error occcurs while creating exceptions, we capture all the data raw and don't thrown any info away | 14:52 | ||
"Panic: here's everything I know: ..." | 14:53 | ||
s/ensure/try to ensure/ :) | |||
14:54
MayDaniel joined
|
|||
TimToady | bbl & | 14:54 | |
14:55
yegor left
14:59
colomon left
15:01
MayDaniel left
15:04
colomon joined
15:07
pmurias_ joined,
pmurias_ left,
yegor joined
15:11
kaare_ joined
15:19
sivoais left
15:24
jaffa4 joined
15:38
justatheory joined
15:44
woosley left
15:50
[Coke] left
|
|||
masak | \o/ # roles/inheritance for exceptions | 15:51 | |
15:51
[Coke] joined
15:52
daxim left
15:54
hanekomu left
16:13
envi left
|
|||
masak | is there a list equivalent of .join? | 16:15 | |
i.e. input a list, output the same list but with one or more items intersprixeled in between each original element. | |||
rakudo: say (1..5 Z "foo", *).perl | 16:16 | ||
jnthn | Zip? | ||
p6eval | rakudo 5ac05e: OUTPUT«(1, "foo", 2, "foo", 3, "foo", 4, "foo", 5, "foo")» | ||
masak | not quite. | ||
I don't want the fencepost at the end. | |||
oh well. | 16:17 | ||
I'll just write it out as an explanatory for loop :) | |||
frettled | TimToady++: oooh, nice clarifying explanation | 16:18 | |
16:20
alester left
16:21
icwiener joined
|
|||
masak | for @original { push @new, $_, "foo"; LAST { pop @new } } | 16:21 | |
is quite nice. | |||
sorear | good * #perl6 | 16:26 | |
moritz | hello sorear | 16:27 | |
16:27
hanekomu joined
|
|||
dalek | ecza: 11b04b4 | pmurias++ | hoopl/ (2 files): [hoopl] refactoring |
16:27 | |
pmurias | sorear: hi | ||
jnthn | o/ sorear | 16:28 | |
jnthn ponders what he's gonna do for dinner :) | |||
moritz just had a lovely, self-made pizza | |||
jnthn | ooh :) | ||
frettled is eating two oven-baked fillets of trout with a lemon-mango marinade, plus a mash of cooked vegetables (carrots, sweet potato, etc.). | 16:29 | ||
jnthn | Eww, fish. :P] | 16:30 | |
frettled | ghoti! | ||
jnthn | :D | ||
16:30
hanekomu left
|
|||
sorear | ncow: ping | 16:33 | |
masak is getting ready to cook a lentil dal with whole cinnamon, cardamom, and cloves | 16:35 | ||
perl6: my @foo; pop @foo; say "alive" | 16:36 | ||
p6eval | niecza v4-66-g11b04b4: OUTPUT«Unhandled exception: System.IndexOutOfRangeException: Array index is out of range. at Niecza.VarDeque.Pop () [0x00000] in <filename unknown>:0  at CORE.C264_List_2Epop_2Ditem (Niecza.Frame ) [0x00000] in <filename unknown>:0  at Niecza.Kernel.RunCore | ||
..(Niecza.Frame& cur) [0x00… | |||
..pugs, rakudo 5ac05e: OUTPUT«alive» | |||
masak | sorear: ^ | ||
jaffa4 | is there pack | 16:38 | |
unpack | |||
in Perl 6? | |||
masak | jaffa4: yes. | ||
moritz | jaffa4: you should know by know where the specs are, and how you can search them | ||
s:2nd/know/now/ | |||
jaffa4 | In what language it implemented? | ||
masak | jaffa4: and I started implementing them last summer, but they're big, so I only got started. | ||
jaffa4: they're in the setting, so they're in Perl 6. | |||
jaffa4 | Is it implemented? | 16:39 | |
masak | jaffa4: partly. | ||
not too much, actually. | |||
patches are welcome. | |||
jaffa4 | have your though about convert perl5 functions into perl6? | ||
masak | see github.com/rakudo/rakudo/blob/mast...Buf.pm#L40 for the implementation of Buf.unpack | 16:40 | |
jaffa4: yes, I have. | |||
jaffa4 | that is how you do it | ||
masak | jaffa4: specifically, I'd like to port the 17k Perl 5 tests for pack/unpack. | ||
jaffa4 | ,is that not? | ||
masak | jaffa4: the implementation will likely differ a bit, because Perl 5 doesn't have the concept of Buf. | ||
moritz | perl 5 doesn't separate Str and Buf, which makes it non-trivial | ||
masak | and that has more repercussions that one might first think. | 16:41 | |
moritz | also perl 5 doesn't have user-facing scalar data types | ||
masak | unpack/pack are full of (conscious) intermixings of string and buf. | ||
moritz | so it doesn't matter if unpack returns '123' or 123 in perl 5 | ||
it does in perl 6 | |||
masak | hm, that one never posed that much of a problem. | ||
but yes, it's a difference. | |||
jaffa4 | String and buffer? | 16:42 | |
I do not know the difference myself? | |||
masak | hold on, I have a blog post on that :) | ||
16:42
am0c joined
|
|||
jaffa4 | I do not know the difference myself... | 16:42 | |
masak | strangelyconsistent.org/blog/str-an...get-it-now | ||
jaffa4: ^ | |||
jaffa4 | By the way, D language makes similar distinctions | 16:44 | |
When does it make a difference? | 16:45 | ||
Are these going to be two different type? | |||
masak | yes, exactly. | ||
strings are made of characters. bufs are made of bytes. | 16:46 | ||
jaffa4 | so string is going to have encoding property I guess | ||
masak | bytes are not characters. bytes *code for* characters. | ||
jaffa4: maybe as an implementation detail, they will. | |||
but when something is a string, that's when it doesn't *need* an encoding property. | 16:47 | ||
because it's already characters. | |||
jaffa4 | characters but what characters? | ||
moritz | Unicode characters | ||
codepoints or graphemes | |||
masak | even that is an implementation detail. though a more important one. | 16:48 | |
moritz | no, it's really part of the API | ||
masak | TimToady seems to not want us to be entirely tied to Unicode, though. | ||
there are some places on the planet where Unicode is a bad idea. | 16:49 | ||
moritz | if I have a base character and a combining character, does . in regex match them both? | ||
masak | sounds like a question for tchrist :P | ||
moritz | ah, your "even that" was about Unicode, not about graphemes/codepoints, it seems | ||
jaffa4 | utf8,16? | ||
32? | 16:50 | ||
masak | moritz: aye. | ||
jaffa4: preferably all of them. | |||
moritz | jaffa4: those can all encode the same characters, which is that question doesn't matter | ||
masak | jaffa4: that's just a question of how you encode/decode. | ||
jaffa4: but we tend to default to utf8. | |||
jaffa4 | ok | 16:55 | |
16:59
masak left,
masak joined
17:01
pmurias left
17:03
pmurias joined
17:07
knewt2 left
|
|||
dalek | ast: ea701e8 | moritz++ | S02-builtin_data_types/instants-and-durations.t: [instants-and-durations.t] test Durations with integers to avoid occasional test failures due to FP errors |
17:08 | |
moritz | I've meant to do this for ages. | ||
masak | moritz++ | 17:09 | |
tadzik | g'afternoon pandas | 17:18 | |
masak | tadzik! \o/ | 17:19 | |
17:24
am0c left
|
|||
moritz | tadzik++ # I for one welcome our new module overpanda :-) | 17:25 | |
tadzik | overpanda? :) | 17:27 | |
moritz | a panda-shaped overlord :-) | 17:30 | |
masak .oO( "...things quickly turned panda-shaped" ) | 17:31 | ||
tadzik | I could gain some Panda-weight :0 | 17:33 | |
:) | |||
thundegnat++! | 17:34 | ||
A vice-panda appears! Or even the biggest Panda, he has TWO Panda-badged modules :) | 17:35 | ||
still I don't know why does he use - rather than :: | |||
17:40
mj41 left
17:46
birdwindupbird joined
17:53
birdwindupbird left
18:05
Mowah joined
18:09
_jaldhar left,
_jaldhar joined
18:10
SHODAN joined
18:12
Mowah left
|
|||
tadzik | oh, the lovely "Died". What a strange disturbance of the force: tests pass, program dies | 18:14 | |
masak | time to write more tests! | 18:15 | |
(and perhapd not to die without a message from within the application) :) | |||
tadzik | "ha ha ha" | 18:16 | |
try { $panda.resolve($x) }; | 18:17 | ||
say $! if $!; | |||
seems to be the problem. Is $! reseted after a successful try {}, and should it? | |||
masak: yeah, the main thing that disturbs me is not the fact that I shipped a broken Panda, but the fact that my tests are wrong :) | 18:18 | ||
tests do not test panda-the-script after all | |||
18:22
Rotwang joined
18:26
Mowah joined
18:32
[Coke] left
18:34
[Coke] joined
18:41
risou left
|
|||
tadzik | hmm | 18:41 | |
try { foo() }; $fail = $! is clearly not the same as try { foo(); CATCH { $fail = $! } }. Intentional? Why? | 18:42 | ||
18:43
rgrau joined
|
|||
moritz | a try { } that didn't catch an exception resets $! | 18:45 | |
so that after the try you can ask $! if something went wrong | |||
tadzik | yes | 18:46 | |
the first case resulted in a strange "Died" out of nowhere, the second works | |||
rakudo: try { die 'a'; CATCH { die "inside" } } | 18:48 | ||
moritz | that's a know bug | ||
p6eval | rakudo 5ac05e: OUTPUT«(timeout)» | ||
tadzik | just checking if it's still here | ||
18:59
ponbiki joined
19:01
birdwindupbird joined
19:02
birdwindupbird left
19:03
birdwindupbird joined
19:05
Mowah left
19:06
Alias joined,
newguy left
19:08
Alias_ left
|
|||
tadzik | phenny: tell colomon IO::Prompter's META.info has a missing dep (Testing), mind adding it? | 19:09 | |
phenny | tadzik: I'll pass that on when colomon is around. | ||
tadzik | phenny: thank you dear | ||
19:14
Mowah joined
|
|||
tadzik | jnthn | Doesn't emacs have everything? ;) | 19:15 | |
lue | It has an organizer! \o/ | |||
jnthn | I bet it even has a girlfriend. | |||
we surely need "#perl6quotes", like Parrot has ParrotQuotes on their wiki | |||
jnthn | gee, when'd I say that... :P | 19:16 | |
19:18
noganex joined
19:19
szr joined,
icwiener left
|
|||
ncow | ok, it's been over 40 hours and it's still compiling. | 19:20 | |
cognominal | I know that text has a mate :) | ||
ncow | sweet buttery jesus, what is it in there that could be talking so long? | 19:21 | |
tadzik | ncow: you're below the system requirements, get over it | ||
ncow | actually from what I've read I seem to be right on the line | ||
19:21
noganex_ left
|
|||
ncow | nevertheless, I've never had something take so long to compile on this system. | 19:22 | |
arnsholt | ncow: It's well established that swap thrashing will instantly increase your run-time by many orders of magnitude | ||
frettled | ncow: btw, your hardware is not eight years old, the CPU is at leaste nine years old. :) And you have too little RAM (as I said), so your OS is probably trashing. | ||
arnsholt | It sucks, but there not really anything that can be done about it | ||
frettled | except upgrading a little bit | ||
ncow: I tested on _four_ year old hardware, hardly anything like current, and got Parrot + Rakudo (from Rakudo Star 2011.01) compiled in about 12 minutes. | 19:23 | ||
ncow | yes the HD activity LED indicator is constantly lit uo | ||
up | |||
may I ask why it needs so much ram just to first-time compile? Again, I feel forced to compare this experience to everything else I've ever compiled from source on this (or other) machines | 19:24 | ||
frettled | ncow: then I'm afraid to say you cannot have compiled much in terms of recent software. That something requires more than 200 MB of RAM while compiling is, unfortunately, hardly news. | ||
sorear | ncow: HELLO | ||
ncow | why was this process constructed in such a way that calls for so much ram, that is all I want to know. | 19:25 | |
sorear | ncow: do you have me on ignore or something? | ||
tadzik | sorear: no, he just asks the same question for the third time | ||
ncow | frettled: I've compiled an awful lot, actually, on this machine alone, as well as countless other set ups, believe me kindly, I'm not stranger to this | ||
sorear: no, sorry | |||
sorear: I'm looking back but I don't see anything from you other than these two lines that I see here, if there is something I've missed, I am sorry | 19:26 | ||
tadzik: I'm not meaning to sound repetative, it's just a little frusterating. It seems this build process is grossly biased towards newer hardware, when 98% of thing that I've build from source on this machine take under 15 minutes, depending on the size of the package. Sometimes even just a couple minutes. I can build an entire tool chain (glibc, gcc, bin-utils) in under 3 hours | 19:28 | ||
frettled | ncow: even the linux kernel, in less than 15 minutes?! | ||
ncow | It can build Perl 5 in under half an hour. Yet it takes almost two days so far to build. | 19:29 | |
masak | ncow: your computer is swapping a lot. | ||
ncow | frettled: as I mentioned the other day, that one is an exception. the kernel image + modules usually takes around 4 hours | ||
frettled | ncow: and the problem is that Parrot _does_ require a lot of RAM to do it | ||
ncow | 3 hours* | ||
frettled: which is still a far cry from 48 hours | |||
frettled | ncow: it's not an exception, I'm afraid, it's rather common for complex software to take both lots of memory while compiling and lots of disk access. | ||
masak | ncow: this would all be solved with more RAM. | ||
ncow | masak: I have no doubt about that | 19:30 | |
frettled: I perfectly udnerstand that | |||
but I still find it difficult to accept that the current process is the most optimal and best all around. | |||
pmurias | it's not | 19:31 | |
jnthn | ncow: Nobody has set out and *planned* for the build process to take a bunch of RAM. It does because the toolchain it's built upon isn't particularly well optimized yet. | ||
frettled | ncow: nobody has claimed it is | ||
jnthn | Or in some places, at all optimized. | ||
pmurias | but your machine is obsolete | ||
ncow | When I fly back home, I'll be building it on a newer quad core machine with 8 gigs of ram (my own at home) which i'm sure will be monumentally faster | ||
frettled | ncow: in fact, you've gotten explicit acknowledgement that it's suboptimal. | ||
ncow | fair enough | ||
frettled | ncow: if it's a four year old 2.4 GHz box like the one I tested on (in a multi-user setting), expect around 12 minutes :) | 19:32 | |
masak | neither of us should be blaming the other. it's just that ncow's setup and Rakudo don't work together well right now. | ||
jnthn | ncow: Things will improve, but development takes time. :-) | ||
ncow | I'm nto blaming anyone | ||
sorear | ncow: have you considered not using Rakudo? | 19:33 | |
frettled | sorear: heresy! :D | ||
ncow | do you fellas suppose I could instead fire up linux in a virtual machine (I have one in vmware ws 7) on my dual core laptop that I have with me here and build it there, and then transfer the finished build to the real box? | ||
19:33
donri left
|
|||
masak | ncow: sure. | 19:33 | |
sorear | ncow: rakudo builds are non-transportable, that's why there's no binary available for download | ||
ncow | I'm not sure what dependacies it relies on. I usually prefer to build on (or at least for) the target system | ||
SHODAN | or you could just replace the real box with the laptop | 19:34 | |
;) | |||
ncow | sorear: I was afraid of that | ||
sorear: not use rakudo? what other Perl 6 alternative is there? | |||
sorear | ncow: now, on the other hand, github.com/downloads/sorear/niecza...a-4.01.zip | ||
pmurias | niecza uses a lot less ram | ||
ncow | sorear: I just wanted to test out Perl 6 | ||
sorear | I have a 8-9 year old computer with 384 MB ram | ||
tadzik | ncow: I understand your mood, and believe me, when you're developing Rakudo, a 15-minute-lasting compilation is not something I fancy a lot. But that's a fact: you're below the memory limit. It's not the length, not the time, it's the amount of memory it needs. What you are probably stuck on, is the compilation of a file of over 7 thousand lines. Rakudo is currently a memory hog, and because it's basically | 19:35 | |
compiling itself, it takes a helluva memory. Combined with the fact that you don't really have that much, it may cause funny situations, like a 40-hour-lasting compilation. As I said, this limitation used to give people segfaults (was that you sorear?), so you're partly lucky, and partly not. Now, the process of minimizing Rakudo's memory usage as well as splitting the compilation to a smaller parts is in | |||
progress, ask jnthn for details. We're sorry for the current state of Rakudo's performance, but we really do what we can, given the manpower we have | |||
...whoa, that was a message | |||
ncow: does that clear your doubts and answer your questions? | |||
sorear | ncow: Parrot's garbage collector is the butt of many jokes around here | ||
ncow: even the people with 8 GiB lying around think it's pathetic | 19:36 | ||
ncow | tadzik: yes, thanks. I udnerstand all that. | ||
tadzik | I'm glad | ||
sorear: oh, it got a lot better recently | |||
jnthn | sorear: The generational GC is an improvement at least. | 19:37 | |
Not that there isn't room for more improvement but still...it's a move in the right direction. | |||
sorear | it still needs to stop requiring 5 separate allocations per P6object PMC | 19:38 | |
jnthn | Indeed. | ||
sorear | it still needs to stop retaining every single temporary in each function (some people call this a problem with the register allocator, but I have a very inclusive conception of "garbage collector") | 19:39 | |
ncow: I don't recommend trying to build niecza, it seems to need about 300MB while compiling itself, but the binary I linked you should work fine | 19:40 | ||
ncow: don't use the Debian mono version (2.6); 2.8 uses about half as much memory (2.10 also works :)) | 19:41 | ||
19:42
GinoMan joined
19:49
pjcj left
19:57
nymacro left
19:58
alester joined
19:59
justatheory left
20:00
colomon left
20:05
birdwindupbird left,
molaf left
20:06
colomon joined
20:09
ymasory left
|
|||
ncow | sorear: thanks | 20:12 | |
20:14
birdwindupbird joined
20:27
_jaldhar left,
_jaldhar joined,
aindilis left
20:28
aindilis joined
20:32
pjcj joined
|
|||
dalek | p/ctmo: 1d1ea2f | jonathan++ | src/metamodel/how/NQP (4 files): Get packages meta-objects to set a hash in their .WHO (can promote it to some more full-on Stash type later, probably, but this is fine for now.) (Foo.WHO)<$x> := 42 style stuff now works fine. |
20:34 | |
p/ctmo: 06f82a8 | jonathan++ | src/metamodel/knowhow_bootstrapper.c: Should have a stash for KnowHOWs too. |
|||
p/ctmo: 9869549 | jonathan++ | src/NQP/ (2 files): s/$*PKGMETA/$*PACKAGE/ - it's the compile time $?PACKAGE, after all. Install $?PACKAGE. Set up a GLOBALish, though nothing is done with it just yet. |
|||
20:41
tzhs left,
wallberg joined
20:49
birdwindupbird left
20:59
SHODAN left
21:00
ymasory joined
21:02
GinoMan left
21:08
GinoMan joined
21:11
Rotwang left
21:13
everyone_loves_P joined
|
|||
masak | everyone_loves_P: \o/ | 21:13 | |
everyone_loves_P: I'm more of an M person myself. | |||
moritz | .oO( everbody loves pm? ) |
21:14 | |
everyone_loves_P | no, Perl!!!! | ||
jnthn | oh, truncation :) | ||
everyone_loves_P | yeah ((( | ||
21:15
everyone_loves_P left
|
|||
jnthn | .oO( everyone_loves_pivo ) |
21:15 | |
21:21
peterhil joined
|
|||
masak | peterhil: hei! | 21:24 | |
peterhil | Hei | 21:32 | |
21:32
kaare_ left
|
|||
masak | peterhil: tervetuloa meidän nöyrä kanava. | 21:34 | |
21:41
dorlamm joined
21:42
ymasory left
21:43
GinoMan left
|
|||
peterhil | Kiitos, ajattelin vain vilkaista mitä uutta Perl 6:ssa on... | 21:44 | |
Opettelin joskus vähän Perliä ennen Pythonia ja Rubya. | |||
frettled | Oooh, I understood five words. | ||
jnthn | I understood Perl, Python and Ruby... :) | 21:45 | |
peterhil | (And now everyone idling will wonder what I'm writing...) | ||
jnthn smiles at the cute case declensions | |||
sorear | I think I get the "6" too | 21:46 | |
peterhil | Translation: Thank you, I just thought to take a peek at what is new on Perl 6... I learned some Perl before Python and Ruby. | 21:48 | |
masak | peterhil: uskon Perl 6 pitää mukavia yllätyksiä sinulle. | ||
did I get that right? I'm leaning heavily on Google Translate here. | |||
jaffa4 | miért kell idegen nyelven beszélni? | 21:49 | |
jnthn | What was that about a goat-pole? | ||
masak | jaffa4: ah, Hungarian. :) | ||
21:50
alester left
|
|||
jaffa4 | sorear: do you have a test suite? | 21:50 | |
peterhil | masak: Oikeammin: Uskon että, Perl 6 sisältää ... | ||
jaffa4 | no comprendo tu palablas | 21:51 | |
peterhil | So I've been learning Javascript lately and read from Wikipedia that Perl 6 has had influences from it in addition to Haskell (optional strong typing?) | 21:52 | |
Are there some functional programming features from Haskell? | |||
Like map, reduce, takeWhile, cycle, foldr etc...? | |||
jaffa4 | cycle | 21:53 | |
I do not know cycle | |||
peterhil | What are the JS influences? The closures and the object system? | ||
jaffa4 | typeless? | ||
jnthn | peterhil: Yes, Perl 6 has various functional bits | ||
peterhil | IIRC cycle takes an array and loops it over in Haskell. | ||
21:54
silent_h_ joined
|
|||
jnthn | rakudo: say [*] 1..10 | 21:54 | |
p6eval | rakudo 5ac05e: OUTPUT«3628800» | ||
jnthn | Is reduction meta-operator | ||
jaffa4 | rakudo [**] 3; | 21:55 | |
rakudo: [**] 3; | |||
p6eval | rakudo 5ac05e: ( no output ) | ||
peterhil | jaffa4: Haskell had some special term for the optional typing... I think it was type inference | ||
jaffa4 | rakudo: [**] 3,1; | ||
p6eval | rakudo 5ac05e: ( no output ) | ||
masak | rakudo: .say for (1, 2, 3) xx * | ||
jaffa4 | rakudo: [**] (3,1); | ||
pmurias | peterhil: i don't think Perl 6 was inspired by Javascript much | ||
p6eval | rakudo 5ac05e: | ||
..OUTPUT«(timeout)312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312312xE2 | |||
rakudo 5ac05e: ( no output ) | |||
masak | peterhil: there's your cycle. | 21:56 | |
and I don't like it that "(timeout)" overwrites the beginning of the output :( | |||
peterhil: and yes, we have map, reduce/fold, and a bunch of other FP concepts. | 21:57 | ||
peterhil: in fact, Perl 5 (and earlier) already had map and grep. | |||
peterhil | masak: OK, cool | ||
pmurias | Perl 5 already has closures so they were not taken from javascript | 21:58 | |
which itself seem to be a bit Perl inspired | |||
masak | Perl 6 has prototypes. sort of. | ||
pmurias | masak: they are real prototypes | 21:59 | |
masak | oh, good. | ||
pmurias | masak: it's just that a prototype OO system is left for CPAN | ||
diakopter | javascript has $varnames and everything ;) | ||
masak | then maybe that's the inspiration from JavaScript? | ||
peterhil | In Javascript the objects are basically just hashes. But the values can contain functions. | 22:00 | |
masak | rakudo: my $obj = { foo => { say "OH HAI" } }; $obj<foo>() | 22:01 | |
peterhil | The description on Wikipedia for Perl6 seems to describe something similar | ||
p6eval | rakudo 5ac05e: OUTPUT«OH HAI» | ||
masak | peterhil: that's not usually how we do objects, but it definitely works. | ||
rakudo: class C { method foo { say "OH HAI" } }; C.new.foo | 22:02 | ||
p6eval | rakudo 5ac05e: OUTPUT«OH HAI» | ||
jnthn | sleep & | 22:03 | |
pmurias | what concepts from python and ruby influenced Perl 6? | ||
peterhil | masak: That latter way seems more familiar from some years back, when I started to learn Perl by doing the Useless Python exercises. | ||
At some point I gave up, and continued with learning Python. :-) | 22:04 | ||
masak | I am not familiar with those exercises. | 22:05 | |
pmurias: I know Ruby sigils inspired Perl 6 twigils :) | |||
22:05
dual left
|
|||
masak | pmurias: (Ruby uses a '@' sigil to show attribute classitude) | 22:05 | |
Python... Python had the chained comparisons before Perl 6 did, I think. | 22:06 | ||
and though it doesn't have junctions, it has set operations named any() and all() that work a bit similar. | 22:07 | ||
pmurias remove mention of SMOP from the wikipedia Perl 6 article | |||
* removed | |||
peterhil | Mixins from Ruby? | 22:10 | |
masak | no, from Smalltalk. | 22:11 | |
I don't think Ruby's do method collision detection. | |||
oh noes! | |||
rakudo: say [1..3].perl | 22:12 | ||
p6eval | rakudo 5ac05e: OUTPUT«[1, 2, 3]» | ||
22:12
alester joined
|
|||
masak | ranges get expanded! | 22:12 | |
pmurias | rakudo: say [1..1000].perl | ||
p6eval | rakudo 5ac05e: OUTPUT«[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, | 22:13 | |
..72, 73… | |||
masak | rakudo: class C { method postcircumfix:<[ ]>($p) { say $p.WHAT } }; C.new[1..5] | ||
p6eval | rakudo 5ac05e: OUTPUT«Range()» | ||
masak | oh phew. | ||
still in business, then. | |||
pmurias | rakudo: say (1..3).perl | ||
p6eval | rakudo 5ac05e: OUTPUT«1..3» | ||
masak | they don't expand in postcircumfixes. :) | ||
pmurias | rakudo: say ["a","b",1..3,"d"].perl | 22:14 | |
p6eval | rakudo 5ac05e: OUTPUT«["a", "b", 1, 2, 3, "d"]» | ||
masak | I guess circumfix:<[ ]> has some kind of flattening context going on. | ||
the things you learn by writing tests :P | |||
jaffa4 | What is []? | 22:16 | |
masak | rakudo: class O { method postcircumfix:<[ ]>() { 42 } }; say O[] | 22:17 | |
p6eval | rakudo 5ac05e: OUTPUT«Method '!select' not found for invocant of class '' in main program body at line 22:/tmp/puyVJCCcYF» | ||
jaffa4 | rakudo: print [1,2,3] | 22:18 | |
p6eval | rakudo 5ac05e: OUTPUT«1 2 3» | ||
jaffa4 | rakudo: print [1,2,3]*3 | ||
p6eval | rakudo 5ac05e: OUTPUT«9» | ||
jaffa4 | rakudo: print (1,2,3)*3 | 22:19 | |
p6eval | rakudo 5ac05e: OUTPUT«9» | ||
jaffa4 | rakudo: print (1,2,4)*3 | ||
p6eval | rakudo 5ac05e: OUTPUT«9» | ||
jaffa4 | rakudo: print (1,2,4,5)*3 | ||
p6eval | rakudo 5ac05e: OUTPUT«12» | ||
peterhil | masak: There were some challenges on here back on 2003: replay.waybackmachine.org/200410190...ecode.html | ||
But the excercises I was referring were actually here: www.pythonchallenge.com/ Fun stuff! | 22:20 | ||
22:20
silent_h_ left
22:21
jaffa4 left
|
|||
masak | hello? p6eval? | 22:21 | |
rakudo: say "OH HAI" | |||
it went to bed. | |||
so should I. | |||
'night, #perl6. | |||
22:21
masak left
|
|||
p6eval | rakudo 5ac05e: OUTPUT«OH HAI» | 22:21 | |
peterhil | 'I got to level 20 and did the first six + nr 17 with Perl | ||
'Night masak | 22:22 | ||
22:26
wallberg left
22:29
coldhead left
22:37
dorlamm left
22:46
dayangkun_ joined
22:47
dayangkun__ joined
22:51
dayangkun_ left
22:57
colomon left
23:03
colomon joined
23:06
rgrau left
23:16
pmurias left
23:19
silent_h_ joined,
[Coke] left
23:21
[Coke] joined
|
|||
diakopter | rakudo: say "OH HAI" | 23:45 | |
p6eval | rakudo 5ac05e: OUTPUT«OH HAI» | ||
diakopter notes quickness |