Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-07-08

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:23 [Coke] SixModelObject iter = iter(obj, tc); - this is dying, but I'm not getting a stacktrace.
00:24 [Coke] I have two catch blocks - each with a die_s() - neither of die_s's are appearing either.
00:35 raiph joined #perl6
00:44 aindilis joined #perl6
00:45 BenGoldberg joined #perl6
01:02 dayangkun joined #perl6
01:02 woosley joined #perl6
01:15 [Coke] ah. because it's generating a org.perl6.nqp.runtime.UnwindException
01:16 crab2313 joined #perl6
01:19 [Coke] ok, updated my work in progress: https://gist.github.com/coke/5944808 (shell with env vars)
01:30 FieldsaBB joined #perl6
01:35 yoleaux joined #perl6
01:58 FROGGS_ joined #perl6
02:28 konundra joined #perl6
02:38 daniel-s joined #perl6
02:38 SamuraiJack joined #perl6
02:48 amoe_ joined #perl6
03:03 dayangkun_ joined #perl6
03:44 ehouse joined #perl6
03:49 ehouse In terms of an object what does the method can do. I can't find any documentation on it.
03:54 sorear ehouse: I can't interpret that.
03:55 ehouse > $c.can('feed','nip');
03:55 ehouse Too many positional parameters passed; got 3 but expected 2
03:56 ehouse I'm trying to debug that
03:56 sorear $c.^can('foo') returns a true value if $c responds to the method "foo"
03:56 sorear $c.can('foo') is an alias to .^can
03:56 sorear .can() isn't supposed to take more than one argument
03:57 ehouse oh well ok. Thanks
03:57 sorear if you want to test more than one method, use &&
03:57 TimToady r: say Int.^can('floor).WHAT
03:57 camelia rakudo 93f30e: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Unable to parse expression in single quotes; couldn't find final "'"â�¤at /tmp/y61uleZEwH:1â�¤------> [32msay Int.^can('floor).WHAT[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        method argumentsâ�¤        argument listâ�¤        prefix o…
03:57 TimToady r: say Int.^can('floor').WHAT
03:57 camelia rakudo 93f30e: OUTPUT«(Parcel)␤»
03:57 sorear r: say Int.^can('floor').perl
03:57 camelia rakudo 93f30e: OUTPUT«(method floor(Int:D : Mu *%_) { ... }, method floor(Cool : Mu *%_) { ... })␤»
03:58 preflex_ joined #perl6
03:58 TimToady r: say Int.^can('floor').[1].(42.5)
03:58 camelia rakudo 93f30e: OUTPUT«42␤»
03:58 TimToady \o/
04:08 sorear r. say 42.5.$( Int.^can('floor') )
04:08 sorear r: say 42.5.$( Int.^can('floor') )
04:08 camelia rakudo 93f30e: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Parcel'␤  in block  at /tmp/VswENQ2hKV:1␤␤»
04:08 sorear ENOTENOUGHDOTS
04:08 sorear r: say 42.5.@( Int.^can('floor') )
04:08 camelia rakudo 93f30e: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'List'␤  in block  at /tmp/LDE3rmRffI:1␤␤»
04:08 sorear how is thi supposed to work?
04:10 sorear r: class A { multi method y(Int) { }; multi method y(Str) { } }; say A.can('y').perl
04:10 camelia rakudo 93f30e: OUTPUT«(method y(: , Mu *%_) { ... },)␤»
04:10 sorear ok, so it gets the method dispatch list, not the multi list
04:22 * sorear still isn't sure how you're supposed to be able to use the result from can
04:22 sorear r: class A { multi method y(Int) { }; multi method y(Str) { } }; say A.^find_method('y').perl
04:22 camelia rakudo 93f30e: OUTPUT«method y(: , Mu *%_) { ... }␤»
04:23 sorear r: class A { multi method y(Int) { }; multi method y(Str) { } }; say Int.^find_method('floor').perl
04:23 camelia rakudo 93f30e: OUTPUT«method floor(Int:D : Mu *%_) { ... }␤»
04:43 sorear looks like in rakudo you only have to call the bottom method in the stack, and nextsame is.. ahem... rather magical
04:44 sorear though in 6model-land if you want to call stuff it would be more correct to use find_method
04:50 sorear ehouse: you aren't trying to use the jvm port, are you?
04:50 ehouse sorear: rakudo
04:50 sorear ehouse: rakudo on parrot or rakudo on jvm?
04:51 birdwindupbird joined #perl6
04:51 ehouse sorry rakudo parrot
04:51 sorear "use of uninitialized value of type Any in string context" is a warning, not an error
04:51 ehouse I know. My tests are throwing warning and I want to fix them or atleast understand them
04:52 sorear r: my $x; say $x eq 'foo'
04:52 camelia rakudo 93f30e: OUTPUT«use of uninitialized value of type Any in string context  in block  at /tmp/v83x2NMXmo:1␤␤False␤»
04:53 sorear r: my $x = 'bar'; say $x eq 'foo'
04:53 camelia rakudo 93f30e: OUTPUT«False␤»
04:53 sorear If you try to use a variable without assigning anything to it, perl gives a warning
04:53 sorear To avoid that warning, initialize your variables before using them
04:54 ehouse oh jeeze. There is a edge case were the variabled wont get declared
04:54 ehouse didn
04:54 ehouse didn't think that through. Thanks though
04:56 xinming joined #perl6
04:56 sorear minor note on terminology
04:56 sorear we say "declared" for what happens when the perl parser sees the word "my"
04:56 sorear it's impossible to use a variable at all before declaration
04:57 sorear indeed, normally none of your code will run until the perl parser is done with the file
04:57 ehouse ok
05:52 moritz 06:56 < sorear> it's impossible to use a variable at all before declaration
05:52 moritz nearly :-)
05:52 moritz or, depends on your definition of "before"
05:52 moritz r: END { eval 'say $x' }; my $x = 42;
05:52 camelia rakudo 93f30e: OUTPUT«42␤»
05:53 moritz that's textually before, but temporally after
05:53 moritz (and eval is cheating, of course)
06:00 dmol joined #perl6
06:06 sorear moritz: I was going for temporally
06:06 sorear & good morning
06:08 crab2313 joined #perl6
06:13 kaleem joined #perl6
06:29 dayangkun joined #perl6
06:43 domidumont joined #perl6
06:59 domidumont joined #perl6
07:08 iSlug joined #perl6
07:09 FROGGS joined #perl6
07:19 dmol joined #perl6
07:34 domidumont joined #perl6
07:40 masak good morning, #perl6!
07:41 masak I'm still a bit stunned that integrating our sprintf code into nqp actually *helped*. :)
07:41 masak this is the most useful I've felt since YAPC::NA, I believe.
07:42 sorear o/ masak
07:42 FROGGS o/
07:59 kst joined #perl6
08:02 daniel-s joined #perl6
08:07 crab2313 joined #perl6
08:15 sorear .tell jnthn https://gist.github.com/sorear/5947073 # collected thoughts on Rakudo JVM interop sugar (not discussing strictly internal implementation details, only user-visible aspects)
08:15 yoleaux sorear: I'll pass your message to jnthn.
08:29 masak fwiw, invariant wrappers sounds like the better option, even if it's in some sense also more boring/inconvenient.
08:30 masak what happens if a Java class has a method actually called 'new'?
08:36 daxim joined #perl6
08:37 dakkar joined #perl6
08:44 moritz hilarity!
08:50 JimmyZ good afternoon, #perl6
08:50 Stygia joined #perl6
08:50 moritz good morning, JimmyZ
08:50 JimmyZ \o, moritz :P
08:51 moritz in some programs, some parts of the program want notifications when some data changes
08:51 moritz is there a design pattern for such stuff? and if yes, what's its name?
08:58 JimmyZ observer pattern?
08:59 jnthn morning, #perl6
08:59 yoleaux 08:15Z <sorear> jnthn: https://gist.github.com/sorear/5947073 # collected thoughts on Rakudo JVM interop sugar (not discussing strictly internal implementation details, only user-visible aspects)
08:59 tadzik good morning folks
08:59 moritz JimmyZ: looks like it, yes
08:59 moritz (or at least similar to what I had in mind)
08:59 JimmyZ moritz: or promise / deliver
08:59 tadzik pub-sub?
09:00 JimmyZ promise is better, methinks
09:01 * jnthn sometimes calls the thingy that does pub/sub an "event aggregator"
09:01 moritz pub-sub seems to cut it better, yes
09:01 moritz at $work we have a big-ish piece of software with some weird interdependencies
09:02 JimmyZ promise is better because of asynchronous
09:02 moritz for example if a person's address changes, we need to check if RIPE data sets need changes too
09:03 moritz so currently the code that handles addresses needs also be aware of RIPE objects. That's kinda ugly
09:03 moritz JimmyZ: in this case we actually need synchronous, because the listener might prevent an update
09:04 jnthn Meaning that everything a listener does needs to be transactional in some sense?
09:04 moritz yes
09:04 jnthn sorear++ # thorough write-up
09:05 moritz (performance is not a huge deal; it's an interactive application that doesn't do any batch processing, so if we spend 0.1s per update on verifying stuff, that's fine)
09:05 jnthn sorear: On invariant/covariant, does Java code itself not have the same problem, it's just that you find out about the ambiguity at compile time?
09:05 lizmat morning #perl6!
09:06 moritz \o lizmat
09:06 jnthn sorear: I think that it may be a bit too surprising of, given two java types where S <: T, their wrappers in Perl 6 land don't reflect that relation.
09:06 lizmat \o moritz!
09:06 jnthn s/of/if
09:06 jnthn o/ lizmat
09:09 JimmyZ moritz: which language are you using?
09:10 moritz JimmyZ: perl 5
09:13 JimmyZ moritz: https://github.com/stevan/promises-perl
09:14 jnthn But promises aren't really a pub/sub mechanism?
09:15 * jnthn doesn't see how they help a huge amount here...
09:15 iSlug joined #perl6
09:16 JimmyZ yes, it's not, just FYI.
09:16 JimmyZ :P
09:16 woolfy joined #perl6
09:24 * jnthn promises to give Perl 6 promises :)
09:25 masak fwiw, I don't draw a huge distinction between "Observer pattern" and "pub/sub".
09:26 jnthn I think there is an important one, though. With the observer you go directly to the thing doing the notifications and say, "add me to your subscriber list".
09:27 JimmyZ jnthn++, I really want clojure promise/future in Perl 6!!!
09:27 jnthn In an event aggregator / message bus / whatever we call it setup, you go to a central thing and say, "I want the event with this name/type". It's an extra level of decoupling.
09:27 masak jnthn: I can see that.
09:27 masak jnthn: I guess I never do it in the latter way, though.
09:28 jnthn Yeah, but you've seen loads of my code doing it :P
09:28 jnthn ISubscribeTo<T> :)
09:29 masak *nod* :)
09:29 masak ok, I buy the argument about "extra level of decoupling".
09:32 dalek roast: a238cfe | (Elizabeth Mattijsen)++ | S06-signature/introspection.t:
09:32 dalek roast: Fix comment
09:32 dalek roast: review: https://github.com/perl6/roast/commit/a238cfee74
09:35 iSlug joined #perl6
09:37 dalek roast: 84d1d91 | (Elizabeth Mattijsen)++ | S12-methods/lvalue.t:
09:37 dalek roast: Fix comment
09:37 dalek roast: review: https://github.com/perl6/roast/commit/84d1d91c70
09:48 eternaleye joined #perl6
10:18 fhelmberger joined #perl6
10:32 lizmat jnthn: trying to add trait_mod for "is default", but cannot seem the right type of invoker for this to add to traits.pm
10:32 lizmat or should it be added to BOOTSTRAP ?
10:32 grondilu joined #perl6
10:32 grondilu rn: say <foo bar>.comb.elems
10:32 camelia rakudo 93f30e, niecza v24-86-g39ab531: OUTPUT«7␤»
10:33 lizmat 7 characters of the joined list?
10:33 moritz lizmat: is the problem to get the signature right?
10:33 lizmat yes
10:33 grondilu rn: say ['foo', 'bar'].comb.elems
10:33 camelia rakudo 93f30e, niecza v24-86-g39ab531: OUTPUT«7␤»
10:33 lizmat rn: say ['foo', 'bar'].comb
10:33 camelia rakudo 93f30e, niecza v24-86-g39ab531: OUTPUT«f o o   b a r␤»
10:34 grondilu I guess that's the semantic for List.comb
10:34 jnthn lizmat: We don't implement variable traits yet.
10:34 moritz I had a bit of code that added them partially for my attempts to do 'is export' on variables
10:35 jnthn grondilu: .comb operates on a String
10:35 lizmat jnthn: I thought you'd said it would simply be a matter of adding an multi trait_mod:<is>(Any:D $container, :$default!) {
10:35 lizmat $container.set_default($default);
10:35 lizmat }
10:35 * grondilu was wondering what List.comb was exactly, while he was looking at http://rosettacode.org/wiki/Letter_frequency#Perl_6
10:35 moritz certainly not Any:D
10:35 moritz rather Mu
10:35 lizmat moritz: tried that, didn't work
10:35 jnthn lizmat: Yes, it will be once we actually have variable traits in place :P
10:35 jnthn We need something cleverer than just passing the container itself.
10:35 jnthn We need a bit more context.
10:36 jnthn Otherwise it will be impossible to implement things like "my IO $var will leave { .close } .= new;"
10:36 arnsholt Semi-random question: If I set up a trait_mod:<is> to do "class Foo { has $.stuff is flurble; }", what kind of object will my multi trait_mod:<is>($stuff, :$flurble!) get as its first argument?
10:36 jnthn Attribute
10:37 jnthn There are some examples of this one in traits.pm :)
10:37 arnsholt Oh, goody
10:37 lizmat ok, this feels like I'm getting in too deep for my level of comprehension
10:37 arnsholt And examples, even better!
10:37 jnthn lizmat: I suspect the answer is going to be some kind of VariableDecl object.
10:38 arnsholt I think I want to use that kind of thing for inlined/non-inlined structs and arrays in NativeCall
10:38 jnthn lizmat: I dunno quite what it should be called.
10:38 lizmat ContainerDecl ?
10:38 jnthn Well, attributes involve containers too...
10:39 lizmat I mean, we already have a "default" attribute in the ContainerDescription object
10:39 jnthn *nod*
10:43 lizmat ok, I'll hold this train of thought for a later time, instead I'll add some todo tests
10:43 jnthn *nod*
10:43 jnthn Perhaps I can put it in this evening...
10:43 arnsholt Developing a branch non-publically is interesting, a propos nothing. I think I'm going to have to resist the temptation to rebase it *too* much before I push it ^_^
10:44 jnthn All your rebase are belong to you until you push... :)
10:44 arnsholt Quite. The temptation to hide all intial mistakes is great indeed =)
10:46 lizmat jnthn: that would be great, but please don't let me interrupt your flow wrt the JVM effort
10:46 jnthn lizmat: Well, we're already well past the 95% spectest target I had for the July release... :P
10:47 jnthn lizmat: Plus it's nice to do improvements that help Rakudo everywhere as well as Rakudo on JVM :)
10:47 lizmat that's true  :-)
10:48 masak grondilu: but in that code .comb is not run on a List, but on its elements. hence the »
10:57 grondilu masak: that's because it's a new code I've just been adding
10:58 grondilu former code was (my %count){$_}++ for lines.comb;
11:01 jnthn It's one of .categorize or .classify do that idiomaticer?
11:01 jnthn *Doesn't
11:02 masak grondilu: that just looks wrong/untested to me.
11:03 masak grondilu: at the very least, it relies on the stringification of the List that lines() outputs.
11:03 grondilu lines».comb?
11:03 masak right.
11:03 masak but why does the author insist on first breaking up into lines and only then into characters?
11:03 grondilu doesn't lines always return a list of strings?
11:04 masak rn: say "foo".lines.^name
11:04 camelia rakudo 93f30e: OUTPUT«List␤»
11:04 camelia ..niecza v24-86-g39ab531: OUTPUT«Array␤»
11:04 masak yes, seems so.
11:04 grondilu masak: because you want to count characters?
11:05 grondilu oh, I guess you meant we could write bag slurp.comb
11:05 * grondilu tends to use lines everytime he wants to read $*IN
11:06 grondilu but with slurp you'll get the linefeeds
11:10 masak grondilu: you'll get the linefeeds, just like you'd get spaces and tabs and '.' and '-' and other characters you may not be interested in counting.
11:13 salv0 joined #perl6
11:25 lizmat n: my $a is default(42)
11:25 camelia niecza v24-86-g39ab531: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Trait default not available on variables at /tmp/XaDbIeDyF1 line 1 (EOF):â�¤------> [32mmy $a is default(42)[33mâ��[31m<EOL>[0mâ�¤â�¤Potential difficulties:â�¤  $a is declared but not used at /tmp/XaDbIeDyF1 line 1:â�¤------> [32mm…
11:25 lizmat .oO( need to fudge niecza "is default" tests )
11:27 masak oh, that reminds me of my idea for subtype defaults.
11:28 daxim jnthn, xeno left a comment last week on your jvm progress blog entry to ask something
11:28 yoleaux 29 Jun 2013 20:35Z <raiph> daxim: is that about my weird "divided we fall"?
11:30 daxim .tell raiph I have no context
11:30 yoleaux daxim: I'll pass your message to raiph.
11:31 eternaleye joined #perl6
11:33 moritz now raiph won't have any context either when receiving the message 'I have no context'
11:33 lizmat jnthn: given "my $a = 1", what would be the quickest way to get at the ContainerDescription?
11:37 ecocode joined #perl6
11:42 eternaleye joined #perl6
11:42 arnsholt Jonathan Worthington: "architectural mastermind" =D
11:45 masak mwhahaha
11:47 arnsholt My thoughts exactly =D
11:49 * moritz found it quite fittin
11:49 moritz g
11:52 arnsholt Yeah, it's a very good fit. But it's a very amusing turn of phrase as well. I liked it =)
11:52 masak "mastermind" makes me think of http://www.imdb.com/title/tt1001526/
11:53 arnsholt Exactly! =D
11:54 jnthn daxim: ah, I must missed the email notifying me somebody had left a comment somehow...
11:54 * jnthn will reply later on today
11:55 jnthn lizmat: It's an attribute on Scalar, so nqp::getattr would allow access to it
11:57 arnsholt jnthn: I think I'm going to add another op for native calls: cannativecall (or something like that). That way we can fail at least a bit gracefully if something doesn't work out, and tests related to it in the NQP test suite (forthcoming) can skip
11:59 konundra joined #perl6
12:01 daxim masak, I expected a halle berry filmification of the hasbro board game.  my SON, I AM DISAPOINT knows no bounds :(
12:02 masak daxim: oh. I know nothing about the board game, unfortunately.
12:03 daxim it's the castle puzzle in nethack.
12:03 daxim http://nethackwiki.com/wiki/Mastermind
12:04 masak hm :)
12:04 daxim perhaps next masakism can have a challenge to implement a solver
12:06 masak perhaps :)
12:06 masak I like implementing games.
12:08 futurechimp joined #perl6
12:09 masak futurechimp: hello, and welcome to the future.
12:09 masak :)
12:09 masak we're hard at work distributing it more evenly.
12:12 futurechimp hi masak, thanks for the welcome. I'm a Ruby and Scala programmer, just curious about Perl6's status, so I thought I'd come hang out for a bit.
12:13 masak nice!
12:14 masak yes, hanging out is encouraged. :)
12:14 SmokeMachine joined #perl6
12:15 moritz wow, rakudo-jvm takes onl 38s to parse the setting on $desktop
12:15 moritz *only
12:15 dalek roast: 1a0d5d1 | (Elizabeth Mattijsen)++ | S02-names/is_default.t:
12:15 dalek roast: Some tests for "is default" on scalars
12:15 dalek roast: review: https://github.com/perl6/roast/commit/1a0d5d1bb5
12:15 SmokeMachine joined #perl6
12:15 arnsholt moritz: Oh, nice!
12:16 moritz but 'make spectest' makes all tests scroll past very fast, allw ith 'Non-zero exit status: 2 Parse errors: No plan found in TAP output' :(
12:16 moritz any idea what that is about?
12:18 moritz oh, File::Slurp missing
12:19 clkao hychen: /win 12
12:20 masak Access Control Error: can't tell someone else to switch windows in irssi.
12:25 dalek rakudo/nom: f45f221 | (Elizabeth Mattijsen)++ | t/spectest.data:
12:25 dalek rakudo/nom: Add "is default" tests to roast
12:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f45f221282
12:25 dalek nqp: b5d98d9 | moritz++ | tools/jvm/eval-client.pl:
12:25 dalek nqp: Stop using File::Slurp
12:25 dalek nqp:
12:25 dalek nqp: it's not a core module, and more importantly, the error
12:25 dalek nqp: message sucks when it's missing (because the TAP harness
12:25 dalek nqp: swallows it up by default).
12:25 dalek nqp: review: https://github.com/perl6/nqp/commit/b5d98d9819
12:27 lizmat moritz: any particular reason why you just have line 12 say "return <$IN>" and forger about the rest of the lines??  it would save one time copying of the contents of the file slurped
12:27 lizmat *forget
12:28 lizmat and the file would be auto-closed anyway
12:30 ajr joined #perl6
12:31 moritz lizmat: not really
12:31 moritz but since the files being read there are much smaller than 1kb, I see no reasons for optimizations
12:32 daxim http://act.yapc.eu/ye2013/talk/4945   # trolololol
12:33 FROGGS >.<
12:33 FROGGS well, the audience will tell him/her
12:33 timotimo well, hopefully?
12:33 timotimo maybe mst sits in the next room and can speak up or something :P
12:34 masak I think the people expressing that kind of opinion have a right to do so.
12:34 FROGGS well, mst could throw his ol' crutch or so :P
12:35 FROGGS masak: they have
12:35 masak orthogonally, I think it's a stupid opinion.
12:35 masak especially the name/numbering.
12:35 masak but also other things about it.
12:35 daxim wow that one's EVAN BETTAR   http://act.yapc.eu/ye2013/talk/4943
12:35 FROGGS but it sounds a bit like "just ship perl5 next time with moose in core"
12:35 masak daxim: that one was discussed a week or so ago.
12:35 moritz are those talks approved?
12:36 daxim no
12:36 * moritz wonders why people are so obsessed with putting stuff in p5 core
12:37 FROGGS moritz: because everything gets more awesome when somebody puts it in core
12:37 lizmat well, at least p5-mop seems to be revived
12:37 lizmat and that *would* put Moose in the core, literally
12:37 moritz p5-mop is something that actually makes sense in core :-)
12:37 moritz lizmat: not as far as I understand (but my understanding might be way off)
12:38 lizmat well, put the hooks for Moose into the core, is maybe more accurate
12:38 FROGGS my question is more: does this end up in a 99.9% compatible Perl 5 or will this be a dialect then?
12:39 lizmat p5-mop?  should not be a dialect
12:40 FROGGS maybe a 'use mop' pragma makes sense
12:40 masak lizmat: probably more (but still not completely accurate) to say that it'd put Class::MOP (Moose's underpinnings) in core.
12:40 lizmat that's what I meant with "hooks"  :-)
12:41 lizmat actually, I forgot what the hooks were called  :-)
12:43 dayangkun joined #perl6
12:44 woolfy1 joined #perl6
12:47 [Coke] .tell colomon here's a bug for you: https://gist.github.com/coke/5948500
12:47 yoleaux [Coke]: I'll pass your message to colomon.
12:48 FROGGS [Coke]: that is jakudo?
12:50 FROGGS hmm, Isee
12:51 FROGGS it doesnt like the 1e-5, this works: say (123.456789).round(0.00001)
12:52 daxim .tell raiph promoted to cult leader, eh?
12:52 yoleaux daxim: I'll pass your message to raiph.
12:54 masak daxim: what in the world are you two talking about?
12:56 daxim I'm talking about <http://perlmonks.org/?node_id=1040306> in which he engaged in dialog that earned him a new signature
12:57 rjbs comp.lang.perl7.die.die.die
12:58 daxim I recognise that reference
12:58 [Coke] FROGGS: aye. only failure in that file.
12:58 lizmat std: my $h = {}[Int,Str]
12:58 [Coke] rjbs++
12:59 camelia std 85cf51d: OUTPUT«ok 00:00 46m␤»
12:59 lizmat rn: my $h = {}[Int,Str]
12:59 camelia rakudo 93f30e: OUTPUT«Parameter '' requires an instance, but a type object was passed␤  in method Bridge at src/gen/CORE.setting:3554␤  in sub infix:<<> at src/gen/CORE.setting:3478␤  in sub infix:<<> at src/gen/CORE.setting:3324␤  in method postcircumfix:<[ ]> at src/gen/CORE.setting:1…
12:59 camelia ..niecza v24-86-g39ab531: OUTPUT«Potential difficulties:â�¤  $h is declared but not used at /tmp/kwpdSH16mq line 1:â�¤------> [32mmy [33mâ��[31m$h = {}[Int,Str][0mâ�¤â�¤Unhandled exception: Cannot unbox a BigInteger from an object of repr P6opaqueâ�¤  at <unknown> line 0 (ExitRunloop @ 0) â�¤  at /…
12:59 lizmat wonder whether that syntax could be used as a shortcut for my $h= Hash[Int,Str].new
13:00 moritz please don't
13:00 moritz { } already has enough (or too many, depending on your POV) meanings
13:01 lizmat std: my $h = [Int,Str]{}
13:01 camelia std 85cf51d: OUTPUT«ok 00:00 46m␤»
13:01 lizmat fair enough  :-)
13:02 mstefanko joined #perl6
13:02 lizmat looking at Hash.perl, making sure it will serialize typed hashes correctly
13:03 jnthn why not just  my Int %h{Str};
13:03 jnthn Unless you explicitly want it in a scalar...
13:05 lizmat r: (my Int %{Str}=a=>1).say  # too bad that doesn't work
13:05 camelia rakudo 93f30e: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Unsupported use of %{Str}; in Perl 6 please use %Strâ�¤at /tmp/PwINW6Ga4b:1â�¤------> [32m(my Int %{Str}[33mâ��[31m=a=>1).say  # too bad that doesn't work[0mâ�¤Â»
13:05 [Coke] jnthn: Buf/encode look like one of the bigger gaps left.
13:06 FROGGS jnthn: btw, how do I detect if an arg passed to nqp::sprintf is a bigint? its REPR is P6opaque and nqp:isbig_I doesnt seem to work well (NullPointerException)
13:07 jnthn FROGGS: Yes, I suggested that we stash a function somewhere in hllsym like we do with sprintf, that lets us register a type as being a bigint type
13:07 jnthn FROGGS: Then just call that from somewhere in BOOTSTRAP, or the setting.
13:08 FROGGS jnthn: an nqp::sprintf_I ?
13:08 jnthn no
13:08 jnthn doens't need to be an op for now
13:08 jnthn can just nqp::gethllsym('nqp', 'sprintf_bigint_reg')(Int); or so
13:09 FROGGS okay, I think I understand
13:10 lizmat jnthn: I'm puzzled by "    multi method perl(Hash:D \SELF:) { nqp::iscont(SELF)"  How can nqp::iscont(SELF) ever return true?
13:10 PacoAir joined #perl6
13:10 Pleiades` joined #perl6
13:11 jnthn r: say nqp::iscont(my %h); say nqp::iscont({})
13:11 camelia rakudo f45f22: OUTPUT«0␤1␤»
13:12 lizmat r: my %h=a=>1; say %h.perl # then why isn't this stringified with {} ?
13:12 camelia rakudo f45f22: OUTPUT«("a" => 1).hash␤»
13:12 PacoAir joined #perl6
13:13 lizmat sorry, I read that wrong
13:19 xilo joined #perl6
13:24 timotimo i'm wondering if a fast path for X on range objects would be a good thing to make?
13:24 timotimo given that the visit_nodes_cross benchmark is so utterly slow for rakudo
13:25 timotimo hm, that's not actually quite right; the for version isn't very much faster
13:26 espent joined #perl6
13:26 lizmat smells like po to me
13:26 timotimo although if there are range objects, it *could* use while loops with native integers which about 3x faster
13:26 timotimo yeah, i guess you're right.
13:26 lizmat do we have native integers then?
13:26 lizmat apart from the specification of them|?
13:27 moritz sure
13:27 moritz r: my int $x = 42; say $x
13:27 camelia rakudo f45f22: OUTPUT«42␤»
13:27 timotimo yeah and the jvm likes them a lot
13:27 timotimo even on nqp
13:28 espent left #perl6
13:32 daniel-s_ joined #perl6
13:34 mikemol joined #perl6
13:35 * [Coke] yawns.
13:35 lizmat r: my int $a; $a++ for (^100000)  # well, not where it matters
13:35 camelia rakudo f45f22: OUTPUT«Cannot modify an immutable value␤  in sub postfix:<++> at src/gen/CORE.setting:3615␤  in sub postfix:<++> at src/gen/CORE.setting:2066␤  in block  at /tmp/bwU6asfKWc:1␤␤»
13:35 timotimo yeah, the ++ operator doesn't work on natives yet
13:35 timotimo r: my int $a; $a = $a + 1 for (^100000)
13:35 camelia rakudo f45f22:  ( no output )
13:35 timotimo neither do any of the OP= forms :(
13:35 timotimo r: my int $a; $a = $a + 1 for (^1000000); say $a;
13:36 camelia rakudo f45f22: OUTPUT«(timeout)»
13:36 timotimo r: my int $a; $a = $a + 1 for (^500000); say $a;
13:36 camelia rakudo f45f22: OUTPUT«(timeout)»
13:36 timotimo r: my int $a; $a = $a + 1 for (^250000); say $a;
13:36 timotimo come on, don't give me that, camelia :(
13:36 camelia rakudo f45f22: OUTPUT«250000␤»
13:36 timotimo ah, there we go
13:36 timotimo r: my $a = 0; $a++ for (^250000); say $a;
13:36 camelia rakudo f45f22: OUTPUT«250000␤»
13:37 timotimo well, the difference is not big enough apparently ...
13:37 lizmat fwiw, my int $a=0; $a = $a + 1 for (^100000) benchmarks 40% slower than its Int counterpart
13:37 timotimo but once jnthn makes the jvm compile-time dispatch for native types work, there'll be a big difference
13:37 timotimo oh? wow.
13:38 moritz lizmat: you're mostly benchmarking 'for', not native ints
13:38 timotimo oh, it should be better with a while loop then?
13:38 moritz try something like   my int $a = 0; $a = $a + 1 while $a < 100_000;
13:40 timotimo anyway, i guess i'll drop the X optimisation for now
13:42 timotimo ah, range used to have an optimized path for int/num which is now ifdef-parrot'd
13:42 raiph joined #perl6
13:43 timotimo that does seem like something i could maybe do
13:46 jnthn There's a JVM-optimized path below it
13:47 timotimo i don't see it; is it in some branch?
13:47 jnthn no, it's one of the things I did that improved the benchmark results
13:48 jnthn It's there, right below the Q:PIR version
13:48 jnthn #?if !parrot
13:48 timotimo oh, that's optimized?
13:48 crab2313 joined #perl6
13:48 timotimo i don't have the same version as you it seems
13:48 timotimo hold on
13:48 timotimo haha, i was stuck on the jvm-support branch
13:48 timotimo that's quite silly
13:49 timotimo ah yes, now i do see it
13:49 [Coke] jnthn: I got really close on shell-with-env-vars, and ended up getting stuck on an unwind exception.
13:49 timotimo moving on :)
13:49 [Coke] https://gist.github.com/coke/5944808 , if you have a sec.
13:50 [Coke] (dies on the iter() call)
13:52 jnthn [Coke]: You're passing a Perl 6 Hash in there, while iter wants a lower level hash
13:52 timotimo i think i'll look at pypy's benchmarks and port some of those over; they are mostly (exclusively?) non-micro benchmarks
13:53 [Coke] jnthn: ah. Any suggestions on how to either get the lower level hash, or how to iterate over a perl6 hash in java?
13:53 jnthn [Coke]: you can pull out the underlying storage by doing something like nqp::getattr(%*ENV, EnumMap, '$!storage') or so
13:53 [Coke] (pointers to code most welcome.)
13:54 [Coke] Danke.
13:54 BenGoldberg joined #perl6
13:56 btyler joined #perl6
13:56 thou joined #perl6
13:56 skids joined #perl6
13:58 sergot hi o/
13:59 [Coke] jnthn: I really feel like I'm poking around in the dark here.
13:59 pmurias joined #perl6
13:59 [Coke] (Just fyi. I'm not saying this needs fixing from rakudo/jvm)
13:59 dalek nqp: 063e151 | (Pawel Murias)++ | t/nqp/68-associative-for.t:
13:59 dalek nqp: Add test for iterating over a hash.
13:59 dalek nqp: review: https://github.com/perl6/nqp/commit/063e15103b
14:00 pmurias hi
14:00 pmurias jnthn: nqp::iterval(...) is the expected way to get the value part of a pair?
14:01 jnthn pmurias: It's the low level way
14:01 jnthn pmurias: Used in the NQP MOP. Once the NQP setting is loaded, we can set up something higher level.
14:01 jnthn So that there's something to call $_.key and $_.value one
14:01 jnthn *on
14:02 pmurias so the test should test both forms?
14:02 jnthn Yes, though maybe some existing test covers the hash iteratin already...
14:03 pmurias I'm afraid not
14:04 jnthn :)
14:04 jnthn pmurias++ # improving NQP test suite :)
14:04 pmurias I discovered that hash iteratin was missing from rakudo-js while debugging ClassHOW.attributes ;)
14:05 jnthn ;)
14:08 timotimo does the fannkuch benchmark sound like something that would be nice to have?
14:08 timotimo hm, i'd have to build permutations :|
14:11 timotimo oh! turning a list of probabilities into a list of cumulatives seems like the perfect use case for triangle reduce!
14:12 GlitchMr http://jjinux.blogspot.com/2008/09/python-programmmers-perspective-on-c.html
14:12 GlitchMr for i in itertools.islice(itertools.count(123), 5):
14:12 GlitchMr print i
14:12 GlitchMr I like how short it looks in Perl 6 - for (123..Inf)[^5] { .say }
14:12 timotimo r: my @probs = 0.27, 0.12, 0.12, 0.27, 0.02 xx 11; my @cumul = [\+] @probs; say @cumul
14:12 camelia rakudo f45f22: OUTPUT«0.27 0.39 0.51 0.78 0.8 0.82 0.84 0.86 0.88 0.9 0.92 0.94 0.96 0.98 1␤»
14:12 timotimo 9 lines of code in the python example for the same concept :3
14:14 dalek nqp: 8e3a39e | (Pawel Murias)++ | t/nqp/68-associative-for.t:
14:14 dalek nqp: Test both using ops and methods to get the key/value while iterating a hash.
14:14 dalek nqp: review: https://github.com/perl6/nqp/commit/8e3a39ecd0
14:16 [Coke] jnthn: where are "iterkey_s" and friends defined?
14:17 [Coke] oh. in the file I'm using. :P
14:17 moritz src/vm/parrot/QAST/Operations.nqp
14:17 moritz and src/vm/jvm/QAST/Compiler.nqp
14:18 [Coke] moritz: src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java is where I found it. Danke.
14:19 timotimo meh, these benchmarks are all quite long and have next to no comments and apparently also the shortest variable names they could come up with ...
14:21 dalek rakudo/nom: 6933c1d | (Elizabeth Mattijsen)++ | src/core/Hash.pm:
14:21 dalek rakudo/nom: Make sure .perl work correctly for typed hashes
14:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6933c1d36d
14:21 futurechimp left #perl6
14:26 dalek rakudo-js: 7325198 | (Pawel Murias)++ | / (3 files):
14:26 dalek rakudo-js: Specific the setting as a code_ref attribute. Do not use the version of a code_ref with statics and setting inline.
14:26 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/7325198b1c
14:26 dalek rakudo-js: 8d7235a | (Pawel Murias)++ | src/QAST/Compiler/JavaScript.nqp:
14:26 dalek rakudo-js: Do not generate old style code refs. That should clean up the output significantly.
14:26 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/8d7235aaa4
14:26 dalek rakudo-js: 22eedfc | (Pawel Murias)++ | nqp:
14:26 dalek rakudo-js: Update nqp submodule version.
14:26 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/22eedfc9fc
14:26 dalek rakudo-js: 5697e3c | (Pawel Murias)++ | / (3 files):
14:26 dalek rakudo-js: Implement iterating with a for over a hash. Pass test 68.
14:26 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/5697e3c43f
14:29 ajr joined #perl6
14:29 [Coke] jnthn: more stupid questions: how do I get the string value of a key in a six hash? iterval() returns the value itself, which is not amenable to .toString() - it looks like iterval(blah, tc).get_str(tc) is wrong. (get another unwind exception). do I need iterval(thing, tc).native_s ?
14:31 [Coke] ... no, that's not how native_s works. :P
14:32 jnthn iterkey_s
14:32 [Coke] jnthn: ... but I'm trying to get the value?
14:32 jnthn Oh...
14:33 jnthn iterval(blah, tc).get_str(tc) shoulda been right :S
14:33 [Coke] there is not iterval_s
14:33 [Coke] *no
14:33 [Coke] jnthn: yes, that generates an unwind exception.
14:33 jnthn You can always trying calling smart_stringify I guess...
14:34 [Coke] hokay.
14:38 lizmat has anyone ever felt the need for a "nis_deeply" function in Test.pm ?
14:38 lizmat aka, making sure that two structures are *not* equal
14:39 lizmat and would anybody mind if I added that to Test.pm ?
14:39 [Coke] what test do you need it for?
14:40 lizmat I want to make sure that a typed hash with a certain structure is not the same as an untyped hash with the same structure
14:40 lizmat aka: are my %h=a=>1 and my Int %a=a=>1 different
14:41 lizmat I guess you could argue this is more a test of "eqv"
14:42 lizmat r: say (my %h=a=>1) eqv (my Int %a=a=>1)
14:42 camelia rakudo f45f22: OUTPUT«True␤»
14:43 * lizmat looks at the spec of eqv
14:43 [Coke] jnthn: org.perl6.nqp.runtime.UnwindException
14:43 jnthn OK, then no idea, but you should never really see that exception.
14:45 [Coke] it's happening in two tests in roast already.
14:46 lizmat r: say (my %h=a=>1) eqv (my Int %a=a=>"1")
14:46 camelia rakudo f45f22: OUTPUT«Nominal type check failed for parameter '$x'; expected Int but got Str instead␤  in method STORE_AT_KEY at src/gen/CORE.setting:7390␤  in method STORE at src/gen/CORE.setting:7268␤  in block  at /tmp/DVaTUzwyss:1␤␤»
14:46 lizmat r: say (my %h=a=>"1") eqv (my Int %a=a=>1)
14:46 camelia rakudo f45f22: OUTPUT«False␤»
14:47 [Coke] jnthn: https://gist.github.com/coke/5949477 is the loop where the exception is thrown (happens on line 4)
14:48 [Coke] (note that I'm actually catching Exception in my method and printing the stacktrace (before I did that, the program would just stop)
14:51 bluescreen10 joined #perl6
14:52 dalek roast: 6127abe | (Elizabeth Mattijsen)++ | S32-hash/perl.t:
14:52 dalek roast: Added tests for .perl on hashes, explicitely typed or not
14:52 dalek roast: review: https://github.com/perl6/roast/commit/6127abe701
15:04 dalek rakudo/nom: 577a030 | (Elizabeth Mattijsen)++ | t/spectest.data:
15:04 dalek rakudo/nom: Added Hash.perl tests to roast
15:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/577a030812
15:07 FROGGS perl6-jvm -e 'say 1e-5'# 9.999999999999999E-6
15:07 FROGGS nqp-jvm -e 'say(1e-5)' # 1.0E-5
15:08 FROGGS jnthn: do you have an idea where I can start hunting that down?
15:08 eternaleye joined #perl6
15:08 moritz FROGGS: it's probably just a different default stringification
15:11 jnthn FROGGS: Probably looking at what Num.Str is doing... :)
15:12 FROGGS perl6-jvm: nqp::p6box_s(nqp::unbox_n(self))
15:13 jnthn hm, that hsould be using coerce_is or so, same as NQP does.
15:13 FROGGS aha!
15:17 lizmat r: use Test; is_deeply (my Int %h=a=>1), (my %h=a=>1), "should this be ok or not?"
15:17 camelia rakudo 577a03: OUTPUT«Potential difficulties:â�¤    Redeclaration of symbol %hâ�¤    at /tmp/La8sWNQqbT:1â�¤    ------> [32mTest; is_deeply (my Int %h=a=>1), (my %h[33mâ��[31m=a=>1), "should this be ok or not?"[0mâ�¤ok 1 - should this be ok or not?â�¤Â»
15:17 lizmat r: use Test; is_deeply (my Int %h=a=>1), (my %i=a=>1), "should this be ok or not?"
15:17 camelia rakudo 577a03: OUTPUT«ok 1 - should this be ok or not?␤»
15:18 dalek perl6-examples: 08824dd | (Konrad Borowski)++ | euler/prob005-glitchmr.pl:
15:18 dalek perl6-examples: Remove useless spaces around `..`
15:18 dalek perl6-examples:
15:18 dalek perl6-examples: I never liked these with ranges.
15:18 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/08824dd75c
15:19 lizmat in other words: is "is_deeply" simply a wrapper around "eqv", or should it do more ?
15:19 lizmat if the former, shouldn't it be called "is_eqv" then?
15:19 FROGGS jnthn: I cant just call coerce_i2s(1e-5) from perl6 land, right?
15:20 lizmat .oO( wonder what masak's, TimToady's or pmichaud's thoughts would be on that )
15:21 jnthn FROGGS: Um, i2s is *integer* to string, not number..
15:21 jnthn FROGGS: But that's what's generated automatically in the code if we need to get from one to the other.
15:24 kaare_ joined #perl6
15:27 * [Coke] hurls http://www.feorag.com/assets_c/2013/07/Eurobeer-map-919.html for jnthn
15:28 FROGGS Cwrw # *lol*
15:29 FROGGS ./perl6 -e 'say 1e-5' # %_ <-- hehe, that is not what I wanted *g*
15:30 jnthn [Coke]++
15:30 jnthn Cwrw...how on earth is that said?
15:31 dalek rakudo/nom: 8bd124f | (Elizabeth Mattijsen)++ | src/core/Array.pm:
15:31 dalek rakudo/nom: Make sure .perl works correctly on Array's with constrained values
15:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8bd124f7ff
15:31 FROGGS I can say it after a lot of it
15:31 jnthn Yeah...I see a bootstrapping problem.
15:31 nwc10 jnthn: w is a vowel, and I think it's pronnounced a bit like a short oo or u
15:32 jnthn ooh, didn't know Belorusian spells it differently to Russian and Ukrainian. :)
15:32 lizmat beer can be ordered non-verbally
15:32 lizmat so not a really big bootstrapping problem :-)
15:33 Moukeddar joined #perl6
15:33 jnthn .oO( I got drunk in Wales while implementing continuations, and now I have cwrwtines... )
15:35 lizmat r: Array[Int,Str].new # is this error message LTA enough to do something about ?
15:35 camelia rakudo 577a03: OUTPUT«===SORRY!===␤Too many positional parameters passed; got 3 but expected 2␤»
15:35 jnthn Should probably say something nicer.
15:35 jnthn At least mention it's to do with an array...
15:36 lizmat yup, my thoughts exactly
15:36 lizmat any problem making PARAMETRIZE_TYPE a mutil method ?
15:36 lizmat *multi
15:36 jnthn Well, that may be special-casing rather than fixing the general issue...
15:37 jnthn r: role R { }; R[Int]
15:37 camelia rakudo 577a03: OUTPUT«None of the parametric role variants for 'R' matched the arguments supplied.␤Cannot call ''; none of these signatures match:␤:(Mu )␤current instr.: 'specialize' pc 23746 (src/gen/perl6-metamodel.pir:10970) (src/gen/Metamodel.nqp:2143)␤called from Sub 'specialize' p…
15:37 jnthn oh wait, it works different to that...
15:39 lizmat -ll-exception told me it was the call to PARAMETRIZE_TYPE that was bombing
15:39 jnthn Yeah
15:39 masak [Coke]: nice! I especially like how the Vatican holds the Romance flag high in a country that seemingly has succumbed to Germanic influence.
15:40 masak also interesting that Icelandic has the Germanic one, whereas Scandinavia and the Baltics have the Saxon one.
15:40 masak er, the Anglic* one
15:40 masak I bet there are interesting trading/historical reasons.
15:40 masak &
15:42 masak (that French has abandoned its Romance roots isn't surprising. French was always the outlier among the Romance languages.) :)
15:46 lizmat n: Array[Int].new(1, 2)
15:46 camelia niecza v24-86-g39ab531: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤  at Builtins.InvokeSub (Niecza.P6any obj, Niecza.Variable[] pos) [0x00000] in <filename unknown>:0 ␤  at Niecza.Kernel.ToComposable (Niecza.STable arg…
15:46 lizmat n: Hash[Int,Str].new
15:46 camelia niecza v24-86-g39ab531: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤  at Builtins.InvokeSub (Niecza.P6any obj, Niecza.Variable[] pos) [0x00000] in <filename unknown>:0 ␤  at Niecza.Kernel.ToComposable (Niecza.STable arg…
15:49 dalek roast: 4753065 | (Elizabeth Mattijsen)++ | S32-array/perl.t:
15:49 dalek roast: Add tests for Array.perl, for both implicit and explicitly constrained values
15:49 dalek roast: review: https://github.com/perl6/roast/commit/47530651b9
15:49 dalek roast: ca24260 | (Elizabeth Mattijsen)++ | S32-hash/perl.t:
15:49 dalek roast: Fudge pugs/niecza properly for typed hashes
15:49 dalek roast: review: https://github.com/perl6/roast/commit/ca24260eb3
15:52 raiph joined #perl6
15:53 FROGGS jnthn: that call to coerce_n2s happens when I do nqp::p6box_s(nqp::unbox_n( ?
15:54 * FROGGS feels like just having opposite pieces of a huge puzzle
15:55 jnthn FROGGS: Should be
15:55 FROGGS k, thanks
15:55 jnthn FROGGS: Oh...maybe the NQP say(...) one goes through a different codepath.
15:56 jnthn FROGGS: It may do its thing inside the smart_stringify method.
15:56 FROGGS hmmm, I've sen that one...
15:56 jnthn FROGGS: 'cus say takes a slurpy, so the thing gets boxed.
16:07 dalek rakudo/nom: 2329a2c | (Elizabeth Mattijsen)++ | src/core/Hash.pm:
16:07 dalek rakudo/nom: Hopefully create a smaller / faster .perl
16:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2329a2ca84
16:07 dalek rakudo/nom: 5b9d80b | (Elizabeth Mattijsen)++ | t/spectest.data:
16:07 dalek rakudo/nom: Add Array.perl tests to roast
16:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5b9d80b610
16:13 FROGGS[mobile] joined #perl6
16:15 TimToady sorear: the identification of java.lang.String / Str would seem to preclude doing NFG; Java strings are closer to (but probably not identical to) a postulated Uni type (with NFC/NFD constrained types) that does codepoints rather than graphemes
16:16 jnthn They don't even do codepoints, they do 16-bit thingies.
16:16 TimToady s/probably// :)
16:17 jnthn ;)
16:17 TimToady I dont want people to say, Oh, Perl 6 is great, except on the JVM, where they adopted the JVMs string model
16:18 TimToady season with ' to taste
16:18 jnthn Aye, but I didn't really want to delay getting JVM support at all on doing an NFG implementation ;)
16:18 [Coke] I think the odds of that sentence being spoken are pretty low!
16:18 TimToady my ' key is getting gimpy...
16:18 baest joined #perl6
16:18 jnthn I agree it's where things should end up.
16:19 TimToady from past experience, it's an easy place to get stuck in a false minimum
16:19 diakopter TimToady: don't worry; be happy
16:19 diakopter NFG'll get there
16:20 TimToady .u ????
16:20 yoleaux U+1F605 SMILING FACE WITH OPEN MOUTH AND COLD SWEAT [So] (????)
16:21 diakopter *guffaw*
16:21 jnthn ...ouch!
16:22 jnthn I suspect Moar is in the best place to get NFG stuff sorted out first.
16:23 TimToady just don't wanna end up with different semantic models on different VMs
16:23 TimToady any estimates on whether NFG *can* be implemented efficiently on JVM?
16:24 diakopter ... someone should spec Uni.....
16:24 * TimToady looks around, whistling...
16:26 diakopter TimToady: for all I know, NFG strings on MoarVM would be more efficient (space *and* time) than java.lang.String
16:26 diakopter well, definitely space.
16:26 jnthn TimToady: I suspect it's the kind of code that JITs well.
16:26 jnthn I mean, it's mostly dealing with integers ;)
16:26 diakopter er.
16:27 diakopter I meant JVM
16:27 diakopter NFG strings on JVM
16:27 TimToady .u ????
16:27 yoleaux U+1F60E SMILING FACE WITH SUNGLASSES [So] (????)
16:27 diakopter except that pesky "one of every codepoint" string
16:28 diakopter that one probably wouldn't take up less space.
16:28 jnthn Well, if we do something ropey then we can do better on concat than we can with Java strings, no doubt.
16:28 diakopter also pre-hashing and runtime de-duping all strings less than a certain size
16:29 jnthn The reason I say "nail it on Moar first" is kinda 'cus that approach worked well for 6model: get the design right on one VM, then port it elsewhere.
16:29 diakopter .oO( after trying on .NET and then Parrot ... )
16:30 ajr joined #perl6
16:30 jnthn The .NET one was the "one to throw away". The Parrot 6model impl is fairly right.
16:31 lizmat is this proper English? "Can only specify type-constrainted Hash with [ValueType] or [ValueType,KeyType]"
16:31 lizmat fixing a LTA error message for Hash[Foo,Bar,Baz]
16:32 diakopter perhaps slightly better would be to move "only" to after "with"
16:32 diakopter if it's a legal document
16:32 jnthn I'm...not sure Rakudo errors count as a legal document... :P
16:32 jnthn .oO( I hope to never see one on a legal document... )
16:32 diakopter er, before "with"
16:33 jnthn "Can only type-constrain a Hash with [ValueType] or ..." is an alternative
16:33 diakopter "you agree to UTF-8 reading error forthwith"
16:34 salv0 joined #perl6
16:34 TimToady "...provided at least one of the following is true:"
16:34 FROGGS joined #perl6
16:34 TimToady "All parts of this error message are severable..."
16:35 TimToady "This rotten error message shall be enforced under the laws of the State of Denmark."
16:36 lizmat TiimToady: any suggestions on fixing:
16:36 lizmat r: $/=Any; say $/.chars
16:36 camelia rakudo 5b9d80: OUTPUT«No such method 'chars' for invocant of type 'Any'␤  in block  at /tmp/p5k5lEo8RK:1␤␤»
16:36 lizmat which is effectively what happens if we didn't have a match
16:36 TimToady $/ is supposed to go to Nil when not matching
16:36 diakopter r: $/.chars
16:36 camelia rakudo 5b9d80: OUTPUT«No such method 'chars' for invocant of type 'Any'␤  in block  at /tmp/ech_WS_tiH:1␤␤»
16:36 TimToady r: say Nil.chars
16:36 camelia rakudo 5b9d80: OUTPUT«0␤»
16:37 TimToady hmm
16:37 lizmat but, as soon as you "assign" Nil to $/
16:37 lizmat you will get any, at least if we're going by the spec
16:37 TimToady bind instead?
16:37 diakopter r: $/:=Nil; say $/.chars
16:37 camelia rakudo 5b9d80: OUTPUT«0␤»
16:37 TimToady arguable that should warn
16:38 TimToady n: say Nil.chars
16:38 camelia niecza v24-86-g39ab531: OUTPUT«Nil␤»
16:38 TimToady that's more correct
16:38 TimToady n: say Nil.chars + 0
16:38 camelia niecza v24-86-g39ab531: OUTPUT«Use of Nil as a number␤  at /home/p6eval/niecza/lib/CORE.setting line 1384 (warn @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 474 (Nil.Numeric @ 4) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/vnP2W8GpPc line 1 (mainline @ 3) ␤  at /home/p6e…
16:39 TimToady n: say Nil.foo.bar.baz
16:39 camelia niecza v24-86-g39ab531: OUTPUT«Nil␤»
16:39 diakopter r: say Nil.die
16:39 camelia rakudo 5b9d80: OUTPUT«No such method 'die' for invocant of type 'Nil'␤  in block  at /tmp/U06dp2Vjbn:1␤␤»
16:39 diakopter n: say Nil.die
16:39 camelia niecza v24-86-g39ab531: OUTPUT«Nil␤»
16:40 lizmat r: $/ := Nil; "abc" ~~ m/a/'  # binding to Nil is not really an option, as it will other matches fail
16:40 camelia rakudo 5b9d80: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a rowâ�¤at /tmp/OK4bXieszt:1â�¤------> [32m$/ := Nil; "abc" ~~ m/a/[33mâ��[31m'  # binding to Nil is not really an opt[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤        state…
16:40 lizmat r: $/ := Nil; "abc" ~~ m/a/  # binding to Nil is not really an option, as it will other matches fail
16:40 camelia rakudo 5b9d80: OUTPUT«Cannot modify an immutable value␤  in block  at /tmp/_t3oI72GTu:1␤␤»
16:41 diakopter I think it'd be neat if camelia attempted to run every IRC message on rakudo/niecza, and if it parsed, send the outputs
16:41 diakopter er, nm. that would... nm.
16:42 * TimToady wonders whether we should bifurcate Nil into two concepts, 1) you expected something and got nothing, and 2) you want to send a message to a container to set itself to default
16:42 lizmat I think we need something like that
16:42 TimToady anyway, why is $/ defaulting to Any?  why not default it to Nil?
16:42 lizmat because otherwise it's going to be vary hard to work with $/ after failed matched
16:43 diakopter C# has "default"
16:43 lizmat that would be another approach indeed
16:43 lizmat r: my Nil $a=1 # but would this then not be a problem?
16:43 camelia rakudo 5b9d80: OUTPUT«Type check failed in assignment to '$a'; expected 'Nil' but got 'Int'␤  in block  at /tmp/ZH9spxTLkl:1␤␤»
16:44 lizmat I guess we want:
16:44 lizmat my $a is default(Nil)
16:44 TimToady r: my Mu $slash is default(Nil); $slash = Nil; say $slash
16:44 camelia rakudo 5b9d80: OUTPUT«Nil␤»
16:44 TimToady btw, Nil.foo.bar.baz returning Nil is specced at S02:2271
16:45 lizmat r: my Mu $slash is default(Nil); $slash = 5; say $slash
16:45 camelia rakudo 5b9d80: OUTPUT«5␤»
16:45 lizmat r: my Mu $slash is default(Nil); $slash = 5; say $slash; undefine $slash; say $slash
16:45 camelia rakudo 5b9d80: OUTPUT«5␤Nil␤»
16:45 * lizmat is confused: "is default" is working already ?
16:46 * TimToady thought you checked it in
16:46 diakopter $a .= default    // public static class MyExtensionMethods { public static T Default<T>(this T input) { return default(T); } }
16:47 TimToady hey, this is a family channel, watch the cussing
16:48 SamuraiJack joined #perl6
16:48 * TimToady is more thinking about the placeholder Nil when used to indicate a missing positional argument
16:48 TimToady .= won't work for that
16:49 lizmat r: my Int $a is default(42); say $a; $a=Nil; say $a
16:49 camelia rakudo 5b9d80: OUTPUT«(Int)␤(Int)␤»
16:49 rindolf joined #perl6
16:49 woosley joined #perl6
16:50 TimToady obviously a rakudobug; where's masak++ when you need him? :)
16:50 lizmat r: my Mu $slash; $slash = Nil; say $slash
16:50 camelia rakudo 5b9d80: OUTPUT«Nil␤»
16:50 lizmat is default just doesn't work yet
16:51 lizmat the fact that it now seems to work, is because the Nil -> default value translation is not done for Mu values
16:51 lizmat r: my Int $slash; $slash = Nil; say $slash
16:51 camelia rakudo 5b9d80: OUTPUT«(Int)␤»
16:52 lizmat changing that fails basically the whole regex engine, and that's what I'm trying to fix
16:53 lizmat see https://gist.github.com/lizmat/5941715 for an overview of failing tests in that case
16:53 lizmat so the way forward to me is:
16:53 lizmat 1. make is default work
16:54 lizmat 2. make sure $/ and friends are default Nil
16:54 lizmat 3. fixup any other problems in the regex engine
16:57 lizmat jnthn said he might be inspired to do 1. tonight
16:58 jnthn Aye, though that was before he learend he has to get up at 6:30am tomorrow :/
16:58 lizmat :-(
16:59 jnthn Though, trying to sleep much earlier than usual will be useless.
17:01 lizmat you can sleep on the train on Wed ?
17:02 jnthn Well, my train on Wed from Copenhagen isn't until 13:something, meaning I don't have to leave home until round midday :)
17:03 jnthn Nice how the cheaper tickets and more sleep matched up for once... :)
17:03 lizmat isn't it great to have Sweden connected like that
17:03 jnthn Yes! Oh my, before the bridge...musta been "fun"
17:04 lizmat I remember it: it was no fun, especially with any kind of not excellent weather
17:05 jnthn The prelim YAPC::EU schedule so far has me up against masak! o.O
17:06 lizmat *sigh*
17:06 TimToady we will force people to listen to Perl 6 regardless of which track they choose! :)
17:06 jnthn ;)
17:07 lizmat some people might interprete that schedule as forcing the Hallway++ track
17:07 TimToady we can have representation there too...
17:07 jnthn oh, there's a third option ;)
17:08 jnthn I'm not sure how 6-y masak's talk is, either ;)
17:11 dalek rakudo/nom: c52f245 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
17:11 dalek rakudo/nom: Make PARAMETRIZE_TYPE errors a bit less LTA
17:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c52f2453d0
17:12 jnthn fetching dinner &
17:16 [Coke] skips like "1 skipped: Underlying Parrot problem" should probably just be skipped on rakudo.parrot now.
17:16 [Coke] (new in today's run)
17:16 [Coke] todo PASSED: %p doesn't yet throw exception
17:16 diakopter r: my Int $a is default(42); say $a; $a:=Nil; say $a
17:17 camelia rakudo 5b9d80: OUTPUT«(Int)␤Type check failed in binding; expected 'Int' but got 'Nil'␤  in block  at /tmp/xQ_JhdPV8r:1␤␤»
17:17 [Coke] ^^ from rakudo.jvm
17:17 diakopter hunh. so it's the Scalar that has the type?
17:18 moritz what else could have it?
17:18 lizmat class Perl6::Metamodel::ContainerDescriptor {
17:18 lizmat has     $!of;
17:19 spider-mario joined #perl6
17:20 [Coke] integration/advent2009-day02.t is now aborting in rakudo.jvm instead of failing a test.
17:23 konundra joined #perl6
17:26 [Coke] ah, sprintf related, will no doubt clear up soon.
17:28 FROGGS joined #perl6
17:31 domidumont joined #perl6
17:31 lizmat cycling and dinner&
17:40 bluescreen10 joined #perl6
17:42 BenGoldberg r: my Int $a is default("foo"); say($a)
17:42 camelia rakudo 5b9d80: OUTPUT«(Int)␤»
17:42 BenGoldberg r: my int $a is default(4); say($a)
17:42 camelia rakudo 5b9d80: OUTPUT«0␤»
17:43 BenGoldberg Why is "is default" ignored?
17:46 timotimo not yet completely implemented
17:48 * timotimo is probably going to hold a 10-minute lightning talk about functional programming in perl6 at a functional programming meetup
17:56 diakopter r: my Int $a is default(die die die);
17:56 camelia rakudo 5b9d80: OUTPUT«===SORRY!===␤␤»
17:56 diakopter r: my Int $a is default(die *);
17:56 camelia rakudo 5b9d80: OUTPUT«===SORRY!===␤Whatever<-497475241>␤»
17:56 diakopter o_O
17:56 diakopter n: my Int $a is default(die *);
17:56 camelia niecza v24-86-g39ab531: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Trait default not available on variables at /tmp/uhSVSLTGz8 line 1:â�¤------> [32mmy Int $a is default(die *)[33mâ��[31m;[0mâ�¤â�¤Potential difficulties:â�¤  $a is declared but not used at /tmp/uhSVSLTGz8 line 1:â�¤------> [32mmy I…
17:59 Targen joined #perl6
18:07 dalek perl6-roast-data: 56a191e | coke++ | / (5 files):
18:07 dalek perl6-roast-data: today (automated commit)
18:07 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/56a191e37d
18:08 [Coke] 97% even.
18:08 [Coke] rakudo.parrot has had 2 failures for 3 days
18:09 timotimo why is the rakudo.jvm column moved off to the side?
18:09 [Coke] because I forgot to correct it.
18:09 timotimo ah :)
18:10 [Coke] updates to https://github.com/coke/perl6-roast-data/blob/master/cull to fix it welcome.
18:10 * timotimo doesn't touch perl5 code :P
18:13 ajr joined #perl6
18:16 [Coke] besides, it's a CSV file. spacing is irrelevant! ;)
18:17 jnthn r: say 26190 - 25405
18:17 camelia rakudo c52f24: OUTPUT«785␤»
18:19 btyler_ joined #perl6
18:24 moritz r: say (26190 - 25405) / 26190
18:24 camelia rakudo c52f24: OUTPUT«0.029973␤»
18:27 [Coke] wordcase would get us a dozen. sprintf still has a little way to go.
18:27 [Coke] Buf/encode, also.
18:28 [Coke] r: say 26190*.98-25405
18:28 camelia rakudo c52f24: OUTPUT«261.2␤»
18:29 [Coke] diakopter++ for hosting a new testing box, btw!
18:34 [Coke] https://gist.github.com/coke/5879701 updated. big wins would be: "Unhandled file open mode 'rp'", "Method 'postcircumfix:<( )>' not found", "Calling 'f4' will never work with argument types"
18:35 colomon joined #perl6
18:35 [Coke] 'rp' is implementing q:x - I can probably handle that if I can build off shell()
18:36 colomon \o
18:36 yoleaux 12:47Z <[Coke]> colomon: here's a bug for you: https://gist.github.com/coke/5948500
18:36 FROGGS hi colomon
18:36 colomon hi FROGGS
18:36 colomon fixed several bugs, discovered several more.  :\
18:37 colomon [Coke]: I'm not sure that's actually a bug...
18:37 [Coke] colomon: still some sprintf failures in roast - can you make those go away? ;)
18:37 colomon [Coke]: not right away, for sure!
18:37 [Coke] colomon: perhaps a bug in the test, then?
18:38 colomon [Coke]: I'm not really sure one way or another
18:38 sergot What is the laziest way to add something (Str) before each item in an Array?
18:38 timotimo zip it?
18:38 colomon sergot: "something" X~ @array
18:38 sergot colomon++ thanks ! :)
18:39 colomon FROGGS: if you haven't commited anything on sprintf if, I will do mine and push them
18:39 [Coke] r: say "0x" X~ <dead beef>
18:39 camelia rakudo c52f24: OUTPUT«0xdead 0xbeef␤»
18:40 FROGGS colomon: your patch was the last commit
18:47 stevan_ joined #perl6
18:48 [Coke] r: say for 1
18:48 camelia rakudo c52f24: OUTPUT«␤»
18:49 [Coke] t/spec/S16-io/bare-say.t - this test is broken, assumes hash ordering.
18:49 [Coke] (last one in the file)
18:50 [Coke] also, no reason for it to be an is_run test, I don't think. I think an in-memory run would be fine.
18:50 [Coke] RT #74822
18:51 [Coke] (ah, yes, has to be is_run due to say)
18:52 dalek nqp: 30a0f0f | (Solomon Foster)++ | t/jvm/06-sprintf.t:
18:52 dalek nqp: 14 more tests for %e, %f, %g.
18:52 dalek nqp: review: https://github.com/perl6/nqp/commit/30a0f0fb18
18:52 [Coke] but all it needs to verify is that there is only one trailing newline.
18:57 autumn joined #perl6
18:58 colomon joined #perl6
19:05 dalek nqp: 5d68e65 | (Solomon Foster)++ | src/HLL/sprintf.nqp:
19:05 dalek nqp: Incorporate FROGGS++'s changes.
19:05 dalek nqp: review: https://github.com/perl6/nqp/commit/5d68e6514a
19:30 colomon I will continue working on %e, %f, %g.  If anyone has useful NQP suggestions for converting a float to a big int, please e-mail me.  ;)
19:31 colomon id @gmail.com
19:36 dalek nqp: f4db52b | (Tobias Leich)++ | t/jvm/06-sprintf.t:
19:36 dalek nqp: fixed padding in test for %g's precision
19:36 dalek nqp: review: https://github.com/perl6/nqp/commit/f4db52bd77
20:03 FROGGS I dont think I can fix (1e-5).Str or bigint stuff for srpintf :/
20:03 FROGGS sprintf*
20:07 geekosaur .oO { sierpinskf? }
20:07 FROGGS :o)
20:08 * [Coke] is reminded he never got further than 2 tests in rosetta code suite.
20:11 masak o/
20:12 timotimo señor print the first
20:12 FROGGS .u 讁
20:12 yoleaux No characters found
20:14 [Coke] .u crazy.
20:14 yoleaux U+002E FULL STOP [Po] (.)
20:14 yoleaux U+0061 LATIN SMALL LETTER A [Ll] (a)
20:14 yoleaux U+0063 LATIN SMALL LETTER C [Ll] (c)
20:20 FROGGS nqp-jvm bug: ./nqp -e 'say(nqp::sprintf("%#x", [nqp::ord("\x28b21")]))' # 0x8b21
20:20 FROGGS (and it is not sprintf's fault)
20:25 _jaldhar joined #perl6
20:30 jaldhar_ joined #perl6
20:35 masak rn: say (1e-5).Str
20:35 camelia niecza v24-86-g39ab531: OUTPUT«1.0000000000000006E-05␤»
20:35 camelia ..rakudo c52f24: OUTPUT«1e-05␤»
20:36 * masak .oO( <niecza> ...close enough. )
20:36 FROGGS at least there is a 1 on the left and a 5 on the right
20:36 masak :)
20:37 * lizmat is back and sitting on the terrace  :-)
20:41 woolfy joined #perl6
20:52 masak "the terrace" sounds like a really nice place to do some coding in the summer. :)
20:53 jnthn The one time I lived in a place with a balcony, it kinda was nice for that :)
20:53 jnthn Apart from I coded on the balcony in the winter :)
20:54 masak yes, but you have infamously strange temperature preferences :P
20:54 jnthn No, it's just that winter there is almost like Swedish summer :P
20:54 * masak has a balcony, but does far too little coding on it, he realizes
20:55 lizmat r: 1/0
20:55 camelia rakudo c52f24:  ( no output )
20:56 jnthn r: say 1/0
20:56 camelia rakudo c52f24: OUTPUT«Divide by zero␤  in method sink at src/gen/CORE.setting:10543␤  in method BUILDALL at src/gen/CORE.setting:822␤  in method bless at src/gen/CORE.setting:763␤  in method new at src/gen/CORE.setting:748␤  in method new at src/gen/CORE.setting:746␤  in method floor at…
20:56 lizmat r: 1/0 # isn't this supposed to be sink context?
20:56 camelia rakudo c52f24:  ( no output )
20:56 jnthn r: 1/0; 'x'
20:56 camelia rakudo c52f24:  ( no output )
20:56 jnthn Hm
20:56 lizmat and shouldn't that throw?
20:56 jnthn yeah
20:56 jnthn I'm a bit surprised.
20:56 lizmat I was as well  :-)
20:56 [Coke] is 1/0 an exception or a failure?
20:56 [Coke] r: my $a = 1/0; 'x'; say $a;
20:56 lizmat r: say (1/0).WHAT
20:56 camelia rakudo c52f24: OUTPUT«WARNINGS:␤Useless use of constant string "x" in sink context (line 1)␤Divide by zero␤  in method sink at src/gen/CORE.setting:10543␤  in method BUILDALL at src/gen/CORE.setting:822␤  in method bless at src/gen/CORE.setting:763␤  in method new at src/gen/CORE.settin…
20:56 camelia rakudo c52f24: OUTPUT«(Rat)␤»
20:57 lizmat I smell a Rat
20:57 jnthn Oh...
20:57 [Coke] r: say ((1/0)+0).WHAT
20:57 camelia rakudo c52f24: OUTPUT«(Rat)␤»
20:57 jnthn r: 1 / 0
20:57 camelia rakudo c52f24:  ( no output )
20:57 lizmat r: say (1 / 0).WHAT
20:57 jnthn r: my $x = 0; 1 / $x
20:57 camelia rakudo c52f24: OUTPUT«(Rat)␤»
20:57 camelia rakudo c52f24:  ( no output )
21:03 lue r: (1/0).perl.say
21:03 camelia rakudo c52f24: OUTPUT«<1/0>␤»
21:03 lue r: <1/0>.WHAT.say
21:03 camelia rakudo c52f24: OUTPUT«(Str)␤»
21:17 dayangkun joined #perl6
21:17 lizmat jnthn: is "for $trait_list {" at line 1920 of Actions.nqp the place where "is default" for scalar would actually be set?
21:20 jnthn lizmat: Well, that's the attribute case.
21:20 dalek nqp: 53a9e36 | (Tobias Leich)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
21:20 dalek nqp: dont use (char) typecast for codepoints
21:20 dalek nqp:
21:20 dalek nqp: This typecast does not support codepoints > 0x10000. This fixes
21:20 dalek nqp: at least one test in roast.
21:20 dalek nqp: review: https://github.com/perl6/nqp/commit/53a9e36212
21:20 jnthn FROGGS: ooh, good catch!
21:20 FROGGS :o)
21:21 jnthn I'm not gonna get to the var trait stuff tonight :(
21:21 jnthn I may manage it tomorrow.
21:21 jnthn Or I have a long train journey on Wednesday :)
21:21 masak :)
21:22 * jnthn had to do a little reading for his emergency assignment tomorrow...and should attempt not to stay up too late :)
21:22 lizmat okidoki
21:22 lizmat then sleep well and have a fruitful emergency assignment tomorrow!
21:22 jnthn Well, got an email to finish before I sleep... :)
21:23 jnthn Will be about for another 20 mins :)
21:26 lizmat [Coke]: "rakudo.parrot has had 2 failures for 3 days"  I cannot reproduce those errors
21:34 masak lizmat: there are some known platform-dependent and maybe even stochastic failures in some test files.
21:34 masak now that I think about it, I'm not sure why we haven't isolated them and put them in quarantine.
21:38 konundra joined #perl6
21:46 lizmat I'n not even sure *which* particular test gives an error in those files
21:47 woolfy1 joined #perl6
21:48 [Coke] these are new failures, masak.
21:48 [Coke] lizmat: one moment.
21:49 woolfy2 joined #perl6
21:52 [Coke] ... nope. I can't repro them either. weird.
21:52 [Coke] (on feather, where they happened in the first place, using the last built rakudo.parrot)
21:56 * masak glances meaningfully at his use of the word "stochastic"
21:57 lizmat you seem determined to put your point across ;-)
21:57 jnthn .oO( sto-kass-tic )
21:59 * masak .oO( random puns )
22:02 Gruber joined #perl6
22:05 jferrero joined #perl6
22:05 genehack joined #perl6
22:11 [Coke] is there a mnemonic for remembering which side is which in a smartmatch?
22:13 jnthn The right side knows what's right, and so is in charge of the matching :P
22:13 jnthn 'night, #perl6
22:13 masak 'night, jnthn!
22:14 stevan_ joined #perl6
22:14 * masak .oO( the left side only gets what's left, after the matching is already finished ) :)
22:15 TimToady std: (my Int %{Str}=a=>1).say
22:15 camelia std 85cf51d: OUTPUT«ok 00:00 45m␤»
22:15 diakopter heh.
22:16 TimToady r: (anon Int %your_ad_here{Str}=a=>1).say
22:16 diakopter TimToady: is that adapter less noisy
22:16 camelia rakudo c52f24: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤anon scoped variables not yet implemented. Sorry. â�¤at /tmp/6T8bIsiSl0:1â�¤------> [32m(anon Int %your_ad_here{Str}[33mâ��[31m=a=>1).say[0mâ�¤    expecting any of:â�¤        postfixâ�¤        statement endâ�¤        statement modifierâ�¤        â€¦
22:16 TimToady aww
22:16 TimToady diakopter: yes, thanks
22:18 diakopter I also have the 65W version (much smaller/lighter)
22:19 TimToady my computer bag has wheels, so I don't have to optimize for that :)
22:22 woolfy joined #perl6
22:23 lizmat gnight #perl6!
22:23 TimToady o/
22:27 diakopter TimToady: do you have some thoughts on Uni?
22:27 diakopter I seem to have lost our irclogs when we chatted a year ago or so on it
22:29 TimToady just that, when we do switch Str to NFG semantics, we'll need some way to name the codepoint based types when we really mean those
22:29 TimToady much as we currently spec Buf and utf8 types
22:30 masak 'night, #perl6
22:30 TimToady \o
22:31 TimToady what JVM offers currently is more like buf16 and utf16 than it is like Uni
22:33 TimToady Uni is, in my mind, free of surrogate pairs
22:33 TimToady and ord("\0") == 0
22:34 TimToady well, maybe it comes out that way in Java too
22:34 TimToady don't remember the exact form of the null braindamage
22:35 TimToady I guess it was in their UTF-8, iirc
22:45 skids joined #perl6
22:52 arlinius joined #perl6
23:20 fridim_ joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo