»ö« 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«moooooooooooooooooooooomoooooooooooooooooomoooooooooooooooooooomoooooooooooooooomooooooooooooooooooooomooooooooooooooooomoooooooooooooooooooooooomooooooooooooooomooooooooooooooooooooooooomooooooooooooooooooomooooooooooooooooooooooo» | ||
..niecza v16-23-gaa61ed5: OUTPUT«mooooooooooooooomoooooooooooooooomooooooooooooooooomoooooooooooooooooomooooooooooooooooooomoooooooooooooooooooomooooooooooooooooooooomoooooooooooooooooooooomooooooooooooooooooooooomoooooooooooooooooooooooomooooooooooooooooooooooooo»… | |||
..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«blimpplimpploompploofproof» | ||
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«1Type 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«3Bool()» | ||
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!===Confusedat /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)543210» | ||
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 blockat /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 blockat /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 blockat /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:670a 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 myat /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 $aParse 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«123» | ||
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«123» | ||
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 failedFAILED 00:00 40m» | ||
TimToady | r: my $v = [1, 2, 3]; .say for @($v) | 20:33 | |
p6eval | rakudo 2da78a: OUTPUT«123» | ||
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 failedFAILED 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«123» | ||
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
|