»ö« 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.
TimToady diakopter: yes, LTM is supposed to be transitive 00:06
dalek blets: 595cc97 | (Herbert Breunung)++ | docs/appendix-g-glossary.txt:
sharpen explanation of scope
00:21
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
moritz oh shark 05:16
sorear o/ 05:19
tadzik oh shark 05:51
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
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
mikec__ morning 07:19
sorear hello mikec__ 07:23
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
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
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
moritz erm, needs +1 too 08:07
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
TimToady Oh, likely, but .base(16) presumably calls that 08:09
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... &
jnthn moritz: Yes, the ChangeLog already is looking nice :) 08:27
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
tadzik cool 08:33
moritz r: say Date.new('2012-05-17') - Date.today 08:34
p6eval rakudo 9df995: OUTPUT«6␤»
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
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
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
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
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
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.
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?
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
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.
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
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␤»
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␤»
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␤»
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
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
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.
masak so in Perl 6 we're "actually" casting, whereas in Java it's more about changing the type of a pointer. 11:49
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 :/
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
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
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.
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
moritz en.wikipedia.org/wiki/Covariance_a...%29#Eiffel Citation needed! 12:29
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.
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
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
masak submits rakudobug 12:55
bbkr IETF::RFC_Grammar loads fine 12:57
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
masak jnthn: casting, coercion. compare and contrast. 13:07
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")
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
[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.
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
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
cogno_ Jnthn++ # explaining casting, coercion 14:41
masak & 14:42
jnthn decommute & 15:01
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...)
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
[Coke] spectests are under flux all the time, so that can happen. 15:14
[Coke] can you git blame the files and see if those are new tests? 15:15
[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.
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.
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
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.
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
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'
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
moritz goraki: niecza and rakudo agree, that's a good sign 16:04
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␤␤»
goraki well, I'm making some grammatical changes to tablet-2, I'll update the description to reflect what should happen (failure). 16:10
goraki r: say :36<abigradixendswithz> 16:17
p6eval rakudo 372e6b: OUTPUT«2956745512291279405828343255␤»
goraki that's neat.
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
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…
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␤»
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
TimToady let me dig it up 16:34
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
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
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?
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 :)
TimToady this is likelier to happen after I wake up, or after jnthn++ opines on the subject, or both... 17:02
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
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.
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.
not_gerd needs to shutdown Irssi so he can rebase cygwin, build a parrot and fix his bug... 17:22
flussence
.oO( what, he doesn't have dedicated IRC hardware like everyone else? :)
17:22
masak poor fellow. 17:24
sisar .oO ( sarcasm-detected successfully ! yay !) 17:25
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 ?
TimToady he just said that 17:31
masak right.
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
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.
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
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?
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'
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
sisar :) 17:47
TimToady moritz: no, 'tough beans' was already an idiom when I was young. 17:48
dalek p: 7e25971 | (Gerhard R)++ | 3rdparty/libtommath/bn_mp_radix_size.c:
fix bug in libtommath's mp_radix_size()
17:49
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
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
adu Tene: or maybe I could fork steme? 17:53
not_gerd leaves again to fight with cygwin 17:53
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
adu actually, I will probably only use parts of "pct/actions.pm" 17:58
anyways, gtg 17:59
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
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
jnthn moritz: I think not_gerd++ already gave them a pull request :) 18:09
moritz oh 18:10
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
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
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
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
TimToady H & R Block might provide IRAs to USians... 19:06
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
sorear it seems like something I need to learn eventually, bhut it just isn't happening :| 19:08
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
TimToady demonstrates an interlabial lateral (known from a tribe in New Guinea) 19:10
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
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…
moritz should probably parse <decint> | '*' 19:16
moritz r: my $a = *; my $b = *; say $a === $b; 19:22
p6eval rakudo 372e6b: OUTPUT«False␤»
masak meh. whatevers. 19:24
moritz I have local patch for Version. It's so not going to work :-) 19:29
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.
colomon Is there a nice way to make a link from one spot in the specs to another? 19:57
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
[Coke] r: loop { my $a = * } 20:14
p6eval rakudo 372e6b: OUTPUT«(timeout)»
masak [Coke]: yeah, but at the end of that loop, $a is *really* Whatever! 20:18
[Coke] was just seeing if we got some sort of explosion. 20:18
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
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(*)
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␤»
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.
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␤»
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
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␤»
colomon Actually, it rounds off if and only if it is not exactly expressible as a finite decimal, right? 20:50
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
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
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
TimToady s/in Pod 6/ / too 20:56
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
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"
colomon Done 21:12
dalek ecs: a424107 | (Solomon Foster)++ | S02-bits.pod:
Incorporate TimToady++'s suggestions.
21:13
TimToady colomon++ 21:16
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 )
dalek blets: 0191646 | (Herbert Breunung)++ | docs/appendix- (2 files):
minor linkfixes and expanded on callframe methods
21:38
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
jnthn What's the difference - if any - between <|w> and <wb> ? 21:51
PerlJam I don't think there is one 21:56
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
jnthn std: / <|> / 22:38
p6eval std 8632387: OUTPUT«ok 00:00 41m␤»
jnthn wonders what that one means :)
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␤␤»
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
jnthn sorear: Inclined to agree. 22:54
dalek blets: 0c0d226 | (Herbert Breunung)++ | docs/appendix- (2 files):
explain and link precedence
23:19
lichtkind gud night 23:29