»ö« 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 cognominal_ left 00:04 cognominal_ joined
TimToady diakopter: yes, LTM is supposed to be transitive 00:06
00:15 xinming_ joined 00:18 xinming left
dalek blets: 595cc97 | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
sharpen explanation of scope
00:21
00:24 shinobicl left 00:25 isBEKaml left 00:32 drschumtzenberg_ left 00:38 colomon left 00:39 integral left 00:43 replore joined 00:45 integral joined, integral left, integral joined, tokuhirom joined 00:56 thou left 00:57 fgomez left 01:01 lestrrat left 01:02 lestrrat joined 01:04 tyatpi left 01:06 scott_ joined, scott_ is now known as Guest88951 01:07 havenn joined, fgomez joined 01:19 tyatpi joined 01:35 shinobicl joined 01:43 tokuhirom left 01:48 whiteknight left 01:54 havenn left 01:58 havenn joined 02:05 havenn left 02:06 bjarneh left 02:11 scott_ joined, scott_ is now known as Guest51018 02:14 Guest88951 left 02:34 orafu left, orafu joined 02:40 lestrrat left 02:41 lestrrat joined 02:58 tyatpi left 03:12 tyatpi joined, sivoais left, sivoais joined 03:28 leprevost joined, colomon joined 03:54 shinobicl left, shinobicl joined 04:01 replore left
shinobicl hi 04:01
i don't know if it is possible to implement, i'm not familiarized with the github api... but, could be possible to add a "medal" in modules.perl6.org to the modules that have wikis? 04:02
04:08 shinobicl left 04:17 shinobicl_ joined 04:19 skids left 04:32 noam_ left 04:33 noam_ joined 04:36 sisar left 04:38 shinobicl_ left 05:05 alvis``` joined 05:06 alvis`` left 05:09 diakopter left 05:10 TimToady left, diakopter joined, TimToady joined 05:12 snarkyboojum left, snarkyboojum joined
moritz oh shark 05:16
sorear o/ 05:19
05:22 birdwindupbird joined 05:26 noam_ left, noam_ joined 05:27 noam_ left, noam_ joined 05:37 sftp left, mdupont joined 05:38 snearch joined, xinming_ is now known as xinming 05:41 kaleem joined 05:47 silug left, icwiener left
tadzik oh shark 05:51
05:53 alvis```` joined 05:54 alvis``` left, rsimoes joined 06:05 cognominal___ joined 06:08 cognominal_ left 06:11 Guest51018 left, scott_ joined, scott_ is now known as Guest76640 06:22 wtw joined, adu joined
adu hi [Coke] 06:24
perl6: (a => 1).HOW 06:25
p6eval pugs, rakudo d61049, niecza v17-3-gdaf09af: ( no output )
adu perl6: (a => 1).WHAT
p6eval pugs, rakudo d61049, niecza v17-3-gdaf09af: ( no output ) 06:26
adu perl6: (a => 1).WHICH
p6eval pugs, rakudo d61049, niecza v17-3-gdaf09af: ( no output )
adu rakudo: (a => 1).WHAT
p6eval rakudo d61049: ( no output )
sorear adu: I think you're missing something. 06:29
adu what am I missing? 06:30
moritz somthing that produces output :-)
adu rakudo: say (a => 1).WHAT
p6eval rakudo d61049: OUTPUT«Pair()␤»
adu lame, there should be a REPL
moritz there is
on the command line
we have experimented with showing the return value instead of output
06:30 tyatpi left
moritz but it was very confusing at times 06:31
adu oh
sorear when people run the same command four times, it makes me wonder what they are thinking
moritz so we decided it's less confusing to just require a say or a print somewhere
sorear: it wasn't the same four times
sorear s/same/excessively similar/
moritz r: say (a => 1).WHICH 06:32
p6eval rakudo d61049: OUTPUT«Pair|-395195434␤»
adu I've been learning perl for about 3 days
give me a break
sorear exactly
I want to know what you were thinking 06:33
adu well, I have seen code with all of those methods
sorear I can't put myelf in your shoes because I've known perl for far too long
unless I ask
adu I was hoping one of them would give me something interesting
and I thought "perl6:" would give me what I ask for, instead of what I ask to print 06:34
moritz ah well, now you know better :-)
adu ok
moritz lesson learned, everybody happy, peace spreads over the world
adu well, if I were the botmaster, then I would have 2 bots, perl6io (requiring "say") and perl6 (ignoring io and auto-printing $_.Str) 06:35
moritz that would be worth experimenting with, I think 06:38
jnthn monring 06:55
uh, however you spell it... 06:56
jnthn slurps the coffee harder
adu hi jnthn 06:57
jnthn hi 06:58
adu did we have a conversation?
jnthn I...think I've seen you here before. :)
adu :) 06:59
I'm probably one of 50 people writing a scheme for parrot
jnthn moritz: Hmm...Rakudo release seems to be quite early this month... 07:00
sorear I'm not sure Parrot has 50 users, total
jnthn Next week, iiuc
jnthn gets to work on $dayjob
tadzik adu: then people would just forget to write 'p6io' instead of 'p6', I guess 07:03
adu tadzik: that was my rationale 07:04
tadzik I don't see a point then :)
adu tadzik: the point is that if you can remember to put a "say" in front of whatever it is that you are interested in, then you can also remember to add an io to the name 07:05
tadzik okay
adu my guess is that if you are are not aware of either, then you are aware of neither 07:06
hmm, too many are's 07:07
adu must be a pirate
07:12 brrt joined 07:15 cognominal___ left 07:16 cognominal joined, fhelmberger joined
mikec__ morning 07:19
07:22 kresike joined
sorear hello mikec__ 07:23
07:26 cognominal left 07:27 cognominal joined 07:30 adu left
moritz jnthn: aye, early release, but we have already done a bunch of awesome stuff done since the point release 07:31
sorear moritz: what do you think of adu's proposal? 07:46
moritz sorear: it might be worth trying
sorear: otoh the confusion when we mixed output and return values is likely to reappear if we do it 07:47
07:48 fglock joined 07:49 rafl left 07:50 rafl joined 07:51 goraki joined
dalek kudo/nom: 9df9957 | moritz++ | src/core/Rat.pm:
Rat.ceiling which does not go through Num
07:52
ast: 049170f | moritz++ | S32-num/rounders.t:
Rat.ceiling unfudges
07:53
08:02 goraki left 08:03 goraki joined
TimToady perl6: gist.github.com/2648301 08:04
sorear sleep& 08:05
p6eval pugs: OUTPUT«*** ␤ Unexpected " {"␤ expecting operator or block construct␤ at /tmp/5M_ObBSlpf line 17, column 26␤»
..rakudo d61049, niecza v17-3-gdaf09af: OUTPUT«0.00000000dc␤0.000000la␤-101010.111111111111111111111111111111111111111111111101␤»
TimToady moritz: ^^ here's a version that does other bases than just 10
using the same size-by-denominator rule
moritz TimToady: fwiw $r.denominator.base($base).chars + 1 is probably slower than $!denominator.log($base).ceiling 08:07
TimToady yes, I suspect you're right
08:07 snearch left
moritz erm, needs +1 too 08:07
08:08 cognominal left
moritz in Rat.Str, should $base be a named argument? 08:08
TimToady not clear whether you want to replace the decimal version or multi this alongside
08:08 kaleem left
TimToady Oh, likely, but .base(16) presumably calls that 08:09
08:09 cognominal joined
TimToady dunno how your internals are set up, actually 08:09
just thought I'd do the base version as a kind of puzzle, since the current .base() always truncates at 6 digits 08:10
it's also likely that we want hand optimized versions for common bases, esp decimal 08:13
anyway, have fun, TimToady is also wandering off to bed... &
08:23 alim joined 08:27 SatoAmbush joined
jnthn moritz: Yes, the ChangeLog already is looking nice :) 08:27
08:29 SatoAmbush left
dalek kudo/nom: 6a660de | moritz++ | docs/ChangeLog:
three more changelog items
08:31
tadzik oh, it's release week, indeed 08:32
moritz tadzik: and you're the release manager, iirc :-) 08:33
tadzik oh, it's not :)
2012-05-17 Rakudo #52 tadzik
moritz yeah, 6 days
08:33 kaleem joined
tadzik cool 08:33
moritz r: say Date.new('2012-05-17') - Date.today 08:34
p6eval rakudo 9df995: OUTPUT«6␤»
08:41 lestrrat left 08:42 lestrrat joined 08:43 broquain1 joined, broquain1 left 08:45 broquaint joined
goraki How does one go about helping with the tablets (beginner style helping, spell checking, for instance)? 08:50
masak r: module Next { our sub thursday { next_wd(4) } }; say Next::thursday - Date.today 08:51
p6eval rakudo 9df995: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&next_wd' called (line 1)␤»
masak r: module Next { our sub thursday { next_wd(4) }; sub next_wd($wd) { (Date.today.succ ... *.day-of-week != $wd)[*-1] } }; say Next::thursday - Date.today
p6eval rakudo 9df995: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \$v, Mu *%_)␤␤ in method Numeric at src/gen/CORE.setting:666␤ in sub prefix:<-> at src/gen/CORE.setting:2230␤ in block <anon> at /tmp/kn5DmsSsWV:1␤␤»
masak r: module Next { our sub thursday { next_wd(4) }; sub next_wd($wd) { (Date.today.succ ... *.day-of-week != $wd)[*-1] } }; say Next::thursday
p6eval rakudo 9df995: OUTPUT«2012-05-12␤»
masak hrm. 08:52
moritz goraki: submit a pull request on github
goraki: if we like your changes, you'll get a commit bit very soon
masak r: module Next { our sub thursday { next_wd(4) }; sub next_wd($wd) { (Date.today.succ ... *.day-of-week == $wd)[*-1] } }; say Next::thursday
p6eval rakudo 9df995: OUTPUT«2012-05-17␤»
masak \o/
r: module Next { our sub thursday { next_wd(4) }; sub next_wd($wd) { (Date.today.succ ... *.day-of-week == $wd)[*-1] } }; say Next::thursday - Date.today
p6eval rakudo 9df995: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \$v, Mu *%_)␤␤ in method Numeric at src/gen/CORE.setting:666␤ in sub prefix:<-> at src/gen/CORE.setting:2230␤ in block <anon> at /tmp/P5Z3zJmt5e:1␤␤»
masak r: module Next { our sub thursday { next_wd(4) }; sub next_wd($wd) { (Date.today.succ ... *.day-of-week == $wd)[*-1] } }; say Next::thursday() - Date.today
moritz goraki: github.com/perl6/tablets has the sources
p6eval rakudo 9df995: OUTPUT«6␤»
masak \o/
goraki moritz: cool, will do that. thanks. 08:53
moritz is glad to see an influx of contributors
masak .oO( influx:<contributors> ) 08:55
moritz r: sub influx:<contributors>() { } 08:58
p6eval rakudo 9df995: OUTPUT«===SORRY!===␤Cannot add tokens of category 'influx'␤at /tmp/5rfPMwZkko:1␤»
moritz that one used to be a NPMCA
masak o/ it's fun to stay at the N-P-MC-A o/ 09:01
doesn't scan as well, methinks... 09:02
moritz masak: I think that dance requires more than one hand to be raised :-)
masak oh, those were music notes... :)
.u note
phenny U+266A EIGHTH NOTE (♪)
masak next time I'll use that one. less ambiguous. :) 09:03
moritz unimasak++
masak runs and registers unimasak.com
"It slices. It dices. It submit bug reports!"
submits* 09:04
moritz heh, interview question: write a palindrom checker. I wonder how many applicants consider grapheme clusters :-)
masak shouldn't the language or a core-ish library just supply a method that reverses strings on a glyph level? 09:05
that would seem to be what you'd want most of the time.
moritz do you know any language that does? 09:06
masak no.
moritz p6 is supposed to, but no compiler does it
libicu can probably do it
unrelated: www.msnbc.msn.com/id/47363062/ns/te...ck-humans/ 09:08
masak it would be interesting to analyze IRC rituals from the viewpoint of primate territorial behavior. 09:12
moritz interesting, and possibly scary :-) 09:13
DrEeevil hrm, the feces-flinging aspect would explain a lot 09:14
09:14 drschumtzenberg joined
masak yeah, nihil novi sub sole. 09:15
moritz phenny: "nihil novi sub sole"?
phenny moritz: "nihil novi sub sun" (it to en, translate.google.com)
moritz meh
masak phenny: la en "nihil novi sub sole"?
phenny masak: "nothing new under the sun" (la to en, translate.google.com)
moritz "nothing new under the sun"?
masak language guessing fail.
moritz phenny: en la "language guessing fail"? 09:16
phenny moritz: "lingua coniectura inminutus" (en to la, translate.google.com)
masak why would GT even think that Latin and Italian are even remotely... oh wait :P
DrEeevil nothing new under the shoesole? ;) 09:18
masak there's this scene from "Sopranos" where a guy describes the fall of the Roman empire to the mafiosos, and asks rhethorically "and where are those Romans now?" -- they reply "You're talking to them, you klutz" :)
(but some other word than "klutz", probably)
dalek blets: 438d7be | (Hayden Stainsby)++ | docs/appendix-b-grouped.txt:
Corrected a couple of minor grammatical errors.
09:20
blets: ad6d316 | moritz++ | docs/appendix-b-grouped.txt:
Merge pull request #8 from hds/master

Appendix B grammatical change
09:21 daxim joined 09:26 cognominal_ joined 09:29 cognominal left 09:31 sisar joined 09:39 erkan left 09:46 NamelessTee joined
moritz r: enum Stringish a => 'some a', b => 'some b'; say a 09:51
p6eval rakudo 6a660d: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&Stringish' called (line 1)␤Undefined routine '&enum' called (line 1)␤Undefined routine '&a' called (line 1)␤»
moritz r: enum Stringish (a => 'some a', b => 'some b'); say a 09:52
p6eval rakudo 6a660d: OUTPUT«===SORRY!===␤This type cannot unbox to a native integer␤»
moritz jnthn: in the enum action method, is there a good reason to use the constant folder instead of $*W.compile_time_evaluate (now that we have it)? 09:56
09:58 localhost left 10:00 localhost joined, bbkr left 10:03 bbkr joined 10:07 bbkr left
masak tias? 10:10
moritz takes quiet some time :/ 10:11
masak hugs moritz 10:12
maybe I'll have time to try it locally during the day. 10:13
jnthn
.oO( but loud goes quite fast! )
moritz: No, that code pre-dates BS
tadzik "maybe I'll have time to try it locally during the day." Hugging moritz? :) 10:14
moritz jnthn: ah, that was to support -1 as a value, right?
masak tadzik: most things in this world are eventually consistent. hugs, however, are immediate. :) 10:15
jnthn right
tadzik :)
jnthn masak: So hugs don't scale out well?
tadzik it's hard to hug someone who scales out well :P
masak jnthn: as someone who has once been at the bottom of a 6-person hug pile, I can emphatically say that hugs don't scale out well. 10:16
10:16 lestrrat left
masak .oO( or is that "scale up"? ) 10:16
tadzik oh, do you know the game of Grenade too? P
:P
mikec__ hugs scale better horizontally than vertically
masak tadzik: no, this wasn't a game. this was spontaneous physical therapy.
mikec__ due to gravity
tadzik I see 10:17
10:17 lestrrat joined
moritz I have a patch locally that makes 'enum A (x => "foo")' survive 10:18
but, it still coerces to Int silently somewhere 10:19
jnthn moritz: The whole enum code is very Int-centric today
moritz: The way it should be done is to call .succ
Instead of assuming int, coercing, adding one, etc.
moritz jnthn: that's why my patch does 10:20
jnthn: though it only changes Actions.pm so far, neither World nor EnumHOW
jnthn moritz: OK, then I get the fail is in the world method to add the enum element
moritz s/why/what/
jnthn That method can probably become way simpler I suspect
I think EnumHOW should be totally comfortable with non-numeric enums.
10:20 bbkr joined
jnthn It shoudl only be compiler changes that are needed. 10:20
moritz well, what it currently does is to box into the enum type 10:21
so I think I must fix boxability of it somehow
jnthn finds the code on github 10:22
(may have to disappear to help folks doing regexercises at any point :))
dalek kudo/enum-nonint: 417d760 | moritz++ | src/Perl6/Actions.pm:
start to make enums less int centric
moritz in particular, method create_enum_value in World
my $val := pir::repr_box_int__PiP($value, $enum_tpe_obj);
the $enum_type_obj is of the type that it creates for that enum, right? 10:23
so in enum A <b c>, that's A
jnthn Yes
moritz so I need to fix $*OFTYPE somehow 10:24
jnthn uh 10:25
At the moemtn it assumes you have to declare up front if you want a strign based enum
our Str enum A <b c>;
$*OFTYPE holsd the Str there 10:26
But I guess maybe that is not the whole story.
moritz is that what the spec says?
10:26 sisar left
jnthn It certainly says you can put a type there. 10:26
However, i think enum A (:b('lol'));
Is also meant to work out. 10:27
10:27 sisar joined
moritz so... we defer constructing the enum type object until we know what type it's made of? 10:27
jnthn Which there ain't anything in palce to support right now.
Yeah, we'd have to re-order things as they current stand 10:28
That is Ok though.
I think it's fairly clear that all of the values have to have the same type too.
moritz it seems that Perl6::Metamodel::BaseType already supports setting the base type later 10:29
jnthn In the case there's an OFTYPE we should check all the values conform to that. In the case there's not, we take the type of the first value and ensure the rest are the same.
moritz right
jnthn Yeah, but you may need to know the base type in order to make elements. 10:30
In fact, probably do.
moritz yes
jnthn The code int he World method that sets $!value should just set whatever is passed in though, not re-box.
moritz but it means we can do this order: create enum type object with unknown base type, then look at the first pair, then set the base_type 10:31
jnthn nom: enum A <b c>; say A.^mro
p6eval rakudo 6a660d: OUTPUT«A() Int() Cool() Any() Mu()␤»
jnthn Yes we can.
Additionally...
moritz and only then install the first pair
jnthn Since the enum type always singly inherits from the base type, you can create the enum value by:
1) cloning the value 10:32
2) reblessing it into the enum type
moritz how do I do the reblessing?
I thought we didn't support that :-)
jnthn See Misin.pm
er
Mixin
Sure we do, otherwise we couldn't have does and but ;)
moritz pir::repr_change_type__0PP \o/ 10:33
anyway, lunch first
I hope I'll learn a bit more details about our MOP in the process
jnthn We support it as long as the MRO of the target type has the current type's MRO as its suffix.
10:35 Guest76640 left, MContagious joined 11:05 brrt left 11:09 erkan joined, erkan left, erkan joined
dalek blets: b64d1fe | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
explanation to junctions table in B
11:13
blets: a4e7f32 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
Merge branch 'master' of github.com:perl6/tablets
11:13 snearch joined 11:17 snearch left 11:24 fhelmberger left, broquaint left 11:25 broquaint joined
moritz r: say pir::defined(Int) 11:33
p6eval rakudo 6a660d: OUTPUT«Method 'gist' not found for invocant of class 'Integer'␤ in sub say at src/gen/CORE.setting:6616␤ in block <anon> at /tmp/2I5AOP7NeH:1␤␤»
moritz r: say nqp::p6box_i(pir::defined(Int))
p6eval rakudo 6a660d: OUTPUT«0␤»
11:33 NamelessTee left
moritz nqp: sub f($x?) { say(pir::isnull($x)) } 11:33
p6eval nqp: ( no output )
moritz nqp: sub f($x?) { say(pir::isnull($x)) }; f()
p6eval nqp: OUTPUT«0␤»
11:35 domidumont left
moritz n: our Str enum A (b => 'c'); say A::b 11:36
p6eval niecza v17-3-gdaf09af: OUTPUT«b␤»
moritz n: our Str enum A (b => 'c'); say A::b.Str
p6eval niecza v17-3-gdaf09af: OUTPUT«b␤»
moritz n: our Str enum A (b => 'c'); say A::b.value
p6eval niecza v17-3-gdaf09af: OUTPUT«c␤»
11:38 domidumont joined
masak <jnthn> We support it as long as the MRO of the target type has the current type's MRO as its suffix. 11:39
am I correct in concluding that this means that we allow downcasts (to a deriveder type) but not upcasts (to a baser type). 11:40
s/\./?/
moritz sounds correct
11:44 JimmyZ joined
masak hm. perhaps I'm just used to downcasts from Java. but there the distinction between runtime type and static type is made in a way that's not made in Perl 6. 11:45
11:45 mucker joined
masak (i.e. you're allowed to downcast if the runtime type of your object is same-or-deriveder than the type you're downcasting to) 11:46
and maybe just as well that downcasts don't work, 'cus they would be a devious way to break object invariants. and we don't need more of those. 11:47
moritz well, the Java downcasts are always just about the static type 11:48
masak right.
moritz I don't think you can actually change the dynamic type of an object
masak good point.
11:48 alim left
masak so in Perl 6 we're "actually" casting, whereas in Java it's more about changing the type of a pointer. 11:49
11:49 alim joined
moritz at run time, the java cast is actually just a type check 11:51
masak in the case of a downcast, yes.
in the case of an upcast, I don't see why there'd need to be a check.
moritz erm, is there an explicit upcast, ever? 11:52
masak sure there is.
moritz what's the use case?
masak can't think of any, but it's part of the language.
Liskov would suggest that all explicit upcasts are misguided, sure.
moritz I was just about to write that :-) 11:53
masak but there are badly written generic types out there, etc.
writing good generics in Java is hard :/
11:53 drschumtzenberg left
moritz because of type erasure? 11:53
masak no, because... hm. 11:54
I think it's mostly a syntax thing. plus having to care about covariance and contravariance as a generic API author. 11:55
.NET syntax makes similar situations seem almost trivial, from what I've seen.
s/\.NET/C#/
moritz hm, fudging in the base_type later into an enum doesn't seem to work :( 11:58
it accesses the mro before that
and the mro depends on the base tyep
*type
touch beans.
moritz idly wonders if "tough beans" comes from the Java world
masak public static <T extends Comparable<? super T>> void sort(List<T> list) // know why there's both 'extends' and 'super' in a *nested* generic type there? for *sort*? well, I do, and I think it sucks. 11:59
moritz I can see why you need the 'extends' 12:00
12:00 kaleem left
moritz but why the 'super'? 12:00
moritz a java noob
masak the 'extends' comes from the fact that you're sorting a list of elements that aren't necessarily Comparable objects (in fact, you can't instantiate Comparable since it's an interface).
the 'super' comes from the fact that the callback .compare used in Comparable takes T values (whatever they are) as parameters. things that take parameters are sinks, and thus contravariant. 12:01
moritz uff 12:02
masak it's all really interesting! but when I explain it to people, their brains explode. :/ I'd prefer to code in a language where it was obvious instead. C# seems to do better on that front.
moritz I see what you mean (re "it sucks")
masak yeah.
notice also how the generic type manages to be *recursive* (it declares and references T). 12:03
saying essentially "the type T must extend the type Comparable which is generic on things that the type T can have as a base type".
masak 's brain asplodes 12:04
moritz the way I understand Liskov, "that the type T can have as a base type" could be replaced by just "T", no?
in a sane programming language, that is :-) 12:05
12:05 drschumtzenberg joined
masak no, that's not the problem. 12:05
generics are a wider concept than covariance and contravariance. simply, generics are invariant by default. 12:06
that's what you get when you write Type<T>
to switch on covariance you do Type<? extends T>. to switch on contravariance you do Type<? super T>. 12:07
so far, it's all good. the only reason it gets messy so far as I can see is that you need to care about those concepts at all.
C# solves it all with some where-clause syntax. much nicer.
then again, C# generics were made with the hindsight of Java generics :) 12:08
moritz can't the compiler know where covariance and where contravariance is required?
masak interesting question. 12:11
I don't know. but it's tied to what you do with the data, so at minimum it's tricky.
12:13 bjarneh joined
masak we like to think that arrays are covariant. i.e. Array[Banana] <: Array[Fruit]. but that's only true for read-only Arrays. 12:14
elsewise you'd be able to upcast the Banana Array to a Fruit Array and insert a Pear.
similarly, write-only arrays are contravariant :P 12:15
moritz also known as KitchenSink
dalek kudo/enum-nonint: 24a3016 | moritz++ | src/ (3 files):
[enum] defer creation of type object until we know the base type

now setting compilation blows up in term:sym<name> with Can only use nqp_get_sc_for_object with a SixModelObject
12:19
12:21 snearch joined 12:27 MContagious left
moritz en.wikipedia.org/wiki/Covariance_a...%29#Eiffel Citation needed! 12:29
12:30 woosley joined 12:33 cognominal_ left
masak well, Liskov is a convention in most languages. 12:33
dalek kudo/nom: 4cfdb7c | moritz++ | src/Perl6/Actions.pm:
get rid of two Q:PIR blocks
12:34
moritz well
depends on how you phrase it
you can always throw an exception in a method in a derived class
so the compiler cannot generally enforce Liskov substitutability 12:35
masak right.
12:35 cognominal joined
moritz but as far as compile time type checks are concerned, nearly all statically typed languages enforce Liskov 12:35
masak as far as compile time type checks *on one single class at a time* are concerned. 12:36
there's this example with a Child <: Person going to a Pediatrist <: Doctor.
and you end up with a situation where you, in statically typed languages, can't make Persons go only to the type of Doctor they were meant to. 12:37
12:39 leprevost left, wolfman2000 left 12:40 tokuhirom joined 12:41 fh1920 joined 12:47 fh1920 left
bbkr hm, 'use URI;' from latest Star release segfaults on my machine (OS X 10.7.3 and 10.7.4), is it known issue? 12:53
timotimo r: use URI;
p6eval rakudo 6a660d: OUTPUT«===SORRY!===␤Could not find URI in any of: /home/p6eval/.perl6/lib, /home/p6eval/nom-inst2/lib/parrot/4.3.0-devel/languages/perl6/lib␤»
timotimo star: use URI;
p6eval star 2012.04: OUTPUT«(signal SEGV)»
timotimo at least i just reproduced it :) 12:54
mikec__ haha 12:55
12:55 PacoAir joined
masak submits rakudobug 12:55
bbkr IETF::RFC_Grammar loads fine 12:57
12:58 mucker left 12:59 not_gerd joined
not_gerd r: gist.github.com/2659460 13:00
p6eval rakudo 6a660d: OUTPUT«42/1 = 42.0␤1/5 = 0.02␤-4/3 = -1.(03)...␤19/12 = 1.058(3)...␤1/97 = 0.(0010309278350515463917525773195876288659793814432989690721649484536082474226804123711340206185567)...␤»
not_gerd ^ Rat to Str conversion handling repeated decimals
still off-by-one somewhere, though
there's a superfluous 0 13:01
jnthn masak: Your question about casts is odd. repr_change_type isn't casting. If anything, it's a coercion, but in-place. 13:06
13:07 lutok joined
masak jnthn: casting, coercion. compare and contrast. 13:07
13:08 lutok left
jnthn Casting changes how you view a reference (and may or may not check that's sane; Java/C# check, C doesn't). 13:09
Coercion actually causes a change in representation. 13:10
[Coke] (writing scheme for parrot!) Hey, we could have used you 12 years ago.
jnthn They are often confused because many C family languages use the same syntax for both.
masak ah. 13:12
jnthn++ # 'splainin'
note that I got pretty close with some of the comments I made (e.g. "all Java does is change the type of a pointer")
13:14 fglock left
jnthn Yeah, though that maybe makes it sound like it's actually mutating something. Whereas in reality it compiles to an "is it OK to proceed" check :) 13:14
masak nodnod. 13:16
13:19 bacek left 13:20 plutoid joined 13:28 isBEKaml joined
[Coke] phenny: tell adu folks in #parrot are interested in your interest in scheme on parrot. (on irc.perl.org) 13:29
phenny [Coke]: I'll pass that on when adu is around.
13:29 tyatpi joined
tadzik bbkr: does it help if you recompile URI? Or remove its .pirs? 13:38
bbkr checking.. 13:39
tadzik URI is one of the things that precompile non-deterministically :/
bbkr tadzik: removing URI.pir fixed this issue 13:41
tadzik interesting. Here it doesn't segfault, i merely fails to load a module 13:44
'No STable at index 4' or so
13:47 adu joined
not_gerd p6: gist.github.com/2659460 13:48
p6eval rakudo 4cfdb7: OUTPUT«42/1 = 42.0␤1/5 = 0.2␤-4/3 = -1.(3)...␤19/12 = 1.58(3)...␤1/97 = 0.(010309278350515463917525773195876288659793814432989690721649484536082474226804123711340206185567)...␤»
..niecza v17-3-gdaf09af: OUTPUT«Use of uninitialized value in numeric context␤ at /home/p6eval/niecza/lib/CORE.setting line 1224 (warn @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 262 (Any.Numeric @ 6) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.se…
..pugs: OUTPUT«*** ␤ Unexpected "nom"␤ expecting operator, ":" or ")"␤ at /tmp/W6AxW_JLlU line 11, column 24␤»
dalek ecza: e5b869e | (Solomon Foster)++ | lib/CORE.setting:
Add Rat.Rat and Rat.norm.
13:54
[Coke] NORM! 13:55
dalek ast: 7dd4b68 | (Solomon Foster)++ | S32-num/rat.t:
Change Rat.Str test to match current spec, add related tests and simple test for Rat.norm.
13:57
14:01 snearch left, shinobicl_ joined 14:16 not_gerd left, mucker joined 14:18 tokuhirom left 14:21 kaleem joined 14:29 smash left, PacoAir left, smash joined 14:30 skids joined 14:31 isBEKaml left 14:37 cogno_ joined 14:39 kaleem left
cogno_ Jnthn++ # explaining casting, coercion 14:41
masak & 14:42
14:42 thou joined 14:44 wtw left 14:49 goraki left 14:52 goraki joined 14:53 goraki left 14:55 colomon left 14:56 shinobicl joined 14:57 goraki joined
jnthn decommute & 15:01
15:02 lucas_ joined, shinobicl_ left 15:06 cogno_ left
flussence wishes `cpan` had a --install-required-modules-automatically-until-this-command-stops-spitting-out-missing-module-errors=, or something 15:08
lucas_ Hello 15:09
[Coke] flussence: like "cpanm --installdeps" or something?
lucas_ Is there a pure Perl 5 implementation of Perl 6?
[Coke] lucas_: allo.
geekosaur there is a setting that will accomplish that (o conf follow somethingorother...)
15:09 KyleHa joined
KyleHa Hello #perl6 15:10
flussence [Coke]: sort of, but more dwimmy and works on arbitrary source trees where the author was too lazy to specify deps correctly :)
[Coke] flussence: mmm.
mikec__ i was thinking about that just now
KyleHa When I build and spectest Rakudo on OS X, three of the files fail. Is that expected? 15:11
15:11 kresike left
[Coke] spectests are under flux all the time, so that can happen. 15:14
15:14 woosley left
[Coke] can you git blame the files and see if those are new tests? 15:15
15:15 cogno joined
[Coke] If so, they need to be fudged. 15:15
KyleHa A couple of them are broken because I don't have ICU. 15:16
[Coke] ah. usually we block that out at the test level by tagging the file in t/spectest.data with #icu 15:17
s/test level/file level/
[Coke] supposes we could skip a test if no icu with some clever fudge directives.
15:20 isBEKaml joined, cogno left 15:21 cogno joined 15:25 alim left
KyleHa And the third one really is new. 15:30
dalek ast: 07d8486 | (Kyle Hasselbacher)++ | S32-num/rat.t:
skip Rat.norm test for Rakudo
15:32
kudo/nom: ddbf78c | (Kyle Hasselbacher)++ | t/spectest.data:
mark S02-names-vars/perl.t and S32-str/indent.t as requiring ICU
[Coke] you might need to add a reason to that skip. 15:33
KyleHa My commit was premature anyway; I haven't actually tested it.
[Coke] I know pugs gets antsy on a skip with no reason. not sure if rakudo does also. 15:36
dalek ast: b868a5f | (Kyle Hasselbacher)++ | S32-num/rat.t:
add a reason to my skip
KyleHa Blah. I'm rusty.
15:40 Psyche^ joined, Psyche^ is now known as Patterner
prammer deadline to submit presentations to Strange Loop is today. thestrangeloop.com/sessions-page/c...sentations 15:40
dalek ast: 011c563 | (Kyle Hasselbacher)++ | S32-num/rat.t:
another skip for Rat.norm
15:41
15:47 cogno left
KyleHa All tests successful. 15:53
Files=645, Tests=20188, 617 wallclock secs ( 9.38 usr 3.07 sys + 1849.02 cusr 129.00 csys = 1990.47 CPU)
Result: PASS
Booyah, as it were.
15:54 cogno joined
jnthn KyleHa: Thanks for cleaning up :) 15:54
jnthn likes it when all tests pass 15:55
KyleHa++
moritz Rat.norm is easy to implement
method norm() { self }
KyleHa You're welcome. I live to serve.
moritz 'cause our rats are always normalized
15:57 lucas_ left
goraki in the per6 tablets, under Number Literals, what's the bit about the +? 16:02
"The + and can act also as operator that convert into the
numerical context, which still means: take from left to right all
digits and stop with the first none number character."
moritz r: say +"123" 16:03
p6eval rakudo 4cfdb7: OUTPUT«123␤»
moritz r: say (+"123").Int
p6eval rakudo 4cfdb7: OUTPUT«123␤»
moritz r: say (+"123").WHAT
p6eval rakudo 4cfdb7: OUTPUT«Int()␤»
moritz goraki: though it's not quite correct, I think
goraki: because it fails if there are trailing non-number characters
r: say +'123foo'
p6eval rakudo 4cfdb7: OUTPUT«Cannot convert string to number: trailing characters after number in '123⏏foo' (indicated by ⏏)␤ in method gist at src/gen/CORE.setting:8769␤ in sub say at src/gen/CORE.setting:6616␤ in block <anon> at /tmp/pyjW8YL72O:1␤␤»
goraki moritz: right, got it.
moritz: that's correct behaviour isn't it? 16:04
moritz goraki: I think so, yes
goraki not just a rakudo thing?
moritz p6: say +'123foo'
16:04 alim joined
p6eval pugs: OUTPUT«123␤» 16:04
..rakudo 4cfdb7: OUTPUT«Cannot convert string to number: trailing characters after number in '123⏏foo' (indicated by ⏏)␤ in method gist at src/gen/CORE.setting:8769␤ in sub say at src/gen/CORE.setting:6616␤ in block <anon> at /tmp/w_BccO__uc:1␤␤»
..niecza v17-4-ge5b869e: OUTPUT«Unhandled exception: Cannot parse number: 123foo␤ at /home/p6eval/niecza/lib/CORE.setting line 1366 (die @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3405 (ANON @ 10) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3407 (NumSyntax.str2num @ 4) ␤ a…
dalek kudo/nom: 372e6b7 | moritz++ | src/core/Rat.pm:
implement Rat.norm
16:04 mucker left
moritz goraki: niecza and rakudo agree, that's a good sign 16:04
16:05 domidumont left
TimToady p6: say +' 123 ' 16:05
p6eval pugs, rakudo 4cfdb7, niecza v17-4-ge5b869e: OUTPUT«123␤»
dalek ast: 7372a63 | moritz++ | S32-num/rat.t:
unfudge Rat.norm tests for rakudo
TimToady p6: say +"123\n" 16:06
p6eval pugs, rakudo 4cfdb7, niecza v17-4-ge5b869e: OUTPUT«123␤»
TimToady goodgood
goraki right, cool. thanks.
TimToady p6: say +'123 but is anyone cheating?'
p6eval niecza v17-4-ge5b869e: OUTPUT«Unhandled exception: Cannot parse number: 123 but is anyone cheating?␤ at /home/p6eval/niecza/lib/CORE.setting line 1366 (die @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3405 (ANON @ 10) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3407 (NumSyn…
..pugs: OUTPUT«123␤»
..rakudo 4cfdb7: OUTPUT«Cannot convert string to number: trailing characters after number in '123⏏ but is anyone cheating?' (indicated by ⏏)␤ in method gist at src/gen/CORE.setting:8769␤ in sub say at src/gen/CORE.setting:6616␤ in block <anon> at /tmp/Ki6_h42_zA:1␤␤»
16:08 sisar left 16:09 cogno left
goraki well, I'm making some grammatical changes to tablet-2, I'll update the description to reflect what should happen (failure). 16:10
16:17 sisar joined
goraki r: say :36<abigradixendswithz> 16:17
p6eval rakudo 372e6b: OUTPUT«2956745512291279405828343255␤»
goraki that's neat.
16:17 thelazydeveloper joined 16:18 Vlavv_ joined
dalek p/toqast: e997116 | kboga++ | / (2 files):
Adds the hash qast op
16:19
p/toqast: 7923535 | jonathan++ | / (2 files):
Merge pull request #37 from kboga/toqast-op-hash

Toqast op hash
16:19 JimmyZ left
TimToady p6: say (:36<abigradixendswithz>/36**8).base(36) 16:20
p6eval rakudo 372e6b: OUTPUT«use of uninitialized value of type Any in string context in block <anon> at /tmp/KXfh61rFkX:1␤␤ABIGRADIXE.NDSI␤»
..pugs: OUTPUT«*** No such method in class Rat: "&base"␤ at /tmp/dm8cIHBN0X line 1, column 5 - line 2, column 1␤»
..niecza v17-4-ge5b869e: OUTPUT«Unhandled exception: Unable to resolve method base in class Rat␤ at /tmp/9ehhuOpoIV line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3842 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3843 (module-CORE @ 65) ␤ at /home/p6…
16:21 Vlavv` left, plutoid left
TimToady eh, rakudo? 16:21
goraki r: say :60[12,34,56]; 16:22
p6eval rakudo 372e6b: OUTPUT«===SORRY!===␤Malformed radix number␤at /tmp/UnrFPbAufi:1␤»
TimToady p6: say (:36<abigradixendswithz>/:36<10000000>).base(36)
p6eval rakudo 372e6b: OUTPUT«use of uninitialized value of type Any in string context in block <anon> at /tmp/NT4kNN0Ikn:1␤␤ABIGRADIXEN.DSIT␤»
..niecza v17-4-ge5b869e: OUTPUT«Unhandled exception: Unable to resolve method base in class Rat␤ at /tmp/b84GuIogMA line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3842 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3843 (module-CORE @ 65) ␤ at /home/p6…
..pugs: OUTPUT«*** No such method in class Rat: "&base"␤ at /tmp/jQZFxI0xD5 line 1, column 5 - line 2, column 1␤»
goraki rakudo doesn't support radices larger than 36, right? 16:23
p6: say :60[12,34,56]; 16:26
p6eval niecza v17-4-ge5b869e: OUTPUT«Unhandled exception: :16[...] syntax NYI␤ at /home/p6eval/niecza/lib/CORE.setting line 1366 (die @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3463 (unbase @ 6) ␤ at /tmp/R0EKsMPciW line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting l…
..rakudo 372e6b: OUTPUT«===SORRY!===␤Malformed radix number␤at /tmp/GVMF6tmGjt:1␤»
..pugs: OUTPUT«45296␤»
16:26 daxim left, Vlavv_ left 16:29 not_gerd joined, goraki left
TimToady I note that rakudo's .base(36) truncates rather than rounding the last digit 16:29
not_gerd r: 0.base(2) 16:30
p6eval rakudo 372e6b: OUTPUT«Invalid character in ASCII string␤ in method base at src/gen/CORE.setting:2675␤ in block <anon> at /tmp/Q2mGETUICu:1␤␤»
not_gerd ^ bug ?
TimToady seems
not_gerd TimToady: I also posted gist.github.com/2659460 earlier today, which prints the repeating decimals representation of a Rat 16:32
no idea if such a function is worth adding to the spec... 16:33
TimToady I wrote one of those two days ago :)
not_gerd TimToady: did it detect cycles? 16:34
this version prints the *exact* representation of the rational
16:34 sftp joined
TimToady let me dig it up 16:34
16:34 NamelessTee joined
gfldex since both niecza and rakudo are about to become self-aware shortly, here some friendly friday advice: www.youtube.com/watch?v=-G3RoBHMu-o...ture=g-u-u 16:34
TimToady r: gist.github.com/2660818 16:36
p6eval rakudo 372e6b: OUTPUT«241025348275725.3352␤0.000142857 (repeat 6)␤18446744073709551616.010309278350515463917525773195876288659793814432989690721649484536082474226804123711340206185567 (repeat 96)␤»
TimToady not_gerd: there's mine
but the long repeats made it seem like it was not going to be worth it for a default, anyway 16:38
16:39 Vlavv_ joined
not_gerd TimToady: thanks - I actually saw one of your versions in the log, but that didn't print the cycle 16:41
I agree that it's not a good idea as a .Str, but could be added as a new method on Rat 16:42
PerlJam repeats beyond a few digits don't seem particularly useful to me.
TimToady troo
PerlJam (as far as human consumption goes)
not_gerd r: gist.github.com/2659460
p6eval rakudo 372e6b: OUTPUT«42/1 = 42.0␤1/5 = 0.2␤-4/3 = -1.(3)␤19/12 = 1.58(3)␤1/97 = 0.(010309278350515463917525773195876288659793814432989690721649484536082474226804123711340206185567)␤»
not_gerd the bracket notation is one of several conventional representations if you can't add an overbar 16:43
TimToady sorry, was on phone with two different people 16:48
yes, I was gonna do overbars, but decided not to after I saw the "repeat 96" on /97 16:49
16:50 mucker joined
TimToady also because overbars don't actually render right in gnome-terminal yet 16:51
not_gerd what would be a good name for such a method? 16:52
digits?
digital?
16:53 spaceships joined
sisar n: my $a = 'abc'; my @rray = $a.split(''); say @rray[0]; say @rray[1]; 16:53
p6eval niecza v17-4-ge5b869e: OUTPUT«␤a␤»
sisar r: my $a = 'abc'; my @rray = $a.split(''); say @rray[0]; say @rray[1];
p6eval rakudo 372e6b: OUTPUT«a␤b␤»
TimToady
hmm, the overbar renders in right in the ir clog, except for not really be over... 16:54
sisar ^^ when i spilt 'abc' with '' as delimiter, the first element is 'a' right?
masak in Gnome Terminal it also renders on the side.
TimToady no, there's a '' on the front
use .comb to do that
sisar oh so its a rakudobug ? 16:55
& not nieczabug ?
TimToady arguably niecza is more consistent with how /''/ would split
sisar masak: would you be so kind to report this rakudobug? 16:56
TimToady p6: my $a = 'abc'; my @rray = $a.split(/''/); say @rray[0]; say @rray[1];
p6eval pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120203/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
..rakudo 372e6b, niecza v17-4-ge5b869e: OUTPUT«␤a␤»
TimToady they both think there's a null string in that case before the first empty match 16:57
masak submits rakudobug
TimToady so I'd argue for consistency, especially when .comb is available
masak re rt.perl.org/rt3/Ticket/Display.html?id=112850 -- should this kind of downcasting bless be allowed?
sisar masak++ 16:58
TimToady masak: it seems odd, but I'd like to understand why it doesn't work better before saying it fills a much-needed gap 17:00
masak aye. 17:01
TimToady and what the right way to do whatever it was that it was trying to do...
masak :)
17:02 PacoAir joined
TimToady this is likelier to happen after I wake up, or after jnthn++ opines on the subject, or both... 17:02
17:03 birdwind1pbird joined 17:08 ponbiki joined
moritz fwiw if we support it, we should use a different method 17:10
TimToady certainly, it's not cheap to keep a hash entry per digit
17:10 mdupont left
TimToady hmm, my version uses .perl for the key, but maybe an object hash will work now with Rat keys 17:11
wait, rationals can be enumerated, so we should store them in a sparse array. :D 17:13
not_gerd r: 0.base(2) 17:14
p6eval rakudo 372e6b: OUTPUT«Invalid character in ASCII string␤ in method base at src/gen/CORE.setting:2675␤ in block <anon> at /tmp/tMz4ZKDcIh:1␤␤»
not_gerd that's actually a bug in libtommath
masak doesn't the first (non-invocant) positional argument to .bless function as a kind of "backend storage" to the object being blessed? that is, if it's a hash, the hash is used to store the attributes. if it's an opaque repr object, that's used. etc
masak submits not_gerd's rakudobug
not_gerd++ 17:15
moritz masak: yes
masak: (re bless) 17:16
masak: that's why I suggested to have a different method
masak aye.
17:16 KyleHa left
TimToady well, the question is what is the interface to the backend, and can 13 reasonably represent something that can supply that interface 17:16
oh, that's what you were replying to
TimToady misunderforstood
TimToady thought you were asking about a repeating-digits Rat.Str 17:18
which should also be a separate method, if supplied 17:19
sisar phenny: tell sorear, re irclog.perlgeek.de/perl6/2012-05-10#i_5573433, turns out it was actually a rakudobug & not a nieczabug :) 17:20
phenny sisar: I'll pass that on when sorear is around.
17:20 birdwindupbird left 17:21 Chillance joined, shinobicl_ joined
not_gerd needs to shutdown Irssi so he can rebase cygwin, build a parrot and fix his bug... 17:22
17:22 not_gerd left
flussence
.oO( what, he doesn't have dedicated IRC hardware like everyone else? :)
17:22
17:24 plobsing left
masak poor fellow. 17:24
sisar .oO ( sarcasm-detected successfully ! yay !) 17:25
17:25 plobsing joined
masak I was being sarcastic? :) 17:25
sisar :) 17:26
wrong definition of sarcasm :/
TimToady mē genoito!
sjn o/ 17:27
TimToady well, μὴ γένοιτο really
masak sjn! \o/ 17:28
sisar phenny: "μὴ γένοιτο"
phenny: "μὴ γένοιτο" en
TimToady doesn't it need a ?
masak yes.
sisar phenny: "μὴ γένοιτο" ?
masak and no space :P
phenny: "μὴ γένοιτο"? 17:29
phenny masak: "Certainly not!" (el to en, translate.google.com)
sisar phenny:"μὴ γένοιτο" ?
masak wrong no space :P
adu Γνῶθι σεαυτόν
phenny adu: 13:29Z <[Coke]> tell adu folks in #parrot are interested in your interest in scheme on parrot. (on irc.perl.org)
adu thanks phenny 17:30
sisar phenny: "μὴ γένοιτο" ? 17:31
phenny: "μὴ γένοιτο"?
phenny sisar: "Certainly not!" (el to en, translate.google.com)
TimToady phenny: en el "Know thyself"?
phenny TimToady: "Γνώθι σ 'αυτόν" (en to el, translate.google.com)
sisar masak: no space between " and ?
17:31 noam_ left
TimToady he just said that 17:31
masak right.
17:32 KyleHa joined
sisar <masak> wrong no space :P 17:32
^ that ... nevermind :)
masak never minds :) 17:33
adu never mind is one of the hardest phrases to translate
masak a never mind is a terrible thing to waste. 17:34
sisar adu: aye
Tene adu: I started a scheme on parrot quite a while back; I don't know what your interest is, but feel free to do whatever you'd like with it: github.com/tene/steme/ 17:36
17:36 KyleHa1 joined
Tene I'd be rather surprised if it actually worked against modern parrot, though 17:37
adu Tene: thanks, the only other surviving scheme I could find was Eclectus
and it's got some bitrot
Tene that was dead before I started on steme, I believe.
17:38 KyleHa left
adu well, I've already written a scheme, so I'm not really aiming for self-learning, now I'd like to aim for stability and speed 17:38
17:40 spider-mario joined
TimToady some time we need to think about how to give Pair lists in p6 a bit more of a List API 17:42
adu Tene: I'd like to have two sublanguages, for data and expressions, but when I try and put them in the same .pbc the HLLCompiler complains, any ideas?
17:42 benabik left, not_gerd joined
Tene adu: what's the complaint? 17:42
not_gerd hm.. something went wrong in re-building my rakudo: 17:43
elements() not implemented in class 'PMCProxy'
17:43 benabik joined
Tene and, can you show me code? 17:43
not_gerd should I apply github.com/libtom/libtommath/pull/6 to NQP's copy of libtommath anyway?
TimToady p6: my $pl = a => b => c => Nil; say $pl.list.perl
p6eval niecza v17-4-ge5b869e: OUTPUT«("a" => "b" => "c" => Nil, ).list␤»
..rakudo 372e6b: OUTPUT«("a" => "b" => "c" => Nil,).list␤»
..pugs: OUTPUT«*** No such subroutine: "&Nil"␤ at /tmp/Yf0Xt3K7hp line 1, column 25-28␤»
sorear good * #perl6 17:44
phenny sorear: 17:20Z <sisar> tell sorear re irclog.perlgeek.de/perl6/2012-05-10#i_5573433, turns out it was actually a rakudobug & not a nieczabug :)
sorear Tene! o/
Tene sorear: ?
TimToady wonders if Pair.list could usefully return an iterator down the conslist
sorear Tene: long time no see, that is all
Tene Ah, right, I forget that I don't speak up much in here, although I usually follow the channel pretty actively. 17:45
jnthn not_gerd: Go ahead :)
sisar
.oO( we should have a 'nr' or 'rn' for p6eval, when you want niecza and rakudo but not pugs )
adu Tene: I don't remember
TimToady p6-p: 17:46
Tene adu: if you can reproduce it, I'd be glad to investigate.
sisar p6-p: say "I actually work !"; #checkin' 17:47
17:47 noam joined
sisar :) 17:47
17:47 noam left
TimToady moritz: no, 'tough beans' was already an idiom when I was young. 17:48
17:48 noam joined, noam left
dalek p: 7e25971 | (Gerhard R)++ | 3rdparty/libtommath/bn_mp_radix_size.c:
fix bug in libtommath's mp_radix_size()
17:49
17:49 noam joined
sisar not_gerd++ 17:49
not_gerd hopes that actually works ;)
adu Tene: I tried reproducing it, but I'm getting a different error now because I don't have any actions associated with my grammar
Tene That shouldn't make it impossible to compile; just to run, I'd expect. 17:50
17:50 noam left, noam joined
adu Tene: ya, it runs now, I think it must have been a name clash 17:50
Tene That's what I suspected.
adu anyways, I was going to call it "dreme" 17:51
Tene I like it. 17:52
17:52 rsimoes left
adu Tene: or maybe I could fork steme? 17:53
17:53 rsimoes joined
not_gerd leaves again to fight with cygwin 17:53
17:53 not_gerd left
Tene adu: no need to fork; you can take it over. 17:53
adu oh ok
Tene I haven't done anything with it in years.
adu 2 according to github
well, I can't promise anything yet, I'm still learning perl6 17:55
Tene adu: I can transfer the repo to you if you'd like, or you could just fork it, or whatever else. Just let me know if you'd like me to do anything.
adu right now I'd like to see if I can get a RPL going 17:56
if I can do that, then I'd like to fork/transfer but not before
currently my REPL says "Unable to obtain PAST from Regex;Match" 17:57
17:58 wolfman2000 joined
adu actually, I will probably only use parts of "pct/actions.pm" 17:58
anyways, gtg 17:59
17:59 mdupont joined, adu left 18:02 noam left 18:03 wolfman2000 left, noam joined 18:05 ponbiki left, not_gerd joined
not_gerd just built parrot, nqp and rakudo from scratch because he typed perl6 instead of ./perl6 18:05
anyway, 0.base(2) now work
jnthn \o/ 18:06
18:06 sisar left
moritz r: say 0.base(2) 18:06
p6eval rakudo 372e6b: OUTPUT«Invalid character in ASCII string␤ in method base at src/gen/CORE.setting:2675␤ in block <anon> at /tmp/NipINQEEcL:1␤␤»
moritz not_gerd: do you have local patches?
ah, just saw the patch on #parrot 18:07
not_gerd moritz: nope, already pushed to NQP (jnthn gave to go-ahead)
moritz not_gerd++
not_gerd ^the
moritz not_gerd: I'll submit your patch to upstream 18:09
18:09 mdupont_ joined
jnthn moritz: I think not_gerd++ already gave them a pull request :) 18:09
moritz oh 18:10
18:10 mdupont_ left
not_gerd moritz: yup - and incidentally, there's a 4 months old one from you still open :( 18:10
moritz not_gerd: I'll pester them on IRC 18:12
18:25 shinobicl_ left 18:27 noam left 18:28 fglock joined, noam joined 18:29 noam left 18:30 noam joined 18:34 birdwind1pbird left 18:36 birdwindupbird joined 18:38 KyleHa joined 18:39 adu joined 18:40 KyleHa1 left 18:41 colomon joined 18:45 wolfman2000 joined
masak p6: v6; 18:49
p6eval niecza v17-4-ge5b869e: OUTPUT«===SORRY!===␤␤Action method value:version not yet implemented at /tmp/9igT0vMaQs line 1:␤------> v6⏏;␤␤Unhandled exception: Unable to resolve method statement_level in class Any␤ at /home/p6eval/niecza/src/NieczaActions…
..rakudo 372e6b: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&v6' called (line 1)␤»
..pugs: OUTPUT«*** No such subroutine: "&v6"␤ at /tmp/rqKNLdbIXi line 1, column 1-3␤»
masak heh. universal disacclaim. 18:50
moritz anyway, I don't think that a bare v6; should be the same as use v6;
masak sorear: today I met someone who thought it was pronounced "Niceh Perl 6". almost, but not quite, like "nicer" :) 18:51
moritz masak: you meet people who have heard of niecza? where? how? 18:52
geekosaur (Nietzsche Perl 6?) 18:53
masak moritz: it was a former colleague of mine who was proud that he was following the Planet Perl 6 feed. and apparently the last post I made was about this nicer Perl thingie.
moritz: gives some perspective. this guy is a relatively community-uninvolved Perl 5 user. 18:54
18:57 not_gerd left
moritz TimToady: are Version objects supposed to be immutable? 18:58
r: say 2 cmp 'a'
p6eval rakudo 372e6b: OUTPUT«Increase␤»
sorear I'd be astonished if version objects were mutable in any implementaiton
TimToady I would think so 19:00
diakopter I pronounce it nee-ehk-zuh in my head; is that wrong?
TimToady so == immutable
cz == ch
how do you pronounce Czeck?
moritz the soft ch like in the Scottish 'loch'?
TimToady nyet
diakopter oh 19:01
moritz oh, like the "check"
TimToady knee-eh-cha in tradition English sound-out-ese
moritz that's roughly how I pronounce it too :-) 19:02
masak you are correct :)
TimToady funny that there's no term for sound-out-ese
sorear I would consider either of those right, and 'nicer' wrong
TimToady (that I can think of)
masak TimToady: "poor man's IPA"? :)
moritz std: v3.3beta
p6eval std 8632387: OUTPUT«===SORRY!===␤Whitespace is required between alphanumeric tokens at /tmp/vyQnTPxKQg line 1:␤------> v3.3⏏beta␤Two terms in a row at /tmp/vyQnTPxKQg line 1:␤------> v3.3⏏beta␤ expecting any of:␤ POST␤ infix or …
TimToady it's pretty poor alright
moritz std: v3.3.0
p6eval std 8632387: OUTPUT«ok 00:00 40m␤»
moritz std: v3.3.*
p6eval std 8632387: OUTPUT«ok 00:00 40m␤»
masak English orthography does not lend itself very well to sounding out anything, really. 19:03
TimToady std: v3.3.42+
p6eval std 8632387: OUTPUT«ok 00:00 40m␤»
TimToady even English
jnthn Whenever I see IPA, I parse it as Indian Pale Ale, and then get confused, and then realize...oh yeah...the other IPA.
TimToady keeps wishing there were an offical IPA block in Unicode...
except IPA is a mishmash of everything else 19:04
19:04 cognominal_ joined
moritz and where's the official IRA block? :-) 19:04
TimToady that wasn't a rho
or an er, if your name is Cyril 19:05
19:06 cognominal left
TimToady H & R Block might provide IRAs to USians... 19:06
19:07 alester joined
sorear When I see IRA, I always parse it initially as Irish Republican Army 19:07
moritz is v1.1 ~~ v0+ 19:08
sorear also, I have tried and failed repeatedly to learn how IPA works
19:08 cognominal joined
sorear it seems like something I need to learn eventually, bhut it just isn't happening :| 19:08
19:09 noam left
moritz sorear: re IRA, that's what I meant :-) 19:09
TimToady well, you really can't learn it independently of a phonetics instructor, if you don't know how to make the sounds
19:09 noam joined, cognominal_ left
TimToady demonstrates an interlabial lateral (known from a tribe in New Guinea) 19:10
19:11 cognominal left
TimToady and to learn phonetics you have to spend an inordinate amount of time "unlearning" your mother tongue 19:12
"inordinate" is a funny word :) 19:13
19:13 cognominal joined
masak r: v6; 19:14
p6eval rakudo 372e6b: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&v6' called (line 1)␤»
moritz std: v6.3_5 19:15
p6eval std 8632387: OUTPUT«===SORRY!===␤Whitespace is required between alphanumeric tokens at /tmp/LzeUOUnEe3 line 1:␤------> v6.3⏏_5␤Two terms in a row at /tmp/LzeUOUnEe3 line 1:␤------> v6.3⏏_5␤ expecting any of:␤ POST␤ infix or meta…
19:15 cognominal left 19:16 cognominal joined
moritz should probably parse <decint> | '*' 19:16
19:17 spaceships left 19:18 cognominal_ joined 19:20 cognominal left 19:21 noam left 19:22 noam joined
moritz r: my $a = *; my $b = *; say $a === $b; 19:22
p6eval rakudo 372e6b: OUTPUT«False␤»
masak meh. whatevers. 19:24
19:25 plobsing left 19:26 noam left, noam joined 19:29 fibo joined
moritz I have local patch for Version. It's so not going to work :-) 19:29
19:29 fibo left, fibo joined
masak well, write wrong code first ;) 19:30
sorear n: my $a = *; my $b = *; say $a === $b; 19:32
p6eval niecza v17-4-ge5b869e: OUTPUT«True␤»
sorear this is an optimization leaking out
is it a problem?
moritz I don't thikn so 19:33
I don't see a value in having multiple Whatever instances
n: my $a = *; my $b = *; say $a ~~ $b;
p6eval niecza v17-4-ge5b869e: OUTPUT«True␤»
moritz r: my $a = *; my $b = *; say $a ~~ $b;
p6eval rakudo 372e6b: OUTPUT«True␤»
moritz p6: say 'whatever' ~~ (my $x = *)
p6eval niecza v17-4-ge5b869e: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/3c0MZz65EF line 1:␤------> say 'whatever' ~~ (my ⏏$x = *)␤␤True␤»
..rakudo 372e6b: OUTPUT«True␤»
..pugs: OUTPUT«␤»
jnthn Rakudo should prolly do the same optimization Niecza does ;) 19:38
moritz jnthn: I want to call a rakudo-space method (Version.new) with an RPA interpolated into the argument list 19:39
ie $type.new(|@rpa) 19:40
from NQP, that is
how do I do that?
I get
Method 'list' not found for invocant of class 'ResizablePMCArray'
(at least I think that's the problem, not 100% sure yet)
oh wait, I might be wrong 19:41
the problem is probably my stupidity :-)
I did
for @($<vnum>) -> $v { }
but $<vnum> already is an RPA 19:42
now I'm curious if we get through the setting :-) 19:43
otoh there is no version literal in the setting -- why should it blow up while compiling the setting?
ouch 19:44
because version literals LTM-win against the sub call v6-split(...);
even though I wrote it as token version { 'v' { } ... } 19:45
so only the 'v' should LTM
meh, stupid nqp
masak nqp doesn't have '::'? 19:50
moritz nqp: say('ab' ~~ /a::b/)
p6eval nqp: OUTPUT«:: not yet implemented at line 1, near "b/)"␤current instr.: 'nqp;HLL;Grammar;panic' pc 22008 (src/stage2/gen/NQPHLL.pir:7047) (src/stage2/gen/NQPHLL.pm:329)␤»
masak dang.
19:52 cognominal_ left 19:53 cognominal joined
colomon Is there a nice way to make a link from one spot in the specs to another? 19:57
19:59 NamelessTee left
jnthn moritz: Even the "v" LTM-ing is a longer literal prefix than the totally illiteral sub call v6-split 20:02
colomon TimToady: ping? 20:04
TimToady: errr, unping? 20:05
20:05 mdupont left 20:10 NamelessTee joined
[Coke] r: loop { my $a = * } 20:14
p6eval rakudo 372e6b: OUTPUT«(timeout)»
20:14 shinobicl_ joined 20:15 NamelessTee left 20:16 havenn joined
masak [Coke]: yeah, but at the end of that loop, $a is *really* Whatever! 20:18
20:18 fglock left, shinobicl left
[Coke] was just seeing if we got some sort of explosion. 20:18
20:18 HarryS left
masak phenny: "Äddi"? 20:19
phenny masak: "additive" (sv to en, translate.google.com)
masak what? no!
[Coke] r: "masak reports rakudobugs".comb.pick.join.say
p6eval rakudo 372e6b: OUTPUT«u␤»
[Coke] r: "masak reports rakudobugs".comb.pick(*).join.say
p6eval rakudo 372e6b: OUTPUT«dpmrkero utgsabsauokr as␤»
masak dpmrkero! \o/
utgsabsauokr. as. 20:20
20:20 snearch joined, fgomez left, cognominal_ joined
masak r: sub shuffle($_) { .pick(*) }; say "coke summarizes spectest runs".comb.&shuffle.join 20:21
p6eval rakudo 372e6b: OUTPUT«i ee cuuroskpstsamctersnz sme␤»
masak in other news, I vote for &shuffle ==> CORE 20:22
well, and .shuffle ;)
.=shuffle reads better than .=pick(*)
20:24 cognominal left
colomon n: say 3141592653589793238/1000000000000000000.nude 20:24
p6eval niecza v17-4-ge5b869e: OUTPUT«Unhandled exception: Unable to resolve method nude in class Int␤ at /tmp/f7hGSEEiMe line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3842 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3843 (module-CORE @ 65) ␤ at /home/p6…
colomon n: say (3141592653589793238/1000000000000000000).nude
p6eval niecza v17-4-ge5b869e: OUTPUT«1570796326794896619 500000000000000000␤»
20:24 plobsing joined
dalek ecs: 1cbef9e | (Solomon Foster)++ | S (2 files):
Try to make the rules and examples for Rat.perl, Rat.gist, and Rat.Str consistent.
20:30
colomon TimToady++: would deeply appreciate it if you'd look over that commit and see if it matches what you are thinking.
20:31 orphu joined
TimToady
.oO(Ints are already half nude...)
20:33
[Coke] r: say pi.comb 20:36
p6eval rakudo 372e6b: OUTPUT«3 . 1 4 1 5 9 2 6 5 3 9 4 2 4 8␤»
[Coke] r: say pi.comb.pick(*).join # close enough! 20:37
p6eval rakudo 372e6b: OUTPUT«1418423395456.92␤»
20:39 cognominal joined, cognominal_ left 20:41 fibo left
TimToady colomon: the first diff is a bit inaccurate; the rounding off has nothing to do with the repeating element; it's determined only by the size of the denominator after the integer part is subtracted. 20:41
the only think it has to do with the repeating part is that it rounds if and only if there would be a repeating fraction 20:42
the rest looks good 20:43
20:43 noam left, birdwindupbird left 20:44 noam joined 20:45 cognominal_ joined
TimToady well, plus the min 6 digits rule 20:46
r: say 1/97
p6eval rakudo 372e6b: OUTPUT«0.010309␤»
TimToady that actually repeats after 96 digits 20:47
r: say 1/97000000
p6eval rakudo 372e6b: OUTPUT«0.000000010␤»
20:48 cognominal left 20:49 lichtkind joined
colomon Actually, it rounds off if and only if it is not exactly expressible as a finite decimal, right? 20:50
20:50 spaceships joined
TimToady didn't I just say that? 20:50
only inside out?
colomon you said repeating fraction
oh, right
TimToady not exactly expressible == would be repeating
colomon right, because these are rational 20:51
TimToady++
errr, doesn't that make the text I have correct? I mean, I could add "finite" before "exact decimal"
...
TimToady it doesn't calculating the rounding position based on the repeating position 20:52
*ate
"and rounds off the repeating decimal" seems to suggest that
depending on how you read it 20:53
I can see how it is meant the other way
20:53 NamelessTee joined, benabik left
TimToady it's just ambiguous 20:53
colomon fair enough
is there a way to make a proper link to S32 there? 20:54
TimToady and it doesn't say how it does choose where to round off
colomon TimToady: I was trying to avoid repeating all the rules in S32. :)
TimToady I usually go to the html page and steal from the table of contents for those pages... 20:55
20:55 lestrrat left
TimToady oh, you mean a proper pod link 20:55
TimToady doesn't know
colomon yes
drat
TimToady everything wants to be rewritten in Pod 6 anyway... 20:56
20:56 lestrrat joined
TimToady s/in Pod 6/ / too 20:56
20:57 pyrimidine left
TimToady and the whole thing could use a reorganization as well 20:57
colomon "Stringifying a rational via C<.gist> 21:00
or C<.Str> returns an exact decimal number if possible, and otherwise rounds
off the repeated decimal based on the number of digits in the fractional
part of numerator." ?
TimToady no, the denominstor 21:06
and it's only the residual denominator after the integer part has been removed and the rat renormalized
maybe that's the same 21:07
21:07 adu left 21:08 skids left, adu joined, adu left
TimToady I guess by definition the integer part will be some multiple of the original denominator, so subtracting it out will never cause reduction of the remainder 21:09
anyway, we can just say "based on the size of the denominator"
21:11 fgomez joined, fgomez left
colomon Done 21:12
dalek ecs: a424107 | (Solomon Foster)++ | S02-bits.pod:
Incorporate TimToady++'s suggestions.
21:13
TimToady colomon++ 21:16
21:16 sisar joined 21:29 Tene left
masak 'night, #perl6 21:31
sorear bye 21:32
jnthn wtf 21:33
The NQP build fails. :/
nqplexinfo.obj : error LNK2001: unresolved external symbol Parrot_x_panic_and_exit 21:34
src\pmc\nqp_group.dll : fatal error LNK1120: 1 unresolved externals
.oO( shoudn't that be x_Parrot :P )
21:35 KyleHa left
dalek blets: 0191646 | (Herbert Breunung)++ | docs/appendix- (2 files):
minor linkfixes and expanded on callframe methods
21:38
21:44 Chillance left, Chillance joined, adu joined
dalek p: 9ddfc35 | jnthn++ | tools/build/PARROT_REVISION:
Bump to a Parrot that builds on MSVC.
21:45
kudo/nom: 6c6056d | jnthn++ | tools/build/NQP_REVISION:
Bump to get MSVC Parrot build fix and the libtommath radix fix.
21:46
21:49 NamelessTee left 21:50 NamelessTee joined
jnthn What's the difference - if any - between <|w> and <wb> ? 21:51
21:55 PacoAir left
PerlJam I don't think there is one 21:56
21:57 PacoAir joined 21:58 cognominal___ joined 22:01 cognominal_ left 22:08 cognominal___ left, cognominal joined, snearch left 22:09 fgomez joined 22:16 wolfman2000 left 22:20 cognominal left 22:21 cognominal joined 22:23 plobsing left 22:26 Tene joined, Tene left, Tene joined 22:28 mucker left 22:29 adu left
dalek kudo/nom: cc71885 | jnthn++ | src/Perl6/ (2 files):
Implement < a b c > syntax in regexes. Note that it doesn't do LTM yet; it'll get it automatically once alternations start to do so.
22:31
22:37 bruges left, alester left
jnthn std: / <|> / 22:38
p6eval std 8632387: OUTPUT«ok 00:00 41m␤»
jnthn wonders what that one means :)
22:39 skids joined 22:41 plobsing joined
sorear jnthn: semantic error 22:45
jnthn sorear: ? 22:46
sorear jnthn: what follows <|> is a name of a boundary type; these are currently limited to b, w, and g, iirc
jnthn sorear: Yeah, STD very deliberately parses <|> as well as <|foo> though.
n: /<|>/
p6eval niecza v17-4-ge5b869e: OUTPUT«===SORRY!===␤␤Unrecognized regex assertion at /tmp/UQkF28jC5x line 1:␤------> /<⏏|>/␤␤Parse failed␤␤»
22:47 havenn left 22:49 havenn joined
dalek ast: e53b228 | jnthn++ | S05-metasyntax/angle-brackets.t:
Correct misunderstanding of the spec in the tests. Unfudging for Rakudo.
22:53
sorear jnthn: I have expressed the opinion in the past that that is a bug in STD.
sorear pokes TimToady
22:53 spider-mario left
jnthn sorear: Inclined to agree. 22:54
23:15 shinobicl_ left 23:16 shinobicl joined 23:18 carlin_ joined, havenn left, carlin left
dalek blets: 0c0d226 | (Herbert Breunung)++ | docs/appendix- (2 files):
explain and link precedence
23:19
23:23 cognominal_ joined 23:26 cognominal left
lichtkind gud night 23:29
23:29 lichtkind left 23:30 NamelessTee left 23:37 constantined left, cognominal_ left 23:40 shinobicl left 23:50 fibo joined 23:55 fgomez left 23:57 whiteknight joined, whiteknight is now known as Guest14837