»ö« 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! | Rakudo Star Released! Set by diakopter on 6 September 2010. |
|||
00:03
hugme joined,
ChanServ sets mode: +v hugme
00:08
Italian_Plumber joined,
Italian_Plumber left
|
|||
ash_ | say 0.so, 0.defined | 00:13 | |
rakudo: say 0.so, 0.defined | |||
p6eval | rakudo 0421d3: OUTPUT«Bool::FalseBool::True» | ||
00:15
justatheory joined,
risou left,
risou joined
|
|||
sorear | .so and .Bool are synonyms, except for some confusing cases with junctions | 00:16 | |
00:18
rgrau_ joined
|
|||
flatwhatson | is that so you can write if so { do_stuff() } ? | 00:18 | |
00:20
risou left
|
|||
sorear | you can't write if so anyway | 00:20 | |
it would have to be if .so | 00:21 | ||
plobsing | sub make-it-so($x is rw) { $x but= True } | ||
ash_ | rakudo: my $_ = 12; given :so { say 1 } | 00:22 | |
p6eval | rakudo 0421d3: OUTPUT«===SORRY!===Redeclaration of symbol $_ at line 22, near " = 12; giv"» | ||
ash_ | rakudo: $_ = 12; given :so { say 1 } | ||
p6eval | rakudo 0421d3: OUTPUT«1» | ||
ash_ | rakudo: $_ = 12; if .so { say 1 } | 00:23 | |
p6eval | rakudo 0421d3: OUTPUT«1» | ||
sorear | rakudo: $_ = 12; given :so { .say } | ||
p6eval | rakudo 0421d3: OUTPUT«so Bool::True» | ||
sorear | # I don't think given does what you think it does | ||
ash_ | rakudo: say 12 ~~ :so | ||
p6eval | rakudo 0421d3: OUTPUT«Bool::True» | ||
ash_ | ah ya | ||
i meant to say when | |||
oops | |||
rakudo: $_ = 12; when :so { .say } | 00:24 | ||
p6eval | rakudo 0421d3: OUTPUT«12» | ||
ash_ | rakudo: $_ = 12; if .so { .say } | ||
p6eval | rakudo 0421d3: OUTPUT«12» | ||
00:25
mfollett joined
|
|||
sorear | rakudo: say 12 ~~ .so # I think Pair.ACCEPTS is deprecated, this is how we do it now | 00:26 | |
p6eval | rakudo 0421d3: OUTPUT«Bool::True» | ||
wolfman2000 | ...is there really a big difference between if and when? They seem to do the same thing | 00:28 | |
plobsing | rakudo: given (42) { if 1..3 { say "small" }; when 42 { say "other" } } | 00:31 | |
p6eval | rakudo 0421d3: OUTPUT«smallother» | ||
plobsing | rakudo: given (42) { when 1..3 { say "small" }; when 42 { say "other" } } | 00:32 | |
p6eval | rakudo 0421d3: OUTPUT«other» | ||
00:32
lichtkind left,
petdance left
00:35
Italian_Plumber joined
00:47
leprevost left
00:48
leprevost joined
00:51
leprevost left
00:54
QinGW joined
00:56
justatheory left
00:58
mavrc left
01:02
rgrau_` joined,
rgrau_ left
01:05
rgrau_` left
01:08
cbk left
|
|||
ash_ | when does a lot more than if | 01:20 | |
masonkramer | define "more" | 01:26 | |
I think they just do very different things | 01:27 | ||
01:27
hercynium joined
|
|||
masonkramer | blogs.gurulabs.com/stephen/2008/12/...nwhen.html | 01:28 | |
01:29
leprevost joined
01:32
molaf joined
01:40
masonkramer left
01:41
astrojp joined,
petdance joined
01:42
LaVolta joined,
molaf_ joined
|
|||
LaVolta | morning #perl6 | 01:44 | |
01:46
molaf left
|
|||
sorear | heya | 01:55 | |
01:57
wolfman2000 left
|
|||
araujo | hi | 02:06 | |
02:25
Italian_Plumber left
02:28
nymacro joined
02:32
dmedley joined
02:33
dmedley left
02:37
cbk joined
02:53
cbk left
03:02
justatheory joined
03:07
cbk joined
03:15
meppel joined
03:16
meppl left
03:33
leprevost left
03:37
envi^home joined
|
|||
xinming | is pugs svn repository down? | 03:50 | |
03:50
meppel is now known as meppl
03:52
colomon left
03:53
cognominal left
03:54
ash_ left
03:58
ash_ joined,
satyavvd joined,
s1n left
|
|||
plobsing | xinming: pugs repo is gone (see use.perl.org/~masak/journal/40524) | 04:00 | |
04:05
ash_ left
|
|||
xinming | plobsing: thanks | 04:08 | |
plobsing: Where is the old pugs svn repository? | 04:10 | ||
04:11
cognominal joined
|
|||
xinming | Just curious. | 04:15 | |
plobsing | /dev/null I guess. | 04:16 | |
04:22
cognominal left
04:23
Chillance left
|
|||
sorear | xinming: Juerd probably has it on a backup tape somewhere | 04:30 | |
xinming: Looking for something? | |||
04:30
xinming_ joined
04:33
xinming left
|
|||
sorear | xinming: Juerd probably has it on a backup tape somewhere | 04:34 | |
xinming_: Looking for something? | |||
04:41
fod left
|
|||
xinming_ | sorear: Nope, Just want to keep the "history" :-) | 04:44 | |
04:46
s1n joined
04:59
ggoebel left
05:01
justatheory left
05:10
kaare joined
05:11
kaare is now known as Guest91659
|
|||
sorear | xinming_: we imported the entire history into git | 05:11 | |
xinming_: if anything the history is more accessible now, since git clones default to "all history" | 05:12 | ||
hmm. I have an Interesting metamodel freeze/thaw problem | 05:14 | ||
if a Unit references several other Units, then loading it will clone them all | 05:15 | ||
maybe I should look at something like kioku | |||
plobsing | sorear: shouldn't you maintain a unique reference to be able to de-dup unit loads (and therefor avoid clones)? | 05:18 | |
sorear | plobsing: that's the problem, I'm trying to find the best way to do "unique reference" | 05:24 | |
sorear is also still trying to figure out exactly how packages want to work | 05:25 | ||
currently the best I've been able to come up with is to, instead of actually referencing the objects, store the unit name + a per-unit ID number | 05:26 | ||
mfollett | Is there a synopsis or other document that'd clue me in on how to add a subroutine to a module dynamically? | ||
or | |||
source, that would work too, sorry for so many lines here | |||
sorear | S11 maybe, though it depends on exactly what you mean | 05:28 | |
subroutine handling is a lot less dynamic in Perl 6 | |||
05:29
plobsing left
|
|||
mfollett | sorear: I didn't find what I was looking for in S11. Basically, I'm trying to fix Tags.pm but the fix is beyond me. Line 29 of it he is adding a bunch of subs into the module via ::Tags{$sub_name} = sub {} github.com/masak/web/blob/master/lib/Tags.pm | 05:30 | |
05:31
xabbu42 joined
|
|||
LaVolta | rakudo: my @l = <a bb c d e f g h>; while @l.munch(3) -> $_ { .say } | 05:36 | |
p6eval | rakudo 0421d3: OUTPUT«a bb cd e fg h» | ||
LaVolta | # perfect! | 05:37 | |
sorear | mfollett: that's more like Parrot code than Perl 6 code | 05:38 | |
sorear thinks maybe packages shouldn't exist at all | |||
05:39
hercynium left
05:40
Amadiro left
|
|||
sorear | mfollett: pir::set_hll_global__vPSP(<Tags EXPORT DEFAULT>, $tag, sub { ... }); is probably the best you can get atm | 05:41 | |
the correct way is Tags::EXPORT::DEFAULT::{$tag} = sub { ... };, but Rakudo doesn't implement stash notation | 05:42 | ||
mfollett | sorear: Thanks! I was told it worked at some time in the past, I'm hoping I can get it working again. I'll look at that. Otherwise I was thinking I could change it into a class and use Tags.HOW.add_method(), but that'd probably change a lot of other things. | ||
sorear: really, my other idea was a bad one. | 05:45 | ||
05:50
sftp left
05:54
timdemkowsky left
06:00
wtw joined
06:02
nymacro left
06:06
nymacro joined
06:08
petdance left
06:14
am0c^ left,
redicaps joined
06:17
pythonian4000 is now known as pythonian4000afk
06:27
redicaps left,
mfollett left
|
|||
moritz_ | good morning | 06:35 | |
nymacro | god morgen | 06:36 | |
06:41
cognominal joined
|
|||
sorear | hello | 06:47 | |
sorear is still very confused by trying to implement GLOBAL | 06:48 | ||
06:49
kjeldahl joined
|
|||
sorear | or rather, I'm very confused by how GLOBAL correctly interacts with separate compilation | 06:58 | |
stuff like class Foo is Bar {} wants to see the unit's global, very very early | |||
stuff like $GLOBAL::foo wants to see the true global, if run after BEGIN | 06:59 | ||
any useful advise? | 07:02 | ||
07:02
Mowah joined
|
|||
moritz_ | populate it at BEGIN time | 07:12 | |
sorear | maybe | 07:13 | |
that's what niecza/master does | |||
er, wait | |||
BEGIN | |||
I'm trying to populate this at BEGIN, yes | |||
moritz_ | .oO( maybe we should rename BEGIN to ASAP :-) |
07:14 | |
sorear | the basic problem is that use A::Foo; use A::Bar; needs to destructively merge GLOBAL<A/Foo.pm> and GLOBAL<A/Bar.pm>, but only for the scope of the one module | ||
precompiled modules need to be immutable, for the whole precompiling thing to work, and mutable, for GLOBAL stuff to work out | 07:15 | ||
moritz_ | maybe GLOBAL is not that global after all | ||
sorear | there's some talk in S02 of one BEGIN-time GLOBAL per file | 07:16 | |
'use' merges GLOBALs from importee into importer, until at the start of CHECK time there is only the one GLOBAL | |||
but... diamonds. | |||
moritz_ | are forever. | 07:17 | |
sorear | if A uses B and C, and B and C use D, then I should get the same result whether B or C is compiled first | ||
D's GLOBAL needs to be independantly and destructively merged into the GLOBALs of both B and C, which seems like a contradiction | 07:18 | ||
lestrrat | Where can one find a reasonably recent howto on writing Perl6 modules? | ||
moritz_ | aren't our-globals aliases fo reach other anyyway? | ||
lestrrat: ttjjss.wordpress.com/2010/08/09/so-...-6-module/ | 07:19 | ||
lestrrat | moritz_: Thank you! | ||
sorear | moritz_: our is pretty easy | 07:21 | |
if I have : use Foo::Bar; class Foo::Baz is Foo::Bar { } | |||
I'm augmenting Foo without monkeys, or something | 07:22 | ||
and I need for the correct augmented Foo to be visible to all modules that use Foo | |||
07:22
buubot left
|
|||
sorear | (I need a RAM upgrade for this brain, it's thrashing crazy now) | 07:23 | |
07:24
buubot joined
|
|||
sorear | maybe I should make like Prolog and implement a unification algorithm that generates an undolog and can be reversed when entering a scope where it should never have happened | 07:26 | |
except that will completely screw up the multi-threaded compilation manager. sigh. | 07:27 | ||
( moritz_ ? ) | 07:29 | ||
07:33
colomon joined
|
|||
sorear | o/ colomon | 07:33 | |
07:33
draxil_ left
|
|||
colomon | \o | 07:33 | |
07:33
draxil joined
07:36
QinGW left
07:38
QinGW joined
|
|||
mathw | o/ | 07:38 | |
07:43
tadzik joined
|
|||
tadzik | good morning | 07:43 | |
sorear | is anyone still listening? | 07:44 | |
colomon | ya | 07:46 | |
moritz_ has no further ideas for sorear | 07:48 | ||
07:52
qwebirc75479 joined
|
|||
colomon | oh, did I miss the key parts of the discussion? | 07:57 | |
colomon backlogs | |||
07:58
Ross joined
|
|||
dalek | href="https://modules.perl6.org:">modules.perl6.org: 33276ef | moritz++ | web/index.tmpl: link to module creation guide |
07:58 | |
tadzik | oh yay. moritz_++ | 07:59 | |
08:05
mikehh left
08:08
nymacro left
|
|||
moritz_ | tadzik: when our module system evolves and things change, it would be nice to turn your blog post into a subpage on modules.perl6.org | 08:09 | |
tadzik | moritz_: I just think whether to include some code-side tips | 08:10 | |
is there any docs about "is export is about exporting and our sub puts it in the modules namespace" besides synopses? | 08:12 | ||
people tend to ask about this sometimes | |||
moritz_ | I don't know of any | ||
tadzik | maybe that's somethng for 5-to-6 | ||
moritz_ adds to his TODO list | 08:13 | ||
08:14
nymacro joined
08:17
REPLeffect joined
08:30
masak joined
|
|||
masak | oh hai, #perl6 | 08:30 | |
tadzik | oh hai | ||
colomon | \o | 08:31 | |
moritz_ | o/ | ||
LaVolta | \o/ | 08:32 | |
sorear | hi masak | 08:33 | |
08:37
dakkar joined
08:40
amkrankruleuen joined
|
|||
dalek | kudo: f523366 | moritz++ | docs/ChangeLog: [docs] update ChangeLog |
08:47 | |
masak | [backlog] "ickle" as a variant of "little" sounds to me like something a parent would say to a small child. | 09:00 | |
09:12
REPLeffect left
|
|||
sorear | this is starting to make a bit of sense, if I eschew the concept of 'my' stashes and MONKEY_TYPING checks | 09:16 | |
why does augment package Foo { sub bar } need MONKEY_TYPING but sub Foo::bar does not? | |||
moritz_ | sub Foo::bar also needs MONKEY_TYPING | 09:17 | |
sorear | what of class Foo::Bar? | ||
quite a lot of rakudo modules start ... class Foo::Bar; | |||
moritz_ | you mean because it's augmenting class Foo? | ||
09:18
masak left
|
|||
moritz_ | I think notionally Foo::Bar is not nested below Foo | 09:18 | |
sorear | it's more like it's augmenting Foo.WHO | ||
yeah | |||
a large part of understanding niecza/mm has been rationalizing the difference between Foo and Foo:: | |||
moritz_ waits for the Foo.WTF macro | |||
sorear: be sure to write that up somewhere | 09:19 | ||
sorear | in particular, I now see Foo as being a child of Foo:: | ||
rather than unrelated adjacent objects as they were in niecza/master | |||
moritz_ | let me get this straight... Foo:: is the symbol table, and Foo the type object? | 09:20 | |
sorear | yes | ||
moritz_ | or ss/symbol table/stash/ if you prefer | ||
good | |||
sorear | in particular, class Foo { ... } creates Foo:: but *not* Foo | ||
moritz_ | rakudo: ss/a/b/ | ||
p6eval | rakudo 0421d3: OUTPUT«===SORRY!===Confused at line 22, near "ss/a/b/"» | ||
moritz_ | sorear: that makes a lot of sense | ||
sorear | but there's no way to do it the other way around | ||
moritz_ | sorear: and I guess class Foo::Bar { } creates Foo:: too? | 09:21 | |
sorear | yes | ||
09:21
REPLeffect joined
|
|||
sorear | Foo::Bar is inside Foo::Bar:: which is inside Foo:: | 09:21 | |
moritz_ | how do you go from Foo:: to Foo? | ||
sorear | I'm not sure yet | 09:22 | |
(well, $stash->obj :) ) | |||
moritz_ | Foo::.type_object could work | 09:23 | |
but maybe it doesn't need API exposure at all | |||
sorear recently deleted most of niecza's notes because they had fallen so far behind current thinking | |||
moritz_: I'm not sure how much of niecza's metamodel is going to be exposed to the programmer | 09:25 | ||
09:26
wamba joined
|
|||
sorear | Whole-program analysis doesn't work very well in a setting where the compiler is visible to itself | 09:27 | |
moritz_ | then you can optimize the compiler in the same step as the program :-) | 09:28 | |
sorear | so I'm seeing that the compiler's CORE is not the same as the user's CORE, no type aliasing exists | ||
moritz_: the flip side of that is that I can't run global optimizations on the compiler early enough for them to matter | 09:29 | ||
unless the program is running millions of evlas | |||
Trashlord | evlas | 09:33 | |
09:34
ggoebel joined
|
|||
moritz_ | elves | 09:34 | |
szbalint | Legolas, what do your elf eyes see? | 09:40 | |
Action at a distance, of course! | 09:41 | ||
moritz_ | :-) | 09:44 | |
tadzik | hah, I backlogged til my first day on #perl6 | 09:45 | |
funny times :) | |||
sorear | my first day on #perl6 was in 2007 paying a house call to lambdabot | ||
09:45
masak joined
|
|||
sorear | which I maintained at the time | 09:45 | |
I don't think I even knew Perl 5 back then | |||
tadzik | well, mine is 13 of June this year. My first sentences were reporting a bug :) | 09:46 | |
moritz_ | mine were reporting a broken link on the pugscode web page | ||
I got a commit bit that day :-) | |||
09:46
bbkr joined,
mavrc joined
|
|||
sorear | Perl people are nice like that. | 09:47 | |
09:50
mavrc left
09:51
mavrc joined
09:56
icwiener joined
|
|||
masak | does rt.perl.org/rt3/Ticket/Display.html?id=78068 mean that the REPL is not yet using the "infinitely nested blocks" idea by TimToady? | 09:58 | |
sorear | masak: infinitely nested blocks were my idea, and I used them in my patch | 09:59 | |
masak | oops. thanks for the correction. | 10:00 | |
sorear | masak: pmichaud++ came up with an alternative implementation, which was sligtly less elegant but had the advantage of not leaking memory | ||
masak | ah. | ||
...and it doesn't handle contextuals? | |||
moritz_ | seems it has a disadvantage too :-) | ||
sorear | in pmichaud's REPL, there is a single outer block, which has a custom LexPad instance that is backed by a hash | ||
after every line, lexicals are copied from the inner to the otuer block | |||
10:03
mavrc left,
kensanata joined
10:04
mavrc joined
10:07
QinGW left
|
|||
moritz_ | wikis.sun.com/display/mlvm/HotSwap might be of interest | 10:15 | |
sorear | that list is ludicrously ambitious | 10:21 | |
unless they are taking it for granted that most of the interesting optimizations, like oh inlining final methods, will never happen | 10:32 | ||
re-optimizing functions with existing call frames is... hard | 10:33 | ||
10:33
daxim joined,
LaVolta left
|
|||
sorear | unless your compiler has a very disciplined approach to spills and caller-saved registers | 10:33 | |
I'm talking about Appelian CPS stuff here | 10:34 | ||
10:37
ruoso left
10:47
satyavvd left
|
|||
jnthn | o/ #perl6 | 10:52 | |
10:53
Mowah left
|
|||
sorear | hey jnthn | 10:54 | |
how's the nom? | |||
jnthn | Breakfast was nice, and lunch was even nicer. :-) | ||
Soon time to get back to work again :-) | |||
sorear | The other nom :-) | 10:55 | |
jnthn | Oh! | 10:56 | |
That nom now supports attributes. :-) | |||
I plan to start getting a ClassHOW sketched out in NQP soon. | |||
Well, already started. But I mean one that akshually runs. :-) | 10:57 | ||
sorear thinks he's finally figured out how to make global merging work | |||
jnthn | Yay. :-) That sounds...tricky. | ||
sorear | (perhaps you forgot to load "Mu"?) # my perl 5 is having an identity crisis | 10:58 | |
I'd be interested to know how you're handling it in nom | |||
10:59
svetlins left
|
|||
sorear | How do you deal with separate compilation of modules in the face of Parrot's single root namespace? | 11:00 | |
11:02
timbunce joined
|
|||
jnthn | pmichaud++ and I discussed this a little at YAPC::EU nad felt we'd have to move away from using Parrot's namespace mechanism at some point. | 11:02 | |
(due to this kinda problem) | |||
sorear | I hope I can help you with your replacement | 11:04 | |
11:05
Italian_Plumber joined
|
|||
jnthn | I hope so too :-) | 11:08 | |
I think it'll be a refactor after the one to get the new meta-model bits in place. | |||
We don't want to bite off too much in one go. | |||
Don't think the Rakudo user base could handle another alpha -> ng style thing, so smaller jumps are kinda preferable. | 11:09 | ||
sorear | tadzik had some code earlier like ::Foo{$name} = sub { } | 11:11 | |
I don't want to think about how that ever could have worked | |||
11:13
araujo left
|
|||
tadzik | sorear: ? | 11:14 | |
sorear | jnthn: Do you see much prospect for object attributes without containers? | 11:17 | |
11:17
satyavvd joined
|
|||
sorear | I don't really like that has $.foo is 1 word for the pointer, then 6 more for the container... but I don't see a good improvement without totally breaking &infix:<=> | 11:17 | |
(I can cut containers to 4 words with a bunch of representation hacks, but it's not enough of a measured win to be worth all the ugly) | 11:19 | ||
jnthn | sorear: Tied up with that is what assignemnt to a my int @foo; actually means. | 11:21 | |
Since that is meant to be a compact array. | |||
sorear | Yes | 11:22 | |
I had a minor breakthrough last night; decontainerization and unboxing make a lot more sense if considered in isolation | 11:23 | ||
I can very easily make an UnboxedContainer<T> type, which allows "my int $foo" to take up only 4 words with no Int object in sight and no loss of semantics | 11:24 | ||
jnthn | I'd certainly seen those as orthogocal, yes. | 11:25 | |
sorear | UnboxedContainer doesn't have to worry about the scalar flag or autovivifaction, which is what allows it to be 4 easily instead of 6 | ||
11:25
boggytwo joined
|
|||
sorear | the flip side is that decontainerized boxed values would be awesome | 11:26 | |
(current niecza memory stuff: objects - 7+#slots words; containers - 6 words; Int - 12 words, because slots are Object and so I need a boxed System.Int32 *grr*) | 11:27 | ||
11:29
REPLeffect left
|
|||
moritz_ | does t/spec/S09-typed-arrays/arrays.rakudo loop for anybody else? | 11:30 | |
sorear out | 11:36 | ||
dalek | ecza/mm: 2d62a5a | sorear++ | / (2 files): [mm] implement ENTER time, a double fault handler |
11:39 | |
ecza/mm: e5ac4b6 | sorear++ | src/ (2 files): [mm] Rethink stash handling |
|||
11:50
dakkar left
11:57
qwebirc75479 left
|
|||
masak | hm. I don't think this has any bearing on Perl 6's Pod. or does it? apple.slashdot.org/story/10/09/26/2...-Trademark | 11:57 | |
flussence | I doubt they're desperate enough to sue over *that* | 11:58 | |
masak | yeah, probably. | 11:59 | |
12:10
sftp joined
12:13
miso_soup joined
|
|||
[Coke] | moritz_: I wonder, would it be possible to show bot responses in a more subdued style on the irc logs? | 12:21 | |
(would make skimming faster. ;) | 12:22 | ||
12:24
kjeldahl_ joined
12:25
satyavvd left
12:27
kjeldahl left
12:31
[Coke] left
12:32
petdance joined
12:33
PhatEddy joined
12:39
dakkar joined
|
|||
PhatEddy | Hey - the rakudo README still lists the smolder reports as being at plusthree.org. Can someone here fix or do I need to open a ticket? | 12:39 | |
12:40
araujo joined
12:41
petdance left
|
|||
masak | PhatEddy: feel free to submit a ticket. | 12:44 | |
PhatEddy | OK - thx | 12:46 | |
12:50
mfollett joined
12:52
Guest91659 is now known as kaare_
12:54
Ross left,
PhatEddy left,
xabbu42 left
12:56
plobsing joined
12:58
icwiener left
12:59
kensanata left
13:02
mfollett left
13:09
boggytwo left,
icwiener joined
13:11
synth left
13:12
rgrau_ joined
13:14
synth joined
13:16
Ross^ joined,
Ross^ left,
Ross^ joined
|
|||
dalek | kudo: 607ec45 | moritz++ | README: [README] fix smolder link, PhatEddy++ |
13:17 | |
13:17
Patterner left
13:18
jest joined,
jest left
13:19
Psyche^ joined,
Psyche^ is now known as Patterner
13:20
plainhao joined
13:21
kaare_ left
13:26
sftp_ joined
13:27
sftp left
|
|||
masak | TimToady: happy birthday! \o/ | 13:31 | |
13:31
gottreu joined
|
|||
xinming_ | TimToady: happy birthday. :-) | 13:32 | |
moritz_ | TimToady++, erm, TimToady.age++ | ||
13:33
zby_home_ joined
|
|||
gabiruh | TimToady: the cake is lie! | 13:36 | |
masak | oh, and thanks for Perl. it makes both my work programming and my hobby programming more joyful. | 13:37 | |
(or is it "they" nowadays?) | |||
13:38
gottreu left
|
|||
moritz_ | if you refer to the language family, 'it' is fine :-) | 13:38 | |
masak | the reminds me of a certain distinction involving sigils... :P | 13:39 | |
13:39
meraxes_ joined
|
|||
moritz_ | :-) | 13:40 | |
13:43
tadzik left
|
|||
masak | there's $Perl, the language family, and there's @Perl, the languages. | 13:47 | |
colomon | TimToady: happy birthday! | ||
13:48
gottreu joined
|
|||
masak | お誕生日おめでとう! ^^ | 13:48 | |
13:48
svetlins joined
|
|||
jnthn | TimToady: Happy birthday! Thanks for a great language and the most fun implementation tormentation of my life. :-) | 13:49 | |
masak | jnthn: masochist! :) | ||
jnthn | masak: masakist! :) | 13:51 | |
masak | acme: acmeist! | 13:52 | |
moritz_ | athe: ist! | 13:53 | |
13:53
tadzik joined
|
|||
masak | :) | 13:53 | |
mathw | istist! | 13:55 | |
13:56
meraxes_ left
|
|||
mathw | TimToady: Happy birthday! Thanks for this exciting journey of language design and implementation! | 13:56 | |
masak | I know we keep saying that Perl 6 development is unprecedented as an open, democratic process of language design. but there are probably other languages that have taken a similar path. what about Haskell, for example? | 13:57 | |
mathw | Haskell is pretty open | 13:58 | |
I remember when they were inviting people to weigh in on Haskell Prime | |||
But they aren't as open as Perl 6 | |||
masak | right. a bit more committee-y. | 13:59 | |
mathw | Yeah | ||
masak | guess Algol 68 was pretty committee-y, too. | ||
mathw | but the committee is pretty much open to anybody with a bit of a track record in that kind of research | ||
so it's open within the field, as it were | |||
very academic approach :) | |||
13:59
icwiener left
|
|||
mathw | and they do produce a good language so I'm not going to complain | 14:00 | |
masak | I think many people who brush by the Perl 6 community and #perl6 don't realize how open the process actually is. | ||
simply because there are not much else to compare against. | |||
mathw | yeah | ||
and also because some of the discussions get pretty esoteric | |||
But that's just because people have familiarity | 14:01 | ||
gottreu is surprised no one has told him to hush. | |||
mathw | Anybody who learns what we're talking about and gets involved is welcome at any level | ||
which is awesome | |||
masak | gottreu: there's plenty of room in the IRC logs :) we're trusting you not to misuse it :P | ||
tadzik | everyone can contribute, whatever the level of Satori, which is awesome | 14:02 | |
masak | tadzik: I like that. use it in a blog post title :) | 14:04 | |
tadzik | about contributing? | ||
14:06
spq1 joined,
mkramer joined
|
|||
masak | here's a good summary of the evolution of Haskell, by the way: research.microsoft.com/en-us/um/peo...istory.pdf -- basically, Haskell evolved first through a number of physical meetings, and then over email. | 14:07 | |
tadzik | I like the word "meatspace" | 14:08 | |
mkramer | kill it with fire | 14:09 | |
we must not let that word catch on | |||
14:09
Holy_Cow joined
14:10
Holy_Cow left,
Guest23195 joined
|
|||
colomon | mkramer: ~393,000 hits for "meatspace" in Google, I think it's a little late to kill it. :) | 14:11 | |
moritz_ | mkramer: what would you use instead? | 14:12 | |
mkramer | space? | ||
masak | 'meatspace' is a fine derogatory terms for those already entrenched in other spaces. I like how it pretends to put the physical world on equal terms with all the other, less palpable ones. | ||
14:12
xabbu42 joined
|
|||
moritz_ | well, having "meetings in space" sounds a bit different to me... | 14:13 | |
masak | tadzik: sorear was referring to the trick used to make Tags.pm work. mfollett++ has been looking at that code recently too. | 14:14 | |
tadzik | Tags.pm? | ||
masak | tadzik: yes, it's in the Web.pm repo. | ||
tadzik | I feel like that wasn't me | ||
mkramer | besides, when we become robots, meatspace isn't going to work | ||
meat is an implementation detail | |||
masak | tadzik: then maybe sorear confused you with mfollett. | ||
tadzik | wait, I haven't touched Web ever since | ||
masak | mkramer: lol! | 14:15 | |
tadzik | I don't feel like messing with my Covers Role | ||
it has bugs, but hell, it has like few tousand years of testing | 14:16 | ||
so at least you know the bugs | |||
not to mention it's extremely flexible | 14:18 | ||
14:18
wtw left,
mfollett joined
|
|||
mfollett | rakudo: class A { has Int $.foo }; my $a = A.new( foo => 'a string'); $a.perl.say # This seems like a bug, is it and is it already reported on? | 14:20 | |
p6eval | rakudo f52336: OUTPUT«A.new(foo => "a string")» | ||
tadzik | I think it's known | 14:21 | |
moritz_ | it's reported, yes | ||
tadzik | rakudo: class A { has Int $.foo }; my $a = A.new; $a.foo = "asd" | ||
p6eval | rakudo f52336: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1 in main program body at line 22:/tmp/4oZEiwaegQ» | ||
tadzik | rakudo: class A { has Int $.foo is rw }; my $a = A.new; $a.foo = "asd" | ||
p6eval | rakudo f52336: ( no output ) | ||
mkramer | heh heh | ||
tadzik | rakudo: class A { has Int $.foo is rw } my $a = A.new; $a.foo = "asd" | ||
p6eval | rakudo f52336: OUTPUT«===SORRY!===Confused at line 22, near "class A { "» | ||
moritz_ | but since jnthn++ is about to redo classes and attributes anyway, there's not much point in investing too much time fixing it right now | ||
tadzik | hmm. colon is obligatory? | ||
masak | mfollett: yes, it's known. | 14:22 | |
moritz_ | semicolon, yes | ||
tadzik | semicolon, right. Hmm, I remember something related in the book recently | ||
moritz_ | tadzik: it's only optional for }\n | ||
masak | tadzik: that's a big syntactic difference from Perl 5. | ||
tadzik | ah, I see | 14:23 | |
masak | tadzik: statement-ending closing brace, and then always \n or ; (or both) | ||
tadzik: it's part of TTIAR | |||
tadzik | TTIAR? | ||
moritz_ | aloha: TTIAR? | ||
masak | Two Terms In A Row. | ||
moritz_ | two terms in a row | 14:24 | |
masak | Perl 6 tries hard to stay away from TTIAR. | ||
14:24
aloha left
|
|||
masak | in fact (as TimToady often points out), it uses TTIAR conditions to give better error messages. | 14:24 | |
some of the best error messages are actually "promoted" TTIAR errors. | 14:25 | ||
14:25
aloha joined
|
|||
masak | s/it/STD.pm6/ | 14:30 | |
moritz_ | the IRC logs now show a tooltip help for TTIAR | ||
masak | moritz_++ | ||
moritz_ | (at least for today and the future; older pages might be taken from the cache | 14:31 | |
and I don't feel like invalidating 180M cache just for one abbreviation | 14:32 | ||
masak | that just means that you're not insane. | ||
moritz_++ | |||
it's a relatively recently trending FLA anyway :P | 14:33 | ||
moritz_ | the logs don't know about TLA or FLA yet :-) | 14:34 | |
masak | keep in mind that FLA is ambiguous. | ||
also, I wouldn't say that it's trending; not like TLA, anyway :) | |||
moritz_ | right; I'm adding only TLA now | ||
14:34
mfollett left
|
|||
masak | oh my, TLA is ambiguous too. but no-one means 'two' when they say it, so that's probably OK. | 14:35 | |
moritz_ | or "ten" :-) | ||
gottreu | Does Perl have the longest A in actual usage with its NLA? | 14:36 | |
masak | and OLA feels like a degenerate concept, even if C, D, R and others would qualify. | ||
tadzik | TLA is LTA imho | ||
14:36
mfollett joined
14:37
Ross^ left
14:38
mavrc left
14:39
mavrc joined
14:41
ggoebel left
|
|||
masak | tadzik: like them or not, the computer industry seems to focus on them. I think there's some healthy chunking effect going on. | 14:42 | |
moritz_ | rakudo: say 26**3 | 14:43 | |
p6eval | rakudo f52336: OUTPUT«17576» | ||
moritz_ | that's decent room for now :-) | ||
14:43
redicaps joined
14:44
redicaps left,
astrojp left
14:45
mavrc left
|
|||
mfollett | thanks all | 14:45 | |
14:47
mavrc joined
14:48
justatheory joined
14:49
risou joined
14:51
mavrc left
14:53
icwiener joined
14:55
plobsing left
14:56
Ross joined
14:57
mavrc joined,
masak left,
ash_ joined
|
|||
pmichaud | good morning, #perl6 | 15:02 | |
15:03
unenana joined
|
|||
colomon | o/ | 15:03 | |
ZadYree | rakudo: $foo = ("bar", "baz"); say $foo[0]; | ||
moritz_ | \o | 15:04 | |
15:04
unenana left
|
|||
tadzik | R* today? | 15:04 | |
pmichaud | tomorrow | ||
tadzik | hello pmichaud | ||
p6eval | rakudo f52336: OUTPUT«(timeout)» | ||
moritz_ | tadzik: did you integrate neutro with star yet? | ||
tadzik | pmichaud: how about adding neutro as a module manager? It works well on Linux and OSX, still hasn't been tested with Windows | ||
moritz_: #define integrate | |||
moritz_ | tadzik: added it to the star repo, so it's available after installation | 15:05 | |
tadzik | nah, still waiting for everyone's decision | ||
that would require adding a bunch of other modules too | |||
moritz_ | ask for forgiveness rather than permission! | ||
tadzik | afair there is proto there now, 2 module managers would be confusing, especially if only one works | 15:06 | |
moritz_ | tadzik: do you have commit access to star? | ||
tadzik | moritz_: yep | ||
moritz_: I tend to be more polite when it comes to Star, it's a big thing | |||
alright, I'm messing up then | |||
are modules built in order? | 15:07 | ||
moritz_ | yes | ||
mfollett | Is proto getting removed from this Star also? | ||
moritz_ | if it doesn't work right now, I'd remove it | 15:08 | |
tadzik | I think so | ||
moritz_ | it can be added later on when it works | ||
15:08
Ross left
|
|||
mfollett | I agree, I was just curious. | 15:08 | |
tadzik | that means File::Tools and Module::Tools also come | 15:09 | |
they're all built using ufo? | |||
15:10
zulon joined
|
|||
tadzik | I volunteer for some testing, as long as it's tomorrow AM UTC | 15:12 | |
TimToady | rakudo: say 42.so | 15:15 | |
p6eval | rakudo 607ec4: OUTPUT«Bool::True» | ||
TimToady | rakudo: say 42.not | ||
p6eval | rakudo 607ec4: OUTPUT«Method 'not' not found for invocant of class 'Int' in main program body at line 22:/tmp/GodIxJNpLn» | ||
tadzik | /tmp/GodIxJNpLn | 15:16 | |
dalek | ar: 2136cf6 | tadzik++ | / (2 files): Modules mashup removed proto, changed File::Find to File::Tools, added Module::Tools, added neutro |
||
15:16
Chillance joined
|
|||
tadzik | I wonder what is the message | 15:16 | |
diakopter | phenny: tell TimToady happy 35:36 | 15:17 | |
phenny | diakopter: I'll pass that on when TimToady is around. | ||
TimToady feels incremented | |||
phenny | TimToady: 15:17Z <diakopter> tell TimToady happy 35:36 | ||
tadzik | TimToady: happy birthday! | ||
and may the christmas come even earlier | |||
diakopter | you know what they say, things that are appreciated must eventually be depreciated. :) | 15:19 | |
15:19
Ross joined
|
|||
TimToady | they also say that anything that goes up must come down, but they're wrong about that... | 15:19 | |
tadzik is thinking about a Camelia sticker for his laptop | 15:21 | ||
ash_ | the only sticker i have on my laptop is from Google Summer of Code | 15:22 | |
15:22
Ross left
15:24
Ross joined
|
|||
tadzik | is there any hi-res (svg?) Rakudo logo somewhere? | 15:25 | |
15:25
astinus_ left
15:26
astinus joined,
masak joined
|
|||
pmichaud | tadzik: looking | 15:28 | |
15:28
Ross left
|
|||
pmichaud | I have it as an Illustrator file | 15:29 | |
tadzik | what is it? | 15:30 | |
15:31
Ross joined,
Ross left
|
|||
pmichaud | I think I can export it as svg, but I'll need to reinstall illustrator | 15:31 | |
doing that now | |||
tadzik | png will do too | ||
pmichaud | pmichaud.com/sandbox/rakudo-box-3000.png | 15:33 | |
(had that one already available :-) | |||
tadzik | awesome! pmichaud++ | ||
I will carry Perl 6 propaganda everywhere I go :) | 15:34 | ||
15:34
Ross joined
15:35
ggoebel joined
|
|||
tadzik | I wonder what would it look like, if I placed Camelia to have a Thinkpad LED inside her eye | 15:35 | |
15:42
Ross left
15:44
Ross joined
15:47
Ross left
15:49
Ross joined,
Ross left,
Ross joined
15:50
Ross left,
Ross joined,
Ross left,
Ross joined
15:59
thepler joined
16:00
ruoso joined
16:01
Ross left,
wamba left
16:05
pyrimidine joined
16:08
stas1 joined
16:09
stas1 left
16:11
Ross joined,
Ross left,
Ross joined
16:12
Ross left
16:14
tadzik left,
Trashlord left,
Ross joined,
Ross left,
Ross joined
|
|||
Grimnir_ | has laziness been implemented in the current version of Rakudo? | 16:14 | |
16:14
sundar joined
|
|||
moritz_ | to a large degree, yes | 16:15 | |
TimToady | rakudo; say (1..*).map({ $_ * $_ }).munch(10).Str | 16:16 | |
masak | rakudo: say .[0], .[1] for gather { take 1; say "OH HAI"; take 2; take 3 } } | ||
p6eval | rakudo 607ec4: OUTPUT«===SORRY!===Confused at line 22, near "}"» | 16:17 | |
TimToady | rakudo: say (1..*).map({ $_ * $_ }).munch(10).Str | ||
p6eval | rakudo 607ec4: OUTPUT«1 4 9 16 25 36 49 64 81 100» | ||
masak | rakudo: say .[0], .[1] for gather { take 1; say "OH HAI"; take 2; take 3 } | ||
p6eval | rakudo 607ec4: OUTPUT«1OH HAI23» | ||
Grimnir_ | rakudo (0,2 ... *).fmt("%s", ", ").say | ||
masak | huh? 23? | 16:18 | |
Grimnir_: that would hang. | |||
Grimnir_ | ok | ||
masak | Grimnir_: since .fmt on a list gobbles up the whole list. | ||
Grimnir_ | ah, ok | ||
masak | laziness is nice, but it's not a panacea. :) | ||
Grimnir_ | hehe, right :) | ||
rakudo my @crap = 0,2 ... *; | 16:19 | ||
pmichaud | that currently hangs also | ||
TimToady | that is also eager | ||
use := | |||
Grimnir_ | := ? what does that do? | ||
TimToady | does binding instead of assignment with copy | ||
Grimnir_ | btw, totally nice feature with the ... thing. 1,2,4 ... * doubles every time? very nice | 16:20 | |
TimToady | more or less means "define this as" | ||
Grimnir_ | so := would make it lazy? | ||
rakudo: my @crap := 0,2 ...*; | |||
pmichaud | := avoids the eager assignment | ||
TimToady | it doesn't make it eager | ||
p6eval | rakudo 607ec4: ( no output ) | ||
16:20
risou left
|
|||
pmichaud | TimToady: do we eventually want assignment to detect the infiniteness of the series there? | 16:20 | |
TimToady | laziness is not a positive virtue in that sense | 16:21 | |
Grimnir_ | rakudo: (0,2 ...*).WHAT.say | ||
TimToady | pmichaud: that would be nice | ||
p6eval | rakudo 607ec4: OUTPUT«List()» | ||
16:22
risou joined
|
|||
Grimnir_ | how do I get number of elements in a list in the object oriented way? | 16:22 | |
I mean, @crap.length-ish | |||
pmichaud | .elems | ||
Grimnir_ | ah, thax | ||
TimToady | rakudo: (1,2,4 ... *)[20].say | 16:23 | |
p6eval | rakudo 607ec4: OUTPUT«1048576» | ||
masak | rakudo: say (1, 2, 4 ... *).elems | ||
p6eval | rakudo 607ec4: OUTPUT«(timeout)» | ||
TimToady | .elems is stupid right now | ||
Grimnir_ | ok, so it will make the list when I want to see how many elements there is. I thought it might give me the result as Inf ;) | ||
pmichaud | it's not always stupid :) | ||
rakudo: say (1..*).elems | |||
p6eval | rakudo 607ec4: OUTPUT«Inf» | 16:24 | |
TimToady | yes, well, that's not a list :) | ||
pmichaud | rakudo: say (1..*).list.elems | ||
p6eval | rakudo 607ec4: OUTPUT«Inf» | ||
pmichaud | :-P | ||
Grimnir_ | wow | ||
TimToady | how does it mark it? | ||
pmichaud | iterators can be told that they're infinite | 16:25 | |
I forget the exact mechanism atm | |||
TimToady | well, someone needs to tell ... * | ||
pmichaud | right now, only ranges understand infinity | ||
Grimnir_ | rakudo: my @crap := (1,2,4 ... *); @crap.elems.say | ||
pmichaud | but yes, we can extend that to work for series ending in * | 16:26 | |
p6eval | rakudo 607ec4: OUTPUT«(timeout)» | ||
Grimnir_ | ok, so a list doesn't? | ||
TimToady | a list doesn't what? | ||
moritz_ | s/series/sequence/ please :-) | ||
Grimnir_ | TimToady: understand infinity? | ||
TimToady | it does, but not consistently yet | ||
it only understands it if told | 16:27 | ||
since lists are agnostic about what generates them | |||
Grimnir_ | how does the "1,2,4 ... *" work? how does it know how to extrapolate? | ||
TimToady: what does that mean? how can I tell a list to know about it? | |||
TimToady | read S03:1752 | ||
moritz_ | by inspecting the first three elements, of course :-) | ||
Grimnir_ | moritz_: right ;) | ||
mkramer | rakudo: say (1,2,4 ... * )[112] | 16:28 | |
p6eval | rakudo 607ec4: OUTPUT«5.19229685853483e+33» | ||
16:28
supernovus joined
|
|||
Grimnir_ | but how well does it do it? Can't help of thinking about those intelligence tests with a sequence, and you have to find out what the last one is :) | 16:28 | |
masak | swim & | ||
16:29
masak left
|
|||
moritz_ | 18:27 < TimToady> read S03:1752 | 16:29 | |
mkramer | Grimnir_: It's specced out in S03. It doesn't work for all sequences | ||
supernovus | g'day #perl6 | ||
phenny | supernovus: 26 Sep 21:28Z <tadzik> tell supernovus we could put them in File::Tools and then Module::Install would make use of 'em, it depends on File::Tools anyway | ||
Grimnir_ | ok, i'm kind of n00b here. how do I find S03? | ||
colomon | Grimnir_: it checks to see if it is arithmetic or geometric sequence, that's all | ||
pmichaud | Grimnir_: perl6.org, click on "Synopses" | 16:30 | |
TimToady | do you know where the irclog is? that link is automatically generated there | ||
pmichaud | er, "Synopsis" | ||
Grimnir_ | thx | ||
TimToady | see the end of irclog.perlgeek.de/perl6/today | ||
moritz_ | or shorter irc.perl6.org/ # redirects there, diakopter++ | ||
16:32
stkowski joined
16:35
risou left,
risou joined
|
|||
supernovus | phenny: tell tadzik That sounds good. I tried writing a 'ww6' script without resources. It was a bunch of $file.say: '#!/usr/bin/env perl'; type lines, and was hideous. | 16:37 | |
phenny | supernovus: I'll pass that on when tadzik is around. | ||
16:41
M_o_C joined
16:43
timbunce left
16:44
nymacro left,
cdarroch joined,
cdarroch left,
cdarroch joined
16:49
timbunce joined
|
|||
pmichaud | > say (1,2,4).elems | 17:07 | |
3 | |||
> say (1,2,4,*).elems | |||
Inf | |||
colomon | \o/ | ||
pmichaud | TimToady: does ^^^ look right to you? | ||
colomon | oh, wait... is that actually correct in the general case? | 17:09 | |
17:10
plobsing joined
|
|||
pmichaud | "general case"? | 17:10 | |
colomon | I thought the ,* extension feature was a special rule for one of the metaops. | 17:11 | |
"For any kind of zip or dwimmy hyper operator, any list ending with * is assumed to be infinitely extensible by taking its final element and replicating it" | |||
which kind of implies it's not true elsewhere. | 17:12 | ||
pmichaud | well, the ,* in this case doesn't imply "repeat final element" | ||
colomon | what does it imply, then? | 17:13 | |
pmichaud | that the parcel has infinite length | ||
PerlJam | That seems like an odd declarative mechanism. | 17:14 | |
colomon | so if you said (1, 2, 4, *).munch(10), what would you get? | 17:15 | |
flussence | Method 'munch' not found for invocant of class 'Parcel' | ||
PerlJam | heh | ||
flussence | .Str doesn't try to return an infinite list, thankfully... | 17:16 | |
colomon | fair enough | ||
flussence: ~ might in the future. ;) | |||
pmichaud | colomon: well, this is all speculative at the moment (more) | 17:18 | |
at one point, TimToady++ speculated that ,* would act like * xx Inf | |||
so I would guess that .munch(10) would result in (1,2,4,*,*,*,*,*,*,*) | |||
PerlJam | pmichaud: so it *does* imply "repeat final element"! | 17:19 | |
:-) | |||
pmichaud | PerlJam: I don't know what it should do, I'm only reacting to suggestions :) | ||
flussence | hm... an infinite list used in non-lazy context should probably return Failure instead of trying to return a list... | ||
pmichaud | flussence: that's already specced. | 17:20 | |
flussence | ok | ||
huf | what if it doesnt know it's infinite until it is? | ||
pmichaud | that's the issue. How does one indicate that a gather/take loop is "infinite"? | 17:21 | |
flussence | for that we'd need "return $list if $list.halts", which probably won't be implemented :) | ||
colomon | gather(:infinite) ? | ||
pmichaud | it's been speculated that the generic "make this thing infinite" marker is to add ,* | ||
as in (gather ...),* | 17:22 | ||
flussence | .oO( at least, not in a generic way... ) |
||
pmichaud | afk, bbi15 | ||
colomon | pmichaud: seems to me like it might be useful to allow signaling both ways? ie "I know this gather is finite" and "I know this gather is infinite". (vs "I have no cool about this gather.") | 17:25 | |
or does ,* indicate "this gather might be infinite"? | |||
ash_ | is there a perl6 version of AUTOLOAD speced yet? | 17:26 | |
i noticed it was changed in the spec, i didn't see it | |||
17:27
Italian_Plumber left,
zulon left
17:30
Steppenwolf joined
17:33
zby_home_ left,
ash_ left
17:34
dakkar left
17:43
supernovus left
17:44
kjeldahl_ left
17:49
envi^home left
17:50
risou left
17:51
risou joined
|
|||
pmichaud | colomon: ,* indicates "this construct is infinite" | 17:53 | |
17:53
sundar left
|
|||
mkramer | ash_: you saw it in the spec, but you're wondering if it's specced? :) | 17:56 | |
17:56
risou left
|
|||
pmichaud | afk, lunch | 18:07 | |
18:07
ZadYree left
18:23
Mowah joined
18:24
Italian_Plumber joined,
Italian_Plumber left
18:26
mavrc left
18:34
[Coke] joined
18:36
timbunce left
18:37
stkowski left
18:38
M_o_C left
18:42
timbunce joined
18:49
stkowski joined
18:50
mavrc joined
18:53
daxim left
18:57
masak joined
18:59
M_o_C joined
19:00
mberends joined
19:03
mfollett left
19:04
mfollett joined
|
|||
jnthn | evening, folks | 19:04 | |
sjohnson | hi! | ||
masak | hi, jnthn | 19:05 | |
jnthn | o/ masak | ||
hi sjohnson! | |||
sjohnson | y0 | ||
perl6 fact of the day: the .= to run a function on itself as a variable is a breakthru in quick-programming | 19:06 | ||
masak | sjohnson: please explain. | ||
19:06
alester left
19:07
alester joined
|
|||
masak | sjohnson: it's intriguing that this is a "fact of the day". :) will you be back tomorrow with a new fact? | 19:07 | |
sjohnson | you bet! | ||
masak | sjohnson: do you have an example of where .= with a variable is especially good? | 19:09 | |
sjohnson | rakudo: my $text = " imagine this text grabbed from a HTML form "; $text .= trim; say $text | 19:10 | |
p6eval | rakudo 607ec4: OUTPUT«imagine this text grabbed from a HTML form» | ||
sjohnson | ... oh joyous day | ||
masak | oh, that one. yes, indeed. | ||
mfollett | I couldn't find it in the spec, will it eventually be the case that you could use a where clause on an attribute declaration in a class? | 19:11 | |
masak | even 'my TypeWithLongishName $foo .= new' | ||
mfollett: yes, it will. | |||
mfollett: the question remains (I think) whether the type will then need parens. | |||
sorear | good * #perl6 | ||
sjohnson | masak: it's definitely nice when you are stuck with the variable already for whatever reason, and don't have to write: $var = trim($var); as in PHP | 19:12 | |
i was reminded of this cause i did some PHP today | |||
masak | sjohnson: also, have you seen the trick for using a sub as a method on _any_ object? | 19:13 | |
rakudo: sub foo { $^a ~ " HAI" }; say "OH".&foo | 19:14 | ||
p6eval | rakudo 607ec4: OUTPUT«OH HAI» | ||
19:14
xabbu42 left
|
|||
sjohnson | yeah | 19:15 | |
i think you did that trick on the rot13 question i had, or maybe you used something else | |||
that behaved similarily | |||
i remember you doing something like "hi there!".$foo instead of & | |||
but maybe my mind is playing tricks on me. | |||
19:15
masak left
19:16
masak joined
19:18
timbunce left
19:23
mberends left,
mberends joined
19:24
timbunce joined
|
|||
mfollett | sjohnson: it appears you don't need the '&', at least not currently | 19:27 | |
rakudo: my $hello = "Hello, " ~ *; "World".$hello.say | |||
p6eval | rakudo 607ec4: OUTPUT«Hello, World» | ||
19:27
kjeldahl joined
19:28
stkowski left
|
|||
sjohnson | i need to learn how those * things work | 19:29 | |
mkramer | the thing about * is that it's many different things | ||
mfollett | In that context * just makes an anonymous subroutine so that you can evaluate the expression with a value later on. | ||
moritz_ | there are basically just two uses of the term * | ||
one is for currying | 19:30 | ||
mkramer | it's alternatively a Whatever object, the multiply operator, a special syntactic construct that turns an expression into a closure | ||
mfollett | So, "Hello, " ~ * is equivalent to sub { "Hello, " ~ $^a } | ||
moritz_ | and the other is a just a literal Whatever | ||
and the called routine decides what to do with it | |||
19:31
ggoebel left
|
|||
mkramer | and exponentiation as well | 19:31 | |
moritz_ | that's not the term * | ||
that's an infix operator containing a * | |||
19:31
jfried joined
|
|||
mkramer | Oh, I thought we were talking about those * things | 19:32 | |
not the term * | |||
mfollett | sjohnson: At the risk of being to self-promotional I wrote up some notes on what * does here: mfollett.com/perl-6-whatever | 19:33 | |
sjohnson | thanks | 19:34 | |
masak | mfollett++ | ||
19:35
stkowski joined
|
|||
mfollett | thanks | 19:36 | |
masak | mfollett: please keep writing those. | 19:38 | |
mfollett | masak: I'm trying :) | 19:39 | |
19:39
mfollett left,
masak left
|
|||
mkramer | rakudo: for ^9 do say * * * ** * | 19:41 | |
p6eval | rakudo 607ec4: OUTPUT«===SORRY!===Missing block at line 22, near "do say * *"» | ||
mkramer | rakudo: for ^9 { say * * * ** * } | ||
p6eval | rakudo 607ec4: OUTPUT«===SORRY!===set_number_native() not implemented in class 'Num'» | ||
19:42
mfollett joined,
Italian_Plumber joined
19:43
plainhao left
|
|||
florz | mfollett: you are aware that your document contains parts that are tried to be constructed dynamically? | 19:46 | |
alester | mfollett: There's no such thing as too self-promotioanl. | 19:49 | |
As long as it's useful, it's irrelevant if it's you promoting it or some other party. | |||
The geek tendency toward false modesty is bullshit. | 19:50 | ||
Be proud of what you've done! | |||
pmichaud | jnthn: o/ | 19:51 | |
sjohnson pats perl6 people on the back | |||
jnthn | pmichaud: oh hai :-) | 19:52 | |
pmichaud: How's things? | |||
pmichaud | reasonably well | ||
jnthn | :-) | ||
pmichaud: It'd be good to catch you at some point (now isn't good for me though) to discuss some bits about my grant, and how to plan some icky migration-y issues I'm about to hit. | 19:54 | ||
pmichaud | now isn't good for me either. tomorrow and/or wed should be better | ||
jnthn | Well, "about to" means "in a week or two" rather than "in a day or two" :-) | ||
pmichaud | oh | ||
jnthn | But it'd be good to deal with 'em up front. | ||
When I hit them they'll be pretty hard blockers, probably. | 19:55 | ||
dalek | odel: c0c6232 | mberends++ | / (3 files): [java] catch up to dotnet in runtime/ but not in compiler/ |
||
jnthn | Essentially things like "I'll want to switch class in NQP to use new meta-model classes, but then I'll break the NQP build/bootstrap because actions classes will want to inherit from PCT::Actions, but that's in the Parrot repo so what to do?" | 19:56 | |
19:56
ruoso left
|
|||
jnthn | er. if PCT::Actions exists. :-) | 19:56 | |
jnthn checks | |||
I just worry *something* I'll need to switch is going to be outside the nqp-rx repo. | 19:57 | ||
19:57
Italian_Plumber left
|
|||
sorear | PCT::Node switching to 6model would be an unspeakably huge win | 19:57 | |
jnthn | oh, I know something is. PCT::Compiler. | ||
sorear: Yeah, I won't block on that. | |||
sorear: But I fully agree and want it to happen too. | |||
19:57
mavrc left
|
|||
sorear | it would probably cut rakudo build memory usage by 80-95% | 19:57 | |
pmichaud | you're over-worrying :) | ||
jnthn | Optimism. sorear has it. :-) | ||
pmichaud | the only thing that inherits from PCT:: (afaik) are PCT::Node and PCT::HLLCompiler | 19:58 | |
jnthn | pmichaud: I'm not so much worried it's un-doable, I'm just keen that we work out an approach. :-) | ||
pmichaud | and PCT::HLLCompiler probably can be entirely re-written in NQP | ||
jnthn | Aha | ||
19:58
rgrau_ left
|
|||
pmichaud | sorear++ did a lot of it already :) | 19:59 | |
mfollett | florz: what do you mean? | ||
jnthn | sorear++ :-) | ||
pmichaud | and tbh, not a lot should depend heavily on p6object -- since what p6object attempts to provide is an API | ||
jnthn | Right, and add_method etc will live on. | ||
pmichaud | as long as the new model provides type objects, then everything else ought to be reasonably okay | ||
jnthn | Yes, it (deeply) provides type objects. :-) | ||
florz | mfollett: I mean the fact that my browser displays something like this: | 20:00 | |
You would find $foo holds something like: | |||
pmichaud | anyway, I'm not to worried about breaking the build/bootstrap | ||
florz | Which you could then use like this: | ||
20:00
stkowski left
|
|||
pmichaud | I suspect bootstrapping this time around could be far easier than it was the first time around | 20:00 | |
jnthn | Well, it's all in a branch anyway | ||
I will want to bootstrap in order to do the gradual typing-y and serialization-y bits | |||
pmichaud | also, I'd suggest not worrying about doing the full bootstrap cycle yet | ||
jnthn | But that's phase 2. :-) | ||
Well, I want to bootstrap at the end of phase 1 again | 20:01 | ||
pmichaud | sure | ||
jnthn | But yes, I'm fine with breaking it for a while. | ||
pmichaud | but the primary thing to focus on is getting an nqp that uses the new model | ||
jnthn | Actually being able to do so again will probably be what tells me I'm done with phase 1 in the roadmap I blogged. :-) | ||
OK. | |||
pmichaud | once we have that, I can certainly help with completing the bootstrap cycle | ||
moritz_ | std: ss/a/b/ | ||
p6eval | std : OUTPUT«ok 00:01 116m» | ||
pmichaud | i.e., for a short period of time, I'd expect we have nqp and nqp-newmodel | 20:02 | |
jnthn | nqp-rx in nom now supports knowhow decls with attribute and method declarations. | ||
(nom = branch name :-)) | |||
pmichaud | oh, yeah, knowhow might be a bit of an issue for existing nqp-rx | ||
jnthn | It's additive. | ||
pmichaud | anyway, making *that* conversion isn't something that worries me much | ||
jnthn | *nod* | ||
20:02
xabbu42 joined
|
|||
pmichaud | I'm more concerned about the effort needed to migrate rakudo | 20:02 | |
jnthn | It may be that we have two NQPs going into Parrot. | ||
For a little bit. | |||
20:03
xabbu42 left
|
|||
jnthn | We'll see. | 20:03 | |
20:03
xabbu42_ joined
|
|||
mfollett | florz: Yeah, I put all my code examples as gists on github because Posterous doesn't support syntax highlighting on any version of Perl whereas at least github's gists will do syntax highlighting for Perl 5. | 20:03 | |
jnthn | Yes, migrating Rakudo will be...effort. | ||
20:03
stkowski joined
|
|||
jnthn | I did at least hide most stuff behind a meta-model API that won't be changing crazily. | 20:03 | |
pmichaud | anyway, when did you want to meet to discuss? | ||
20:03
mavrc joined
|
|||
pmichaud | this week, next week, two weeks? | 20:03 | |
jnthn | Tomorrow evening is *in theory* OK. | ||
florz | mfollett: which effectively makes the document unreadable - that sounds much more sensible than lacking syntax highlighting indeed | ||
jnthn | Well, I'm keen to have the discussion earlier rather than later. | 20:04 | |
pmichaud | okay, this week then. | ||
any idea how long? | |||
jnthn | Because it may well influence my priorities from here on in. | ||
pmichaud | #phasers is at 19h00 | ||
jnthn | I mostly want to run by you what I've got so far to make sure it sounds sane, and discuss migration planning. | ||
pmichaud | I have kid pickup at 19h45 | ||
jnthn | We could take it after #phasers, if that works at all for you. | ||
Ah, OK | |||
After kid pickup? | |||
I don't see us needing longer than an hour. | 20:05 | ||
pmichaud | 20h00 works for me, but around 21h00 I'll probably have to help with kid hw | ||
oh, maybe not if Paula sticks around home tomorrow (as she's currently planning to do) | |||
sjohnson | kid hw probably pretty easy for a perl6 dev! | ||
pmichaud | anyway, let's tentatively say 20h00 utc tomorrow | ||
jnthn | #phasers is...21h00 my time. | ||
sjohnson | :-) | ||
pmichaud | if it doesn't work out, we'll find a time on wed | ||
(all times quoted by me are utc :-) | 20:06 | ||
jnthn | So 22h00 utc is like 1am here. And I have to be at $dayjob at 9am the next day... | ||
Yeah...I think that will probably make me exhausted the next day. :( | |||
OK, maybe Wed is better. | |||
pmichaud | 20h00 is 22h00 for you which is 10p, right? | ||
jnthn | Oh, sorry | 20:07 | |
pmichaud | 20h00 utc is 22h00 localtime for you, yes? | ||
jnthn | You wrote 20h00 and I read it as 22h00 | ||
Is it 20h00 UTC now? | |||
pmichaud | yes | ||
20:07
alester left
|
|||
pmichaud | 20h07 | 20:07 | |
jnthn | It's 22h07 here at the moemnt | ||
So yes | |||
:-) | |||
OK, then that is fine. | |||
20h00 | |||
Tomorrow. | |||
20:07
xabbu42_ left
|
|||
jnthn | :-) | 20:07 | |
pmichaud | will plan for then | 20:08 | |
oh, also tomorrow I have R* release to cut | |||
jnthn | .oO( I hope I'm better at meta-models than I am at timezones... ) |
||
pmichaud | hmmmm | ||
let's stick with 20h00 utc for now. | |||
if I'm running behind or have other things come up we'll resched for Wed | |||
jnthn | OK, that's fine. | 20:09 | |
20:09
mavrc left
|
|||
jnthn | $dayjob has shifted my waking hours a little earlier at the moment. :-) | 20:09 | |
pmichaud | it looks like I'll have a steady $dayjob for a few months again, as well :) | ||
20:09
miso_soup left
|
|||
moritz_ | is that good or bad? :-) | 20:10 | |
20:10
alester joined
|
|||
pmichaud | financially, it's very good. | 20:10 | |
moritz_ | congratulations then | ||
20:10
Italian_Plumber joined
20:11
ruoso joined
|
|||
sorear thinks about implementing Moose-style accessors | 20:11 | ||
jnthn | pmichaud: Nice :-) | ||
20:11
Italian_Plumber left
|
|||
pmichaud | The last couple of months I've had to dig into my savings a bit more than I'd like, this will help replenish/avoid that. | 20:11 | |
jnthn | pmichaud: Hope it's fun as well as money. | ||
pmichaud | fun... not quite so much. :-| | ||
jnthn | Or at least not un-fun. | ||
Aww. | |||
pmichaud | but it's not totally un-fun, either. | ||
20:12
mavrc joined
|
|||
sorear | has $.foo is moosely; say $.foo; $.foo(3) # saves 24 bytes per instance over perl6ly accessors | 20:13 | |
20:13
icwiener left
|
|||
sbp | or, is moosesome | 20:14 | |
pmichaud | is moosed | ||
is moosey | |||
rjbs | Mooschaud. | ||
20:14
xabbu42 joined
|
|||
pmichaud | has antlers | 20:14 | |
20:15
xabbu42 left,
xabbu42_ joined
|
|||
sbp | elkic | 20:15 | |
sorear | (Would somebody remind me why System.Object has a mandatory mutex? 1 word per GCable is "paying through the nose" in my book) | 20:16 | |
20:24
Guest23195 left
20:28
mfollett left
20:31
zby_home joined
20:33
cybergirl joined
20:34
pwnage- joined
20:35
cybergirl left
|
|||
diakopter | sorear: but remember value types don't count, since they're always stack allocated only, or embedded in other reference types | 20:36 | |
like value_type[] | 20:37 | ||
and value types are "said" to derive from System.Object .... | 20:38 | ||
but really only at compile time, unless they're going to be boxed. really, a boxed value type is a different type | 20:39 | ||
sorear | diakopter: value types aren't gcables | 20:41 | |
so my statement doesn't apply to them | |||
diakopter | right, just clarifying. | 20:42 | |
... because the value types are "said" to derive from System.Object | 20:43 | ||
20:49
M_o_C left
20:57
mfollett joined
20:58
xabbu42_ left
20:59
xabbu42 joined,
xabbu42 left,
xabbu42 joined
21:00
timbunce left
21:03
mfollett left
21:06
Mowah left
21:07
timbunce joined
21:10
ggoebel joined
21:14
Ross left
|
|||
Grimnir_ | I can't get ff (flipflop) to work | 21:14 | |
I have a silly one-liner just to test it, but it doesn't work: perl6 -e 'use v6; for $*IN.lines { if /__START__/ ff /__STOP__/ { if (/^^\d+$$/) { say "Numbers"; } elsif (/^^\w+$$/) { say "Letters"; } else { say "Nothing important"; } } else { say "..."; } }' | 21:15 | ||
btw, does the "use v6" actually do anything? | |||
flussence | on the command line, not really | ||
moritz_ | ff is NYI | 21:16 | |
sorear | use v6; does nothing if encountered by a Perl 6 compiler | ||
moritz_ | Grimnir_: it gives a proper error message when you accidentally run the file with perl 5 | 21:17 | |
Grimnir_ | ah, ok | ||
right | |||
is .pl still the right name? | |||
moritz_ | yes | ||
sorear | In a hypothetical future world where Rakudo can emulate Perl 5, 'use v6' will switch that off | 21:18 | |
flussence uses .p6, but only because vim's not smart enough to load the right syntax when it sees "v6" at the top... | |||
sorear | but it's not the only way to do that; the 'class' and 'module' keywords also force v6, as does a .pm6 file extension | ||
Grimnir_ | flussence: that/s exactly the thing | ||
sorear | at one point package NAME BLOCK was also specced to trigger v6 | 21:19 | |
but that syntax has been added to Perl5 recently | |||
Grimnir_ | flussence: is it because vim can't handle it, or is it because no body has made a proper vim plugin yet? | ||
21:19
pwnage- left
|
|||
perigrin | sorear: MX::Declare kinda horks the class {} trigger | 21:20 | |
flussence | I dunno if it's a limitation of vim, I've seen it do similar things for .sh though. | 21:21 | |
sorear | perigrin: feeding Devel::Declare sources to poniedo is going to end in tears | ||
perigrin | poniedo? | ||
Grimnir_ | strange cats... now they are eating potato | 21:22 | |
moritz_ | perigrin: you still have to use a syntax manipulating module to be able to write class MyClass { } | ||
perigrin | moritz_: yes | ||
sorear | The hypothetical Rakudo Perl 5 emulator | ||
perigrin | sorear: ahh | ||
sorear | Which doesn't have a name yet, so I just made one up | ||
Let's see if it catches on | |||
perigrin | I suspect anything depending on XS on poniedo is gonna lead to tears. | 21:23 | |
21:23
Steppenwolf left
|
|||
flussence | oh, vim does content-sniffing in filetype.vim for .sh | 21:24 | |
sorear | I blame SvREFCNT_inc | ||
21:25
mkramer left
21:29
snarkyboojum joined,
ruoso left
|
|||
Grimnir_ | ok, that's a pretty darn big vim-file | 21:29 | |
21:32
timbunce left
21:33
tadzik joined
21:34
snarkyboojum left
|
|||
tadzik | hello | 21:35 | |
phenny | tadzik: 16:37Z <supernovus> tell tadzik That sounds good. I tried writing a 'ww6' script without resources. It was a bunch of $file.say: '#!/usr/bin/env perl'; type lines, and was hideous. | ||
dalek | ecza/mm: 8e30bea | sorear++ | src/ (2 files): [mm] Avoid directly referencing packageoids Using the crossref table like this should make freeze/thaw work a lot better. |
21:36 | |
ecza/mm: 924e9b8 | sorear++ | src/Metamodel.pm: [mm] and apply the same treatment to StaticSub |
|||
ecza/mm: 383ed07 | sorear++ | src/ (4 files): [mm] start metamodel hackery for settings |
|||
21:43
tadzik left
21:45
vm joined
21:48
vm left
21:49
amkrankruleuen left,
tadzik joined
21:50
snarkyboojum joined
21:58
snarkyboojum left
22:01
kjeldahl left
22:04
tadzik left
22:07
jfried left
22:13
mavrc left
|
|||
cosimo | moritz_: please can you add github.com/cosimo/perl6-cache-memcached to the list of projects on modules.perl6.org? thanks | 22:14 | |
diakopter | use v6; # makes a Perl 6 compiler move from its default (Perl 5 mode) to Perl 6 mode, I thought. | 22:17 | |
oh | |||
sorear | A Perl 6 compiler should default to Perl 5 mode if an only if it is installed as "perl" | 22:18 | |
22:19
cbk left
|
|||
diakopter | seems reasonable | 22:20 | |
22:21
svetlins left
22:25
snarkyboojum joined,
cbk joined
22:30
masonkramer joined
22:33
snarkyboojum left,
thowe joined
|
|||
thowe | I'm rediscovering my love for the Camel book. | 22:35 | |
I've had this thing for about 9 years and have just started reading it again. I was so re-impressed that I wrote an Amazon review for it. | 22:36 | ||
22:40
snarkyboojum joined
22:41
bluescreen joined
22:42
huf left
22:44
stkowski_ joined
22:48
stkowski left,
stkowski_ is now known as stkowski
22:52
zby_home left
|
|||
sjohnson | la la la | 22:55 | |
23:05
snarkyboojum left
|
|||
sorear | How does PARENT work in a situation where the package graph has cycles? | 23:08 | |
23:12
fda314925 left
23:15
fda314925 joined
23:19
mavrc joined,
bluescreen left
23:20
cdarroch left,
snarkyboojum joined
23:23
proller left
23:24
Mirell left,
Grimnir_ left,
sorear left
23:26
xabbu42 left,
proller joined
23:28
Grimnir_ joined,
Mirell joined,
wolverian joined,
florz joined,
c1sung joined,
hatseflats joined,
mdxi joined,
sorear joined
23:29
snarkyboojum left
23:32
xabbu42 joined
23:36
stkowski left
23:38
baest joined
23:41
hercynium joined
23:43
Italian_Plumber joined
23:47
mavrc left
23:48
ash_ joined
23:49
stkowski joined
23:55
masonkramer_ joined,
masonkramer left,
masonkramer_ is now known as masonkramer
23:58
mavrc joined
|