»ö« 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:03 Chillance left
[Coke] uses perl6 to show his daughter how to switch between Rats and Nums 00:15
colomon [Coke]++ 00:25
00:28 jferrero left 00:45 allbery_b joined 00:46 whiteknight joined 00:47 thelazydeveloper left, eviltwin_b left 00:55 fgomez left
dalek blets: 63e72c7 | (Herbert Breunung)++ | docs/appendix- (3 files):
polishing bits
01:03
01:04 jferrero joined 01:12 wolfman2000 joined 01:17 tokuhirom joined 01:27 allbery_b left 01:28 geekosaur joined 01:31 FACEFOX-DOT-COM left 01:37 ponbiki joined 01:38 whiteknight left 01:47 FACEFOX-DOT-COM joined 01:58 eviltwin_b joined 02:02 geekosaur left 02:11 allbery_b joined 02:14 eviltwin_b left 02:19 fgomez joined 02:21 oiig_ joined
colomon Serialization Error: could not locate static code ref for closure 'string_to_bigint' ? 02:29
sorear what's that from? 02:30
02:33 geekosaur joined 02:36 allbery_b left
colomon rakudo 02:37
but niecza won't run the code either. :)
It's Math::Vector. Actually, rakudo runs it okay (after my latest changes) but if you try to build a PIR you get the above message. 02:38
Niecza seems to get upset because it defines a new multi for infix:<*>
02:40 wolfman2000 left 02:45 orafu left, orafu joined 02:47 plutoid joined
TimToady niecza does not yet allow multi overrides of builtins 02:57
that's what makes it nearly impossible to port DateTime
02:59 geekosaur left 03:00 geekosaur joined
colomon TimToady: yes, I know. it will thwart the Math::ContinuedFraction module as soon as that's ready to go to the next stage, too. :( 03:00
03:04 ponbiki left 03:08 envi_ joined 03:09 eviltwin_b joined 03:12 ponbiki joined, eviltwin_b left, geekosaur left 03:13 geekosaur joined 03:24 lichtkind joined
dalek blets: 27ddcb7 | (Herbert Breunung)++ | docs/appendix- (2 files):
backlink precedence table
03:24
lichtkind is there an any-operator or anything that is callen any lowercase (grep doesnt help here) 03:25
if not i found i fossil
in both cases please tell phenny
03:25 lichtkind left 03:26 Su-Shee left 03:28 Su-Shee joined
TimToady sure, there's an any listop 03:30
goes with all, none, and one 03:31
03:46 mmol_saffron joined 03:47 vlixes joined 03:48 mmol_saffron left 03:56 FACEFOX left, FACEFOX-DOT-COM left 03:58 eviltwin_b joined 04:00 geekosaur left 04:10 allbery_b joined 04:13 eviltwin_b left 04:18 eviltwin_b joined 04:20 allbery_b left, allbery_b joined 04:21 leprevost joined 04:22 geekosaur joined 04:24 eviltwin_b left 04:25 allbery_b left 04:37 havenn joined 04:39 ponpon joined, ponpon left, ponbiki left 04:40 ponbiki joined 04:47 ponbiki left 04:50 eviltwin_b joined 04:52 geekosaur left 05:08 dalek left 05:09 eternaleye left, dalek joined, ChanServ sets mode: +v dalek 05:11 araujo left 05:13 araujo joined, araujo left, araujo joined 05:16 geekosaur joined 05:17 havenn left 05:18 eviltwin_b left 05:24 leprevost left 05:29 tokuhirom left
moritz oh shark 05:32
05:43 birdwindupbird joined 05:44 replore_ joined 05:45 GlitchMr joined 06:00 eviltwin_b joined 06:03 geekosaur left 06:12 eternaleye joined 06:13 fhelmberger joined 06:43 araujo left 06:46 sergot joined
sergot hi o/ 06:46
06:46 fgomez left 06:49 kaleem joined
sorear o. 06:51
sisar \o
arnsholt Moin 06:58
07:02 vlixes left 07:06 NamelessTee joined 07:07 fglock joined 07:09 geekosaur joined 07:11 eviltwin_b left 07:17 cognominal_ joined 07:20 cognominal___ left 07:21 cognominal_ left, cognominal_ joined 07:27 xenu left, daxim joined 07:28 mucker joined
moritz oh windows, how I love thee. "There was a problem sending the command to the program." 07:32
this is just about the the most useless error message ever
(in response to double-clicking a file) 07:33
07:33 xenu joined, sai joined 07:34 xenu is now known as Guest62817, sai left 07:35 geekosaur left 07:36 geekosaur joined 07:38 Guest62817 left 07:39 xenu_ joined
mikec moritz: nice, how helpful 07:40
flussence ooh, I think I know this one. Something to do with the filetype association having a bad DDC parameter 07:43
phenny flussence: 29 Apr 16:27Z <uvtc> tell flussence irclog.perlgeek.de/perl6/2012-04-29#i_5514927 , (maybe enable issue tracker for that repo?)
07:44 eviltwin_b joined 07:47 geekosaur left 07:48 xenu_ left 07:49 xenu_ joined 07:55 birdwindupbird left 07:56 xenu_ left 07:57 xenu_ joined
flussence phenny: tell uvtc I think it was caused by trying to use semantically equivalent tags there while avoiding <u>. It does seem a bit wrong now that I've re-read those bits of the HTML spec. 07:57
phenny flussence: I'll pass that on when uvtc is around.
07:58 plutoid left
jnthn morninä 08:02
uh, *mornin'
colomon: Interested to know how you managed to trigger that error. 08:04
colomon: It shouldn't be possible.
sorear o/ jnthn 08:07
fglock \o 08:09
08:10 replore_ left
jnthn hi sorear 08:10
frettled good mondaymorningrrrrrr 08:13
08:15 NamelessTee left
moritz \o 08:16
08:28 domidumont left 08:31 brrt joined 08:32 allbery_b joined, domidumont joined 08:35 eviltwin_b left 08:38 cognominal_ left, cognominal_ joined 08:40 allbery_b left, allbery_b joined
tadzik oh shark! 08:43
08:45 sisar left
cognominal_ be careful not to jump the shark. 08:52
moritz be careful not to shark the jumper!
09:12 cognominal___ joined 09:15 cognominal_ left 09:16 cognominal joined 09:17 cognominal___ left 09:19 mmol_saffron joined 09:20 eviltwin_b joined 09:23 allbery_b left 09:24 mmol_saffron is now known as mikemol 09:31 sftp left
brrt why so much syntax? 09:35
especially the colon 09:37
jnthn Everybody wants the colon. 09:39
Thankfully one of the things it's used for in Perl 5 got changed to something else in Perl 6. 09:40
Otherwise it woulda had even more meanings :) 09:41
jnthn doesn't ever really find the various uses of colons ambiguous though
Most of them boil down to adverbs or invocant-related stuff.
arnsholt TBH, I haven't really noticed much overloading of the colon
jnthn Well, a bunch of things that look like overloading really boil down to colonpairs. 09:42
sub foo(Any:D $x) { }
That's just a colonpair, for example.
09:43 mmac_ joined
arnsholt The colonpair syntax is nice. Kind of like keyword symbols in CL, just better =D 09:43
09:47 mmac_ left
tadzik 45 modules OK, 54 not -- tjs.azalayah.net/new.html 09:53
wolverian What are colonpairs? 09:55
gfldex :key('value')
09:55 eviltwin_b left
gfldex same as Pair.new(key => 'value') 09:56
09:56 eviltwin_b joined
masak good noon, #perl6 09:56
wolverian How is that the same as Any:D?
jnthn :key('value') is just the most general case of colonpair 09:57
:key is shorthand for :key(True)
gfldex :D is the same as :D(True)
jnthn So :D is really just :D(True)
masak ooh
masak had not realized
jnthn longname actually calls the colonpair rule, iirc. 09:58
wolverian Ah, the Any wasn't a part of the colonpair.
jnthn Right
10:00 noam left
gfldex what definedness is :D calling? 10:00
10:00 noam joined
masak [email@hidden.address] is the way to unsubscribe from p6c, right? 10:01
jnthn .DEFINI|TE 10:02
grr
.DEFINITE
Which is a macro
masak how is it a macro
masak is sending a clarifying email to Emile State
jnthn It's a macro in the same way .WHAT is.
cognominal because it is defined in the compiler?
versus compiled by it.
tadzik jnthn, masak: do you have the popolnik desigs docs lying somewhere in your archive by any chance? 10:03
gfldex that macro points into the meta model?
masak tadzik: looking 10:04
10:04 araujo joined, araujo left, araujo joined
jnthn gfldex: Well, it's a very primitive operation rather than boiling down to a call to a meta-method. 10:04
gfldex: At a low level, it corresponds to checking if a bit is set in the object flags. 10:05
masak tadzik: not finding any right away, no.
jnthn That is, it's really cheap.
gfldex good to hear :)
jnthn tadzik: There were...popolnik design docs?
tadzik jnthn: well, an xhtml file mberends++ sent us
jnthn ah :) 10:06
.DEFINITE is the same as the macro IS_CONCRETE(obj) in the C code.
10:07 araujo left
masak tadzik: I'm pretty sure he sent us one, but my search-fu fails me. 10:08
jnthn: I still haven't seen exactly how things with the method call syntax can be macros.
tadzik yeah, same here :/
masak unless you want to strew textual macros all over the place, which feels... bad.
gfldex r: multi foo(Any:D $x){ say $x }; multi foo(Any){ die "welp!" }; my $i; foo $i; 10:09
p6eval rakudo 2a962e: OUTPUT«welp!␤ in sub foo at /tmp/HCu9xR8opr:1␤ in block <anon> at /tmp/HCu9xR8opr:1␤␤»
jnthn masak: I don't expect them to be implemented with the "macro" syntax somewhere.
I'm just using the same language the spec does. 10:10
masak ok, so it's just sugar for something else, in essence. 10:11
cognominal masak: because they are specialy handled by the compiler.
10:11 araujo joined
cognominal so, conceptually, they are macro. 10:11
jnthn masak: Yeah; I'm not implying they're anything you have to worry about. :) 10:12
gfldex how about "optimiser food" ? 10:13
jnthn It's nothing to do with optimization either really.
All of the .WHAT/.HOW etc map down to very primitive operations. 10:14
masak maybe "shims" is a good description of what they are. 10:15
10:16 mucker left
masak though shims seem to be mostly used as a compatibility layer when an API changes. 10:18
apart from that, they seem to describe what's going on pretty well.
10:18 replore joined, mucker joined 10:23 brrt left
dalek nda: 43c38a0 | tadzik++ | bin/masstest:
[masstest] Include some statistics
10:25
10:30 brrt joined 10:37 brrt left 10:38 noam left, noam joined 10:43 geekosaur joined 10:44 geekosaur left 10:45 geekosaur joined, snearch joined 10:46 eviltwin_b left 10:55 birdwindupbird joined 10:59 birdwindupbird left 11:00 replore left 11:08 pernatiy left 11:14 replore joined
colomon jnthn: 1. Grab Math::Vector. 2. run ufo. 3. make test 11:15
[email@hidden.address] 11:16
With no line number or other reference, golfing this one is going to be tricky. 11:17
jnthn It can't really give you a line number.
It's an error from the serializer.
masak .oO( Sincerely, the Serializer ) 11:18
11:18 eviltwin_b joined 11:20 geekosaur left
jnthn Golfing it ain't so bad in so far as we only serialize declarative aspects of the program 11:20
So usually most of the code is automatically irrelevant.
11:21 sergot left
moritz ok, weird question. Has anyone actually precompiled a module with a big Int literal in it? 11:22
fwiw all Math::Vector tests without precompilation 11:23
masak can't recall doing that
moritz s/tests/tests pass/
jnthn "bit int literal"? 11:24
*big
Isn't that any Int literal? :)
moritz no
afaict we have different codegen for small integers
at least we used to
nqp::p6box_i(123) vs. nqp::fromstr_I("1234555555555555555", Int) or so 11:25
masak re-reads irclog.perlgeek.de/perl6/2012-02-23#i_5199644 about group isomorphisms, and is happy to note that it still makes sense to him :) 11:27
colomon moritz: no bigints in Vector...
moritz hm, string_to_bigint comes from src/Perl6/Actions.pm 11:28
why would ever take a closure of that?
jnthn moritz: Yeah, that's what I was being confused about. How on earth. 11:29
moritz and there's nothing inside string_to_bigint that could possibly create a closure either 11:30
there isn't even a block inside
colomon 's code: proudly muddling Rakudo since 2009. 11:31
jnthn Er
Is it a method?
Or a sub?
moritz our sub 11:32
jnthn our?
Does it need to be "our"?
moritz I don't think so
jnthn Me either.
Other question: does the module define custom ops?
moritz I think I just made u
grrr
jnthn: yes
jnthn omg u just made me! 11:33
moritz I think I just made it an our sub because we sometimes did that for code reuse between NQP and rakudo stuff
jnthn I have this horrible feeling that...
moritz but I'm fine with changing it to my
jnthn ...augmenting the grammar and/or actions triggers the SC write barrier... 11:34
moritz and we end up serializing EVERYTHING?
jnthn ...which then causes us to re-serialize chunks of stuff
mikemol It occurred to me last night that Perl 6 is taking some of the philosophy behind ALGOL 68 and attempting to reapply it in a modern context.
jnthn Likely not EVERYTHING, just everything :)
masak oh phew 11:35
jnthn Does anything with a user defined op pre-compile?
I'm guessing that this is restricted to custom circumfixes.
11:35 mikemol left
moritz lemme test 11:35
colomon which are in there...
moritz are circumfixes subs or methods? 11:36
jnthn subs 11:37
moritz yes, a custom circumfix is enough to trigger that error
jnthn And fits with reserializing Actions.
moritz sub circumfix:<_FROM_ _TO_>(*@) { };
is enough to trigger it
a custom postfix also blows up 11:38
Serialization Error: unknown static lexical info type for 'postfix:sym<!>'
colomon If I comment out the custom circumfix, it now givers Serialization Error: unknown static lexical info type for 'infix:sym<⋅>'
moritz yes, it errors for all new ops, just with different error messages 11:39
jnthn OK.
That explains it nicely.
moritz overloading existing ops is fine though
because they don't change the grammar
jnthn Right.
Thus why it wasn't noticed for quite a while.
moritz -> boring lab course 11:40
jnthn
.oO( they bore labs in Germany? )
daxim lparchive.org/Sid-Meiers-Alpha-Cent...170613.jpg # borehole cluster 11:43
colomon This is why Emmentaler is awesome: It's already pushed me to find four or five bugs in Rakudo. 11:48
jnthn Indeed.
11:49 allbery_b joined
jnthn I wish we'd had it when I did the bs work in the first place. 11:49
masak colomon++ tadzik++
11:50 derrazo joined, eviltwin_b left
colomon dreams of having Emmentaler run on both Niecza and Rakudo, with hourly updates to the status of each... 11:50
masak ooh 11:51
I must say -- having dreams from 2009 take hold and reify into the community a few years later... that's pretty hot. 11:52
11:54 allbery_b left 11:55 cognominal_ joined
masak jnthn: re many confused uses of the colon: szabgab++ was giving a course in Lisbon, and I was trol^Wsitting in. 11:55
jnthn: and I found myself at some point saying "no, that's not an invocant colon. that's the reverse method call colon." 11:56
I distinctly remember people groaning with information overload :)
11:56 pernatiy joined, tokuhirom joined, ponbiki joined
daxim 11:56
arnsholt Reverse method call colon? Is that $obj.method: @args or something else?
11:57 cognominal left
jnthn It's still invocantesque though :) 11:57
masak arnsholt: oh, maybe that was the one I pointed out, actually. no, that's a third one. :) it's the "don't need parens for methodcall" colon. 11:58
arnsholt: the reverse methodcall colon is the one that allows you to do `print $fh: "LOL!"` 11:59
11:59 allbery_b joined
masak they're clearly related, but note that the reverse one contains TTIAR... so it has to be a special form of sorts. 11:59
arnsholt Huh. Wasn't consciously aware of that syntax
TTIAR? 12:00
jnthn Rakudo has never implemented that sntax.
masak two terms in a row
arnsholt Oh, right
masak jnthn: we should put it up in the feature matrix, so it gets implemented :P
arnsholt And invocant colon is method foo($foo: $stuff)? 12:01
masak right.
arnsholt Excellent
masak angled right, I believe there could be a blog post called "All the wonderful uses of the colon", that did a fairly wide overview of Perl 6 ;)
jnthn "I love the smell of Perl 6's colon" 12:02
masak n: class A { method say(*@a) { say @a } }; my A $fh .= new; $fh say: "OH HAI"
p6eval niecza v16-23-gaa61ed5: OUTPUT«===SORRY!===␤␤Two terms in a row at /tmp/mvF4HtTntH line 1:␤------> *@a) { say @a } }; my A $fh .= new; $fh ⏏say: "OH HAI"␤␤Parse failed␤␤»
masak hah!
Niecza doesn't do it either! 12:03
p: class A { method say(*@a) { say @a } }; my A $fh .= new; $fh say: "OH HAI"
p6eval pugs: OUTPUT«*** ␤ Unexpected "say"␤ expecting operator␤ at /tmp/RGC3poiped line 1, column 62␤»
masak nor Pugs.
jnthn Isn't it say $fh: 12:05
tadzik any objections to merging rakudo/setenv?
jnthn tadzik: Does it break stuff? :)
Or just make things awesomer? :) 12:06
If the latter, +1...the role mixin approach seemed quite sane to me.
flussence
.oO( if messing with env vars is involved, doesn't it do both? )
jnthn :) 12:07
masak jnthn: oh!
yes.
that's more consistent with Perl 5's syntax.
p: class A { method say(*@a) { say @a } }; my A $fh .= new; say $fh: "OH HAI" 12:08
n: class A { method say(*@a) { say @a } }; my A $fh .= new; say $fh: "OH HAI"
p6eval pugs: OUTPUT«(timeout)»
niecza v16-23-gaa61ed5: OUTPUT«===SORRY!===␤␤Invocant handling is NYI at /tmp/kTiZa6jRdr line 1 (EOF):␤------> } }; my A $fh .= new; say $fh: "OH HAI"⏏<EOL>␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1366…
masak oh, Pugs confuses subs and methods, so it might have recursed infinitely on that one.
p: class A { method say(*@a) { print @a, "\n" } }; my A $fh .= new; say $fh: "OH HAI" 12:09
p6eval pugs: OUTPUT«OH HAI␤»
masak \o/
tadzik jnthn: I don't think it breaks anything, no :)
it may want some spectests though 12:10
jnthn OK :) 12:14
Time to decommute...klaemdag for the win :) 12:15
12:19 NamelessTee joined
mathw Today I wrote some Perl 5, and it was very hard. I had to chain grep and map and I wanted to just use all Perl 6's lovely syntactic improvements 12:21
Really makes me appreciated Perl 6 :)
12:23 allbery_b left, allbery_b joined 12:24 derrazo left, allbery_b left 12:25 lichtkind joined
lichtkind is "any" an operator? 12:26
flussence r: say ([|] 1..5).perl 12:27
p6eval rakudo 2a962e: OUTPUT«any(any(any(any(1, 2), 3), 4), 5)␤»
12:27 oiig_ left 12:28 oiig_ joined
flussence I'd say it's a function, but it seems pretty low level 12:28
masak lichtkind: it's a function.
lichtkind yes the junctive
its a normal function
masak there's also the .any method
lichtkind the low level precedence of junctive or
dalek kudo/nom: 7845b8d | tadzik++ | src/core/terms.pm:
Implement setting env variables by modifying %*ENV
12:29
kudo/nom: 616b622 | tadzik++ | src/core/terms.pm:
Fix a braino. benabik++ for noticing
kudo/nom: 110f35c | tadzik++ | src/core/terms.pm:
Merge branch 'setenv' into nom
12:30 mucker left 12:31 snearch left
masak r: say "m{'o' x (15..25).roll}!" 12:33
p6eval rakudo 2a962e: OUTPUT«moooooooooooooooooooooo!␤»
tadzik r: "oooooooooooooooooooooo".chars
p6eval rakudo 2a962e: ( no output )
tadzik r: "oooooooooooooooooooooo".chars.say
p6eval rakudo 2a962e: OUTPUT«22␤»
flussence p6: sub moo { say 'm' ~ 'o' x $^a }; ((15..25)».&moo)[0] 12:38
p6eval rakudo 2a962e: OUTPUT«moooooooooooooooooooooo␤moooooooooooooooooo␤moooooooooooooooooooo␤moooooooooooooooo␤mooooooooooooooooooooo␤mooooooooooooooooo␤moooooooooooooooooooooooo␤mooooooooooooooo␤mooooooooooooooooooooooooo␤mooooooooooooooooooo␤mooooooooooooooooooooooo␤»
..niecza v16-23-gaa61ed5: OUTPUT«mooooooooooooooo␤moooooooooooooooo␤mooooooooooooooooo␤moooooooooooooooooo␤mooooooooooooooooooo␤moooooooooooooooooooo␤mooooooooooooooooooooo␤moooooooooooooooooooooo␤mooooooooooooooooooooooo␤moooooooooooooooooooooooo␤mooooooooooooooooooooooooo␤»…
..pugs: OUTPUT«*** Undeclared variable: ("$^a",MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = <Scalar:0xf6f42d09>, pe_flags = MkEntryFlags {ef_isContext = True}, pe_store = <ref:0xf6d5e275>}),("@_",PELexical {pe_type = (mkType "Array"), pe_proto = <Array:0xf6f4…
flussence how lazy should that be?
12:39 NamelessTee left
dalek blets: e878338 | (Herbert Breunung)++ | docs/ (3 files):
finish yesterdays changes, mostly finishing touch on backlinking precedence table and also polish high xor
12:40
masak and now: from 'blimp' to 'proof' in four randomly shuffled steps!
r: say my $s = "blimp"; for <b p l r i oo mp f>.hash.pick(*) -> $p (:$key, :$value) { say $s.=subst($key, $value) }
p6eval rakudo 2a962e: OUTPUT«blimp␤plimp␤ploomp␤ploof␤proof␤»
masak \o/ 12:41
[Coke] pure luck? 12:42
nope. 12:43
ah, I see it. neat.
12:43 skids left
tadzik hehe 12:45
aaargh, something broke precomp again 12:47
12:49 geekosaur joined 12:50 cognominal joined, birdwindupbird joined 12:52 cognominal_ left, zhutingting joined
dalek nda: fae8228 | tadzik++ | bin/masstest:
Remove masstest, it belongs to Emmentaler repo anyway
12:53
masak was gonna say. 12:54
12:55 PacoAir joined
tadzik should I add dalekhook for emmentaler too? 12:56
colomon +1 12:57
dalek mentaler: 7eed037 | tadzik++ | masstest:
Import masstest from panda repo
12:58
tadzik seems to work
12:58 plutoid joined 13:01 uvtc joined
uvtc What's the difference between pick and roll? 13:01
phenny uvtc: 07:57Z <flussence> tell uvtc I think it was caused by trying to use semantically equivalent tags there while avoiding <u>. It does seem a bit wrong now that I've re-read those bits of the HTML spec.
flussence (I've changed that code to more predictable tags now, btw) 13:03
uvtc hi flussence, I was just looking at that commit. Thanks for the change. One minor nit... 13:05
benabik uvtc: Pick is "select without replacement", roll is "select with replacement"
uvtc: .pick(*) is a reordering of the original while .roll(*) is an infinite list.
&
flussence (as for why that repo doesn't have issues enabled: I dunno. Ask someone who can enable it :)
uvtc flussence, U<foo> is for "unusual" (according to S26), not "unimportant". I think it would be better to have U<foo> underline (that is, <ins>foo</ins>). 13:07
benabik, thank you, but I don't know what you mean by "replacement" here... 13:08
flussence S26 may say that, but I'll wait to get a few opinions first because that's a horrible abuse of HTML semantics...
13:09 PacoAir_ joined, PacoAir left, PacoAir_ is now known as PacoAir
uvtc flussence, Oh, just noticed that S26 suggests "Unusual (typically rendered with underlining)". Also, when folks see "U<>" they're probably going to think "underline", even though --- as you point out --- its not ideal. 13:10
flussence, And underlining *is* pretty unusual. :) 13:11
13:11 JimmyZ joined
uvtc dalek? 13:14
tadzik r: say time - time
p6eval rakudo 110f35: OUTPUT«0␤»
tadzik wow, it's fast :)
masak things like U<> in S26 aim to exploit *both* our presentation-based thinking about these tags, and more general, semantic, presentation-free names.
13:15 cognominal left
daxim the purist in me says: that's bad design 13:15
13:15 cognominal joined
flussence maybe we should go bother #whatwg to change *their* spec :) 13:15
uvtc masak, I know. Pretty <del>neat</del> sneaky. :)
underlining can be useful, for example, in cases where you've added something you want someone to look at before making it final. (Incidentally, I've never seen <mark>foo</mark>, which makes it unusual (to me), seems rather distinctive.) 13:18
Oh, new with HTML5. 13:19
13:21 eviltwin_b joined
uvtc benabik, Oh, I see! pick takes the choice it just made out of the pool of possible next-choices, whereas roll just randomly chooses again (possibly getting the same choice as last time). 13:22
13:24 geekosaur left 13:25 NamelessTee joined
uvtc flussence, S26 says that U<> is for text of "minor significance"... If I were marking some text as having "minor significance", I'd probably render it in a lighter shade of grayishness than its surrounding text. Maybe <span class="unusual">foo</span>, then style that in my css file. 13:29
13:29 sergot joined 13:31 geekosaur joined 13:34 daxim left, eviltwin_b left, ponbiki left
flussence uvtc: I think <i> (with that css) would be okay there, or at least that's the vibe I get from www.whatwg.org/specs/web-apps/curre...-i-element 13:36
uvtc flussence, Tricky. 13:38
flussence, people are going to expect I<foo> to yield <i>foo</i> or equivalent (which it does now: <em>foo</em>) 13:39
flussence, people are going to expect B<foo> to yield <b>foo</b> or equivalent (which it does now: <strong>foo</strong>)
flussence, and whether it makes sense or not, people are going to expect U<foo> to yield "foo" underlined, or something vaguely equivalent. 13:40
flussence, personally, I'd probably defer to Damian/S26 and just make U<foo> yield <ins>foo</ins>. Can folks change the style of that (via css) if they so choose? Haven't tried it... 13:43
flussence, (just my 2¢, of course) 13:44
flussence if you do that, use <u>, not <ins> (which already has a strongly defined meaning) 13:45
uvtc flussence, Yow. Didn't know about <u>. Thanks. In that case, I think there's what you're looking for (for U<foo>). 13:46
tadzik, thanks for adding me to emmentaler, though, I'm not sure I know for what purpose. (Also, isn't it going to be moved under the perl6 umbrella soon?) 13:47
arnsholt Commit bits are the Perl 6 borg's means of assimilating newcomers 13:52
One of us, one of us! =)
uvtc arnsholt, ain't it the truth?
arnsholt, :) 13:53
13:53 birdwind1pbird joined
uvtc Is there a more ideomatic way of splitting a string into a list of characters than: my @a = 'abcd'.split('') ? 13:54
s/ideo/idio/ 13:55
[Coke] r: say 'abcd'.comb
p6eval rakudo 110f35: OUTPUT«a b c d␤»
[Coke] grok: comb
[Coke] forgets if the grokbot is still here. 13:56
uvtc [Coke] is that comb's purpose in life?
masak [Coke]: ooh, I should write us a new grokbot.
in Perl 6.
[Coke] uvtc: perlcabal.org/syn/S32/Str.html#comb 13:57
13:57 eviltwin_b joined
masak tadzik: is there a Perl 6 IRC bot starting kit around nowadays? 13:58
[Coke] r: say 'abcd'.comb(:match)
p6eval rakudo 110f35: OUTPUT«a b c d␤»
masak 'cus that'd really halp.
[Coke] r: say 'abcd'.comb(:bletch)
p6eval rakudo 110f35: OUTPUT«a b c d␤»
[Coke] should that barf?
uvtc Coke, what is ":match" and ":bletch"? 13:59
Coke, thanks for the link to the relevant synopsis section.
masak [Coke]: methods all have a default *%_ parameter.
[Coke] uvtc: perlcabal.org/syn/S32/Str.html#comb
masak: ew. what problem is that solving?
masak "interface consistency", according to S12. 14:00
[Coke] doesn't that mean you get no compiler warnings on invalid named parameters? that seems like a pretty big loss.
masak yeah, it means that.
14:00 geekosaur left
JimmyZ and default *@_ ? 14:00
masak JimmyZ: no.
jnthn YOu'd get no compiler warnings anyway.
Since methods are late bound.
And this doesn't apply to subs.
uvtc Coke, no, I meant what the syntax means (I think it means, "I'm passing this named argument to the sub, but not passing a value, so just assume it's 'true'")
14:00 havenn joined
[Coke] uvtc: pretty much, yes. 14:01
uvtc Coke, thanks.
masak specifically, deriving classes add new named parameters. named paramters are optional by default. so (by Liskov-sorta), the base class has to be prepared for them too.
[Coke] :match is supposed to do something there (but isn't). the other one was me checking to see if a bad name complained (which it doesn't)
jnthn: (compile time) mismatched named parameters don't cause compile time errors ever?
or automatically generated runtime errors? (so if I wanted comb to barf on :barf, I'd have to write my own parameter mangling code to do so?) 14:02
jnthn [Coke]: I didn't say they don't ever. I said they can on subs, and subs don't get a magical *%_, so it all works out there. Methods OTOH are late-bound and do get the *%_ 14:03
14:03 tyatpi joined
JimmyZ r: sub foo() returns Str { say 1; }; 14:03
p6eval rakudo 110f35: ( no output )
[Coke] jnthn: I'm not trying to put words in your mouth, just trying to figure out what to expect, is all. 14:04
jnthn r: sub foo() returns Str { say 1; }; foo() # just checking
p6eval rakudo 110f35: OUTPUT«1␤Type check failed for return value␤ in sub foo at /tmp/b8b8M08CJM:1␤ in block <anon> at /tmp/b8b8M08CJM:1␤␤»
[Coke] r: my $a = say 3; say $a.WHAT
p6eval rakudo 110f35: OUTPUT«3␤Bool()␤»
14:04 sergot left
[Coke] r: say "Here's my wallet" or die 14:05
p6eval rakudo 110f35: OUTPUT«Here's my wallet␤»
jnthn [Coke]: The implcit *%_ means that for methods, the extra named args getting swallowed silently. It's spec. I've only ever half-liked it. :)
14:06 sergot joined
masak it goes back to A12, actually. 14:07
I think it's best explained there.
14:07 cognominal_ joined
masak www.perl6.org/archive/doc/design/apo/A12.html -- heading "Interface Consistency". 14:08
14:08 skids joined, tokuhirom left 14:11 cognominal left
masak by the way, ddg gives three hits for "guthlophikralique": A12, the copy of A12 in CPAN's Perl6::Bible, and me on IRC 2.5 years ago :P 14:12
this was your tri-yearly "guthlophikralique" sighting report. brought to you by Mophriqualiphism, Inc. 14:13
masak .oO( their wafers are so delicious! )
14:15 plutoid left
masak oh, and apparently, back in 2009, I was being happy because we'd soon be hitting 500 new/open RT tickets... from below. 14:16
14:17 Util_ joined
masak (we might just come back down to those levels. we're at 653 now.) 14:17
jnthn We're closer if you subtract testneeded too. :) 14:18
masak troo
14:19 SHODAN left 14:21 Util left
masak r: say (1..10).reduce({$^a + $^b + $^c}) 14:24
p6eval rakudo 110f35: OUTPUT«can only reduce with arity 2␤ in method gist at src/gen/CORE.setting:8667␤ in sub say at src/gen/CORE.setting:6555␤ in block <anon> at /tmp/NSqDAtwUCF:1␤␤»
14:24 SHODAN joined
masak Used to be 'Can only reduce() using a binary function for now.' 14:24
14:25 kaleem left
jnthn Apparently, we hardened our stance ;) 14:25
masak I prefer the current error message, which doesn't make future promises. I say we close up rt.perl.org/rt3/Ticket/Display.html?id=61610
14:28 PacoAir left 14:30 mikec is now known as Guest81905
Guest81905 :( 14:36
14:36 Guest81905 is now known as mikec_
JimmyZ :P 14:39
masak mikec_: you do know about registering of nicks, no?
mikec_ well, it did give me plenty of warning 14:41
sadly this one is registered too
i'll think of something
masak you'll pick the awesomest nick. 14:42
mikec_ yes!
masak let your imagination soar!
something no-one has thought about, but everyone wish they had.
mikec_ haha. exactly
JimmyZ mikec6!
mikec_ :) 14:43
uvtc mike-c!
masak ultimike!
mikeshed!
uvtc mikec_____! The possibilities are endless. Limitless. Without bound.
masak actually, there's only a finite number of combinations of printable ASCII chars of a certain length... 14:44
mikec_ i am overwhelmed with the sheer number of permutations
masak mightymike!
permiketation! 14:45
therealmikec
14:46 gfldex is now known as howlongcanbyname, howlongcanbyname is now known as gfldex
mikec_ pretty long 14:47
gfldex 16 chars
flussence r: say ('mikec' ~ 'a'..'z').comb.pick(*).join
p6eval rakudo 110f35: OUTPUT«(timeout)»
mikec_ oh no!
uvtc r: 'mikec' ~ ('a'..'z').pick(4).join('') 14:48
p6eval rakudo 110f35: ( no output )
masak r: say ('mikec' ~ 'a'..'z')
p6eval rakudo 110f35: OUTPUT«"mikeca".."z"␤»
uvtc r: say 'mikec' ~ ('a'..'z').pick(4).join('')
p6eval rakudo 110f35: OUTPUT«mikecmrnx␤»
masak r: say 'mikec' ~ ('a'..'z') 14:49
p6eval rakudo 110f35: OUTPUT«mikeca b c d e f g h i j k l m n o p q r s t u v w x y z␤»
JimmyZ [mikec]
[Coke]
masak r: say 'mikec' ~ ('a'..'z').join
p6eval rakudo 110f35: OUTPUT«mikecabcdefghijklmnopqrstuvwxyz␤»
sergot r: say 'mikec' ~X ('a'..'z') 14:50
p6eval rakudo 110f35: OUTPUT«===SORRY!===␤Confused␤at /tmp/6nJtrcMSOd:1␤»
sergot oh.. right :)
r: say <'mikec'> X~ 'a'..'z' 14:54
p6eval rakudo 110f35: OUTPUT«'mikec'a 'mikec'b 'mikec'c 'mikec'd 'mikec'e 'mikec'f 'mikec'g 'mikec'h 'mikec'i 'mikec'j 'mikec'k 'mikec'l 'mikec'm 'mikec'n 'mikec'o 'mikec'p 'mikec'q 'mikec'r 'mikec's 'mikec't 'mikec'u 'mikec'v 'mikec'w 'mikec'x 'mikec'y 'mikec'z␤»
tadzik masak: there's a module for that, I think
masak yay
14:54 allbery_b joined
masak 'cus I would totally write a grokbot in Perl 6. 14:55
uvtc r: 'mike_c' X~ 'a'..'f'
p6eval rakudo 110f35: ( no output )
uvtc r: say 'mike_c' X~ 'a'..'f'
p6eval rakudo 110f35: OUTPUT«mike_ca mike_cb mike_cc mike_cd mike_ce mike_cf␤»
tadzik masak: github.com/TiMBuS/Net--IRC/
masak \o/
Timbus++
tadzik also, I now has gist.github.com/2559005 14:56
note #46
oh, a warming email to p6c :]
14:57 eviltwin_b left
uvtc Where in the synopses can I find the methods for Array documented? I don't see them in S02 nor S09. 14:59
(looking for "munch")
gfldex uvtc: perlcabal.org/syn/S32/Containers.html#Array 15:00
uvtc Thanks, gfldex ! 15:01
colomon tadzik++ 15:03
tadzik colomon: note it mentions the compiler used too :)
colomon tadzik++
tadzik :)
dalek mentaler: ad8de41 | tadzik++ | / (2 files):
Rename masstest to smoker. Make it generate JSON instead of an HTML file
15:04
mentaler: ad6a7bf | tadzik++ | smoker:
Include some statistics in the results
15:05 JimmyZ left, thou joined 15:06 birdwind1pbird left
gfldex r: sub perm(@a is rw, $i is copy){ return @a if $i-- <= 0; return @a X~ perm(@a, $i) }; say 'mikec' ~ perm 'a'..'f', 5; 15:07
15:07 JimmyZ joined
p6eval rakudo 110f35: OUTPUT«(timeout)» 15:07
gfldex r: sub perm(@a is rw, $i is copy){ say $i; return @a if $i-- <= 0; return @a X~ perm(@a, $i) }; say 'mikec' X~ perm 'a'..'f', 5; 15:09
p6eval rakudo 110f35: OUTPUT«(timeout)5␤4␤3␤2␤1␤0␤»
masak Timbus: ping 15:10
15:11 havenn left
gfldex that works locally but is a tiny littly wee bit slow 15:11
lichtkind uvtc: i have another problem with markdown
gfldex flattening that list takes 3 minutes and only 256MB or ram :)
uvtc lichtkind, what's the issue? 15:12
lichtkind when i wanted define format for a:hover via css normal some text took that style too
uvtc lichtkind, Hm. I haven't run into that particular problem. 15:13
15:13 zhutingting left
masak phenny: tell Timbus I tried to use Net::IRC but gist.github.com/2559145 15:15
phenny masak: I'll pass that on when Timbus is around.
uvtc lichtkind, though I don't know all that much about html & css, what's the html look like for the regular text that's not rendering with the css for a:hover? 15:16
sorry: s/that's not rendering/that's rendering/
In the synopses, re. the function signatures, is there a place where that function signature notation is explained? For example, at perlcabal.org/syn/S32/Containers.html#Array , if I scroll down to "rotate", there's a colon in there, and a *@n --> Array ... not sure what the notation means. 15:19
15:20 noam left, noam joined
lichtkind uvtc: which colon? 15:25
or you mean the asterisk?
15:25 envi_|2 joined
uvtc There's a few different bits of syntax in those fn sigs that I don't understand. I thought maybe there was a "legend" somewhere that says, "in the function sigs below, here's what we mean by the following..." 15:26
15:26 kaare_ joined, envi_ left
uvtc Is it real Perl 6 function definition syntax, or an ad-hoc shorthand for describing how to call the various functions/subs/methods? 15:27
TimToady those are supposed to be real syntax 15:28
--> is just a way of writing the return type inside the sig 15:29
std: my Int foo ($a,$b --> Str) {...}
p6eval std fab64fc: OUTPUT«===SORRY!===␤Multiple prefix constraints not yet supported at /tmp/78cTECYdmy line 1:␤------> my Int ⏏foo ($a,$b --> Str) {...}␤Malformed my at /tmp/78cTECYdmy line 1:␤------> my Int ⏏foo ($a,$b --> Str) {...}␤ …
uvtc In the method sig for rotate, why is it "@array is copy: ..." instead of "@array is copy, ..."?
TimToady hmm, that's the wrong message
that's the invocat colon 15:30
*cant
@array is the object if the current class
uvtc is "invocant" == the object on behalf of which the method was called?
TimToady yes, that's the Perl Culture term for it 15:31
sort of straddling the notion of whether the object is active or passive
uvtc (Positive motivational slogan: "Invocant? Invocan!")
Ok, so the "-->" is not connected with whatever is to its left. It's just indicating what the method returns. 15:32
TimToady it's looser than : or ,
masak aye.
15:33 kaleem joined
TimToady that's why it's bigger 15:33
uvtc Back to the sig for rotate: what's the "*" in "*@n" mean?
masak slurpy.
means this array parameter eats up all the remaining positional arguments.
uvtc Oh, of course. Thanks. 15:34
TimToady slurpy binding makes a list context
15:35 spider-mario joined
uvtc The way I've explained that to myself: The method is expecting a list at that position, and so enforces that expectation on what you pass in there. 15:35
TimToady of course, @array is copy is a rather weird way to write it from an FP point of view
in fact, 'is copy' is an FP code smell 15:36
since it implies you're intending to use a side effect
uvtc I've always found it a bit of extra work to remember whether or not a given method modifies its invocant. 15:37
.oO( *these* mutate, *these* don't)
15:37 pernatiy left
masak TimToady: I can't make that make sense in my head. .rotate doesn't change the original object, it returns a fresh one. which feels very FP. 15:38
TimToady but it is going to do it by modifying the copy
rather than just reslicing it
masak oh, true.
ah, so you're saying that the signature somehow betrays those impure intentions. 15:39
uvtc Is the opposite of "@array is copy", "@array is rw"?
15:39 kaleem left
TimToady in one sense 15:39
15:40 havenn joined, noam left, noam joined
TimToady they're the same from the standpoint of revealing a writeable array to the body of the routine 15:42
masak uvtc: there are three settings: readonly, rw, and copy.
uvtc I ask because the docs there (in S32/Arrays.html#Array) for push don't say "@array is rw", even though push modifies what you pass to it.
masak uvtc: the latter two mean that you intend to mutate something. 'rw' means mutate the original, 'copy' means mutate a clone.
TimToady invocants are assumed to be mutalbe
*ble 15:43
the assumptions of OO are opposite to FP there
uvtc Oh, that's interesting (assuming them to be mutable). I'd thought t'would be t'other way round.
TimToady all mutable state is held in objects under OO think 15:44
flussence if one were to have a custom class, is there a way to detect whether it's being used as an "is readonly" so it can throw errors in mutator methods?
masak that road looks tempting, but will lead to madness. 15:46
trouble is, OO as such never bothered to differ between "containment" and "connection". both are attributes.
since there's no good way to tell those two different relations apart, there's no good way to enforce that an object never mutates "its" attributes. 15:47
because you can't tell which objects are contained in your object, and which ones are merely cousins.
TimToady at the moment, the best way to make attributes immutable is to derive a new class to encasulate them in the parent class 15:48
15:49 Psyche^ joined
masak we even have this muddling up in spoken language "The car HAS a motor" (physical containment), "The pond HAS a duck" (incidental containment; kinda dynamical), "Eric HAS a cousin" (in no way is the cousin contained in Eric, though) 15:49
15:49 dakkar joined
TimToady
.oO(more declarators!)
15:50
masak sometimes in the literature, that last relation is called KNOWS_A. but... it's already too late.
I'm not sure it could be made formal and usable even if we tried. the world is just too messy.
TimToady that's why OO is so big on encapsulation, because *mess* is what's being encapsulated 15:51
15:51 havenn left
TimToady even in FP-land, an object can present as immutable on the outside, but be running all sorts of mutable caching on the inside as an optimization 15:52
15:52 Patterner left, Psyche^ is now known as Patterner
uvtc r: sub Int foo($a, $b --> Str) { return 'x' ~ $a ~ $b ~ 'x'; }; say foo(2,3) 15:53
p6eval rakudo 110f35: OUTPUT«===SORRY!===␤Missing block␤at /tmp/kMqjcrCrdG:1␤»
TimToady which reminds me to bug rakudofolk again that we really need //= to work right
uvtc r: sub Str foo($a, $b --> Str) { return 'x' ~ $a ~ $b ~ 'x'; }; say foo(2,3)
p6eval rakudo 110f35: OUTPUT«===SORRY!===␤Missing block␤at /tmp/sp4bfyh32_:1␤»
uvtc r: sub Str foo($a, $b --> Str) { return 'x' ~ $a ~ $b ~ 'x'; }; say foo(2,3)
p6eval rakudo 110f35: OUTPUT«===SORRY!===␤Missing block␤at /tmp/qmPYVZxV8X:1␤»
uvtc r: sub foo($a, $b --> Str) { return 'x' ~ $a ~ $b ~ 'x'; }; say foo(2,3)
p6eval rakudo 110f35: OUTPUT«x23x␤»
TimToady std: my Int sub foo ($a,$b --> Str) {...} 15:54
p6eval std fab64fc: OUTPUT«===SORRY!===␤Extra 'of' type; already declared as type Int at /tmp/8xXkgebEpF line 1:␤------> my Int sub foo ($a,$b --> Str⏏) {...}␤Potential difficulties:␤ $b is declared but not used at /tmp/8xXkgebEpF line 1:␤------> my I…
TimToady std: my Str sub foo ($a,$b --> Str) {...}
p6eval std fab64fc: OUTPUT«===SORRY!===␤Extra 'of' type; already declared as type Str at /tmp/3wXvvWzejX line 1:␤------> my Str sub foo ($a,$b --> Str⏏) {...}␤Potential difficulties:␤ $b is declared but not used at /tmp/3wXvvWzejX line 1:␤------> my S…
15:54 cognominal___ joined
uvtc (sorry, the first one I did was "Int" instead of "Str", then I did "Str" twice by accident) 15:54
TimToady anyway, there are actually three different places you can put the return type 15:55
uvtc Ah.
TimToady std: my Str sub foo ($a,$b) {$a ~ $b}
p6eval std fab64fc: OUTPUT«ok 00:00 44m␤»
uvtc that's one
TimToady std: sub foo ($a,$b) returns Str {$a ~ $b}
p6eval std fab64fc: OUTPUT«ok 00:00 43m␤»
uvtc Ah.
TimToady std: sub foo ($a,$b --> Str) {$a ~ $b} 15:56
p6eval std fab64fc: OUTPUT«ok 00:00 43m␤»
dalek blets: 3bf865d | (Herbert Breunung)++ | docs/appendix-a-index.txt:
finer punctioation nav menu
15:57 cognominal_ left
TimToady we figger 3 ways to do it is probably enuff 15:58
ENUFFKISENUFFK <-- Popeye throwing an exception 15:59
16:02 rami joined
rami seriously, how many people come here and say they are good to butterflies? :P 16:02
masak &
16:03 havenn joined
spider-mario oh, rakudo 2012.04 still fails to build from the tarball on my machine, even with parrot 4.3 :( 16:04
with the same error
ompldr.org/vZGttaQ 16:05
parrot is 4.3.0, nqp is 2012.04.1 16:06
uvtc masak, (after backscrolling) thanks for pointing out the three settings (readonly, rw, and copy).
phenny, tell masak (after backscrolling) thanks for pointing out the three settings (readonly, rw, and copy). 16:07
phenny uvtc: I'll pass that on when masak is around.
uvtc I noticed the other day that phenny doesn't do as you ask if you say please. 16:08
phenny, please tell TimToady so and so
TimToady it does if you put the please at the end :) 16:09
diakopter phenny, pray tell 16:10
TimToady someone should write p6enny 16:11
uvtc TimToady, you wrote "more declarators!". What is a declarator? (The thing being *declared* would be the ... declar-ee ...?)
diakopter declaratee? 16:12
TimToady the declarand, we call that
uvtc Ah, yes. OK.
TimToady 'my', 'has', 'our'...
that does it
hence the -or ending
uvtc Oh. Thank you.
dalek mentaler: c8f7091 | tadzik++ | smoker:
Include description in results.json
16:13
mentaler: 820185a | tadzik++ | / (2 files):
Add an HTML formatter
TimToady has $.foo; knows $.bar
uvtc I haven't yet seen "knows".
I see what you mean though. 16:14
TimToady that's what I meant by 'more'
uvtc Ah.
TimToady but I doubt we'll do that, for the reasons masak++ mentioned
diakopter eats
TimToady shoots and leaves
uvtc shoots and ladderss 16:15
Wait. Chute!
TimToady Shark!
you shouldn't put TimToady into free-association mode this early in the morning... 16:16
uvtc hahahaha
TimToady was already in free-association mode this morning, he suspects 16:17
diakopter are we naming new declarands? 16:18
16:18 birdwindupbird left
TimToady all the time 16:18
well, most of the time 16:19
arguably, anonymous declarands are really being declared
*aren't grrr
my n't key is flaking out again... 16:20
16:20 tyatpi left 16:21 allbery_b left, icwiener joined 16:22 allbery_b joined
jnthn nom: my $a = 42; $a //= die "well, crap" 16:23
p6eval rakudo 110f35: OUTPUT«well, crap␤ in block <anon> at /tmp/AlSitkXo8B:1␤␤»
jnthn nom: my $a = 42; $a ||= die "well, crap"
p6eval rakudo 110f35: OUTPUT«well, crap␤ in block <anon> at /tmp/suReAKJisk:1␤␤»
dalek blets: a4183b5 | (John Gabriele)++ | docs/appendix-g-glossary.txt:
added declarand & declarator to glossary
16:27 brrt joined, GlitchMr42 joined, havenn left 16:28 JimmyZ left 16:29 GlitchMr left
TimToady perl6: say (1|2|3|4|5).perl 16:31
p6eval rakudo 110f35, niecza v16-23-gaa61ed5: OUTPUT«any(1, 2, 3, 4, 5)␤»
..pugs: OUTPUT«(1 | 2 | 3 | 4 | 5)␤»
TimToady perl6: say ([|] 1..5).perl
p6eval niecza v16-23-gaa61ed5: OUTPUT«any(1, 2, 3, 4, 5)␤»
..pugs: OUTPUT«(1 | 2 | 3 | 4 | 5)␤»
..rakudo 110f35: OUTPUT«any(any(any(any(1, 2), 3), 4), 5)␤»
TimToady rakudobug
16:31 jerome_ left 16:32 mtk joined
jnthn TimToady: Are those not equivalent? 16:32
TimToady it's supposed to notice that | is list associative and make a flat structure 16:33
it might not make a difference for |, but it might for other list associatives
perl6: say ([^^] 1..5).perl
p6eval niecza v16-23-gaa61ed5: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in class Any␤ at /home/p6eval/niecza/lib/CORE.setting line 2459 (reduceop @ 9) ␤ at /tmp/96SRgfXHQp line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3840 (ANON @ 3) ␤ … 16:34
..pugs, rakudo 110f35: OUTPUT«5␤»
jnthn TimToady: Does that mean reduce on a list associative actually just calls the op?
(Flattening in the argument list...)
TimToady if it's defined with a slurpy, yes
jnthn Well, the op probably is defined in various ways and all we see is the controlling proto... 16:35
Maybe that's enough, though.
sergot rakudo/install/bin/perl6: error while loading shared libraries: libicuuc.so.48: cannot open shared object file: No such file or directory - there is iCu 49. What should I do? :)
TimToady well, the fact that the operator is list associative should probably be recording somewhere meta-y
16:36 thelazydeveloper joined
jnthn ah...good point. 16:36
We must have that info somewhere... :)
dalek blets: d1c13dc | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
explaining parameter better in glossary
blets: f09ef65 | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
Merge branch 'master' of github.com:perl6/tablets
masak submits any(any(any(any(1, 2), 3), 4), 5) rakudobug 16:37
phenny masak: 16:07Z <uvtc> tell masak (after backscrolling) thanks for pointing out the three settings (readonly, rw, and copy).
lichtkind masak: ist it easier to say any(1..5) ?
16:39 jaldhar left
masak lichtkind: of course it ist. 16:39
16:39 cognominal___ left
masak but that's neither here nor there. 16:39
16:41 rami left 16:42 noam left, cognominal___ joined, noam joined 16:44 dakkar left 16:45 noam left, noam joined 16:46 noam left, noam joined
dalek blets: efe012c | (Herbert Breunung)++ | docs/report.pl:
reporter script using now prinf and it looks just better
16:48
16:54 kaleem joined
uvtc What's the difference between `my %h = ();` and `my %h = {};`? 16:58
(to start yourself off with an empty hash)
PerlJam uvtc: "my %h;" gets you an empty hash 16:59
uvtc Oh, so it does. Thanks, PerlJam.
17:01 PacoAir joined 17:03 fglock left
masak uvtc: `my %h = ();` creates a list, and the runtime has to drop the contents into a new Hash. `my %h = {};` creates a new Hash. 17:03
uvtc Does `my %h;` really create the hash, or is it autovivified (correct term?) only when you add the first pair to it? 17:04
17:05 geekosaur joined
masak uvtc: yes. 17:05
:P
PerlJam heh
masak uvtc: as far as I know, it's really created, and is defined, and all that.
pmichaud has been wondering whether it should be created in an undefined state, due to features I clamored for many years ago. 17:06
PerlJam What would be the up-side of creating an undefined Hash? 17:07
17:08 allbery_b left
TimToady working more like scalars do 17:09
the ability to say %hash //= ... 17:10
masak right.
PerlJam makes sense
masak in fact, the angle I had when doing lots of complaining (in RT bug reports, no less) was that it wasn't possible to tell from inside of a routine whether a parameter had been passed or not. 17:11
that's sort of the same initialized/not-initialized distinction, if you squint.
17:11 mikemol joined
TimToady more like the Nil distinction, methinks 17:11
PerlJam masak: but I could pass an undefined hash as the parameter :)
masak PerlJam: indeed you could. 17:12
and the issue was never resolved. neither the real-world one nor the RT one :)
TimToady Nil is an encapsulated semi-predicate problem :)
it's a do-what-I-mean when I mean there's nothing here really 17:13
biab & 17:14
masak nod.
r: say Nil ~~ Hash
p6eval rakudo 110f35: OUTPUT«False␤»
masak but it's hard to fit a Nil inside a %h parameter ;) 17:15
p6: sub foo(@a, $b) {}; foo(5) 17:17
p6eval niecza v16-23-gaa61ed5: OUTPUT«Potential difficulties:␤ @a is declared but not used at /tmp/PFnbgh7miG line 1:␤------> sub foo(⏏@a, $b) {}; foo(5)␤ $b is declared but not used at /tmp/PFnbgh7miG line 1:␤------> sub foo(@a, ⏏$b) {}; foo(5)␤␤Unhandl…
..pugs: OUTPUT«*** No compatible multi variant found: "&foo"␤ at /tmp/J6iprwKJLK line 1, column 21 - line 2, column 1␤»
..rakudo 110f35: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'foo' will never work with argument types (int) (line 1)␤ Expected: :(@a, $b)␤»
[Coke] spider-mario: can you post the /entire/ build log? 17:19
17:19 geekosaur left 17:20 geekosaur joined
spider-mario [Coke] : should I also post that of nqp? 17:21
or just rakudo?
(nqp built fine, I think)
oh, I don’t have it anymore, anyway
17:22 brrt left
[Coke] start with a clean star, log everything up to the failure? 17:22
spider-mario ompldr.org/vZGtuaw
[Coke] so, "git clean -xdf && perl Configure.pl && make 2>&1 | tee build.log", or so? 17:23
spider-mario: ... you're using a pre-installed NQP?
and not the one that comes with?
spider-mario I am packaging nqp and rakudo for arch
in two packages 17:24
I am done with nqp, I think
it builds and installs fine
(and I am packaging tarballed releases) 17:25
(nqp 2012.04.1 and rakudo star 2012.04)
[Coke] so why is star involved if you're packing individually? 17:26
or did I misread star 17:27
?
spider-mario it makes no difference whether I build rakudo or rakudo star
17:28 eviltwin_b joined
spider-mario (but I’m making one package for nqp and one for rakudo star) 17:28
17:28 lichtkind left
spider-mario (or “the rest of” rakudo star, if you consider nqp to be part of it) 17:28
[Coke] given that it's bundled inside star, ja. 17:29
spider-mario is it?
[Coke] yes!
spider-mario oh, it is
but, well, parrot is already a separate package on arch 17:30
[Coke] star is a distro. which is why I was confused that you're re-distro-ing it. ;)
what is "arch" ?
spider-mario I thought it’d make sense to split nqp out of it as well
arch linux
17:30 geekosaur left 17:31 rualdo11 left
sorear good * #perl6 17:31
masak: hi
[Coke] ok. if I had access to a box running arch, I'd probably verify that a standalone star works. (let it build everything that it shipped with and install it in the default location.) 17:32
then I'd try to build star using the installed NQP (making sure it's the same as the one that ships, which it sounds like you did.)
spider-mario a standalone star from git works 17:33
not sure about the 2012.04 tarball
(I’m speaking of rakudo now)
I don’t know why I’m saying that I don’t know 17:34
I am tired :(
[Coke] rakudo star or rakudo compiler ?;) 17:36
spider-mario :)
[Coke] (standalone star from git) the star in git isn't standalone. 17:37
you need the /tarball/ to get the star release.
spider-mario it isn’t, but its Configure.pl does fetch the appropriate nqp and parrot
[Coke] star in git is just for people who release star. (which you kind of are, but not exactly. ;)
moritz and the README says so
[Coke] I'm assumig you're getting the wrong nqp somewhere. 17:38
so if a self-contained (even if from git) star works, that's a plausable theory.
spider-mario actually, the reason why it still failed seems to be that I forgot to change a path in the PKGBUILD, so makepkg wouldn’t clean before building
[Coke] do you have multiple nqps or parrots installed in your system dir?
moritz star is a distribution. If distributors want to take the star distro, that's fine
spider-mario so I had leftovers of the compilation with 4.2 17:39
[Coke] yay.
spider-mario and it seems to work now
sorry for your time :(
dalek kudo/nom: c7bf334 | jnthn++ | src/ (3 files):
Make //=, ||= and &&= thunky with their RHS.
kudo/nom: 1c92d0a | jnthn++ | src/core/List.pm:
The splice implementation relied on the previously incorrect semantics of //= in a rather subtle way. This makes it work again now //= is fixed.
[Coke] spider-mario: no worries, glad you figured it out!
moritz does not work with jnthn, does he? only masak? 17:40
moritz [Coke]: no 17:41
sorear masak: ping
17:43 havenn joined
dalek ast: a88ff3d | jnthn++ | S03-operators/short-circuit.t:
A couple of unfudges, and a correction.
17:43
moritz jnthn: fwiw changing 'our sub string_to_bigint' to 'my' doesn't fix the general problem with precompiling modules with new ops (as you probably have guessed :-) 17:45
uvtc r: my %h = <a 1 b 2 c 3>; %h.delete{'a'}; say %h 17:47
p6eval rakudo 110f35: OUTPUT«("a" => "1", "b" => "2", "c" => "3").hash␤»
dalek ast: f14b0fb | jnthn++ | S03-operators/short-circuit.t:
Some more Rakudo unfudges; also turn some skip into todo.
jnthn moritz: No, I didn't think it would.
17:48 brrt joined
jnthn TimToady: //= and friends should now be more to your liking in Rakudo :) 17:48
uvtc How does one delete a pair from a hash in the most socially acceptable manner possible?
(trying that above line in my R* 2012.4 repl kills it.)
moritz in rakudo, %hash.delete($key)
TimToady \o/
moritz in spec p6, %hash{$key}:delete 17:49
jnthn uvtc: Kills the REPL? It works here...
moritz jnthn: with curly braces after the delete?
PerlJam
.oO( "socially acceptable" manner of deleting a pair? )
uvtc Sorry -- my usual pastebin has gone away. Just a sec. 17:50
refheap.com/paste/2475 17:51
jnthn moritz: I didn't even spot that thinko :)
moritz: But it still doesn't kill it.
uvtc ... and then it dumps me back at my shell prompt.
(forgot to include that in the paste)
17:51 tyatpi joined
uvtc PerlJam, just poking fun at myself for using "one" that way... Better: how do I delete an item from a has with extreme prejudice? :) 17:52
PerlJam uvtc: extreme prejudice would be nuking the entire hash just to get at one element :) 17:53
uvtc jnthn, Yes. Kills it. I'm on Lubuntu 12.04 now.
moritz %h.=grep(!*.key eq 'todelete')
TimToady kill $*PID probably works too
dalek ok: 78f3e2a | moritz++ | src/subs-n-sigs.pod:
correct explanation of our-scoping
ok: 5965554 | moritz++ | src/subs-n-sigs.pod:
trivial importing example
sorear qx[reboot -f] 17:54
uvtc Anyone able to reproduce my problem? 17:55
sorear phenny: tell masak I have much less time today than I thought. We may have to make this an 17:56
phenny sorear: I'll pass that on when masak is around.
sorear phenny: tell masak "April 31" release :D
phenny sorear: I'll pass that on when masak is around.
masak sorear: pong.
phenny masak: 17:56Z <sorear> tell masak I have much less time today than I thought. We may have to make this an
masak: 17:56Z <sorear> tell masak "April 31" release :D
masak sorear: it's up to you. 17:57
sorear ?
masak sorear: I'm nomming dinner now; after that I'm free for releng'ing.
jnthn masak: I thought we had an RT for //= and ||= and so on not doing the right thing with the RHS, but can't find it.
masak jnthn: lemme find it for you.
jnthn masak: Feel free to try your luck :)
17:58 sergot left
masak jnthn: rt.perl.org/rt3/Ticket/Display.html?id=77420 17:58
jnthn masak: Feel free to just resolve it; we have test coverage now.
masak oki
masak resolves it
sorear masak: I have to go within 30m and I may not be back until after you are asleep
masak: do you have any questions to give me now?
jnthn masak: Thanks.
masak sorear: one that I thought of -- how will I know what to write for a changelog?
uvtc re deleting from hash, works fine this way though: refheap.com/paste/2476
masak is that clear from the release guide?
uvtc jnthn, ^^ 17:59
sorear masak: git log v<last>...HEAD 18:01
jnthn uvtc: Yeah, I'd expect it to work that way.
uvtc Should I file a bug report?
TimToady if you're referring to .delete{} not working, that's expected 18:03
uvtc TimToady, yes, thanks. Why is it expected?
TimToady because .delete doesn't return anything you can subscript
18:04 allbery_b joined
TimToady rakudo provides the .delete() workaround to the absense of .{}:delete 18:04
spec uses the latter because subscripting is potentially more complicated than can fit easily into a method's arguments, and does magic with semicolons for multiple dimensions 18:05
uvtc TimToady, sorry, I don't understand. Just to be clear, I'm talking about this paste refheap.com/paste/2475 where perl6 crashes (and returns me to my shell prompt).
TimToady, it looks to me like I'm creating a hash,
TimToady, then trying to delete one item/pair in it,
TimToady, but it's failing. Whereas, it works if I create the hash in a slightly different manner. 18:06
masak sorear: ok, sounds easy enough.
sorear uvtc: You invented the %h.delete{foo} syntax.
TimToady but you haven't specified which element to delete--the .{} syntax happens after the .delete
moritz and it should still not crach the REPL
jnthn uvtc: ah, it crashes here too when spread over two lines. 18:07
jnthn wonders why on earth it does that.
sorear masak: anything else?
jnthn ah
> my %h = <a 1 b 2 c 3>;
("a" => "1", "b" => "2", "c" => "3").hash
> say (%h.delete{'a'}).WHAT
Failure()
TimToady well, the final error message is correct-ish, there's no .{} defined on the List returned, but the prior messages are kinda bogus
18:07 eviltwin_b left
uvtc Oh! Hah. Sorry. I was using curlies instead of parens! 18:07
jnthn moritz: Is there some issue with Failure being handled in the repl? 18:08
uvtc Whoopsie. Sorry about that. :)
TimToady there are far too few brackets in ASCII for Perl 6 not to care about the difference :)
as it is, {} are overloaded a bit more than is comfortable
though not as heavily in P6 as they were in P5 18:09
uvtc kids are even wearing them on their teeth!
TimToady has Invisaligns® instead
uvtc Brace yourselves!
TimToady I believe P5 overloads braces 6 different ways (at least) 18:10
moritz jnthn: oh, might be
jnthn: when we stringify a Failure, it goes Boom. That's by design.
jnthn moritz: ah, yeah...
And then boom goes the repl with it... 18:11
moritz so we should probably catch that
TimToady Do, or do not--there is no try...
moritz but there is a CATCH :-)
TimToady I guess Perl 6 proves that there isn't always a CATCH. 18:12
jnthn moritz: yeah.
moritz jnthn: shall I try to fix it? 18:15
jnthn moritz: Go ahead...I need to make some food here. :) 18:16
I figured out what's up with the pre-comp/operator issue too. 18:17
moritz nqp: { CATCH { nqp::say($_) }; pir::die("foo") }
p6eval nqp: OUTPUT«foo␤»
18:17 eviltwin_b joined
jnthn Though need to ponder the best solution a bit more. 18:17
18:18 Chillance joined
moritz catch the error, print the exception? 18:18
note that the error usually contains the Failure message
jnthn Yeah, sounds sane.
18:20 allbery_b left 18:21 kaleem left
sorear what happens if you feed class { method Str { die "pie" } } to the REPL? 18:23
masak: I leave now, good luck
colomon o/ 18:24
dalek kudo/nom: 5ea23bc | moritz++ | src/Perl6/Actions.pm:
make a sub lexcical
kudo/nom: 2da78a1 | moritz++ | src/Perl6/Compiler.nqp:
[REPL] catch and print errors from stringification
moritz masak: it responds with <anon>()
uvtc r: my @a = <a b c>; @a.delete(1); say @a
p6eval rakudo 1c92d0: OUTPUT«use of uninitialized value of type Any in string context in method Str at src/gen/CORE.setting:670␤␤a c␤»
masak moritz: mistab?
uvtc Is that the correct way to remove an item from the inside of an array? 18:26
TimToady not if you want the position to close up
uvtc Oh, splice?
PerlJam uvtc: splice is traditional
uvtc Thank you.
splice is nice
it's thrice nice, actually.
TimToady delete is not guaranteed to work on arrays that don't support undefined elements
a compact array will almost certainly blow up if you try to delete 18:27
18:27 havenn left
uvtc I've not yet learned about "undefined elements" in Perl 6. Do regular Perl 6 arrays support undefined elements? 18:27
TimToady you just did that 18:28
uvtc Oh, I also don't know what a "compact array" is.
TimToady packed array of, say, ints
masak or objects made up only of natives.
TimToady you can have an undefined Int, but not an undefined int
you can have an undefined num, but only by representing it as NaN :) 18:29
jnthn nom: my $a = int; say "Heeeey, I have an undefined {$a.^name}"
p6eval rakudo 1c92d0: OUTPUT«Heeeey, I have an undefined int␤»
jnthn :P
TimToady um, no 18:30
jnthn I know, I'm kidding :)
PerlJam TimToady: What about arrays that have defaults? if you delete an element, it really just reverts to the default value, right?
TimToady in that case, it might work
18:30 oiig_ left, cognominal_ joined
uvtc "compact array" =? typed array (and the type is a native type) 18:31
masak nom: my int $a; say "jnthn is just kidding, it's not undefined, it's $a"
p6eval rakudo 1c92d0: OUTPUT«jnthn is just kidding, it's not undefined, it's 0␤»
TimToady a sparse array might actually delete the element, for instance
uvtc: yes
masak nom: my nom $a; say $a
p6eval rakudo 1c92d0: OUTPUT«===SORRY!===␤Malformed my␤at /tmp/9I6yDnUNd4:1␤»
masak nom: my num $a; say $a
18:31 birdwindupbird joined
p6eval rakudo 1c92d0: OUTPUT«NaN␤» 18:31
masak NaN? really?
n: my num $a; say $a 18:32
p6eval niecza v16-23-gaa61ed5: OUTPUT«===SORRY!===␤␤Malformed my at /tmp/GHcel18eES line 1:␤------> my⏏ num $a; say $a␤␤Parse failed␤␤»
masak shouldn't that be 0 too?
TimToady no natives in niecza yet
why should it be 0?
NaN more accurately represents uninitialized
and will more likely catch those errors 18:33
18:33 cognominal___ left
flussence
.oO( maybe int should initialise to a random value, like C : )
18:33
TimToady then we could rewrite rogue in Perl 6, and preproduce the superarrow bug 18:34
s/pre/re/
masak TimToady: not sure whether or not I agree that NaN represents uninitialized... but doesn't the spec say native things initialize to their zero? 18:35
I think that's much more sensible, at least.
again,
jnthn The spec says that native nums initialize to NaN
masak r: say my int $a
p6eval rakudo 1c92d0: OUTPUT«0␤»
jnthn I remember having it as 0 and having to go fix it.
masak jnthn: oh, ok :/
well, it seems an unnecessary default to me. and inconsistent with the int case. 18:36
uvtc Oh, @a.splice(...) splices in-place. Didn't expect that. Thought I'd have to do @a .= @a.splice(...) ...
TimToady S02:1229
masak I'd rather have an array of nums fill up with zeroes than with NaNs.
uvtc Er, sorry: s/@a .= @a.splice/@a .= splice/ 18:37
masak but I won't push it. there doesn't seem to be general assent to it being the wrong default.
TimToady = 0 xx *; # how hard can it be? 18:38
PerlJam depends on how many times we have to type it.
masak TimToady: what's the use case for the default of an array full of NaNs? 18:39
jnthn afk for a bit, dinner 18:40
masak I can give you three use cases right off the bat for the default of an array full of zeroes.
TimToady blowing up when you can't know whether 0 is valid or not; it's a form of the semi-predicate problem
sub zero { 0 xx * } 18:41
= zero
masak NaN doesn't blow up. it propagates silently through calculations. 18:42
TimToady indeed, and that is a feature
masak it's a bit similar to C's not initializing arrays at all, so they come to life filled with garbage.
TimToady that's spelled '= *' in Perl 6
(when applied to native arrays) 18:43
masak you mean 'my num @a = *;' ? 18:44
TimToady that would be more like the original superarrow bug in rogue
yes, same spec paragraph I pointed to before
probably only for shaped arrays
18:44 geistteufel left
masak ah, there it is. thank you. 18:45
TimToady my int @a[10] = *; # garbage
masak I imagine it only works in a declaration :)
TimToady my int $arrowhits = *; # :)
PerlJam
.oO( Why would you *want* garbage? )
18:46
18:46 geistteufel joined
TimToady my int @a[MAXINT] is addr(0) = *; # all of memory :) 18:47
PerlJam though the text does say "whatever was already there" .... maybe you've got a custom allocator behind the scenes giving your nums some special values. 18:48
TimToady more likely, you do that in hot code because you know (or think you know) that all the elements will be set by the algorithm anyway, and initializing will just slow it down
but in the case of remapping a block of memory, you generally don't want to initialize it. 18:49
though I suppose 'is addr' could suppress that too; maybe = * should really be an 'is uninitialized' trait or some such 18:51
then addr implies uninitialized, maybe
PerlJam wfm 18:52
TimToady come to think of it, 'is rw' is already implying lack of initializaiton when used on a parameter
and = * is a bit short, huffmanly speaking, for something that can get you into trouble if you prematurly optimize 18:54
*rel
masak wfm 18:57
19:03 geistteufel left, geistteufel joined
PerlJam I think I'd feel weird writing Perl code to talk to A-to-D controllers and such. :-) 19:03
19:06 brrt left 19:07 replore left
uvtc r: say $*DISTRO 19:13
p6eval rakudo 2da78a: OUTPUT«Dynamic variable $*DISTRO not found␤ in method gist at src/gen/CORE.setting:8668␤ in sub say at src/gen/CORE.setting:6556␤ in block <anon> at /tmp/CDJetLIecg:1␤␤»
uvtc (that one causes my perl6 to quit) 19:14
19:15 sftp joined
uvtc (same with $*UID) 19:15
jnthn uvtc: Same underlying cause that moritz++ and I discussed earlier. 19:16
dalek ecs: 5bb94ec | larry++ | S02-bits.pod:
Remove =* init; add 'is default(*)' and such

The = * initiazer is too huffmanly short, and we need those semantics for other traits anyway, so make it 'is default(*)'. We're also wanting defaults for other containers (such as KeySets), so spec the 'default' trait on containers in general.
uvtc jnthn, thanks.
19:17 tyatpi left
TimToady PerlJam: we'll turn you into a Perl 6 Kernel hacker one of these days 19:17
we just need someone to write the Linux API emulator first to steal all their mindshare 19:18
"Perl 6 as a better C" 19:19
arnsholt PerlJam: Zavolaj/NativeCall is shaping up to be a really nice FFI library as well =) 19:20
TimToady wonders if the defaulting mechanism is really 'does Default[42]' 19:22
TimToady notes that he has defaulted to skipping lunch, which seems suboptimal... 19:25
19:25 replore joined 19:26 replore left 19:29 tyatpi joined 19:30 GlitchMr42 left 19:31 xinming_ joined 19:34 xinming left, LylePerl joined
LylePerl Would it be ok to message the Perl 6 announce and workshop lists with details about our event in Bristol? 19:35
Possibly write a small blog post? 19:36
19:37 sivoais left
masak goes into Niecza releng mode 19:38
people, don't commit to Niecza now for a while, m'kay? :)
19:40 cognominal_ left 19:41 cognominal joined 19:45 havenn joined
jnthn LylePerl: Workshop list for sure - not sure about announc. 19:46
LylePerl: And +1 to blog post :)
LylePerl: I'll probably mention that I'm going in one of my posts too.
19:51 geekosaur joined 19:53 sudokode left, eviltwin_b left 19:54 sudokode joined
dalek ecza: e119231 | masak++ | docs/announce.v17:
Add announce.v17
19:55
colomon \o/ 19:56
masak reviews warmly welcomed.
19:56 spider-mario left
dalek ecza: ef12629 | masak++ | docs/announce.v17:
[docs/announce.v17] updated link in the end
19:57
19:59 ponbiki joined
TimToady is so tired of github's putting a narrow column of useful data down the middle of a sea of polar ice on both sides 20:00
masak my github doesn't do that. 20:01
and my screen is pret-ty wide.
TimToady maybe it's a ff thing 20:02
masak oh! of course, with the default text zoom, it's quite silly.
but I do Ctrl + nowadays without thinking.
I'd rather do that than strain my eyes.
TimToady uses NoSquint 20:03
masak reading Chinese characters (and hearing horror stories about Chinese-lang scholars) taught me to go easy on the eyes :)
jnthn doesn't notice it, but probably due to a relatively low resolution (again, for the sake of the eyes)
TimToady otoh, for editing my CJK character descriptions, I CTRL+ my term 4 times
masak TimToady: how's strangelyconsistent.org/ on that account?
TimToady pretty okay; a few weird wraps when the text is zoomed more than the box holds, but other than that, pretty okay 20:04
masak \o/ 20:05
TimToady much rather have weird wraps than a horizontal scrollbar
masak aye.
TimToady and I almost always get scrollbars with github
have to click through to the raw
maybe they're optimizing for iPhone or something... 20:06
TimToady hates the modern trend toward phone-as-GUI unification 20:07
masak sorear: first snag: `make spectest` two levels down into next/next gives 'make: t/run_spectests: Command not found'
sorear: `make spectest` in the niecza directory itself seems to work, though.
TimToady I don't have a mouse in order to pretend I'm making touchscreen gestures... 20:08
masak TimToady: I hate when websites say they're "optimized for the iPad", and that means you can't use the website on the iPad, and have to download their crappy app instead.
which costs money.
lessons from running 'make spectest' on Niecza: the spectest suite is full of potential difficulties and undefinedness warnings. 20:09
also, Niecza runs the spectests quite slowly. *yawn* 20:10
20:11 eviltwin_b joined
colomon masak: yes, remember sorear lets me be the one to run make spectest all the time. though it's reasonably snappy with TEST_JOBS=4 20:12
jnthn masak: Nice exception: booking.com, whose app is free and actually beats the website in some ways. And you can still use the site if you like. :)
20:15 geekosaur left 20:16 eviltwin_b left
masak colomon: oh, TEST_JOBS works for Niecza, too? ...of course it does. 20:16
jnthn: ooh
ah well, it's almost done now. 20:17
colomon masak: of course, that means you have undefinedness warnings flying across your window at a very high speed... ;)
masak hm, 'secret key not available'. how do I create me a gpg key to sign the tag with?
moritz gpg --gen-key 20:18
masak ah, gpg --gen-key
moritz: thanks :)
moritz masak: yw :-)
dalek p/toqast: ea5e3c6 | jnthn++ | src/QAST/Compiler.nqp:
BlockInfo methods to register parameter and variable declarations, tracking the native type and register vs. local.
20:19
20:19 geekosaur joined, bruges left
masak gpg asking gnarly questions :) 20:20
how long do I want this key to be valid?
days? years?
if I pick 5y, what happens with the tag after that? 20:21
if I pick 1 day, what happens then?
20:21 bruges joined
TimToady probably someone can't revert to an older version? 20:21
masak confused
colomon: t/spec/S32-str/indent.t has a TODO passed: 45. just so you know ;) 20:22
colomon masak: also, I've been getting a fail for env.t
masak++
20:22 eviltwin_b joined
masak t/spec/S02-magicals/env.t has a failed test (10), and t/spec/S03-operators/short-circuit.t has a TODO passed (74) and a bad plan (82 'stead of 80). 20:23
colomon: how common is it to have a few failures before release? what's the normal procedure for that?
specifically, are failures show-stoppers?
colomon let me look at short-circuit.t. I wouldn't worry about env.t ... if it weren't so gnarly, I'd have TODO'd that one already. 20:24
20:24 geekosaur left
jnthn The todo pass is probably because I corrected a bogus test in there earlier today. 20:25
The test count was incorrect after I did some unfudging, so I twiddled that.
I'm guessing there's somewhere that a test results in two oks, but isn't marked #?DOES or so. 20:26
colomon goes looking at it... 20:27
jnthn nqp: my $a := 'lol'; say("oh {nqp::uc($a)}")
p6eval nqp: OUTPUT«oh LOL␤»
uvtc I'm trying to iterate over an array in a nested data structure, but I'm not sure how to "cast to array": refheap.com/paste/2479 (see the XXX). 20:29
moritz uvtc: for @$v -> 20:30
r: my $v = [1, 2, 3]; .say for @$v;
p6eval rakudo 2da78a: OUTPUT«1␤2␤3␤»
TimToady or $v.values, or .kv, or .pairs
uvtc Oh, thanks, moritz. Same as Perl 5.
TimToady r: my $v = [1, 2, 3]; .say for $v[] 20:31
p6eval rakudo 2da78a: OUTPUT«1␤2␤3␤»
TimToady there's also that, if you want a postfix form
uvtc Oooh, not quite like P5. It won't let me do the more verbose @{$v} 20:32
TimToady std: @{$v}
p6eval std fab64fc: OUTPUT«===SORRY!===␤Unsupported use of @{$v}; in Perl 6 please use @($v) at /tmp/GmYxcClDXU line 1:␤------> @{$v}⏏<EOL>␤Parse failed␤FAILED 00:00 40m␤»
TimToady r: my $v = [1, 2, 3]; .say for @($v) 20:33
p6eval rakudo 2da78a: OUTPUT«1␤2␤3␤»
uvtc I *like* $v.values though.
20:33 alvis` joined
uvtc TimToady, Oh, parens instead of curlies. 20:33
TimToady that's one of the overloadings of {} that we took away in p6
also this:
std: "${_}"
p6eval std fab64fc: OUTPUT«===SORRY!===␤Unsupported use of ${_}; in Perl 6 please use {$_} at /tmp/FX5XAgwZZ_ line 1:␤------> "${_}⏏"␤Parse failed␤FAILED 00:00 41m␤»
20:33 envi_|2 left
colomon masak: ignore short-circuit.t failure. :) 20:34
TimToady in this case it's really a closure interpolation
20:35 alvis left, birdwindupbird left
TimToady but @() is more like Array() 20:35
r: my $v = [1, 2, 3]; .say for Array($v)
p6eval rakudo 2da78a: OUTPUT«1␤2␤3␤»
masak Niecza v17 released. announcement sent to p6c and p6a. 20:36
standing down releng mode.
TimToady masak++
colomon \o/ 20:38
dalek ecza: d41bc4d | masak++ | FETCH_URL:
Update bootstrap to v17
masak beams with pride
I... I hope I did that right :)
20:38 allbery_b joined
dalek p/toqast: 8ee175e | jnthn++ | src/QAST/Compiler.nqp:
Allocate registers for lexicals at the point of declaration, including params. Also (untested) code gen for lexical and local declarations, including natively typed ones.
20:39
TimToady masak: I have a problem 20:40
gist.github.com/2562494 20:41
20:41 eviltwin_b left, baest left
masak TimToady: thanks for reporting. I'll check this out. 20:42
oh! yes.
dalek ecza: b8fcf85 | masak++ | FETCH_URL:
no, that wasn't it. this is it

  TimToady++ for quick reporting
20:43
masak TimToady: re-pull and try again.
TimToady looking much better 20:44
masak \o/
uvtc I've been writing up some brief basic docs to fill a niche that I'm seeing. They're mostly harmless, and located on the wiki: <wiki.perl6.org/Mostly%20Harmless%20.../Main>. I'm up to "Nested Data Structures". 20:45
20:45 ponbiki left
masak uvtc++ 20:46
uvtc Thanks, masak. That's the 2nd time you've done that! 20:47
jnthn uvtc++ # nice! :) 20:48
uvtc: 2/5 #=> 0.4 (no need to do 2.0/5)
uvtc: In that one, it may be worth noting somehow that it's a Rat, not a Num
colomon oh, for pete's sake
jnthn (e.g. it's not floating point, like the ones above with the exponent)
masak uvtc: I will do it a lot more if you keep being a cool guy!
colomon was commenting on parrot not working with his perlbrew perl 20:49
TimToady masak++ for ++'ing uvtc++
uvtc jnthn, With the Mostly Harmless Docs, I'm particularly interested in not scaring off new users.
jnthn uvtc: Agree with that goal, I just think it's an important distinction. :) 20:50
Not sure what the least scary way to convey it is.
20:50 lichtkind joined
uvtc At this point, I'd guess that the least scary way would be to not mention those types and just say that the integer division gives you a float. 20:51
lichtkind would anybody check my attemt to explain a capture?
jnthn uvtc: My point is that integer division doesn't give you a float. ;-)
uvtc ? 20:52
r: say 2/5
p6eval rakudo 2da78a: OUTPUT«0.4␤»
jnthn r: say (2/5).WHAT
p6eval rakudo 2da78a: OUTPUT«Rat()␤»
uvtc Bingo. A float.
jnthn r: say (2/5).perl
p6eval rakudo 2da78a: OUTPUT«2/5␤»
uvtc Hm.
jnthn Note that it preserves the numerator and denominator.
Also
lichtkind masak: ?
jnthn r: say 0.4.WHAT
p6eval rakudo 2da78a: OUTPUT«Rat()␤»
jnthn r: say 0.4.perl
p6eval rakudo 2da78a: OUTPUT«2/5␤»
jnthn Same there
r: say 0.4e0
p6eval rakudo 2da78a: OUTPUT«0.4␤»
jnthn r: say 0.4e0.WHAT
p6eval rakudo 2da78a: OUTPUT«Num()␤»
jnthn r: say 0.4e0.perl
p6eval rakudo 2da78a: OUTPUT«0.4e0␤»
jnthn It's the exponent that makes it a float. 20:53
Could always just say "floating point" and "rational" rather than mentioning the type names.
uvtc Full disclojure: I'm particularly susceptible to being scared by advanced features. :)
jnthn Well, this feature mostly exists to keep the scared from getting wrong answers. ;) 20:54
masak lichtkind: ¿
20:55 havenn left
lichtkind masak: would you be so kind and check my glossar entry for capture (not the online version) 20:55
uvtc jnthn, If 2/5 is a rational number (able to be expresses as a fraction), then why does perl6 print it out all dressed up like a float?
masak lichtkind: thanks for asking so nicely. I don't really know where you want me to check.
uvtc s/expresses/expressed/
masak lichtkind: when indicating online resources, it's always much easier if you provide a URL. 20:56
uvtc Is it just the repl doing that for me?
masak uvtc: 0.4 is a rational number too.
jnthn uvtc: It stringifies that way as it's what people usually expect to read.
[Coke] masak++ # niecza
lichtkind masak: i thought i ask before uploading
uvtc So Perl 6 supports rational numbers like Scheme does?
masak yes. 20:57
uvtc Ohhhhhhh.
[Coke] r: say (2/3+5/6).perl 20:58
p6eval rakudo 2da78a: OUTPUT«3/2␤»
uvtc How does rakudo know 0.4 is rational? It actually checks to see if it can rationalize it?
(Just when I think this rabbit hole doesn't go any deeper... :) ) 20:59
masak uvtc: every such number with a finite decimal expansion is a rational number. 21:00
(because you can write it as p/q, where q is some power of 10)
uvtc leaves mark on own forehead from palm
masak ;)
uvtc jnthn, masak, thanks. 21:02
21:02 uvtc left
TimToady perl6: say pi.WHAT 21:02
p6eval rakudo 2da78a, niecza v17-2-gb8fcf85: OUTPUT«Num()␤» 21:03
..pugs: OUTPUT«Rat␤»
21:03 eviltwin_b joined
TimToady pugs: say pi.perl 21:04
p6eval pugs: OUTPUT«3141592653589793/1000000000000000␤»
masak Pugs is a little bit biblical.
TimToady at least it admits it 21:05
masak .oO( arrrr! pi Rat! )
TimToady masak's pun puts TimToady to sleep 21:06
nap &
21:06 allbery_b left 21:07 fhelmberger left
masak sleep well, TimToady. dream of integral pies. 21:09
21:09 allbery_b joined
[Coke] I am not sure I could handle even a single integral pie. 21:09
21:10 skids left 21:11 uvtc joined, geekosaur joined, eviltwin_b left 21:12 brrt joined
uvtc Sorry there. Time running out for me today. jnthn: it sounds like rakudo tries to keep things as accurate as possible (using Rats), only resorting to floats when it has to (for example, as you point out, when you use e for exponent, or when you multiply by pi or e (base of natural logs)). 21:13
21:14 allbery_b left, baest joined
uvtc But since the string representation of Rats looks just like floats, it appears to me that the casual user doesn't even need to be aware of Rats. 21:14
21:14 brrt left
jnthn uvtc: Yes, there's very much a sense of trying to do the right thing. :) 21:15
21:15 kaare_ left
uvtc jnthn, Very good. :) 21:15
21:19 uvtc left
masak right, the idea is not to bother the type-unaware user with types. 21:20
jnthn is probably somebody who finds it a little hard to imagine being type-unaware when learning a language, even though it's not at all unusual to be. 21:21
21:21 geekosaur left
gfldex you can get pretty far without types in javascript 21:22
21:24 geekosaur joined 21:27 eviltwin_b joined 21:29 geekosaur left 21:31 xenu_ left 21:34 ponbiki joined, sjn joined 21:35 havenn joined 21:37 xenu joined 21:38 xenu is now known as Guest33435, allbery_b joined 21:41 eviltwin_b left 21:47 allbery_b left
dalek blets: e411bfa | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
explaining argument, parameter capture codepoint - masak++
21:52
21:53 allbery_b joined, sisar joined 21:54 allbery_b left
masak 'night, #perl6 21:54
21:54 allbery_b joined 22:01 eviltwin_b joined 22:02 havenn left 22:03 NamelessTee left
sisar phenny, tell tadzik, regarding popolnik, maybe you were looking for pastebin.com/hmjcndwB 22:04
phenny sisar: I'll pass that on when tadzik is around.
22:04 sisar left, allbery_b left 22:05 allbery_b joined 22:06 whiteknight joined, eviltwin_b left 22:10 allbery_b left 22:15 tyatpi left, ponbiki left 22:19 mikemol left 22:24 thou left 22:26 havenn joined 22:30 skids joined 22:31 whiteknight left 22:33 tyatpi joined 22:34 plutoid joined 22:40 markam joined
markam Hi #perl6 , I'm trying to do \w only if there is more than one character, and then [A-Z|a-z] if there IS only one character... any help with this grammar? 22:41
22:45 sivoais joined 22:47 cognominal_ joined 22:48 cognominal___ joined
markam in other words I am trying to make an 'identifier' statement that can be numbers, letter, or underscores, but can not begin with letters. Any help or direction is appreciated. 22:49
22:50 cognominal left
TimToady perl6: 'F00' ~~ / <ident> / 22:51
p6eval rakudo 2da78a, niecza v17-2-gb8fcf85: ( no output )
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
22:51 cognominal joined
TimToady perl6: say 'F00' ~~ / <ident> / 22:51
p6eval pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
..niecza v17-2-gb8fcf85: OUTPUT«#<match from(0) to(3) text(F00) pos([].list) named({"ident" => #<match from(0) to(3) text(F00) pos([].list) named({}.hash)>}.hash)>␤»
..rakudo 2da78a: OUTPUT«=> <F00>␤ ident => <F00>␤␤»
22:51 geekosaur joined, cognominal_ left 22:53 eviltwin_b joined, cognominal___ left 22:56 geekosaur left 22:57 lestrrat left 22:58 lestrrat joined
TimToady wonders if we should force people to use ~~= s/foo/bar/ and make ~~ s/// just return the modified string 23:00
(only if we switch s/// to an OKness protocol, of course)
23:02 tokuhirom joined
TimToady or maybe we should kick s/// out of ~~ somehow 23:02
just need to come up with a different way of attaching the source string 23:03
a non-smartmatch topicalizer would do it 23:04
23:04 allbery_b joined 23:05 allbery_b left 23:07 allbery_b joined 23:08 eviltwin_b left 23:09 havenn left 23:11 thou joined 23:15 havenn joined 23:19 whiteknight joined 23:20 markam left 23:22 havenn left 23:23 havenn joined 23:24 havenn left 23:26 eviltwin_b joined 23:28 geekosaur joined, allbery_b left 23:29 noam left 23:30 eviltwin_b left 23:37 pernatiy joined 23:40 noam joined 23:43 eviltwin_b joined, whiteknight left 23:45 geekosaur left 23:46 allbery_b joined 23:49 eviltwin_b left 23:51 geekosaur joined 23:54 allbery_b left 23:56 geekosaur left 23:57 geekosaur joined