Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-03-07

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:09 mberends sleep &
00:10 xabbu42 joined #perl6
00:13 TimToady Grimnir_: Well, we try to be good, and very often that's the same as nice, but sometimes not.
00:14 Grimnir_ sorry, I wasn't referring to the whole channel. you were good, I got nice help and all :)
00:18 TimToady what I mean is, well, let me give you an example.  I once had a stomach tumor removed.  This was simultaneously Very Good, and Not Nice.
00:19 TimToady sometimes the job of a community is for us to grind the rough spots off of each other, and that can also be Very Good, and Not Nice.
00:19 quietfanatic_ joined #perl6
00:21 Grimnir_ I'm sorry if I have been a bit too rough. I just got excited about perl6 from the speak
00:21 Tene k23z__: You're right that, say, asking for python help in here would be offtopic, but asking about how Perl 6 compares to python certainly isn't offtopic.  No programming language stands completely alone, especially one still under development like Perl 6.
00:21 Tene k23z__: It's very important to look at other languages for inspiration, to see what they've done right or wrong, to inform our decisions.
00:21 Tene Failure to learn from the mistakes of others is a very unfortunate failure to make. :)
00:22 TimToady Grimnir_: we all need to simultaneously learn more sensitivity while growing thicker skins, which is a neat trick.  :)
00:22 Grimnir_ TimToady: and I'm sorry to hear about the tumor, but great to hear that it was removed
00:23 Tene much better than having it inserted. :)
00:23 TimToady my tummy had bitrot
00:24 TimToady but it's been more than six years now, so I'm probably fine, for some definition not including sanity
00:26 Grimnir_ that reminds me... I was taking a CS course about concurrency programming (CSP to be specific) and they had made a CSP-implementation in Python. the problem with python is their GIL (Grand Interpreter Lock) which made it impossible to run different threads at the same time (multitasking but not running in parallel). if someone made a CSP-implementation in Perl6, would it be possible to run different threads on different processors?
00:27 Tene Grimnir_: Perl 6 has a lot of ideas about concurrency. Unfortunately, the implementations haven't caught up yet.
00:27 Tene Grimnir_: Parrot, which Rakudo is built on, has significant problems (nonfunctional) in its threading capabilities.
00:28 Grimnir_ Tene: ok
00:28 * Tene offlines to actually get some work done on Rakudo.
00:31 colomon joined #perl6
00:31 SmokeMachine joined #perl6
00:38 TimToady Grimnir_: we don't have a GIL, and try to define everything as lexically as possible so they they aren't shared between threads unless absolutely necessary
00:38 TimToady we also try to make as many things immutable values as practically possible, which also allows lockless sharing
00:38 Grimnir_ nice
00:38 TimToady well, that's the theory
00:39 Grimnir_ so message passing could work nicely
00:39 TimToady that's the intent
00:39 TimToady one of the intents
00:39 Grimnir_ I will be looking forward to that :)
00:39 TimToady and, in fact, feed operators, ==> and <==, are basically message queues
00:40 TimToady object pipes
00:40 Grimnir_ ooh
00:41 TimToady and I have some ideas about an object having a current owner as it gets passed around, which might help on the locking front as well
00:41 TimToady there's also the whole STM business, which is actually prototyped in pugs
00:41 [synth] joined #perl6
00:41 TimToady and might scale better than locking solutions, for some set of problems
00:42 Grimnir_ what's STM?
00:42 TimToady but mostly it's just about not baking serial assumptions into the language where it's not needed
00:42 TimToady software transactional memory
00:42 Grimnir_ aah, yeah
00:43 TimToady may also turn out to be a toy, we'll have to hedge our bets on that one.
00:43 * Tene feels a little bit grumpy about re-doing HLL interop again.
00:43 TimToady what we really need is Transactional Memory, not just the Software part
00:44 TimToady Tene: it's okay to feel grumpy over that.
00:46 TimToady Grimnir_: but we might be able to use a notion related to STM, which is that time can be virtual, and temporarily out of joint in a Heisenbergian way, as long as a transaction manager can find a consistent way to mesh all the changes
00:47 TimToady which is sort of another way about not caring about sync issues when you don't need to
00:48 Tene I don't feel so well... might just take a nap instead.
00:48 TimToady which is sort of the fundamental way p6 looks at all parallelism
00:48 TimToady I was out of sorts yesterday.
00:48 TimToady and naps are good.
00:48 Grimnir_ sounds interesting
00:48 TimToady I'm good at handwaving these things. :)
00:50 TimToady I just keep hoping that someone who really knows what they're doing picks up some of the cues and implements it all, and that we've designed things well enough to stay out of their way.
00:50 Grimnir_ hmm... that wouldn't be me :)
00:51 TimToady well, but you could be their First User.  :)
00:51 Grimnir_ that would be cool :=
00:51 Grimnir_ :)
00:51 Grimnir_ it would be nice if I could use perl for CSP-programming
00:51 k23z__ TimToady: I would like to write a wiki page on Perl6 on the transition from Perl -> Perl6 , what wiki should I write on ?
00:52 k23z__ I mean I want to start to write it and ask for advice after I write a bit some of it
00:52 TimToady sounds kinda more bloggy, but I'm not the expert on that kind of thing
00:53 TimToady but yeah, certainly one could start writing and then figure out where to poke it
00:53 k23z__ then I'll keep it in my private repo
00:53 k23z__ and will unveil when its consistent
00:54 broquaint joined #perl6
00:54 TimToady and thank you for developing a thicker skin earlier today :)
00:54 Grimnir_ is there a perl 6 syntax highlight for vim?
00:55 TimToady yeah, used to be in the pugs repo, but moved out to gitland somewhere
00:56 TimToady see the bottom of http://perl6.org/whatever/
00:57 Grimnir_ nice, thanks
00:58 k23z__ the one on github that alester wrote I think
00:59 payload joined #perl6
01:00 TimToady well, lotsa people wrote it
01:04 Grimnir_ is it illegal to have code before sub declarations?
01:04 TimToady no, unless the code is illegal :)
01:05 Grimnir_ bleh, I forgot a ;
01:05 TimToady do you mean call forward
01:05 TimToady ah, that would do it.
01:05 Grimnir_ it's incredible that I still happen to forget that bleeding semicolon :)
01:05 TimToady rakudo doesn't always give you a decent error on that particular error
01:06 TimToady std: my $x = 1␤sub foo {...}
01:06 p6eval std 29969: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/1YwjjmuKiQ line 2:␤------> [32m<BOL>[33m⏏[31msub foo {...}[0m␤    expecting any of:␤     POST␤   bracketed infix␤    infix or meta-infix␤      postfix␤        postfix_prefix_meta_operator␤       statement modifier
01:06 p6eval ..loop␤FAILED 00:01 108m␤»
01:06 TimToady that one could be better
01:06 TimToady I think p5 would conjecture a missing semicolon there
01:07 TimToady std: { 42 }␤{ 43}
01:07 p6eval std 29969: OUTPUT«ok 00:01 105m␤»
01:07 TimToady right
01:10 TimToady std: my $x = 1␤{ 42; }
01:10 p6eval std 29969: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/4bQaPyZno5 line 2:␤------> [32m<BOL>[33m⏏[31m{ 42; }[0m␤    expecting any of:␤    POST␤   bracketed infix␤    infix or meta-infix␤
01:10 p6eval ..postfix␤        postfix_p…
01:10 TimToady there, picks up that one
01:14 Tene k23z__: There's the Perl 6 wiki: http://www.perlfoundation.org/perl6/index.cgi
01:16 lue is there any sort of verbose command so seeing what fails/wins is easier?
01:22 Tene I don't know of a command to do that beyond just running the test files directly.
01:27 Tene okay, got some tea, waking up a bit.  Lemme look again.
01:30 Grimnir_ what's the syntax for "make a list of all elements in the list greater than $x"?
01:30 TimToady rakudo: say grep * > 5, ^10
01:30 p6eval rakudo 9a9450: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
01:31 TimToady rakudo: say grep { $_ > 5 }, ^10
01:31 p6eval rakudo 9a9450: OUTPUT«6789␤»
01:31 TimToady alpha: say grep * > 5, ^10
01:31 p6eval alpha 30e0ed: OUTPUT«6789␤»
01:31 TimToady that what you want?
01:32 Grimnir_ not exactly. actually I'm trying to make the quicksort example, but I can't find out
01:34 Grimnir_ what does "^10" mean?
01:34 pugssvn r29970 | lwall++ | [STD] speculate missing semicolon when ws between two terms crosses \n
01:34 TimToady same as 0 ..^ 10
01:34 Grimnir_ ah
01:35 TimToady well, grep { $_ > $pivot }, @list for that
01:36 TimToady should have a function for grepping into two lists somewhere
01:37 TimToady maybe classify, but probably unimplemented
01:37 Grimnir_ Nominal type check failed for parameter '@liste'; expected Positional but got Int insteadNominal type check failed for parameter '@liste'; expected Positional but got Int insteadNominal type check failed for parameter '@liste'; expected Positional but got Int insteadNominal type check failed for parameter '@liste'; expected Positional but got Int instead[A[A[A[A
01:37 Grimnir_ whoops
01:37 Grimnir_ sorry
01:37 Grimnir_ my terminal fucked
01:38 Tene perl6: my @list = 1..10; my @g = grep { $_ > 5 }, @list; say @g;
01:38 p6eval elf 29969: OUTPUT«Use of uninitialized value $_ in numeric gt (>) at (eval 124) line 4.␤Undefined subroutine &GLOBAL::grep called at (eval 124) line 4.␤ at ./elf_h line 5881␤»
01:38 p6eval ..pugs, rakudo 9a9450: OUTPUT«678910␤»
01:39 TimToady I guess we leave elf in there to make pugs and rakudo look good :)
01:39 lue elf: say "hi"
01:39 p6eval elf 29970: OUTPUT«hi␤»
01:39 lue elf: say 1..3
01:39 p6eval elf 29970: OUTPUT«123␤»
01:39 lue elf: say 1..*
01:39 p6eval elf 29970: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 125) line 3.␤ at ./elf_h line 5881␤»
01:40 lue how did it know what it was if it's undefined? :)
01:40 colomon joined #perl6
01:40 lue hey colomon o/
01:40 colomon \o
01:41 Grimnir_ as far as I recal, there was a more neat way to do it instead of using grep?
01:43 TimToady classify, as I mentioned above
01:43 snarkyboojum joined #perl6
01:44 TimToady but it's probably not quite right for a qsort partition
01:45 TimToady alpha: my @list = (1, 2, 3, 4); my (:@even, :@odd) := classify { $_ % 2 ?? 'odd' !! 'even' }, @list; say @even; say @odd
01:45 p6eval alpha 30e0ed: OUTPUT«rtype not set␤in Main (file <unknown>, line <unknown>)␤»
01:46 TimToady alpha: my @list = (1, 2, 3, 4); my (:@even, :@odd) := |classify { $_ % 2 ?? 'odd' !! 'even' }, @list; say @even; say @odd
01:46 p6eval alpha 30e0ed: OUTPUT«rtype not set␤in Main (file <unknown>, line <unknown>)␤»
01:46 TimToady ah well
01:47 TimToady alpha: say classify { $_ % 2 ?? 'odd' !! 'even' }, 1,2,3,4;
01:47 p6eval alpha 30e0ed: OUTPUT«Could not find non-existent sub classify␤in Main (file src/gen_setting.pm, line 324)␤»
01:47 * colomon is trying to figure out what happened here while he was at rehearsal...
01:48 quietfanatic alpha: my @list = (1, 2, 3, 4); {($^a % 2 ?? @^b !! @^c).push: $^a}.(@list, my @even, my @odd); say @even; say @odd
01:48 p6eval alpha 30e0ed: OUTPUT«␤1 2 3 4␤»
01:48 quietfanatic hmm
01:48 TimToady colomon: learning, we hope :)
01:48 quietfanatic alpha: my @list = (1, 2, 3, 4); {(($^a % 2) ?? @^b !! @^c).push: $^a}.(@list, my @even, my @odd); say @even; say @odd
01:48 p6eval alpha 30e0ed: OUTPUT«␤1 2 3 4␤»
01:49 quietfanatic alpha: my @list = (1, 2, 3, 4); {(($^a % 2) ?? @^b !! @^c).push: $^a}.(all(@list), my @even, my @odd); say @even; say @odd
01:49 p6eval alpha 30e0ed: OUTPUT«␤all(1, 2, 3, 4)␤»
01:49 quietfanatic :[
01:49 TimToady nice fangs
01:50 quietfanatic It's not autothreading over the block.
01:50 lue I would think you need to define $a...
01:50 Tene lue: classify would be a good function to write and/or test.
01:50 Tene Heh, there you are.
01:51 Tene I didn't notice you in the scrollback, so I thought you were AFK.
01:51 quietfanatic lue: the ^ in $^a makes it a placeholder parameter.
01:51 Tene I find myself reluctant to make significant changes here, remembering pmichaud as having strong opinions about how HLL library loading should be.
01:52 quietfanatic alpha: my @list = (1, 2, 3, 4); my @even; my @odd; @list.grep({push ($_ % 2 ?? @odd !! @even), $_}); say @even; say @odd
01:52 p6eval alpha 30e0ed: OUTPUT«24␤13␤»
01:52 lue And why does pmichaud matter? He's not the creator of rakudo or anything. :D </sarcasm>
01:55 quietfanatic alpha: sub classify (@a, &cond) {
01:55 p6eval alpha 30e0ed: OUTPUT«Unable to parse block; couldn't find final '}' at line 10, near ""␤in Main (file <unknown>, line <unknown>)␤»
01:55 quietfanatic whoops
01:56 quietfanatic alpha: sub classify (@a, &cond) {my %r; for @a {%r{&cond($_)} = $)}; return %r;}; say classify ((1, 2, 3, 4), {$_ % 2 ?? 'odd' !! 'even'});
01:56 p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near "= $)}; ret"␤in Main (file <unknown>, line <unknown>)␤»
01:56 quietfanatic alpha: sub classify (@a, &cond) {my %r; for @a {%r{&cond($_)} = $_}; return %r;}; say classify ((1, 2, 3, 4), {$_ % 2 ?? 'odd' !! 'even'});
01:56 p6eval alpha 30e0ed: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤in Main (file src/gen_setting.pm, line 324)␤»
01:56 quietfanatic alpha: sub classify (@a, &cond) {my %r; for @a {%r{&cond($_)} = $_}; return %r;}; say classify (@(1, 2, 3, 4), {$_ % 2 ?? 'odd' !! 'even'});
01:57 p6eval alpha 30e0ed: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤in Main (file src/gen_setting.pm, line 324)␤»
02:03 pugssvn r29971 | lwall++ | [STD] rearrange conditionals as to likelihood, remove redundant condition
02:08 lue rakudo: say 16**5
02:08 p6eval rakudo 9a9450: OUTPUT«1048576␤»
02:08 lue rakudo: say 16**6
02:08 p6eval rakudo 9a9450: OUTPUT«16777216␤»
02:10 lue And our total this hour..... $9780764571404 worth in bug fixes! Thanks for the donations! Our bot volunteers are here, waiting to receive YOUR bug reports!
02:11 quietfanatic That's more than the national debt!
02:12 quietfanatic wait, it's not.
02:12 colomon rakudo: (Q:PIR{%r = get_hll_global 'say'})(34)
02:12 p6eval rakudo 9a9450: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
02:12 lue (it's the barcode number I got off the back of TI-84 Plus Graphing Calculator for Dummies)
02:12 quietfanatic alpha: (Q:PIR{%r = get_hll_global 'say'})(34)
02:12 p6eval alpha 30e0ed: OUTPUT«34␤»
02:12 quietfanatic rakudo: (Q:PIR{%r = get_hll_global '&say'})(34)
02:12 p6eval rakudo 9a9450: OUTPUT«34␤»
02:12 quietfanatic Aha!
02:12 colomon quietfanatic: nice.
02:13 colomon rakudo: (Q:PIR{%r = get_hll_global '&infix:<&&>'})(4,5)
02:13 p6eval rakudo 9a9450: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
02:13 colomon rakudo: (Q:PIR{%r = get_hll_global '&infix:<+>'})(4,5)
02:13 p6eval rakudo 9a9450:  ( no output )
02:13 colomon rakudo: say (Q:PIR{%r = get_hll_global '&infix:<+>'})(4,5)
02:13 p6eval rakudo 9a9450: OUTPUT«9␤»
02:13 Hackathon And another conundrum solved. That's what happens, when you donate bug reports *large game show guy smile*
02:14 quietfanatic colomon: Having to do a symbolic lookup every time you call a meta op seems unwieldy to me.
02:14 * Hackathon --reset
02:14 colomon quietfanatic: first make it work... ;)
02:14 quietfanatic ay.
02:16 TimToady someone might optimize it in the next ten or twenty years
02:16 quietfanatic Especially for user-defined meta-op subs.  They'll expect to be passed the sub itself.
02:17 lue let's use SQL! Nothing bad has EVER happened to people who use SQL :)
02:19 lue I've heard of SQL injections, but that gives it antibodies (right?) :D
02:20 colomon rakudo; say pir::get_hll_global__SC("&infix:<+>")(3, 4)
02:20 colomon rakudo: say pir::get_hll_global__SC("&infix:<+>")(3, 4)
02:20 p6eval rakudo 9a9450: OUTPUT«The opcode 'get_hll_global_s_p' (get_hll_global<2>) was not found. Check the type and number of the arguments␤current instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 972 (compilers/pct/src/PCT/HLLCompiler.pir:538)␤»
02:21 colomon rakudo: say pir::get_hll_global__CS("&infix:<+>")(3, 4)
02:21 p6eval rakudo 9a9450: OUTPUT«7␤»
02:21 Grimnir_ how does an array with one element get treated? can it be interpreted as a scalar in a multi sub for instance? ( multi sub snot ($blah) { ... } ? )
02:22 lue Grimnir_: look
02:22 lue rakudo: my $a=(3,4,5,6); say $a
02:22 p6eval rakudo 9a9450: OUTPUT«3 4 5 6␤»
02:22 lue the magic(?) of 楽土
02:22 Grimnir_ so it doesn't really matter if you call it $a or @a?
02:22 TimToady rakudo stringifies its one argument
02:23 TimToady s/rakudo/say/
02:23 TimToady yes, it does
02:23 TimToady rakudo: my @a = 3,4,5,6; say @a
02:23 p6eval rakudo 9a9450: OUTPUT«3456␤»
02:23 TimToady notice the difference
02:24 lue When I first saw that, I was quite surprised at the leniency myself. I still don't fully understand the purpose, I just know it turns beginners' heads :)
02:24 Grimnir_ so what does "my $a = (2,3,4);" actually mean? what is $a?
02:25 lue rakudo: my $a=(2,3,4); say $a.WHAT
02:25 p6eval rakudo 9a9450: OUTPUT«Seq()␤»
02:25 TimToady it's a Seq, which is basically a readonly array.  but any array-ish thing, when stringified, puts ' ' between elements
02:25 TimToady but when you pass the elements as separate args to say, that doesn't happen
02:26 lue rakudo: say (2,3,4); say (2,3,4).WHAT
02:26 p6eval rakudo 9a9450: OUTPUT«234␤Parcel()␤»
02:28 Grimnir_ ok, I'm getting a bit confused here :)
02:29 Grimnir_ so there's also lists and arrays?
02:29 Grimnir_ alpha: (1,2,3).WHAT.say
02:29 p6eval alpha 30e0ed: OUTPUT«List()␤»
02:29 lue Don't worry, unless you plan on contributing to 楽土. Then you run.
02:29 lue :)
02:29 Grimnir_ rakudo: (1,2,3).WHAT.say
02:29 p6eval rakudo 9a9450: OUTPUT«␤»
02:30 Grimnir_ rakudo: say (1,2,3).WHAT
02:30 p6eval rakudo 9a9450: OUTPUT«Parcel()␤»
02:30 Grimnir_ hmm...
02:30 lue ...now THAT is an interesting error!
02:30 lue masakbot --report-bug --which="latest"
02:31 Grimnir_ alpha: say (1,2,3).WHAT
02:31 p6eval alpha 30e0ed: OUTPUT«List()␤»
02:32 lue don't forget, master is a rewriting of how it all works, to bring it close to STD.pm
02:32 lue rakudo: my List @a=(1,2,3); say @a.WHAT
02:32 p6eval rakudo 9a9450: OUTPUT«()␤»
02:32 lue hm
02:32 Grimnir_ is master the one to be preferred to use?
02:33 lue if you are of the bleeding edge/contributors, yes. If not, it's your choice. Both have features the other don't.
02:34 lue If you want laziness, use master. If you want to define your own operators, use alpha (right now). At this point, it depends on what you want :)
02:34 Grimnir_ I guess I just want to try out Perl 6 :)
02:35 TimToady don't we all
02:37 lue Grimnir_ if you want to contribute code to rakudo, then download the latest version thru git. If not, then go to the rakudo website and download the latest tarball.
02:37 Grimnir_ ok, I don't understand the difference between list, seq and array. I'm trying to make a quicksort routine with "pattern matching" with multi subs. how can I make a multi sub quicksort for one element? "sub quicksort ($elem) { ... }" ?
02:37 colomon sub quicksort (@array where {@array.elems == 1}) { ... }
02:38 Grimnir_ ooh, nice
02:38 TimToady sub quicksort ([$head])
02:38 colomon ooh, nicer.
02:38 Grimnir_ lue: so it's not a good idea to get the code from git if I only want to try it out?
02:38 quietfanatic rakudo: multi count (@list is copy) {@list.pop; return 1 + count(@list)}; multi count ($one) {return 1}; say count(3, 4, 5)
02:38 p6eval rakudo 9a9450: OUTPUT«No applicable candidates found to dispatch to for 'count'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
02:39 colomon (I'm still not used to jnthn's new tricks.)
02:39 lue (assistance requested from experts) It doesn't matter. (I really need assistance in answering; I'm a `beginner' myself)
02:39 quietfanatic rakudo: multi count (@list is copy) {@list.pop; return 1 + count(@list)}; multi count ($one) {return 1}; say count([3, 4, 5])
02:39 p6eval rakudo 9a9450: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
02:40 quietfanatic Doesn't work.
02:42 lue My recommendation is thru git. It's not at the point where a tarball is (IMO) the best option, because the git is updated every hour :)
02:43 Grimnir_ I can't get "multi sub quicksort ([$head])" to work
02:43 TimToady std: my $x = 1␤sub foo {...}
02:43 p6eval std 29971: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row (previous line missing its semicolon?) at /tmp/KSn7OvoapB line 2:␤------> [32m<BOL>[33m⏏[31msub foo {...}[0m␤    expecting any of:␤      POST␤   bracketed infix␤    infix or meta-infix␤      postfix␤
02:43 p6eval ..postfix_prefix_meta_operator␤       statement mod…
02:44 TimToady that's better
02:45 eternaleye joined #perl6
02:47 TimToady if you're passing a list as flat args, you just want ($head) vs ($head,*@tail)
02:50 colomon Seems to me I tried to write quicksort that way about eight months ago and it was a disaster...
02:50 colomon (flat args, I mean)
02:53 Tene http://use.perl.org/~Jonath​anWorthington/journal/40196 is relevant
02:54 lichtkind gut navht
02:54 lue night o/
02:54 lichtkind night lue
02:54 colomon \o
02:56 Tene Grimnir_: what are the sigs of the other multis?
02:56 Tene Grimnir_: are you using multi ([$head, *@tail]) {} ?
02:57 Tene Grimnir_: 'cos that's what I tried my first time doing that.  It won't work 'cos it's ambiguous, 'cos *@tail can be empty.
02:58 Tene if you really want to do it like that, though, try:
02:58 Tene multi sub qs([$pivot, *@list where { +@list > 0 }]) {
02:58 dalek rakudo: 3633cb8 | (Solomon Foster)++ | src/Perl6/Grammar.pm:
02:58 dalek rakudo: Add infix_prefix_meta_operator and !op to the grammar.
02:58 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​633cb8548190af19e4560098cb11578eb23533f
02:58 dalek rakudo: dee7104 | (Solomon Foster)++ | src/ (2 files):
02:58 dalek rakudo: First attempt to create an action for !op.
02:58 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​ee7104c27669016df820f92c1456d2e2903bef5
02:58 dalek rakudo: df80392 | (Solomon Foster)++ | src/ (3 files):
02:58 dalek rakudo: Change !op to generate an explicit call to an infix_prefix_meta_operator function.
02:58 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​f80392510ea0791326b9243672a354e5c165842
02:58 Tene which WFM
02:58 dalek rakudo: 19c36a8 | (Solomon Foster)++ | src/ (5 files):
02:58 dalek rakudo: Merge branch 'metanot'
02:58 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​9c36a847d2d3b864159b7ddf495dfbdafa8fbeb
02:58 Grimnir_ Tene: I use multi sub quicksort (@array)
02:59 Grimnir_ ok, so an array is always an array, no matter the size
02:59 Tene Yes.
03:00 Tene It's entirely possible there's a bug in the dispatcher.  You'll have to check with jnthn, who is likely busy with convention stuff or sleeping right now.
03:00 Tene http://use.perl.org/~Jonath​anWorthington/journal/40196 is jnthn's blog post talking about using multi subs and signature unpacking to implement quicksort.
03:00 Tene He uses the empty list as his base case, instead of the unary list.
03:00 TimToady that might be about alpha
03:01 Tene TimToady: Feb 19
03:02 lisppaste3 tene pasted "list-size-based dispatch and unpacking for Grimnir_" at http://paste.lisp.org/display/96038
03:04 * colomon wonders how long it is going to take pmichaud to explain to him where the !op implementation goes wrong.... because it will be easy to knock out a couple more metaops along the same lines...  :)
03:08 Tene okay, I think I know the order I'll sort this out in.
03:08 Tene Now to go socialize and forget it all before I get a chance to work on it.
03:11 Grimnir_ how do you push an element on an array?
03:11 Grimnir_ push @array, $elem ?
03:11 Tene or @array.push($elem)
03:11 Tene either
03:14 Grimnir_ hmm... can't get that example to work
03:15 Grimnir_ but later
03:15 Grimnir_ I'm going to bed now
03:15 Grimnir_ cheers
03:15 TimToady night
03:15 colomon o/
03:15 lue night o/
03:16 supernovus joined #perl6
03:17 dukeleto jnthn: nice to see that blizkost is getting some love
03:20 supernovus So, I'm planning to move my website over to Perl 6 in one week. Not sure how it'll go yet. It's hosted on a 256 MB RAM VPS, but I'm going to try anyway. In less than a week I've managed to make the Perl 6 version of my custom CMS support 90% of the front-end facing side of things for the website.
03:21 supernovus Oou, did I see Blizkost news?
03:21 lue you want to run a website on P6 (interesting concept)
03:21 lue ?
03:21 dukeleto supernovus: blizkost got updated to be working again, since parrot calling conventions changed
03:22 dukeleto supernovus: http://github.com/jnthn/blizkost/commits/master
03:22 supernovus lue: Yeah. My current website runs on a highly custom CMS written in non-Moose, non-strict Perl 5... I have rewritten the entire engine in Perl 6.
03:22 lue Cool. (so it actually works? Wow)
03:23 elmex joined #perl6
03:23 supernovus lue: Yeah, and it's fairly fast using SCGI. I do cheat a bit by pre-compiling libraries into .pir from .pm but the source is entirely Perl 6 :-)
03:25 supernovus For the record, I am using the January release of Rakudo (so what is now known as the 'alpha' branch), as a lot of my code does not compile under the new master (yet).
03:25 lue OK, now your initial statement makes complete sense :D
03:28 am0c joined #perl6
03:28 Hackathon Sorry for the delay. Our grand total this hour is... $99999999999998 worth of bug fixes (around £3.4)
03:28 Hackathon Thanks for your donations! Our robot operaters are standing by for YOUR bug reports!
03:29 supernovus I am rather impressed with the performace of SCGI versus "normal" CGI.  November may benefit from the SCGI library, at least until mod_perl6 works with versions of Parrot/Rakudo post November last year...
03:32 supernovus Hmm, I always seem to be here when masak isn't. Please let him know that I would like to help out with the Temporal Flux project. Getting some nice Time + Date stuff into Perl 6 would be a great pleasure!
03:33 lue are you talking about the TARDIS or the Temporal part of STD.pm?
03:33 lue s/STD.pm/Specs/
03:35 supernovus lue: Well, masak had a project last year to rewrite the Temporal stuff from the Specs, and has a branch in github with the work he did. It was meant to make working with time/date stuff as simple as possible. But there hasn't been any commits since last year, and I'm not sure what happened to the project. If TARDIS is the new name, then great, I'm the world's biggest Doctor Who fan as well ;-)
03:35 lue TARDIS is the codename for a timetraveling debugger masak and snarkyboojum are working on
03:36 lue TARDIS = Time-Augmented Relative Debugging In Style (or something like that)
03:38 supernovus Nice. Well, it wasn't the debugger I had been following, but the new version of Temporal that masak had planned. Debugging is always nice though. Unfortunately, the only debugging library I ever wrote was loosely based on Damian's "Smart::Comments" and as source filters are no more in Perl 6, I'm not sure how to make comments be "more than comments" when a module is loaded using Perl 6.
03:40 lue If you look a little back in the backlogs, then I came up with a plethora of Dr Who related codenames for this debugger
03:42 lue Debugging A Lot of Erroneous Kode (DALEK) :)
03:46 supernovus Nice! :-D
03:48 supernovus Well, hopefully, next Saturday I'll be able to say that my primary website is running Perl 6. I may still have the "archives" using my old engine until I get all of the documents ported over, but it should hopefully be a fairly smooth transition. IF the VPS handles a constantly running Perl 6 based SCGI process...
03:48 hercynium joined #perl6
03:54 supernovus The only thing that worries me is, that a perl 6 script that runs in 5 seconds on my Quad Core 2.3 ghz, 4 GB RAM PC, takes about 30 seconds to run on my Dual Core 1.3 ghz, 1 GB RAM netbook... and I have no idea what the VPS is like CPU wise, but it only has 256 MB of RAM... :-P Now, SCGI renders things that the CGI script takes 5 seconds to,  in 500 ms on my PC, so hopefully, it will help on the VPS as well...
03:59 lue I have a CPU < 1GHz and 384MiB ram (twice that swap space) If it runs fine on my computer, it runs fine on any computer :)
04:01 supernovus lue: Sounds good. I just double checked, and the VPS is actually 128 MB of physical memory (if there is such a thing in Xen) and 256 MB of swap space... but I'm crossing my fingers. The SCGI on my home computer works so well, I'm hoping it will do as well on the VPS :-)
04:02 lue it's a Powerbook G3 Pismo. It can't get much worse :D
04:04 supernovus Up until two days ago, I had a Dual P3 450mhz with 512 MB of RAM, which was built in 1998, sitting in my storage room. I think THAT probably would have been worse than the Powerbook ;-)
04:05 Hackathon And our total this hour is... £18 worth in bug fixes! (the equivalent in USD is too big to display, so we will be using pounds sterling throughtout the rest of the hackathon)
04:06 Hackathon Remember, bug fix donations are welcome! And for this hour, the dollar amount of a bug report is doubled if sent in coherent 日本語!
04:07 colomon rakudo: my $a = 10; $a &&= 11; say $a
04:07 p6eval rakudo 19c36a: OUTPUT«Null PMC access in invoke()␤current instr.: '!assign_metaop' pc 16783 (src/builtins/Junction.pir:319)␤»
04:07 colomon oh good, it's not just !&& that doesn't work.
04:11 am0c joined #perl6
04:12 _jaldhar joined #perl6
04:12 dalek rakudo: 54be6dd | (Solomon Foster)++ | src/Perl6/Grammar.pm:
04:12 dalek rakudo: Comment noting a big hole in the !op implementation.
04:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​4be6ddda72acd512ccef1d066f3da11f7f11b97
04:13 supernovus Anyway, have a good nght all. I'll let you know how my website migration to Perl 6 goes. :-)
04:14 quietfanatic colomon: shouldn't the precedence of !op be the same as that of op?
04:14 colomon quietfanatic: and do you know how to implement that?  :)
04:14 quietfanatic Nope : )
04:14 colomon That's why I left a nice note hoping that someone who does will see it.  :)
04:16 quietfanatic colomon: is there a way to find the precedence of an operator?  If so you could probably do that to $<infix>...or not, because infix gets called after infix_prefix_meta_op
04:16 quietfanatic ghrm...
04:16 * lue --go-away &
04:19 quietfanatic In that case, you'd put the <O()> after <infix> inside token infixish rather than infix_prefix_meta_operator...
04:19 quietfanatic but how would you get the precedence of $<infix>?
04:24 kfo joined #perl6
04:37 Trashlord joined #perl6
04:49 lue hellos to all!
04:52 lue rakudo: say Doctor.WHO
04:52 p6eval rakudo 54be6d: OUTPUT«Could not find non-existent sub &Doctor␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
04:55 lue rakudo: say "Doctor".WHO
04:55 p6eval rakudo 54be6d: OUTPUT«Str␤»
05:04 ingy joined #perl6
05:04 ingy hi
05:05 lue hello
05:05 ingy I was wondering if anyone could tutor me for 5 mins in p6
05:05 ingy I just got some basic q-s
05:06 ingy I got rakudo installed
05:06 ingy I could ask here or go private
05:06 ingy maybe I'll just ask here and wait to get kicked off or told to rtfm
05:07 ingy so far I can't seem to findTFM :\
05:07 ingy i want to write a tiny script that uses a tiny module
05:08 ingy so the first q is file extensions for those?
05:08 quietfanatic The closest thing to a FM is the Spec, at http://perlcabal.org/syn/
05:08 uniejo joined #perl6
05:08 quietfanatic file extensions for modules?
05:08 ingy quietfanatic: yeah my task only needs a tiny bit of knowledge
05:08 quietfanatic oughta be .pm just like Perl 5
05:08 ingy hmm ok
05:09 ingy I guess having it sit next to the p5 version won't work :)
05:09 quietfanatic Er, yeah :|
05:09 ingy next q then is how to alter the p6 @INC
05:09 quietfanatic though I believe (though I'm not sure) that you can specify the module name as a string in p6
05:09 quietfanatic anyway...
05:09 ingy also is the script .pl or .p6?
05:10 quietfanatic It's called @*INC in p6
05:10 ingy ok, will try that
05:10 ingy ok
05:10 quietfanatic You could use either .pl or .p6.  I use .p6 usually
05:10 ingy great
05:10 quietfanatic but I also use .pl a lot.
05:10 ingy next q is the `use` syntax
05:11 quietfanatic ought be more or less the same as p5
05:12 quietfanatic as in: use My::Module;
05:13 ingy > perl6 hello_world.p6
05:13 ingy Could not find non-existent sub &use
05:13 ingy :\
05:13 quietfanatic If you're a beginner, you can find a lot of information at http://perl.org/
05:13 quietfanatic Er
05:13 quietfanatic hm...
05:13 quietfanatic I mean perl6.org
05:13 ingy Um, I have about 100 modules on CPAN :)
05:13 quietfanatic (embarassing mistake there)
05:14 quietfanatic I meant http://perl6.org/  It was a typo!
05:14 ingy oh
05:14 ingy :)
05:15 ingy yeah I looked at http://perlgeek.de/en/article/5-to-6 from there
05:15 ingy and it has nothing on modules
05:15 quietfanatic Anyway, it looks like 'use' may be borken currently...
05:15 ingy so I came here
05:15 ingy really??!!
05:15 quietfanatic my sentiments exactly
05:16 ingy is there a stable tag to pull from?
05:16 quietfanatic Rakudo recently underwent a large refactor, so many things that used to work don't
05:16 ingy I see
05:16 quietfanatic the branch now known as 'alpha' has the older, more stable version
05:16 quietfanatic I know that it can use 'use'
05:16 ingy will it know to grab the correct parrot??
05:16 quietfanatic It oughta
05:17 ingy will you be here for a few?
05:17 quietfanatic yeah.
05:18 ingy k, bbiab
05:18 ingy :)
05:22 kfo joined #perl6
05:29 ingy quietfanatic: I'm feeling a little dumb here, but I'm not sure if I've properly switched to the alpha branch
05:29 ingy can you tell me how to check, or just how to do it
05:29 ingy ?
05:29 quietfanatic Hmm, I had a little trouble with that myself, to tell you the truth
05:29 quietfanatic Let's see...
05:30 ingy I did
05:30 ingy git checkout -b alpha origin/alpha
05:30 quietfanatic yeah something like that
05:30 quietfanatic actually
05:30 quietfanatic I had a -t in there somewhere
05:31 ingy what is something that I can look at to make sure it's right?
05:31 quietfanatic Hmm...
05:31 TimToady alpha: (1...*).batch(10)
05:31 p6eval alpha 30e0ed: OUTPUT«Sorry, lazy lists and infinite ranges are not yet implemented␤in sub »
05:31 quietfanatic There's that :)
05:31 TimToady rakudo: (1...*).batch(10).say
05:31 p6eval rakudo 54be6d: OUTPUT«12345678910␤»
05:32 quietfanatic I think he wants something he can look at before he compiles...
05:32 quietfanatic but I don't know what that would be
05:33 TimToady I dunno, I just work here.
05:33 ingy quietfanatic: right
05:33 ingy hi TimToady
05:33 ingy ltns
05:33 TimToady likewise
05:33 TimToady you still up Seattle way?  Taiwan?  can't keep track of you...
05:33 orafu joined #perl6
05:33 quietfanatic try looking at build/PARROT_REVISION
05:33 quietfanatic it'll say 43487 for alpha
05:33 quietfanatic and 44705 for master
05:33 ingy ah
05:34 ingy git log
05:34 ingy :D
05:34 ingy it looks right
05:34 quietfanatic er, right :)
05:34 ingy Feb 1 moritz
05:34 ingy k
05:35 ingy TimToady: in Seattle. Taiwan visit soon.
05:35 ingy I'm trying to add p6 support to my new programming lang :)
05:35 TimToady it'll be another week or so till the new master gets back all of what alpha does, but then it will have all that and much cleaner innards
05:35 ingy awesome
05:35 TimToady including laziness
05:36 ingy I picked the wrong day to learn p6
05:36 TimToady heh, you'll still recognize much of the MOP, I suspect
05:36 ingy TimToady: what about impatience?
05:36 ingy XD
05:36 araujo morning
05:36 araujo ingy, doing a new lang?
05:36 ingy yeah
05:37 ingy it might take me all weekend to finish it
05:37 ingy so don't hold your breathe
05:37 ingy ;)
05:37 araujo a whole weekend to finish a new lang??, why so long?
05:37 araujo ;)
05:39 ingy I'm not a young man anymore :\
05:39 TimToady yeah, tell me about it... :)
05:41 ingy TimToady: at least you still got all your hair
05:41 ingy and your one good eye ;)
05:41 TimToady well, the mustache is about half gray now, and the hair is starting in
05:42 TimToady oh, I got half a good stomach too :)
05:42 TimToady pity about the brain
05:44 ingy TimToady: your brain is pretty messed up, but it's one of my all time favorite brains. I was actually telling my gf about your brain earlier today!
05:44 quietfanatic_ joined #perl6
05:44 ingy I was telling her when you called that coin flip "sides!"
05:46 TimToady quietfanatic's X server is flapping for some reason
05:46 ingy quietfanatic: the alpha build failed. I think I needed to delete the old parrot build. retrying...
05:46 quietfanatic I always use the --gen-parrot option myself
05:46 quietfanatic which gets and builds parrot as well as rakudo
05:47 TimToady and makes sure to get the appropriate version
05:48 lue unless someone mucks up the Configure script :D
05:48 ingy quietfanatic: I did, but it didn't get the older parrot
05:49 TimToady ah, yeah, probably have to blow a newer one away then
05:49 TimToady or sometimes crud hangs around
05:51 ingy yep. it's all done now. use works.
05:51 TimToady yay!
05:51 ingy now to get this thing working
05:51 ingy brb
05:52 * uniejo thinks that if s[<rule>] returns $/ in a way that can be assigned to we can say something like s[<rule>]<*><Year>++  (that is if the rule contains subrules having a Year token)
05:54 am0c joined #perl6
05:56 ingy araujo: I'm writing the prototype for the new lang in Python. That's one thing slowing it down :)
05:58 TimToady ingy: well, I plan to get up really early to help support the hackathon in copenhagen, so I probably oughta wander off to bed pretty soon, but it's nice to hear from you
05:59 ingy TimToady: likewise, if this works proceeds well, I might be around here more
06:00 ingy TimToady: when's the virtual hackathon starting?
06:01 TimToady not sure, but it's nine hours different, so their 10am is our 1am :/
06:01 TimToady I don't plan to get up quite *that* early...
06:02 ingy haha
06:02 ingy does it happen here?
06:03 TimToady yeah
06:03 ingy awesome. I'll poke my head in if possible
06:03 TimToady and if not, I'm sure there will be pointers
06:03 ingy k k
06:03 ingy I got a basic p6 script/module combo working btw
06:04 ingy oh, can I load a module called Foo.p6??
06:04 ingy before you drift off...
06:04 ingy for now I call it Foo6.pm :\
06:04 gfx joined #perl6
06:05 TimToady in theory the interpreters can tell from the initial declaration which perl it is
06:05 TimToady one trick is that I often have a .pm in Perl 6, and a corresonding .pmc in p5
06:05 ingy haha
06:06 araujo ingy, aah, that explain sit
06:06 araujo :)
06:06 TimToady wc STD.pm 5759  20618 173552 STD.pm
06:06 ingy I happen to have the two modules sitting next to each other in this case
06:06 TimToady wc STD.pmc 99938  253658 2103714 STD.pmc
06:07 TimToady we could probably allow a .pm6
06:08 ingy I have a script/module ported to 9 languages all in one dir
06:08 * lue Hackathon
06:08 ingy not a common situation
06:09 Hackathon and this hour, our total is... £700 worth in bug fixes! (The equivalent amount in USD is 400 digits long!) Thank you, and our bot volunteers are waiting for your bug reports!
06:09 * Hackathon lue
06:09 ingy TimToady: .pm6 might help the rest of the programs in the world (like vim etc) that work from file extensions
06:09 lue .oO(geez I'm mixing up commands right now)
06:10 ingy *shrug*
06:10 lue there's actually a command you can put in the last line of your file so vim can at least format it as P6
06:11 ingy nod
06:11 ingy python3 seems to just use .py
06:11 lue I prefer .p6 myself just because it looks cooler :)
06:11 TimToady well, py3 isn't that much different from py2
06:12 ingy although py3 is not quite the drastic change that p6 is
06:12 ingy jynx
06:12 lue I can attest to that. Just some compatibility breaks in py3
06:12 TimToady we have some compatibility breaks in p6 too :)
06:12 ingy haha
06:13 ingy kinda like when using perl broke all the sed scripts ;)
06:13 lue I would love to have the program recognize things with an extension of .楽土 :)
06:13 ingy XD
06:14 lue (another crazy idea from Life, The Universe, and Everything)
06:14 ingy that's frickin awesome
06:14 athenot joined #perl6
06:15 lue lemme see...
06:15 TimToady hmm, .珠
06:16 TimToady or .珠六
06:16 ingy .茶
06:17 ingy only lue's extension printed for me
06:18 ingy irssi+screen+linux+bsd+termcap != unicode-fun
06:18 lue what is that, TimToady? chinese?
06:18 TimToady either chinese or japanese
06:18 lue > perl6 p6test.楽土
06:18 lue hello world!
06:18 ingy lots of chinese is japanese
06:19 ingy lue: what is your char?
06:19 TimToady or vice versa
06:19 ingy I love it
06:19 lue char?
06:19 ingy your extension character
06:19 TimToady well, it doesn't care about the name of the main executable at all
06:19 TimToady it's the module names that have more convention
06:20 lue the sign of a good program, not relying on extensions :)
06:20 araujo ingy, any link for your new language?
06:20 TimToady well, I'm gonna turn in.
06:20 TimToady night all!
06:20 TimToady o/
06:22 lue o/
06:22 uniejo night & morning here
06:22 lue (IBus is messing with my typing :/ Ah well, I'll live)
06:22 ingy hey, it works
06:22 ingy totally done
06:22 ingy thanks all
06:22 ingy I'll check it in now...
06:24 lue 楽土の卓と (lets hope I got THAT right... (I really ought to LEARN jp at some point, then I'll know the right kanji))
06:25 ingy http://github.com/ingydotnet/c​dent/tree/master/hello-world/
06:25 ingy Perl 6, represent!
06:26 lue ur doing it rong!
06:26 lue perl6 --represent #:)
06:26 ingy whatever that last kanji thing was, my terminal is fux0r'd
06:27 lue it (hopefully) said rakudo's waker.
06:27 ingy ctl-l finally seems to have worked
06:27 lue japanese is fun. I will always believe that in the programming biz, it's a job requirement :D
06:28 ingy I like that thinking
06:28 ingy it's like learning Haskell though :\
06:29 lue I don't see what's hard about it (I haven't studied yet but still). The only difficult thing would be how much you have to learn, I find kanji quite `simple'
06:29 lue It's like using @ to represent at, or $ for scalar :)
06:32 lue ゼルダの伝説 時のオカリナ If anyone knows what that says without looking it up, then you're as obssesed as I am :D
06:32 mikehh joined #perl6
06:36 new_per6_hacker joined #perl6
06:36 quietfanatic lue: it's not 卓と it's タクト, and it's not "waker" it's just baton.
06:36 quietfanatic lue: Oh I know exactly what that says btw
06:36 mberends joined #perl6
06:37 lue ah yeah. I think of Wind Waker, where I got it from :)
06:37 lue you're as obsessed as me :D
06:37 new_per6_hacker mberends can you host slides of your presentation somewhere
06:37 new_per6_hacker yesterday's presentation
06:37 quietfanatic lue: I basically grew up playing Zelda 1 on NES.
06:38 mberends new_per6_hacker: http://svn.pugscode.org/pugs/​docs/talks/p6.imp.2010.03.odp
06:38 lue The literal translation for the jp title of Spirit Tracks is Steam Whistle of Earth btw (that's a much cooler name)
06:38 moritz_ good morning
06:39 lue guten tag!
06:39 * moritz_ stretches and yawns
06:39 mberends hi moritz_, were you a good sleeper?
06:39 lue mberends+=odp
06:39 moritz_ mberends: mostly, yes. Thanks
06:40 * mberends slept very well, having practiced doing that many times
06:41 lue I almost wish I were there (but I don't speak Danish (or is it Denmarkese))
06:41 moritz_ neither do I
06:41 lue you must get by with esperanto then :D
06:41 mberends lue Danish not required, these people are very English-friendly
06:41 moritz_ for some values of esperanto :-)
06:42 lue 2+2=5 (for very large quantities of 2)
06:46 mberends moritz_: shall I bring you your packet of stroopwafels?
06:46 * uniejo guesses that large quantities of 2 needs to be represented as bigint
06:47 lue not BigInt. VeryBigInt :)
06:49 * mberends waits for the VeryVeryBigBoolean to land ;)
06:50 lue I want QuantumBoolean :)
06:56 moritz_ mberends: yes please
06:56 moritz_ I'm also ready for breakfeast - what about you? (and masak and jnthn?)
06:58 lue what time is it o'er there?
06:59 moritz_ 8am
06:59 moritz_ lue: QuantumBoolean exists (True|False)
07:00 lue 9 hours difference between you and me (about)
07:00 moritz_ it's amazing that we find any common uptime :-)
07:01 ingy hi moritz_
07:02 am0c joined #perl6
07:03 pugssvn r29972 | moritz++ | [t/spec] slight re-fudges for Rakudo
07:03 lue I am up at a long range of day :)
07:03 moritz_ hi ingy
07:04 lue just not 11PM-8AM typically (unless it's a weekday, then my not here time is longer) :)
07:05 new_per6_hacker Is perlito also a perl6 implementation?
07:05 moritz_ new_per6_hacker: it's an implementation of a small subset of Perl 6
07:05 snarkyboojum joined #perl6
07:05 new_per6_hacker It didn't have a mentions in mberends ppt
07:08 Hackathon and at this hour, the total is... £2400 worth in bug fixes ! (the equivalent in USD is 65536 digits long! It's also equivalent to €7000)
07:08 new_per6_hacker Sorry it has
07:09 Hackathon Thanks to all our volunteers, and remember our robot operators are standing by for YOUR bug reports!
07:11 lue (yes, I am treating the hackathon similar to a telethon. I warned you :D)
07:13 lue time for my bed (which is not in Copenhagen :( )
07:13 * lue --sleep &
07:14 new_per6_hacker Does the Perl 6 spec have its own releases
07:15 borup joined #perl6
07:17 new_per6_hacker Does the perl 6 specification have its own releases?
07:26 k23z__ joined #perl6
07:28 saleem joined #perl6
07:34 diakopter new_per6_hacker: not yet
07:40 new_per6_hacker ok, I thought specification makes a release and then the implementations try to match them
07:41 new_per6_hacker So there is specification release and a corresponding implementation release
07:42 mberends joined #perl6
07:43 diakopter nope
07:43 diakopter the specification responds to the implementations and vice versa
08:06 pugssvn r29973 | baest++ | Untodo some passing tests
08:07 pugssvn r29974 | baest++ | Unfudge another passing test
08:10 iblechbot joined #perl6
08:11 ingy zomg!
08:11 ingy I just added python3 support to http://github.com/ingydotnet/c​dent/tree/master/hello-world/
08:12 ingy in python 2 to print without a newline was: print "foo",
08:12 ingy just add a comma
08:12 ingy now it's: print("foo", end="")
08:12 ingy FAIL
08:13 ingy the parens are required too, as it is now a function call
08:14 mberends the Breakfast Club is impressed :)
08:16 mberends that is, masak moritz arnsholt and /me
08:17 ingy greetings Breakfast Club
08:17 fridim joined #perl6
08:20 diakopter ingy: today I'm feeling Dronish
08:25 ingy diakopter: time to get your Leet on!
08:28 mberends walking to Copenhagen hackathon &
08:29 Trashlord joined #perl6
08:30 baest hehe, "Unfortunately Patrick Michaud (?Pm?) is able to participate" from the hackathon wiki, whoops should have been unable :)
08:34 eternaleye joined #perl6
08:52 PZt joined #perl6
09:26 uniejo joined #perl6
09:28 martinro joined #perl6
09:28 moritz_ arrived at Copenhagen hackathon
09:28 jnthn oh hai
09:29 masak joined #perl6
09:29 masak OH HAI from the hackathon in Copenhagen! \o/
09:31 mberends joined #perl6
09:31 masak lue: the .WHAT.say error has been reported already, I believe.
09:32 masak not that I blame you for not knowing that :)
09:32 masak rakudo: (1,2,3).WHAT.say
09:32 p6eval rakudo 54be6d: OUTPUT«␤»
09:34 baest jnthn++ # your + fix worked
09:36 masak rakudo: my $a = 10; $a &&= 11; say $a
09:36 p6eval rakudo 54be6d: OUTPUT«Null PMC access in invoke()␤current instr.: '!assign_metaop' pc 16783 (src/builtins/Junction.pir:319)␤»
09:36 * masak submits rakudobug
09:36 masak rakudo: my $a = 10 && 11; say $a
09:36 p6eval rakudo 54be6d: OUTPUT«11␤»
09:36 jnthn baest: \o/
09:36 masak rakudo: my $a = 10; $a = $a && 11; say $a
09:36 p6eval rakudo 54be6d: OUTPUT«11␤»
09:37 masak so the error has to do with the &&= operator.
09:38 snarkyboojum hello Copenhagen hacker dudes - I hope the hackage goes well :)
09:39 baest rakudo: say  3.14159265358979323846264338​327950288419716939937510e0;
09:39 p6eval rakudo 54be6d: OUTPUT«Multiple Dispatch: No suitable candidate found for 'multiply_float', with signature 'PNP->P'␤current instr.: 'perl6;Perl6;Actions;_block5211' pc 200060 (src/gen/perl6-actions.pir:10706)␤»
09:39 masak rakudo: my $a = 0; $a ||= 11; say $a
09:39 p6eval rakudo 54be6d: OUTPUT«Null PMC access in invoke()␤current instr.: '!assign_metaop' pc 16783 (src/builtins/Junction.pir:319)␤»
09:43 baest why are we doing a perl -e "" > src/gen/core.pir? Is that to ensure that core is built every time?
09:44 jnthn baest: We have no core setting for the stage 1
09:44 moritz_ baest: I think because there are two build stages
09:44 jnthn baest: So we just empty that file for the first stage.
09:44 moritz_ for the first stage we don't need core.pir, ... jnthn was faster
09:44 baest :)
09:44 uniejo rakudo: say 0.0000000000000000000000000000000
09:44 p6eval rakudo 54be6d: OUTPUT«Nominal type check failed for parameter '$b'; expected Int but got Num instead␤current instr.: 'perl6;Rat;gcd' pc 318987 (src/gen/core.pir:37592)␤»
09:44 jnthn I used to have two different .pir files for stage 1 and stage 2,  but it was mostly duplication.
09:44 moritz_ hugme: list projects
09:44 hugme moritz_: I know about book, gge, hugme, ilbot, json, november, nqp-rx, nqpbook, perl6-examples, proto, svg-matchdumper, svg-plot, temporal-flux-perl6syn, tufte, web
09:44 phenny hugme: 28 Feb 05:00Z <lue> tell hugme  it's great to have you back!
09:44 baest ok, thanks it's just taking a while to rebuild
09:45 moritz_ hugme: show nqp-rx
09:45 hugme moritz_: the following people have power over 'nqp-rx': PerlJam, TimToady, [particle], jnthn, masak, moritz_, pmichaud. URL: http://github.com/perl6/nqp-rx/
09:45 masak snarkyboojum: did you have a chance to check the source code updates of tardis?
09:45 moritz_ arnsholt: want commit access? what's your github ID?
09:45 arnsholt I'm arnsholt at Github as well
09:45 snarkyboojum masak: yep - sure did
09:46 moritz_ hugme: add arnsholt to nqp-rx
09:46 hugme moritz_: You need to register with freenode first
09:46 masak snarkyboojum: nice! the two first tests pass! :)
09:46 moritz_ dang.
09:46 masak hugme: hug hugme
09:46 * hugme hugs hugme
09:46 snarkyboojum masak: aye :) was hoping to quiz you on it through the week and try my hand at doing something semi-productive :)
09:47 moritz_ hugme: add arnsholt to nqp-rx
09:47 hugme moritz_: You need to register with freenode first
09:47 masak snarkyboojum: right now, making the next test pass would be more than semi-productive :)
09:47 moritz_ hugme: I am. Stupid bot.
09:47 masak hugme: add arnsholt to nqp-rx
09:47 hugme masak: You need to register with freenode first
09:47 jnthn hugme: add arnsholt to nqp-rx
09:47 hugme jnthn: You need to register with freenode first
09:47 * masak hugs hugme
09:47 masak there's a bug in hugme.
09:47 moritz_ ORLY?
09:47 moritz_ :-)
09:47 mberends hugme: hug /me
09:47 * hugme hugs /me
09:47 masak YA RLY.
09:48 snarkyboojum masak: look like a nice challenge :)
09:48 masak snarkyboojum: but expect git collisions, because I'll be trying to do the same. :)
09:49 snarkyboojum masak: excellent - probably the best way for me to learn .. i.e. have a go and then see how it should be done ;)
09:49 masak I don't necessarily think that the double effort will be wasted. it's more a case of ending up on the same wavelength.
09:49 masak yes, exactly.
09:49 masak I see it's happening already. :)
09:50 hugme joined #perl6
09:50 * snarkyboojum nods
09:50 moritz_ hugme: add arnsholt to nqp-rx
09:50 hugme moritz_: You need to register with freenode first
09:50 moritz_ $w->{identified} is undef. Dang.
09:50 * masak turns on tdd-harness
09:50 masak let's go! :)
09:50 hugme joined #perl6
09:51 moritz_ hugme: add arnsholt to nqp-rx
09:51 hugme moritz_: You need to register with freenode first
09:51 Trashlord heh
09:51 Trashlord masak: how's it going buddy?
09:52 masak Trashlord: there's electricity, wifi, and a practically unlimited supply of liquid here. could be worse :P
09:53 masak Trashlord: also, all the people around me are talking about Perl 6, which makes me very happy. :)
09:53 Su-Shee joined #perl6
09:53 jnthn http://docs.parrot.org/parrot/lates​t/html/docs/pdds/pdd26_ast.pod.html
09:54 jnthn masak: huh, where da liquid?
09:54 masak jnthn: to your left :)
09:54 masak s/left/right/
09:54 Su-Shee long night? ;)
09:54 masak or short, depending on how you see it.
09:55 masak I've seemingly been running on hacker fuel for the past two nights. slept 4 and 5 hours, respectively. not nearly as tired as I should be.
09:56 hugme joined #perl6
09:56 Trashlord woah
09:56 Trashlord that's awesome
09:56 masak snarkyboojum: also, if you get stuck, better to chat me up than to struggle in isolation.
09:56 Trashlord I once sat in front of the computer, coding, for 37 hours straight
09:56 Trashlord I should do it again sometime
09:56 masak that sounds singularly unhealthy :)
09:56 krr joined #perl6
09:56 Trashlord of course
09:56 snarkyboojum masak: yep - will/would do
09:56 Trashlord I could not fall back asleep
09:56 masak Trashlord: what did you work on?
09:57 Trashlord I don't even remember
09:57 Trashlord it was ~7 years ago
09:58 Trashlord all I remember is that I tried to go to sleep at around 5am, after being up for almost 2 days straight, but couldn't fall asleep, so I just lied in my bed
09:58 masak Trashlord: I've had one or two all-nighters with GGE, in the most intense parts of the implementing.
09:58 masak but that was 'intentional'.
09:58 jnthn Telling the truth in bed is overrated.
09:59 Trashlord ha
09:59 masak jnthn++ # grammar nazi punster
10:00 Trashlord well, English is not my first language, I always have an internal debate: Lied, or Layed? Laying, or Lying?
10:00 masak Trashlord: http://grammar.quickanddirty​tips.com/lay-versus-lie.aspx
10:00 Trashlord ha, thanks
10:02 dalek rakudo: 3113ee8 | jonathan++ | t/spectest.data:
10:02 dalek rakudo: S02-literals/quoting-unicode.t needs to be marked as needing ICU.
10:02 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​113ee8fbaad44c1ca1712b4234b079a73a86889
10:02 masak we've established here in meatspace that it's an ablaut phenomenon.
10:03 Trashlord hm
10:04 Trashlord so I just lied down on my bed
10:04 masak Trashlord: or "I just laid on my bed".
10:05 Trashlord thanks for that
10:05 Trashlord I didn't know you could say it that way
10:06 moritz_ hugme: add arnsholt to nqp-rx
10:06 * hugme hugs arnsholt. Welcome to nqp-rx!
10:06 jnthn pir::set__SP
10:06 moritz_ arnsholt: finally works now; sorry for the many rouge hilights
10:06 masak rakudo: IO.WHAT.say
10:06 p6eval rakudo 54be6d:  ( no output )
10:06 masak that's http://rt.perl.org/rt3/Tic​ket/Display.html?id=68594 -- that one's still open.
10:07 masak rakudo: [].WHAT.say
10:07 p6eval rakudo 54be6d: OUTPUT«Null PMC access in elements()␤current instr.: 'perl6;SeqIter;get' pc 13990 (src/builtins/Routine.pir:113)␤»
10:07 masak jnthn: that's http://rt.perl.org/rt3/Tic​ket/Display.html?id=72960
10:07 arnsholt rakudo: my $a = 3; say "$a".WHAT; # jnthn
10:07 p6eval rakudo 54be6d: OUTPUT«Int()␤»
10:08 baest moritz_: heh, it worked fine, but was printing 0101011 stuff in top of the core.pir and therefore wouldn't compile :)
10:08 dalek rakudo: 125e872 | jonathan++ | src/metamodel/ClassHOW.pir:
10:08 dalek rakudo: Make sure type objects are marked as scalars, so we .WHAT.say works on various things it was fail on before.
10:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​25e872e5c1bb310fa397250ba891a70c1a81bb7
10:08 jnthn PAST::Op.new( :pirop('set SP'), $thingy )
10:08 arnsholt moritz_: No problem. irssi only highlights me if my nick is on the beginning of the line
10:09 gbacon joined #perl6
10:09 moritz_ great
10:09 masak #perl6 will be especially inscrutable for non-hackathoners today.
10:10 Trashlord you guys like psychedelic trance?
10:11 uniejo rakudo: say ^"a" # psychedelic trance (timeout)
10:11 masak Trashlord: generally, I tend to like a firm grip on reality better.
10:11 p6eval rakudo 54be6d:  ( no output )
10:11 moritz_ http://gist.github.com/321596
10:12 arnsholt Trashlord: I've listened to Dire Straits a lot recently =)
10:12 moritz_ arnsholt: me too (but not only recently :-)
10:12 jnthn oh hai moritz_, I gived you an RT ticket.
10:12 jnthn :-)
10:13 masak moritz_: me too (but not only Dire Straits :-)
10:15 masak wow, it's so amazing to be back in a fast code-compile-test loop.
10:15 moritz_ fast? then it can't be based on rakudo :/
10:15 * moritz_ takes a look at S11
10:17 moritz_ it has a very interesting loop
10:18 moritz_ S11:204
10:19 moritz_ and below
10:19 moritz_ baest: any success with debugging by print statements yet?
10:19 masak moritz_: it is based on Rakudo.
10:19 masak moritz_: and it's fast, compared to GGE.
10:19 moritz_ so we need find_module_defining, load_module, $scope.install_alias
10:21 baest moritz_: no, it prints on top of the generated pir :) and that doesn't compile well
10:21 moritz_ ouch
10:22 baest any pointers on how to debug something in actions. There is a computation going wrong and I'm not sure which numbers it's using. It is possible to debug that somehow?
10:24 masak baest: using print statements?
10:24 * masak is a traditionalist
10:25 moritz_ masak: the problem is that action statements also print PIR to STDOUT
10:25 baest yes
10:25 baest I like prints as well
10:25 masak :(
10:25 moritz_ masak: so debug statements and desired output is mixed => BOOM
10:25 masak that's... unfortunate.
10:25 masak print to $*ERR?
10:26 masak is that possible in nqp?
10:26 * baest wouldn't know
10:27 orafu joined #perl6
10:29 arnsholt jnthn: "Can't form :w list from non-constant strings (yet) at [stage2...]" sound familiar?
10:30 jnthn arnsholt: no. That's...very odd. :-/
10:31 nadim joined #perl6
10:39 jonasbn joined #perl6
10:39 jonasbn morning ppl
10:39 moritz_ \o/ jonasbn :-)
10:40 jonasbn is the sub MAIN and sub USAGE working?
10:40 * jonasbn needs CLI arguments
10:40 moritz_ jonasbn: I think USAGE never worked
10:41 masak joined #perl6
10:41 jonasbn okay, but for MAIN, any examples around, the docs are pretty skinny
10:41 moritz_ oops, doesn't work in master
10:42 moritz_ http://perlgeek.de/blog-en/p​erl-5-to-6/14-main-sub.html that's how it should work
10:43 jonasbn :)
10:44 jonasbn so should I file a rakudo bug or should I just move on...
10:45 masak I think MAIN worked to an extend in alpha.
10:45 masak s/extend/extent/
10:45 moritz_ jonasbn: please do both :-)
10:46 masak Perl 6 is a lot about doing both. :)
10:46 meppl joined #perl6
10:49 baest MAIN was called in alpha, dunno how much it did
10:50 colomon o/
10:50 colomon re the &&= bug -- the bug actually is in &&, more or less.
10:50 masak baest: it did everything up to named parameters or something like that.
10:51 colomon the issue seems to be that there is no &infix:<&&>
10:51 masak colomon: yes. jnthn++ explained that to me in meatspace.
10:51 masak still a bug, though.
10:51 colomon it also means I had two working versions of the !op meta yesterday.
10:51 masak there's no &infix:<&&> because && is special, because it short-circuits.
10:52 colomon my first version worked, but I only tried testing it with !&&, so I thought I didn't.
10:52 colomon s/I/it
10:52 masak std: 3 !&& 4
10:52 p6eval std 29974: OUTPUT«ok 00:01 107m␤»
10:52 colomon rakudo: say 3 !+ 4
10:52 p6eval rakudo 125e87: OUTPUT«0␤»
10:52 colomon rakudo: say 3 !+ -3
10:52 p6eval rakudo 125e87: OUTPUT«1␤»
10:53 masak std: 3 !+ 4
10:53 p6eval std 29974: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't negate + because additive operators are not iffy enough at /tmp/1dJHhjj6i4 line 1:␤------> [32m3 !+[33m⏏[31m 4[0m␤FAILED 00:01 105m␤»
10:53 * masak submits rakudobug
10:53 masak not iffy enough.
10:53 colomon not iffy enough?!
10:53 masak right. that's what I said. :)
10:54 masak colomon: http://irclog.perlgeek.de/​perl6/2009-02-01#i_878319
10:54 colomon anyway, now I don't know which implementation of !op is the right one to have.
10:56 baest wheee success in debugging actions. Just edit resulting actions.pir and make src/gen/perl6.pbc :) and then compile the perl6
10:57 colomon masak: I see "iffy" there, but I don't see much in the way of explanation that I understand?
10:58 masak colomon: ok, so an iffy operator is one which produces a boolean-ish answer.
10:58 masak colomon: basically, all the logical ops, comparison ops, and %.
11:00 colomon masak++ 3
11:01 masak two terms in a row :P
11:03 colomon Is there a way to dump unpushed changes in git?
11:03 colomon other than just blowing away your tree, I mean?
11:04 masak colomon: git reset --hard <commithash>
11:04 colomon masak++
11:05 masak the old commits can still be accessed through 'git reflog'.
11:09 jonasbn how do I shrink an array?
11:10 masak jonasbn: @a = @a[0..$shorter];
11:10 jonasbn I need splice
11:10 jonasbn perl5 splice
11:10 masak there's a splice.
11:10 masak at least in alpha.
11:10 jonasbn ah okay
11:10 masak I just tend not to use it much :P
11:11 colomon rakduo: my @a = 1..10; say @a.perl
11:11 masak (especially since I've seen how it's implemented :P)
11:11 jonasbn I love it, since programing perl 1. ed. which had a marvellous explanation
11:11 jonasbn ah
11:11 jonasbn hehehe
11:11 colomon rakudo: my @a = 1..10; say @a.perl
11:11 p6eval rakudo 125e87: OUTPUT«[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]␤»
11:12 colomon rakudo: my @a = 1..10; say @a.splice(2,3,'a'..'c').perl
11:12 p6eval rakudo 125e87: OUTPUT«[3, 4, 5]␤»
11:12 colomon right.
11:12 colomon akudo: my @a = 1..10; say @a.splice(2,3,'a'..'c').perl; say @a.perl
11:12 colomon rakudo: my @a = 1..10; say @a.splice(2,3,'a'..'c').perl; say @a.perl
11:12 p6eval rakudo 125e87: OUTPUT«[3, 4, 5]␤[1, 2, "a", "b", "c", 6, 7, 8, 9, 10]␤»
11:12 colomon (it's too early here.)
11:13 payload joined #perl6
11:14 masak do we have Array.grab ?
11:14 masak I think jonasbn just found a use case for it :)
11:14 colomon not that I know of it.
11:14 colomon what does .grab do?
11:14 masak it's sort of a mutating .pick
11:14 jonasbn masak: bingo
11:14 masak :)
11:15 colomon choose something random and eliminate it from the array?
11:16 jonasbn colomon: it is the technique I use in Games::Bingo, so I do not have to search a large array every time a number is called
11:16 colomon it would be pretty easy to cut-n-paste the .pick code and hack it to do that.
11:16 colomon tricky bit might be a proper refactor.
11:17 colomon basically that's exactly what .pick does internally now.
11:18 colomon I was actually going to change that, because it would be more efficient to not change the internal array when an item is picked.
11:20 masak rakudo: sub x(&) {};x
11:20 p6eval rakudo 125e87: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤current instr.: 'x' pc 179 (EVAL_1:77)␤»
11:20 masak rakudo: sub x(&) {};x(42)
11:20 p6eval rakudo 125e87: OUTPUT«Nominal type check failed for parameter '(null)'; expected Callable but got Int instead␤current instr.: 'x' pc 180 (EVAL_1:77)␤»
11:20 masak rakudo: sub x(&) {};x({say "OH HAI"})
11:20 p6eval rakudo 125e87:  ( no output )
11:20 masak alpha: sub x(&) {};x
11:20 p6eval alpha 30e0ed: OUTPUT«Cannot take substr outside string␤in Main (file <unknown>, line <unknown>)␤»
11:21 masak grr.
11:29 payload joined #perl6
11:29 colomon so, I get 25678 passing tests this morning.
11:30 colomon I want to challenge the hackathoners to make it 30,000.
11:30 colomon sorry, 26,000 thousand
11:30 masak that's 26 million...
11:30 jonasbn colomon: then you might have to show, we are in the design phase, then lunch then, nap, then beer
11:31 colomon see earlier too early comment.
11:31 arnsholt Yeah. I don't think I'm able to write tests that fast ^^
11:31 colomon 26,000
11:31 colomon it's only 322 tests to bring back on-line or write.
11:32 masak colomon: it's a good idea.
11:32 masak colomon: most people are caught up in a discussion up at the whiteboard right now.
11:32 masak colomon: they are talking about S11-ish things.
11:33 masak they seem to be making good, concrete progress, and are about to take action.
11:33 colomon \o/
11:37 baest rakudo: say  3.14159265358979323846264338​327950288419716939937510e0;
11:37 p6eval rakudo 125e87: OUTPUT«Multiple Dispatch: No suitable candidate found for 'multiply_float', with signature 'PNP->P'␤current instr.: 'perl6;Perl6;Actions;_block5211' pc 200064 (src/gen/perl6-actions.pir:10706)␤»
11:37 mberends the S11 meeting thinks it has reached consensus, now to write it up...
11:38 masak ++mberends
11:39 baest colomon: right now 3.1415926535897932384626433​8327950288419716939937510e0 is evaluated to 3.86496357207557 in rakudo. Not very precise :) I'm looking into it and it's because the base num is overflowing
11:39 colomon baest: yeah, I know.
11:39 baest colomon: oh
11:39 colomon I tried to fix it a week ago with no luck.
11:40 baest damn
11:40 colomon please take a crack at it!
11:40 colomon you may see a fix that I missed
11:41 baest I'm not sure I have a clue on howto. If we only have int to store the base in, then we will have problems
11:41 colomon one thing I thought of but didn't try was storing base as the number of zeroes needed for base, rather than the actual number.
11:42 colomon so instead of base == 1000, you'd have base == 3, and then use 10 ** base in the calculations.
11:42 baest that could work
11:42 baest I will try if that overflows somewhere else :)
11:42 masak "Perl 6: pi is 3.8; we're working on it..."
11:42 colomon but there are still possible math issues to finesse...
11:43 k23z__ 3.8 :)
11:43 masak "Perl 6: reinventing the circle"
11:43 baest actually on my computer: ./perl6 -e 'say pi()'; returns 3.14159265358979
11:43 masak \o/
11:44 moritz_ baest: ship it!
11:44 colomon rakudo: say pi
11:44 p6eval rakudo 125e87: OUTPUT«3.14159265358979␤»
11:44 colomon it is specified carefully so the overflows don't happen.  :)
11:45 baest rakudo: say pi();
11:45 p6eval rakudo 125e87: OUTPUT«Could not find non-existent sub &pi␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
11:45 colomon rakudo: say pi.Rat(1e-10).perl
11:45 p6eval rakudo 125e87: OUTPUT«312689/99532␤»
11:45 baest colomon: oh, it is changed from a sub to a constant?
11:45 colomon baest: yes
11:45 baest I just implemented that sub...
11:45 colomon I'm not sure we have the constant properly set up (as per spec), but we do have the constant.
11:46 baest heh, ok, the pi.t calls the sub so I implemented it
11:47 colomon pi.t is a sad, sad test file.  :)
11:47 arnsholt Which one of them? O=)
11:47 baest arnsholt: both
11:47 arnsholt Hehe
11:52 k23z__ I'm so tired, I cannot distinguish red from white on the numbers that irssi associates with a channel
11:52 jnthn alpha: subset Even of Int { $^n % 2 == 0 }; say Even.WHAT
11:52 p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near "{ $^n % 2 "␤in Main (file <unknown>, line <unknown>)␤»
11:52 k23z__ so when I look at the screen I cannot say exactly if someone wrote a new message on a channel or its just my vision ...
11:52 jnthn alpha: subset Even of Int where { $^n % 2 == 0 }; say Even.WHAT
11:52 p6eval alpha 30e0ed: OUTPUT«()␤»
11:54 masak rakudo: sub foo(Int $a, $b) {}; foo("OH HAI")
11:54 p6eval rakudo 125e87: OUTPUT«Nominal type check failed for parameter '$a'; expected Int but got Str instead␤current instr.: 'foo' pc 186 (EVAL_1:79)␤»
11:54 masak jnthn: it surprises me that it does the type check in this case, rather than fail on not-enough-required arguments.
11:57 masak rakudo: class A { method foo(&c) { &c() }; method bar() { foo({ say self.WHAT }) } }; A.new.bar
11:58 p6eval rakudo 125e87: OUTPUT«Could not find non-existent sub &foo␤current instr.: 'perl6;A;bar' pc 551 (EVAL_1:237)␤»
11:58 masak rakudo: class A { method foo(&c) { &c() }; method bar() { self.foo({ say self.WHAT }) } }; A.new.bar
11:58 p6eval rakudo 125e87: OUTPUT«A()␤»
11:58 masak rakudo: class A { method foo(&c) { &c() } }; class B { method bar() { A.new.foo({ say self.WHAT }) } }; B.new.bar
11:59 p6eval rakudo 125e87: OUTPUT«B()␤»
11:59 masak what if I wanted the above to print «A()␤» instead?
11:59 masak rakudo: class A { method foo(&c) { &c() } }; class B { method bar() { A.new.foo(method { say self.WHAT }) } }; B.new.bar
11:59 p6eval rakudo 125e87: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤current instr.: 'perl6;B;_block120' pc 893 (EVAL_1:359)␤»
11:59 masak hrm.
12:00 masak rakudo: class A { method foo(&c) { &c(self) } }; class B { method bar() { A.new.foo(method { say self.WHAT }) } }; B.new.bar
12:00 p6eval rakudo 125e87: OUTPUT«A()␤»
12:00 masak ah.
12:00 moritz_ rakudo: class A { method foo(&c) { c(self) } }; class B { method bar() { A.new.foo(method { say self.WHAT }) } }; B.new.bar
12:01 p6eval rakudo 125e87: OUTPUT«A()␤»
12:01 moritz_ masak: you don't need that & inside the method
12:01 masak moritz_: yeah, I just like the &c() form for clarity.
12:01 moritz_ bad golfer, no wine gum :-)
12:01 masak it's not a bug!
12:03 TimToady abstraction, sedition, uglification, and derision...
12:03 iblechbot joined #perl6
12:05 mikehh joined #perl6
12:05 * masak .oO( Don't drink and deride... )
12:07 masak jonasbn: how's the bingo going?
12:08 baest colomon: hmm, the base = 50 thing doesn't work well also. Also the fraction (1415926535897932384626433​8327950288419716939937510) is -4650192984935729434 so overflow there also
12:08 baest wow that was a lot of alsos :)
12:09 mberends baest: why didn't you also begin with an also?
12:10 baest mberends: I didn't know I wanted to go overboard at that point :)
12:10 jonasbn masak: okay
12:10 mberends baest: also a good point
12:10 colomon also, bother.
12:11 baest oh well, rakudo 1 baest 0
12:13 jonasbn what it the main hub for Perl6 documentation?
12:13 jonasbn perl6.org
12:13 jonasbn ?
12:13 colomon http://perlcabal.org/syn/
12:13 moritz_ perl6.org
12:13 moritz_ perlcabal.org/syn/ is "just" spec
12:14 TimToady we're trying to send everyone to perl6.org first, just to weed out all the butterflyphobes
12:14 mberends jonasbn: depends on the kind of document. the Perl 6 wiki is very open for collaboration http://www.perlfoundation.org/perl6
12:14 moritz_ and perl6.org is supposed to link to them all :-)
12:15 TimToady it flits from one to the other
12:15 * moritz_ wears a butterfly right now
12:15 mberends moritz_++ really does!
12:16 masak my door is a butterfly.
12:16 TimToady moritz_++ is a Manly Man, not threatened by a wee bug.
12:16 * masak .oO( bugme )
12:16 masak there are so many readings of that!
12:17 TimToady E2MANY
12:17 pmichaud good morning, #perl6
12:17 colomon o/
12:17 TimToady good morning, pmichaud++
12:17 masak pmichaud! \o/
12:17 jnthn morning, pmichaud :-)
12:18 baest rakudo: say 3.2e0;
12:18 p6eval rakudo 125e87: OUTPUT«3.2␤»
12:18 baest rakudo: say 3.14159265358979323846264338​327950288419716939937510e0;
12:18 cognominal joined #perl6
12:18 p6eval rakudo 125e87: OUTPUT«Multiple Dispatch: No suitable candidate found for 'multiply_float', with signature 'PNP->P'␤current instr.: 'perl6;Perl6;Actions;_block5211' pc 200064 (src/gen/perl6-actions.pir:10706)␤»
12:19 pmichaud how goes hackathon?  Anything specific needed from me at the moment?
12:20 baest oh, well, atleast I can fix that one, if not correct handling of that big numbers
12:20 colomon infodump for pmichaud: I got two different versions of the meta op !op working yesterday -- luckily both are committed, the second on top of the first.  Definitely still needs work, I know, and you may want to switch back to the first version, which is more like the op= implementation.
12:20 pmichaud colomon: I'll review it in a bit
12:20 colomon baest: what if we kept a running tab on the numbers?
12:21 jnthn pmichaud: Hackathon is going well :-)
12:21 jnthn pmichaud: Very productive discussion on modules stuff.
12:21 colomon so if it's 3.1415, you first see the 3, and store that.  then you see the . and toggle a flag.  then you see the 1 and add 1/10, then the 4 and add 4/100s, and so on.
12:21 pmichaud the multiple dispatch error above simply means that parrot doesn't know how to multiply a num with a PMC
12:22 pmichaud (with a specific type of PMC, likely a Perl6Str or a Num)
12:22 colomon afk # getting ready for church
12:22 pmichaud colomon: yes, that's the correct approach, except you don't need to look for the '.' because the parser has already located it for you
12:22 baest pmichaud: I have a fix for that, posting that in a sec on rt
12:23 baest colomon: yes, sound like a good way and when we overflow with the 10^someint along the way we just stop
12:26 moritz_ http://github.com/moritz/rmp -- Rakudo Module finding Prototype
12:27 kfo joined #perl6
12:28 krr joined #perl6
12:32 moritz_ hugme: reload
12:32 hugme moritz_: reloaded successfully
12:32 moritz_ hugme: show rmp
12:32 hugme moritz_: sorry, I don't know anything about 'rmp'
12:32 TimToady hugme: hug everyone
12:32 * hugme hugs everyone
12:33 moritz_ hugme: reload
12:33 hugme moritz_: reloaded successfully
12:33 moritz_ hugme: show rmp
12:33 hugme moritz_: the following people have power over 'rmp': PerlJam, TimToady, [particle], arnsholt, jnthn, masak, mberends, moritz_, pmichaud. URL: http://github.com/moritz/rmp/
12:34 kfo joined #perl6
12:35 pmichaud hugme: hug successfully
12:35 * hugme hugs successfully
12:37 moritz_ pmichaud, TimToady: we need some opinions... clearly we will have multiple locations where modules can be found (currently in @*INC). Should module loading without a specific version  always look in all of them, and look for the highest version?
12:38 pmichaud "best match", iirc
12:38 moritz_ alternative would be to look only in the first location, and if a module is found, its highest version is used
12:38 pmichaud it's best match among all locations
12:38 moritz_ ok.
12:38 baest how do convert a str to an integer in pir?
12:38 moritz_ that's my preference as well
12:38 TimToady I agree
12:38 pmichaud baest: $I0 = $S0
12:38 moritz_ baest: assign it to an $I0 register
12:39 moritz_ $I\d :-)
12:39 TimToady it should be best match even with respect to the officially installed modules, which might not be in a directory at all
12:39 pmichaud thus "location"  :-)
12:39 TimToady at some abstract level, you take all the official and unofficial modules, and treat them as a single query
12:40 baest thanks
12:40 moritz_ TimToady, pmichaud: that answers our question sufficiently, thanks you
12:43 ingy I just got my new language to generate the JavaScript module from a handcoded ast
12:43 ingy I guess I could easily add a p6 generator now
12:43 ingy but maybe I'll sleep first
12:44 jnthn <trait>* [where <EXPR('m=')> ]?    # (EXPR can parse multiple where clauses)
12:45 jnthn oops!
12:52 kfo joined #perl6
12:54 new_perl6_hacker joined #perl6
12:54 pmichaud std:  say &infix:<!+>;
12:54 p6eval std 29974: OUTPUT«ok 00:01 109m␤»
12:54 pmichaud std: say &infix:<xyz>;
12:55 p6eval std 29974: OUTPUT«ok 00:01 107m␤»
12:55 TimToady well, it's really just punting there
12:55 pmichaud yes, I guessed.  What should happen?
12:55 TimToady std: say &foo
12:55 p6eval std 29974: OUTPUT«ok 00:01 108m␤»
12:55 pmichaud is there a &infix:<!+>  ?
12:55 TimToady doesn't even care about that &fo
12:55 TimToady &foo
12:56 TimToady I sincerely doubt it considering it's not iffy
12:56 pmichaud okay, how about some other iffy operator, then?
12:56 TimToady and in any case, I think of it as a higher order function, not as a generated function
12:56 TimToady though that's a possible implementation strategy
12:57 pmichaud okay, that's the answer I was after, then
12:57 pmichaud (it's higher-order, not generated)
12:57 pmichaud so,  &infix:<+=>  doesn't really exist as a generated function?
12:57 TimToady on the other hand, if someone wants to name the thing...
12:57 TimToady then we might force generation
12:57 TimToady just to have an identity
12:58 TimToady we'd like people to treat these all as real functions, even when they are abstract
12:58 pmichaud originally I went with generation here, but then I'm not sure how to force generation simply given the &infix:<...> reference
12:58 TimToady and, in some sense, we have to, if we want to nest higher-order functions
12:59 TimToady in X!%, what are we passing cross?
12:59 TimToady presumably &[!%]
12:59 pmichaud right
12:59 pmichaud that's one of the reasons I went with generation
13:00 TimToady well, and it gives it to the optimizer to play with, someday
13:00 pmichaud so, you're now tending to think of these as generated functions?
13:01 moritz_ std: package FOO;
13:01 TimToady I tend to think that I shouldn't care one way or the other :)
13:01 p6eval std 29974: OUTPUT«ok 00:01 104m␤»
13:01 TimToady as long as the abstraction doesn't spring a leak
13:02 TimToady but generation has the advantage of doing the function composition at compile time, for some def thereof
13:02 pmichaud right
13:03 masak here's what's bothering me: MyClass.new( :hashattr{ foo => 42 } ) does the right thing, but MyClass.new( :arrayattr[1, 2, 3] ) does the wrong thing in Rakudo.
13:03 pmichaud masak: we're still working out list issues, sadly.
13:04 pmichaud masak: you're expecting :arrayattr to bind to an array?
13:04 TimToady yes. same problem if you write it arrayattr => [1,2,3]
13:05 TimToady it assigns, and ends up with one element, containing an array
13:05 baest should there be a pi() sub or just the constant
13:05 TimToady there is no pi sub
13:06 TimToady constants-as-subs is a p5-think
13:06 masak pmichaud: I'm not sure I'm expecting binding semantics excatly. (jnthn-san explained that this causes other problems, such as action-at-a-distance)
13:06 masak pmichaud: I do expect the initialization not to introduce an extra layer of array, like the corresponding assignment does.
13:06 TimToady we were speculatin' that there's something value vs object going on here
13:06 pmichaud masak: I've never been clear what sort of semantics should go with the named attribute initialization
13:06 masak right.
13:06 baest TimToady: ok, maybe we did a sub which returned pi constant. And the test mentions pi().... But I'll fix it
13:07 masak pmichaud: that's why I'm doing my best to be clear on this thing. :)
13:07 TimToady rakudo: 2()
13:07 pmichaud baest: at one time in the past, pi() was considered another way to access the constant.  That's no longer the case.
13:07 p6eval rakudo 125e87: OUTPUT«invoke() not implemented in class 'Integer'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
13:07 TimToady baest: see ^^
13:07 pmichaud baest: I'm guessing the spectest suite is fossilized there.
13:08 pmichaud so, with  :arrayattr([1,2,3])   what is the correct semantic?
13:08 baest pmichaud: ok, I unfossilize it in this regard
13:08 baest TimToady: yep
13:09 TimToady and type names are also constants, but when you invoke them you get a coercion
13:10 TimToady maybe copy binding is the closest thing here
13:10 pmichaud "copy binding"?
13:10 pmichaud oh,c reate a copy and bind to it?
13:10 TimToady sub foo (@x is copy)
13:11 TimToady just guessing
13:11 TimToady and not answering your ([]) form necessarily
13:11 pmichaud troo
13:12 TimToady though by the usual paren vs comma rules, it should not be hidden in a parcel unless you say ([],)
13:12 TimToady if we keep going that way
13:12 TimToady assuming :a() maps to a => ()
13:13 payload joined #perl6
13:13 pmichaud yes, I'm envisioning that   :a([1,2,3])   and  :a(1,2,3)  could be distinct
13:13 TimToady that mislikes me
13:14 TimToady oh, wait
13:14 TimToady the right one is (), not []
13:14 pmichaud correct
13:14 TimToady so it doesn't mislike me
13:14 pmichaud :a[1,2,3]  and :a([1,2,3])  are currently the same.
13:14 pmichaud (and should be, imo)
13:14 TimToady that's good, I think, the problem is assignment vs binding, I still think
13:15 TimToady but seems that copying vs referencing should be the choice of the attribute
13:15 pmichaud so,   :arrayattr(1,2,3)   versus  :arrayattr([1,2,3])
13:15 TimToady binding a parcel vs binding an array
13:16 pmichaud one might expect the first to produce an array with three elements, and the second to produce an array with one.
13:16 quester joined #perl6
13:16 TimToady most wouldn't, though
13:16 pmichaud well, I'm following the    my @a = 1,2,3   versus   my @a = [1,2,3]  reasoning
13:16 TimToady and can be forced with ([],)
13:17 rv2733 joined #perl6
13:17 TimToady that's assignment though
13:17 pmichaud yes
13:18 pmichaud average-p6-programmer often won't see the difference between binding and assignment
13:18 pmichaud unlses of course we make it that they need to see that difference :-|
13:18 pmichaud *unless
13:19 TimToady well, the BUILD thinks it's doing binding, if you do it with the sig
13:19 pmichaud okay, I'm fine with it being binding
13:20 TimToady in general, binding is cleaner than assignment, except when it isn't
13:20 pmichaud does it become an eager binding?
13:20 TimToady binding to $.attr is presumably different from binding to $.attr is rw, maybe
13:20 pmichaud I guess it remains lazy
13:21 pmichaud :arrayattr(lines())    # slurps input lines, or no?
13:21 pmichaud maybe "is copy" implies an eagerness there?
13:21 TimToady to the first approximation, I think we go with assumptions of immutability and FP, and then see where that leaves us with OO problems
13:22 TimToady it can still be lazy if cloning an immutable generator
13:22 TimToady I've been trying to bias iterators toward assuming you can clone one whenever you want
13:22 pmichaud a recurring theme seems to be that immutability and FP seems to go out the window once arrays are involved :-|
13:23 TimToady since that's more the FP worldview than the OO
13:23 pmichaud (bias iterators) okay, that's a good guidepost
13:23 TimToady and basically, force people to throw in an eager or whatever if they need it before the thing gets cloned
13:24 TimToady I think we have to go with FP sanity here, long term, and live with the OO consequences
13:25 TimToady we already tell people in p5, "Don't modify the array while you're iterating it!"
13:25 TimToady (or write your iteration explicitly with shift)
13:27 TimToady and maybe requiring an occaisional 'is copy' is like requiring an occasional 'eager'
13:27 pmichaud masak: so, my short (and highly unsatisfactory) answer is that I'm still struggling to get lists, arrays, and iterators in general to work properly, so the fact that they don't quite work in object attribute initialization doesn't surprise me much.
13:27 TimToady and we blame the FP and OO folks for being immiscible :)
13:28 masak pmichaud: I understand completely.
13:28 masak pmichaud: this is an old problem, though. it exists in alpha as well.
13:29 TimToady I do think it's okay, however, if multiple objects end up with attributes that reference the same array
13:29 pmichaud TimToady: array attributes, also?
13:30 pmichaud I mean, certainly we expect scalar attributes to do that
13:30 TimToady (though note also that [1,2,3] composes a new array, so doesn't generally share like $array would)
13:30 pmichaud what about     :arrayattr(@b)  ?
13:31 pmichaud so, if I have   :array1(@b)   and :array2(@b) ...   ?
13:31 masak rakudo: role A { class B {} }
13:31 p6eval rakudo 125e87:  ( no output )
13:31 TimToady that would presumably bind a readonly ref ?
13:31 pmichaud as attributes?
13:31 pmichaud XYZ.new( :array1(@b), :array2(@b) )    #   @.array1 is ro?
13:32 masak :/
13:32 masak I'd expect them to be rw and distinct.
13:32 pmichaud Right.
13:32 masak where 'distinct' does not involve deep copying, of course.
13:32 masak just one level down.
13:34 TimToady well, you can't have that and also not have [] turn into a single element
13:34 * masak submits rakudobug
13:35 baest rakudo: say 3.14159265358979
13:35 p6eval rakudo 125e87: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'␤current instr.: 'perl6;Rat;new' pc 319571 (src/gen/core.pir:37782)␤»
13:35 TimToady and we can force value semantics with 'is copy', so the default should be otherwise, methinks
13:37 masak TimToady: ok. sounds like a Scylla/Carybdis design issue, then.
13:37 masak newbies will either be forever surprised by double array layers, or by strange readonly binding-ish semantics.
13:38 TimToady or they'll just cargo-cult 'is copy' all over every BUILD
13:39 pmichaud how does one get a rw-able array attribute, then?
13:39 TimToady which rw are you referring to?
13:39 pmichaud s/get/initialize/
13:40 pmichaud class XYZ { has @!a };    XYZ.new(:a( what do I put here to initialize @!a but leave it rw in the class?) )
13:41 TimToady :a(1,2,3) might do it
13:41 pmichaud but  :a(@b) wouldn't?
13:42 TimToady it's also possible that BUILD defaults $! parameters differently
13:42 pmichaud did you mean $! attributes?
13:42 pmichaud oh, I see
13:42 TimToady I mean parameters
13:42 TimToady I'm trying to work it all with the already-existing signature binding semantics
13:43 pmichaud yes, I'd like that
13:43 TimToady (whatever those are...)
13:43 pmichaud I speculated with jnthn++ a couple of months ago that attribute initialization was really a form of signature binding
13:43 TimToady at least when it is done in the sig
13:43 TimToady we can still write a custom BUILD
13:45 TimToady maybe an implicitly written BUILD assumes 'is copy' on parameters...hard to know these things in the middle of the night
13:50 baest I have a patch which fixes some of the problems with large floating point with exponent parts. It's #73392
13:50 arthur-_ joined #perl6
13:50 pmichaud baest: looking
13:52 payload joined #perl6
13:53 pmichaud baest: you're expecting $I2 to go negative on overflow?
13:53 jmarti joined #perl6
13:53 TimToady shower &
13:53 pmichaud this particular approach is still very limiting -- it means we only get the precision available for integers, not for floats
13:54 pugssvn r29975 | baest++ | Update pi test to not mentioning pi function and add a atan(1)*4 test
13:54 pmichaud i.e., $I2 will overflow well before we've reached the limits of float precision
13:54 baest pmichaud: ok, so you want that as a Num instead?
13:55 pmichaud I'd prefer to get rid of the *= 10
13:55 pmichaud and be using mul instead of div
13:55 pmichaud and this seems to only fix the problem associated with exponentials, while not resolving the issue with large decimals
13:55 pmichaud (seems like any fix ought to be handling both)
13:58 baest pmichaud: yes, there is no fix of the last part which uses Rat, I just move some code in order to not calculate base when not needed
14:01 masak how do I write a method .modify if I don't want an original object in $orig to be affected by $orig.=modify ?
14:01 masak I thought doing this would be enough: method modify() { #`[ stuff ]; self.bless(self.CREATE, :new($stuff)) }
14:03 pmichaud masak: I'm afraid I don't follow the question
14:04 pmichaud to me,  .= implies mutation
14:04 pmichaud if you're asking  "how do I create a method that creates a new object", then it can just do .new
14:04 masak pmichaud: when I assign with objects, $a = $b, I get the same object in both variables, right?
14:05 pmichaud masak: yes.
14:05 moritz_ masak: method modify($self is rw:) { } # something like that?
14:06 pmichaud more precisely, $a and $b both refer to the same object
14:06 pmichaud but I don't see how that applies to your original question yet
14:06 masak well, I'm experiencing action at a distance here.
14:06 masak but I'm starting to suspect it's really my fault.
14:06 akl joined #perl6
14:06 akl joined #perl6
14:07 masak not sure I know myself how to solve it.
14:07 pmichaud if   .modify changes the invocant, then that's the issue
14:07 masak no, what I wanted was actually something clone-y, which left objects intact and cloned every time it made a change.
14:07 pmichaud then .modify should simply be producing a new object
14:07 masak but what I got was the old objects being replaced by the new ones in variables I didn't even touch.
14:08 pmichaud and  $a.=modify   does what you want
14:08 masak I suspect that's because I did the $a = $b thing.
14:08 masak so if I first do $a = $b and then $b.=modify, does $a change too?
14:08 pmichaud it shouldn't.
14:08 masak then I have a bug for you.
14:09 masak let me golf it a bit more.
14:09 pmichaud but more to the point,   $b .= modify   shouldn't change the original $b (unless .modify itself is modifying self)
14:09 masak it doesn't.
14:09 masak but it replaces the object in $a with the object that .modify produces.
14:09 masak which is... less than awesome.
14:10 pmichaud we may have a stray copy from the old assignment semantics lying around, then.
14:10 pmichaud do you have a short nopastable example?
14:10 masak working on it.
14:10 pmichaud okay
14:10 pmichaud I'm sure I can fix quickly.
14:10 masak \o/
14:10 masak this is alpha, by the way.
14:10 masak haven't tested with master.
14:10 * masak hides :)
14:11 pmichaud oh, I don't make any claims for alpha atm
14:11 * moritz_ spectests RT #73278 - any objections to applying it if it produces no errors?
14:12 TiMBuS joined #perl6
14:12 pmichaud moritz_: reviewing
14:13 moritz_ (with fixed whitespaces)
14:13 masak alpha: class A { method x() { self.bless(self.CREATE) } }; my A $a.=new; my $b = $a; say $a.WHICH; $b.=x(); say $a.WHICH;
14:13 pmichaud I don't like the hash initialization at the beginning (of each invocation)
14:13 p6eval alpha 30e0ed: OUTPUT«47864366503640␤47864366382800␤»
14:13 masak pmichaud: there it is.
14:13 masak rakudo: class A { method x() { self.bless(self.CREATE) } }; my A $a.=new; my $b = $a; say $a.WHICH; $b.=x(); say $a.WHICH;
14:13 p6eval rakudo 125e87: OUTPUT«47596465090472␤47596465090472␤»
14:13 moritz_ pmichaud: should it be moved to an outer scope?
14:13 masak ...and fixed in master. argh! :/
14:14 pmichaud moritz_: not sure.  In some sense it perhaps should be matching against the grammar's sigil rule
14:14 pmichaud either that or just turned into a package variable and set via INIT
14:15 baest pmichaud: I'm not sure how you would do the multiplication. Wouldn't that involve div later? Right now, it's adding parts of the number one digit at the time
14:16 pmichaud baest: one moment
14:16 masak hm. adding .clone to $b = $a seems to be a workaround for now.
14:17 moritz_ pmichaud: trying it with a package variable now
14:20 pmichaud moritz_: the code doesn't feel as clean as I think it ought to be, but I'm okay with applying it for now.
14:20 jnthn pmichaud: grr. I just ran into the fact that P6protoobject is a class. That means if you try and mix into a proto-object, we then try to derive a subclass of it and do the mix-in (fine), but then when building a proto-object for that derived class we end up with something C3 linearization will balk at.
14:21 masak phenny: tell snarkyboojum that when he wakes up, he might want to take a look at the new code I just pushed to http://github.com/masak/tardis -- variable assignments now work! \o/
14:21 phenny masak: I'll pass that on when snarkyboojum is around.
14:21 jnthn (or long story short, mix-ins to protoobjects can't work :-/)
14:21 jnthn (without changing the way P6object does things)
14:21 masak awww. :/
14:22 pmichaud jnthn: what sort of changes to p6object ?
14:22 jnthn Dunno
14:22 jnthn I guess making p6protoobject into a role we mix in rather than being a class would cut it.
14:22 jnthn Not sure how much disruption that would cause though.
14:23 pmichaud I'm not entirely comfortable with roles in parrot.
14:23 pmichaud (they may be fine, I just haven't seen good examples to work from.)
14:23 jnthn I'm not entirely comfortable with proto-objects being a different Parrot class.
14:23 jnthn (than the actual instance)
14:23 jnthn But that's an even bigger change and fix.
14:23 pmichaud oh, same here as well.  At the time I created P6protoobject I didn't find that I had much choice
14:23 jnthn (means we need all those :U, :D etc style things.)
14:24 pmichaud mixins didn't seem to be available, so I had to derive a new type.
14:24 jnthn Deriving a new type is fine.
14:24 TimToady after cogitating in the shower, I think defaulting all $!attr parameters to 'is copy' is the right default; we can perhaps have 'has $!attr is ref' to override without forcing the user to write an explicit BUILD
14:24 pmichaud ?
14:24 pmichaud (? was to jnthn)
14:25 jnthn The problem is that if you subclass a proto-object itself, then the proto-object for that also tries to inherit from P6protoobject.
14:25 pmichaud oh!
14:25 jnthn then it ends up multiple times in the inehritance hierarchy in a way that C3 can't cope with.
14:25 jnthn So you get a linearization FAIL.
14:25 pmichaud when do we subclass a protoobject?
14:25 masak TimToady: I haven't followed all the consequences of that yet, but I think I like it.
14:25 wknight8111 joined #perl6
14:26 jnthn pmichaud: well, I wanted to do SomeThing but SomeRole
14:26 jnthn Primarily because it allows a neat implementation of subset. :-)
14:26 TimToady masak: it gets you most of what you expect from assignment semantics without the extra baggage.  it's also a no-op on something that is already immutable
14:26 pmichaud in that case, would it work to derive from the class for SomeThing and not the class of the protoobject ?
14:27 TimToady well, not quite a no-op, it still wants the eventual container to be modifiable, but it doesn't have to clone the value
14:27 pmichaud i.e., use the protoobject to get to the base SomeThing class, derive from that, then create a new protoobject
14:27 jnthn No, because then when you re-bless, the thing you re-bless into isn't actually a subclass of the protoobject. :-(
14:27 masak TimToady: do we get rid of the extra layer of [] with :lolimanarrayattr[1,2,3] ?
14:27 TimToady but a default of value semantics when initializing objects feels like good encapsulation
14:28 TimToady it should
14:28 masak \o/
14:28 masak then I have no further wishes.
14:28 jnthn pmichaud: I can think of workarounds for this particular case.
14:28 TimToady it will, though copy the array, if it can't do some kind of COW
14:28 pmichaud I don't understand "isn't actually a subclass of the protoobject"
14:28 jnthn I don't see an obvious easy fix for the general mix-in-to-a-protoobject case.
14:28 masak TimToady: that feels natural, too.
14:29 TimToady speccing it
14:29 pmichaud at the p6-level, protoobjects aren't a subclass
14:29 jnthn The problem isn't at the P6 level.
14:29 jnthn The problem is that the Parrot level != the P6 level
14:29 jnthn And so while this all *should* work great, the mis-match screws us up.
14:29 pmichaud jnthn: I think you're not following me, then.
14:30 jnthn I think you're not following me either.
14:30 masak ++TimToady
14:30 jnthn :-)
14:30 jnthn The rebless_subclass op needs an exact subclass.
14:30 jnthn At a Parrot level.
14:30 masak a Japanese user gasps at a Rakudo error message: http://twitter.com/nullpon/status/10119603769 -- hopeably the gasp is gue to the messages A-ness rather than LTA-ness.
14:31 masak s/gue/due/
14:31 pmichaud jnthn: when we have    SomeThing but SomeRole, that's doing an inplace modification of SomeThing?
14:31 jnthn No
14:31 jnthn clone SomeThing
14:31 jnthn And then inplace on the clone
14:31 pmichaud okay
14:31 jnthn essentially bit is $lhs.clone does $rhs
14:31 pmichaud so, I'm saying we don't do that
14:31 jnthn Or similar.
14:31 pmichaud don't clone SomeThing
14:31 rgrau joined #perl6
14:31 jnthn That isn't the problem.
14:31 jonasbn I HATE when the compiler is right and I am wr0ng
14:32 jnthn We have to, or we turn the original proto-object into a subtype. :-)
14:32 pmichaud nonono
14:32 masak jonasbn: luckily, that doesn't happen all that often in my experience :P
14:32 pmichaud don't clone Something, just create the new class with the but and then create a protoobject for it
14:33 jnthn I really, really don't follow.
14:34 jnthn but is just implented in terms of does
14:34 jnthn does itself delegates to the meta-model.
14:34 pmichaud just a sec
14:34 pmichaud if I have     3 but SomeRole, what happens?
14:34 jnthn 3.clone does SomeRole
14:35 jnthn well
14:35 jnthn Not quite that akshually
14:35 jnthn But close.
14:35 pmichaud right, I need the real details here :)
14:35 pmichaud anyway, that's close enough
14:35 jnthn That is actually how I have it here.
14:35 pmichaud the problem is the 3.clone step won't really work for a protoobject
14:35 jnthn Ah?
14:36 jnthn What will it end up doing?
14:36 pmichaud well, it clones the protoobject, but as you say, that's a class that we can't derive from
14:36 jnthn Oh, I think I see maybe why...
14:36 jnthn Well, yes, the problem is that we need to derive from it. :-(
14:37 pmichaud I'm saying that instead of cloning the protoobject and deriving from it, derive from a base class instance and then use that to create a new protoobject
14:37 jnthn But I want to nextsame() to the ACCEPTS in the protoobject.
14:37 jnthn Basically all I wanted to do here was
14:37 jnthn 1) take a protoobject
14:37 pmichaud the new protoobject will have an ACCEPTs
14:37 jnthn 2) mix in an ACCEPTS method
14:38 jnthn Yes, but I actually don't need the new proto-object
14:38 jnthn It's a throw-away, essentially.
14:38 TimToady jonasbn: if you want a compiler that is Always Right, try Haskell  :)
14:39 pmichaud jnthn: okay, it's clear that I'm not understanding any of this, then.  :-)
14:39 jnthn Anyway, I guess trying to implement subset in some pure Perl 6-y way when we've got an awkward mis-match between Parrot and Perl 6 handling of proto-object stuff is just Too Idealistic.
14:40 pmichaud I'm fine if we change the handling of protoobjects in P6object
14:40 pmichaud I'm not sure *how* to change it, but I'd be fine with doing it (assuming we don't break anything API level)
14:40 pmichaud the fact that protoobjects create a new subtype isn't API as far as I'm concerned.
14:41 pmichaud that's something that was done as a workaround to not having appropriate mixin capabilities in Parrot.
14:41 jnthn Unfortunately, I don't see how we can avoid that without the :U/:D style modifiers.
14:41 jnthn Otherwise we end up in the wrong ACCEPTS all the time
14:41 jnthn And I'm not sure how to handle those easily outside of Perl 6 space.
14:42 pmichaud ACCEPTS is (afaik) purely a Perl 6 item.  it's not part of P6object
14:42 jnthn ah, that's true.
14:43 pmichaud I've theorized putting ACCEPTS into P6object (and might have even done it), but my earlier comment that it doesn't have to be handled via subclassing applies
14:43 jnthn Either way, it's all a rather big refactor that'll take some time and planning.
14:43 jnthn So I'd rather not do that right now.
14:43 pmichaud well, whatever approach you decide to take I'm fine with.
14:43 jnthn I'll do something workaround-ish for subset now.
14:43 pmichaud that seems best.
14:43 pugssvn r29976 | lwall++ | [S06,S12] make attributive parameters default to 'is copy' binding
14:43 pugssvn r29976 | make easy way for an attribute to override this with 'is ref'
14:44 pmichaud baest: still around?
14:44 jnthn And we can re-visit this when considering object model stuff overall.
14:44 jnthn (e.g. when looking at knownhow/compact structs/multiple backends.)
14:44 baest pmichaud: yep
14:44 pmichaud baest: instead of building the denominator by successive multiplications by 10, I'd prefer to build it by successive multiplications of 0.1
14:45 pmichaud and we need to be doing this for both exponential and non-exponential values
14:45 baest pmichaud: ahh, that make sense. I didn't get that at all
14:45 moritz_ pugs: 1/7
14:45 p6eval pugs:  ( no output )
14:45 moritz_ pugs: say 1/7
14:45 p6eval pugs: OUTPUT«0.14285714285714285​71428571428571428571429␤»
14:46 pmichaud colomon++ had suggested that infix:</> was the correct way to handle this, and I suspect that may be correct.
14:47 pmichaud I have to go -- bbiab
14:47 * masak submits rakudobug
14:47 masak that was just a test of my new Emacs macro :P
14:48 pugssvn r29977 | moritz++ | test for RT #73262: 7**(-1) should not be 0
14:49 TimToady I always misread rebless as reb-less
14:51 am0c joined #perl6
14:55 pmichaud back
14:56 dalek rakudo: d4d58aa | moritz++ | t/spectest.data:
14:56 dalek rakudo: more tests
14:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​4d58aa09a9cf4e725ceb25ea97da23864d8fbe6
14:56 dalek rakudo: 201e027 | moritz++ | src/core/Int.pm:
14:56 dalek rakudo: Int**Int does not produce an Int if the RHS is negative
14:56 dalek rakudo: ... so don't try to corece to Int in that case.
14:56 dalek rakudo: Fixes RT #73262
14:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​01e027c42a13188f622b16afd88f71c3b1d43b2
14:56 pmichaud anyway, in the non-exponential case, we may be able to generate the appropriate value by calling &infix:</>  instead of Rat.new(), and letting that decide whether we produce a Rat or Num (or other) result.
14:56 baest pmichaud: that last thing with infix:</> was that to me? If it is I'm confused
14:56 baest pmichaud: ahh, ok
14:56 baest make sense
14:57 pugssvn r29978 | moritz++ | [t/spec] re-fudge arith.t for rakudo
14:57 pugssvn r29978 |
14:57 pugssvn r29978 | Also remove a test which is now in S03-operators/names.t
14:57 pmichaud oh, wait
14:57 * pmichaud thinks
14:57 pmichaud oh, nm.
14:58 * masak submits rakudobug
14:58 masak now I also have my macro as a simple key binding :)
14:58 masak this will enable me to shave a few milliseconds off the whole routine.
14:59 pmichaud .oO( masak replaces his sledgehammer with a jackhammer )
14:59 moritz_ pmichaud: might I ask you to look at #73244 (the Big Grammar Patch) soon?
14:59 masak pmichaud: :)
14:59 pmichaud moritz_: looking.
14:59 masak .oO( drrrrRRRRR )
15:01 masak rakudo: say Int ** Int
15:01 p6eval rakudo 125e87: OUTPUT«Use of type object as value␤current instr.: 'perl6;Perl6Exception;throw' pc 14501 (src/builtins/Seq.pir:52)␤»
15:02 moritz_ masak: all of those should be warnings, but are fatal :/
15:02 masak moritz_: :/
15:02 baest pmichaud: doing *.1 seems to result in the same precision
15:02 payload joined #perl6
15:05 pmichaud baest: same precision as the case when using a $I register?  or when using the $N register?
15:06 pmichaud moritz_: I'm not comfortable with the apparent code duplication between regexes and method, but if spectests pass I'm fine with #73244 for now and we'll cleanup/refactor a bit later.
15:06 moritz_ pmichaud: ok
15:06 pmichaud I'd also prefer that we use dynamic vars for %REGEX_MODIFIERS instead of the package-scoped thingy
15:08 dalek rakudo: 19cd1c6 | moritz++ | t/spectest.data:
15:08 dalek rakudo: enable arith.t
15:08 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​9cd1c6f01c9f0c60f100e297a098ba317cae698
15:08 pmichaud (again, that can be cleaned up afterwards)
15:08 baest pmichaud: both it seems, I'm not sure if I remember the $I correctly, but could that store number like 1e50?
15:08 jnthn (clean up later and get patch in now)++
15:08 jnthn (for this case, not in general :-))
15:08 pmichaud $I is only good to the limit of 32-bit ints
15:08 pmichaud so no
15:08 moritz_ jnthn, pmichaud: spectesting now
15:09 baest pmichaud: yes I thought so, maybe there was some magic I didn't get
15:12 baest pmichaud: but yes, just rested, the $I and $N and * .1 all gives 3.14159265358979 for pi (when faced with 3.14159265358979323846264338​327950288419716939937510e0)
15:12 TimToady maybe it wasn't a bright idea to spec parrot ints at 32-bits when the whole world is probably going toward 64 now...
15:12 baest s/rested/retested/
15:15 arnsholt Where's the place to report nqp-rx bugs?
15:15 arnsholt Or rather, correct place
15:16 baest I think that it doesn't matter if we get the last digit after 18th digit, the addition doesn't seem to change. It's like 3e50+abignumber == 3e50
15:17 pmichaud arnsholt: I take nqp-rx bugs just about anywhere
15:17 pmichaud arnsholt: standard seems to be the parrot trac bugtracker
15:17 pmichaud we haven't officially designated a place yet (and I'm not familiar enough with github's issue tracker to be regularly checking it yet)
15:18 pmichaud apparently nobody has submitted issues via github yet :-)   (http://github.com/perl6/nqp-rx/issues)
15:21 baest pmichaud: how do you call infix</> from npq?
15:21 arnsholt pmichaud: Righties. I'll put it in the Parrot Trac then
15:22 pmichaud baest: you won't call it directly -- you'll generate a call to it
15:22 baest pmichaud: ahh, of course
15:23 quester left #perl6
15:25 dalek rakudo: e9c1857 | moritz++ |  (7 files):
15:25 dalek rakudo: Merge remote branch 'bkeeler/grammar'
15:25 dalek rakudo: This merges the 'grammar' branch from git://github.com/bkeeler/rakudo.git and
15:25 dalek rakudo: closes RT #73244.
15:25 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​9c185776c86a62d76b77cdd753eb7d03c4e647c
15:30 arnsholt Ok. I have patched Rakudo to fix the issue with interpolating a single variable. How should I submit it?
15:30 masak arnsholt: a nopaste is fine.
15:31 pmichaud ...there was an issue with interpolating a variable...?
15:31 masak :)
15:31 moritz_ arnsholt: generate a patch by commiting the changes locally, and then run 'git-format-patch HEAD^'
15:31 masak pmichaud: yes, "$only-thing-in-string" didn't stringify the interpolated var.
15:31 arnsholt rakudo: my $a = 3; say "$a".WHAT; # pmichaud
15:31 p6eval rakudo 201e02: OUTPUT«Int()␤»
15:31 masak pmichaud: TimToady quipped that he'd had the same bug somewhere around Perl 1.0 :)
15:31 pmichaud ah.
15:32 pmichaud yes, we had that bug in alpha, iirc.
15:32 arnsholt It's an issue in nqp-rx (I'd argue at least)
15:32 arnsholt But I couldn't quite get the nqp-rx code to do what I wanted so I did it in Rakudo instead
15:33 masak maybe it's best that pmichaud takes care of applying this patch.
15:33 arnsholt Indeed
15:34 masak TimToady: S12:1809 "You may import enum types; only non-colliding values are imported." The word choice of 'values' there is confusing to me, because we're not importing the 0..7 of the Day enum, for example.
15:34 Psyche^ joined #perl6
15:36 clintongormley joined #perl6
15:36 dalek rakudo: e2c77d4 | mberends++ | docs/S11-Modules-proposal.pod:
15:36 dalek rakudo: [docs/S11-Modules-proposal.pod] the outcome of the S11 Modules discussion at the Copenhagen Perl 6 Hackathon
15:36 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​2c77d430c533e3b78048f719ac234e5364886a9
15:36 masak when I hear the word value, I think 'the rhs of a =>'. we're really importing symbols, which happen to be associated with some value.
15:36 jnthn nod nod
15:37 * masak does a guerrila word change
15:37 moritz_ mberends++ indeed
15:37 lisppaste3 arnsholt pasted "Patch for interpolating single element" at http://paste.lisp.org/display/96049
15:38 * moritz_ hilights pmichaud for the paste above
15:38 masak mberends++
15:38 nihiliad joined #perl6
15:41 pugssvn r29979 | masak++ | [S12] s/values/symbols/
15:43 jnthn mberends++
15:46 uniejo mberends++
15:46 jnthn (and all_of_us++ for working on this)
15:47 dalek rakudo: 1ed54df | mberends++ | docs/S11-Modules-proposal.pod:
15:47 dalek rakudo: [docs/S11-Modules-proposal.pod] remove excessive Foo::Bar, Hackathon++
15:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​ed54df161ccc25ff50ec5f55d7965d1858bce9b
15:47 dalek rakudo: cd42786 | masak++ | docs/S11-Modules-proposal.pod:
15:47 dalek rakudo: [docs/S11] fixed a small typo
15:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​d427864d6093914b1fc18bd6309f8de2f98af72
15:47 dalek rakudo: d32a0c2 | mberends++ | docs/S11-Modules-proposal.pod:
15:48 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
15:48 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​32a0c23f3cc774af6cb600705b5820ed6d2fc83
15:50 masak jnthn: enum A <a b c>; enum B <c d e>; # what happens to &c here?
15:50 masak jnthn: does S12 bring that up? I just saw it talk about importing.
15:51 jnthn it says something about non-colliding symbols, iirc
15:51 moritz_ ISTR that it makes &c ambiguous and thus disallowed
15:51 masak right.
15:51 masak but that must happen when we see B, right?
15:51 masak and there's also the small detail of the user defining 'sub c', which is IIRC allowed.
15:52 masak it's as if subs are in a layer in front of enum keys, shadowing them if needed.
15:52 moritz_ aye; it must look at the current scope, and if there's a c enum symbol, remove it from the namespace
15:53 arnsholt pmichaud: Trac ticket for the interpolation issue: http://trac.parrot.org/parrot/ticket/1503
15:54 mberends is someone planning to work on the 'use' implementation in the next week or so? I'd like to try to implement some of these S11 proposals but don't want to be at cross purposes with others.
15:54 masak moritz_: https://www.racf.bnl.gov/docs/​rt/rtexpertuser#rt_admin_email
15:55 lisppaste3 arnsholt annotated #96049 "untitled" at http://paste.lisp.org/display/96049#1
15:55 baest std: my @x = (1,,3,);
15:55 p6eval std 29979: OUTPUT«[31m===[0mSORRY![31m===[0m␤Preceding context expects a term, but found infix , instead at /tmp/ZAzW3sMTat line 1:␤------> [32mmy @x = (1,[33m⏏[31m,3,);[0m␤    expecting any of:␤      POST␤   bracketed infix␤    infix or meta-infix␤      null term␤      postfix␤
15:55 p6eval ..postfix_prefix_meta_operator␤FAI…
15:56 baest std: my @x = (1,3,);
15:56 p6eval std 29979: OUTPUT«ok 00:01 106m␤»
15:59 TiMBuS does the current rakudo not support 'use'? seems to look for a .pir instead of .pm
15:59 masak rakudo: say Perl6::Compiler.compile('say 42').WHAT
15:59 p6eval rakudo e9c185: OUTPUT«Null PMC access in find_method('WHAT')␤current instr.: 'parrot;P6object;WHAT' pc 68 (runtime/parrot/library/P6object.pir:111)␤»
15:59 * masak submits rakudobug
16:01 masak rakudo: my $x = Perl6::Compiler.compile('say 42'); $x()
16:01 jnthn rakudo: say(say 42).WHAT
16:01 p6eval rakudo e9c185: OUTPUT«42␤»
16:01 baest TiMBuS: I think the modules need to be precompiled
16:01 p6eval rakudo e9c185: OUTPUT«42␤1␤»
16:01 masak that is so cool.
16:01 TiMBuS yeah thats what I'm guessing
16:02 mberends travel Copenhagen -> Utrecht, NL # $work :-(
16:05 dalek rakudo: cca3cfc | moritz++ | docs/S11-Modules-proposal.pod:
16:05 dalek rakudo: [docs/S11-Modules-proposal.pod] link to prototype module searching function
16:05 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​ca3cfccd61556720bf620b2501463ae3bc97994
16:05 masak rakudo: Perl6::Compiler.compile('say 42').WHAT
16:05 p6eval rakudo e9c185: OUTPUT«Null PMC access in find_method('WHAT')␤current instr.: 'parrot;P6object;WHAT' pc 68 (runtime/parrot/library/P6object.pir:111)␤»
16:07 baest rakudo: sub rt54804( $v, $w?, $x?, $y? ) { say 3; }; rt54804( 1, , 3, )
16:07 p6eval rakudo e9c185: OUTPUT«3␤»
16:08 baest rakudo: use Test; sub rt54804( $v, $w?, $x?, $y? ) { say 3; }; eval_dies_ok "rt54804( 1, , 3, )"
16:08 p6eval rakudo e9c185: OUTPUT«"load_bytecode" couldn't find file 'Test.pir'␤current instr.: '!use' pc 372546 (src/gen/core.pir:55184)␤»
16:08 baest frag
16:08 baest but eval_dies_ok says ok. How can that be?
16:09 baest it seems to me that #54804 hasn't been fixed, but instead it is a problem in eval_dies_ok
16:10 masak` joined #perl6
16:10 meppl joined #perl6
16:11 moritz_ baest: it seems that eval_dies_ok has a problem with calling subs from outer lexical scopes
16:11 moritz_ rakudo: say 2, , 3
16:11 p6eval rakudo e9c185: OUTPUT«23␤»
16:12 baest moritz_: yeah, make sense
16:12 moritz_ baest: putting the sub declaration into the eval string works
16:13 masak` rakudo: say PAST::Compiler.compile("OH HAI")
16:13 p6eval rakudo d32a0c: OUTPUT«\xFEPBC
16:13 p6eval ..␤␤
16:13 masak` 哈哈
16:13 masak` most fun I've had today. :)
16:14 baest moritz_: you're right. I'll update S06-signature/optional.t and create a new bug for eval?
16:14 baest bug report ;)
16:15 moritz_ I'm not sure if it's a bug or not
16:15 masak` rakudo: say PAST::Compiler.compile("OH HAI").chars
16:15 p6eval rakudo d32a0c: OUTPUT«1120␤»
16:15 masak` rakudo: say PAST::Compiler.compile("OH HAI").flip.chars
16:16 p6eval rakudo d32a0c: OUTPUT«1120␤»
16:16 baest moritz_: well, shouldn't you be able to call subs defined in the same scope eval was called in?
16:16 jnthn no
16:16 moritz_ baest: yes, but eval is called from eval_dies_ok, not from the scope you're writing the eval_dies_ok call in
16:16 jnthn well, yes
16:17 jnthn but...what moritz_ said ;-)
16:17 baest oh
16:17 masak` rakudo: say PAST::Compiler.^methods
16:17 p6eval rakudo d32a0c: OUTPUT«Method 'methods' not found for invocant of class 'P6metaclass'␤current instr.: '!dispatch_.^' pc 410 (src/glue/dispatch.pir:100)␤»
16:17 masak` aww.
16:17 baest moritz_: of course
16:17 masak the meta always ends somewhere.
16:18 moritz_ for this thing we'd need eval($str, :context) and then eval_dies_ok could do an eval($str, :context(CALLER)) or so
16:18 pugssvn r29980 | baest++ | Put the sub definition inside the eval to make it callable
16:18 baest yes
16:18 moritz_ but it's too complex to put it into Test.pm with good conscions
16:18 baest that would be very nice
16:19 szabgabx joined #perl6
16:19 moritz_ *conscience
16:22 pmichaud The patch for fixing variable interpolation is fine
16:23 pmichaud leave the comment about it being fixed in nqp-rx also, though.
16:23 pmichaud because yes, it should be fixed there also.
16:23 pmichaud nqp:  my $a := 3;  say "$a".WHAT;
16:23 p6eval nqp: OUTPUT«Confused at line 1, near "say \"$a\".W"␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤»
16:23 pmichaud nqp:  my $a := 3;  say("$a".WHAT);
16:23 p6eval nqp: OUTPUT«Method 'WHAT' not found for invocant of class 'Integer'␤current instr.: '_block11' pc 0 (EVAL_1:6)␤»
16:23 moritz_ p6eval: so should I apply it?
16:23 moritz_ erm, I meant pmichaud
16:24 pmichaud I'm fine with applying it, yes.
16:24 baest moritz_: yes, I know, I did that change to the test
16:24 pmichaud I'll be afk for a little while -- stuff happening here that needs my attn
16:24 baest oh, sorry was reading the hostiry
16:24 baest s/hostiry/history/
16:24 lichtkind joined #perl6
16:25 lichtkind masak:
16:25 lichtkind hahaha
16:26 moritz_ will push after spectest
16:27 arnsholt rakudo: my $i = 0; $i++ for [1,2,3]; say $i;
16:27 p6eval rakudo d32a0c: OUTPUT«3␤»
16:28 masak alpha: my $i = 0; $i++ for [1,2,3]; say $i;
16:28 p6eval alpha 30e0ed: OUTPUT«1␤»
16:28 masak hm.
16:28 masak I agree with alpha here.
16:28 moritz_ looks much like a bug
16:28 moritz_ (in master)
16:28 masak pugs: my $i = 0; $i++ for [1,2,3]; say $i;
16:28 p6eval pugs: OUTPUT«1␤»
16:28 * masak submits rakudobug
16:28 arnsholt masak: Good. Because it's in the spectest suite =)
16:29 arnsholt Any suggestions for what is wrong?
16:29 masak arnsholt: it's flattening the array.
16:29 moritz_ objectref or interpolating flag
16:29 arnsholt So that I can say something intelligent in the todo, rather than "doesn't work"
16:29 moritz_ rakudo: say [1, 2, 3].PARROT
16:29 p6eval rakudo d32a0c: OUTPUT«Array␤»
16:29 moritz_ rakudo: say (\[1, 2, 3]).PARROT
16:29 p6eval rakudo d32a0c: OUTPUT«Capture␤»
16:30 moritz_ rakudo: my $i = 0; $i++ for \[1,2,3]; say $i;
16:30 p6eval rakudo d32a0c: OUTPUT«Method 'iterator' not found for invocant of class 'Capture'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
16:30 moritz_ that's certainly wrong too
16:30 moritz_ don't you think masak?
16:30 * masak submits rakudobug
16:30 arnsholt rakudo: my Int @array; @array[0] = 23;
16:30 p6eval rakudo d32a0c: OUTPUT«get_pmc_keyed() not implemented in class ''␤current instr.: 'perl6;Positional[::T];postcircumfix:<[ ]>' pc 10402 (src/metamodel/GrammarHOW.pir:44)␤»
16:30 masak hrm. my keybinding has stopped working. :/
16:31 arnsholt Hmm. Are parametrized types a known problem in master?
16:31 jnthn arnsholt: Should mostly work-ish.
16:31 jnthn arnsholt: though some problems.
16:32 arnsholt Right
16:32 jnthn ah, that one... :-/
16:32 jnthn Yes, that one is a problem. :-(
16:32 moritz_ see  t/spec/S09-typed-arrays/arrays.t
16:34 arnsholt rakudo: my $i = -1; my @arr = <foo bar blech>; say @arr[$i];
16:34 p6eval rakudo d32a0c: OUTPUT«Cannot use negative index on arrays␤current instr.: '&die' pc 16757 (src/builtins/Junction.pir:373)␤»
16:38 arnsholt S02-builtin_data_types says that "my @arr of Int = 1, 2, 3, 4, 5; is(@arr, <1 2 3 4 5>);" is that right?
16:38 dalek rakudo: fe12ac8 | (Arne Skjærholt)++ | src/Perl6/Actions.pm:
16:39 dalek rakudo: Fix issue with double quoted strings interpolating only a single variable.
16:39 dalek rakudo: Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
16:39 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​e12ac8a4946b07d3c2277c7fe818451bdddd1ec
16:47 baest rakudo: my @a = 1,2,3; say (@a min 4)
16:47 p6eval rakudo cca3cf: OUTPUT«1␤»
16:47 baest is that correct?
16:48 moritz_ baest: don't think so, but let me check S32-containers...
16:48 moritz_ wai, it's an op
16:48 moritz_ so S03
16:48 moritz_ it's wrong.
16:50 baest moritz_: ok, but what would be correct then. There is a ticket #63778, but now it parses ok, but I'm not sure what the correct answer is
16:51 diakopter longest 7hr backscroll in years
16:51 masak diakopter: :>
16:52 arnsholt rakudo: my @a of Int; @a.push 's';
16:52 p6eval rakudo cca3cf: OUTPUT«Confused at line 11, near "@a.push 's"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
16:52 arnsholt rakudo: my @a of Int; push @a, 's';
16:52 p6eval rakudo cca3cf:  ( no output )
16:52 arnsholt rakudo: my @a of Int; push @a, 's'; say @a
16:52 p6eval rakudo cca3cf: OUTPUT«s␤»
16:52 diakopter rakudo: my @a of Int; @a.push: 's';
16:52 p6eval rakudo cca3cf:  ( no output )
16:56 moritz_ rakudo: say [1, 2, 3] max 0
16:56 p6eval rakudo cca3cf: OUTPUT«1 2 3␤»
16:56 m6locks hmm t/spec/S06-signature/optional.rakudo failed
16:56 m6locks built the latest one
16:58 m6locks although it might be remniscient of some older ones, my git-wizardy ain't that high-level yet
16:59 justatheory joined #perl6
16:59 diakopter .. in theory, at least.
17:01 baest m6locks: sorry, that is my bad
17:02 m6locks no prob
17:02 pugssvn r29981 | baest++ | Mark failing test as todo
17:03 baest m6locks: there you go :)
17:03 m6locks :)
17:04 arnsholt rakudo: my @arr[*]; @arr[42] = 's'; say (+@arr).WHAT
17:04 p6eval rakudo cca3cf: OUTPUT«Num()␤»
17:04 * masak submits rakudobug
17:04 arnsholt rakudo: my @arr[*]; @arr[42] = 's'; say (+@arr).PARROT
17:04 p6eval rakudo cca3cf: OUTPUT«Float␤»
17:04 masak whoa.
17:07 masak rakudo: my @arr[*]; @arr[42] = 's'; say (+@arr).ucfirst
17:07 p6eval rakudo cca3cf: OUTPUT«43␤»
17:08 moritz_ 3my @arr[*]; @arr[42] = 's'; say (+@arr).sin
17:08 moritz_ rakudo: my @arr[*]; @arr[42] = 's'; say (+@arr).sin
17:08 masak rakudo: my @arr[*]; @arr[42] = 's'; say (+@arr).sin
17:08 p6eval rakudo cca3cf: OUTPUT«-0.831774742628598␤»
17:08 p6eval rakudo cca3cf: OUTPUT«-0.831774742628598␤»
17:09 moritz_ rakudo: my @arr[*]; @arr[42] = 's'; say (+@arr).Complex
17:09 p6eval rakudo cca3cf: OUTPUT«43 + 0i␤»
17:09 moritz_ seems to work with non-parrot Num methods
17:10 iblechbot joined #perl6
17:10 moritz_ rakudo: say try { 43 }
17:10 p6eval rakudo cca3cf: OUTPUT«43␤»
17:11 arnsholt rakudo: my @arr = (23); say try { @arr[*-2] }
17:11 p6eval rakudo cca3cf: OUTPUT«Null PMC access in type()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
17:11 * masak submits rakudobug
17:13 arnsholt rakudo: my @arr = (23); @arr[*-2]
17:13 p6eval rakudo fe12ac: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
17:14 dual joined #perl6
17:16 pugssvn r29982 | moritz++ | [t/spec] fudge arith.t
17:19 moritz_ rakudo: say (*-2).WHAT
17:19 p6eval rakudo fe12ac: OUTPUT«Method 'Num' not found for invocant of class 'Block'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
17:19 pugssvn r29983 | arnsholt++ | [t/spec] Unfudged passing string interpolation test; fudged S02-builtin_data_types/array.t
17:19 masak moritz_: that a new bug?
17:19 arnsholt Okay. S02-builtin_data_types/array.t can be brought back now
17:20 baest is #64132 closable. I would agree that -v is not really saying anything about rakudo, but the ticket is only specifying things that are a) done or b) clarified
17:20 baest ?
17:20 uniejo rakudo: my @arr[*]; @arr[42]++; say (+@arr).PARROT; say PARROT(+@arr)
17:20 p6eval rakudo fe12ac: OUTPUT«Float␤Num␤»
17:20 moritz_ masak: it's Whatever currying not being implemented in rakudo
17:20 masak nod
17:23 jaldhar joined #perl6
17:23 payload joined #perl6
17:25 dalek rakudo: 657c165 | jonathan++ |  (5 files):
17:25 dalek rakudo: Implement a first cut of subset type declarator.
17:25 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​57c1655a9230669d49b58625a602f93ecd1691b
17:26 arnsholt rakudo: my @a; @a[2] = 'b'; my @b = @a;
17:26 p6eval rakudo fe12ac: OUTPUT«Null PMC access in isa_pmc()␤current instr.: 'perl6;Iterator;eager' pc 10683 (src/builtins/Role.pir:143)␤»
17:27 arnsholt masak: I maded u a Null PMC
17:28 masak but I submitted it :)
17:28 * masak submits rakudobug
17:28 arnsholt Awww
17:32 jnthn my @a; say @a.perl
17:32 jnthn rakudo: my @a; say @a.perl
17:32 p6eval rakudo fe12ac: OUTPUT«Null PMC access in elements()␤current instr.: 'perl6;SeqIter;get' pc 13867 (src/builtins/Routine.pir:113)␤»
17:33 * masak submits rakudobug
17:35 masak http://twitter.com/jonasbn/status/10128102734 -- awwww. :)
17:42 lue hello!
17:42 masak hellue!
17:43 moritz_ http://irclog.perlgeek.de/​perl6/2007-02-04#i_-55445 # that was my first contact with #perl6, btw
17:45 lue I'm going to try and get a better input method set up (IBus plays with my typing). I'll be gone for a moment.
17:45 jonafk joined #perl6
17:49 pugssvn r29984 | arnsholt++ | [t/spec] Fudged S02-builtin_data_types/array_extending.t
17:54 lue joined #perl6
17:54 lue I love 楽土
17:56 lichtkind can all people except me here write japanese?
17:56 moritz_ lichtkind: no
17:56 lichtkind ok a wex kanji i can :)
17:56 lichtkind a few
17:57 lue I only just set up an input method. I only know a few phrases :)
17:57 masak lue: 私は日本語を書くことができますが、私は日本語を読むことはできません。 :)
17:57 lue Can't write them, can kinda speak them. I blame what I know on ゼルダの伝説 :)
17:58 lue masak: Come on! I'm only able to use my input method with romaji :)
17:58 masak lue: well, you did ask. :)
17:58 lue that's interesting, I can'
17:59 lue t use my third level anymore
17:59 arnsholt lichtkind: I can input them (because I've enabled the input method, for the lulz), but I haven't the foggiest what they mean =)
17:59 jnthn arnsholt:  my @a; @a[2] = 'b'; my @b = @a; is fixed locally :-)
17:59 jnthn arnsholt: spectesting
17:59 moritz_ http://kanjicards.org/
17:59 dalek rakudo: 6a1c973 | moritz++ | t/spectest.data:
17:59 dalek rakudo: more passing test files, arnsholt++
17:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​a1c973325d0d77a096282678ed26ad0ceb676fb
18:00 lue ゼルダの伝説: 時のオカリナ (I'm done with that now)
18:00 diakopter http://irclog.perlgeek.de/​perl6/2007-01-28#i_-58349
18:01 lichtkind did i miss anything important in  http://www.perlfoundation.o​rg/perl6/index.cgi?timeline ?
18:01 pugssvn r29985 | arnsholt++ | [t/spec] Fudged (and fixed) S02-builtin_data_types/array_ref.t
18:01 arnsholt One more file that can be brought in
18:01 diakopter hmm. someone might do a "this day in Perl 6 history" every day...
18:02 masak lichtkind: there's no such term as 'great release cycles'.
18:03 lichtkind masak: how should i put it better the cycle between 1.0 and 2.0
18:03 moritz_ lichtkind: FWIW simon's first commit to the parrot repo was on Wed Aug 29 12:07:04 2001
18:03 payload joined #perl6
18:04 moritz_ but that was 2k lines of code, so it was probably written earlier
18:04 masak lichtkind: they're called 'major versions'.
18:04 masak lichtkind: I think you missed this: http://www.sidhe.org/~dan/​blog/archives/000435.html
18:05 jnthn lichtkind: You missed a mention of my glorious entry into Rakudo development, but I'm too modest to want a mention of that.
18:06 jnthn ;-)
18:06 lichtkind jnthn: when was it?
18:06 jnthn :-P
18:07 jnthn # moved it on a Perl Foundation URL
18:07 jnthn s/onto/
18:07 jnthn er, s/on/to/
18:10 masak rakudo: my $a = sub { say "OH HAI" }; $a.do
18:10 p6eval rakudo 657c16:  ( no output )
18:11 dalek rakudo: c364130 | jonathan++ | src/builtins/SeqIter.pir:
18:11 dalek rakudo: Avoid a bunch of null PMC accesses.
18:11 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​364130540a341f397de7b02822530668cc22d67
18:12 pugssvn r29986 | moritz++ | [t/spec] remove a TODO that jnthn++ fixed
18:12 colomon joined #perl6
18:14 moritz_ rakudo: my @a; @a[2] = 'b'; my @b = @a;
18:14 p6eval rakudo 657c16: OUTPUT«Null PMC access in isa_pmc()␤current instr.: 'perl6;Iterator;eager' pc 10683 (src/builtins/Role.pir:143)␤»
18:14 moritz_ arnsholt: was there a test for this bug somewhere?
18:15 * lue &
18:17 snarkyboojum joined #perl6
18:17 pugssvn r29987 | moritz++ | [t/spec] unfudge test for RT #73406 which jnthn++ fixed
18:19 moritz_ rakudo: say ~(1, 2, 3)
18:19 p6eval rakudo 657c16: OUTPUT«3␤»
18:19 moritz_ rakudo: say (1, 2, 3).WHAT
18:19 masak that one's submitted.
18:19 p6eval rakudo 657c16: OUTPUT«Parcel()␤»
18:19 moritz_ I know
18:19 masak good :)
18:19 moritz_ masak: sometimes I actually try to fix bug, not only point to them :-)
18:19 * diakopter finds my first join: http://irclog.perlgeek.de/​perl6/2006-08-08#i_-193451
18:19 masak moritz_: ouch... :P
18:20 moritz_ rakudo: say (1, 2, 3).join(' ')
18:20 p6eval rakudo 657c16: OUTPUT«1 2 3␤»
18:20 arnsholt One more file that can be brought in
18:20 arnsholt Ooops.
18:21 moritz_ did you mean: Ooops.t ?
18:21 moritz_ SCNR
18:21 arnsholt Arrow-up, enter in wrong window
18:21 pugssvn r29988 | baest++ | Fudged S05-mass/rx.t and fixed
18:21 baest if anybody is up to slowing down the spectest A LOT, then please bring in S05-mass/rx.t :)
18:21 masak baest++: you're the baest!
18:22 moritz_ baest: I'll do my very baest
18:22 baest 730 tests
18:22 * diakopter finds an ironic parallel between Bibles that print the words of Jesus in red/bold lettering, and the #perl6 irclog, which prints the words of audreyt in red/bold lettering.
18:23 moritz_ diakopter: I've never seen such a bible; doesn't seem to be common in Europe
18:23 arnsholt moritz_: I think it was common in the manuscript days
18:24 pugssvn r29989 | baest++ | Add plan
18:24 diakopter http://en.wikipedia.org/wiki/Red_letter_edition
18:27 moritz_ rakudo: say (1, 2, 3).join(' ')
18:27 p6eval rakudo 657c16: OUTPUT«1 2 3␤»
18:27 moritz_ and (1, 2, 3) is of type Parcel
18:28 moritz_ now when I add method Str() { self.join(' ') }  class Parcel, it still prints 3
18:28 pugssvn r29990 | arnsholt++ | [t/spec] Fudged and fixed S09-typed-arrays/arrays.t
18:28 moritz_ I just don't understand it
18:28 arnsholt One more test file.
18:30 jnthn moritz_: what is prefix:<~> doing?
18:30 moritz_ jnthn: good question...
18:30 jnthn rakudo: class Beer { method Str { "want" } }; say ~Beer.new
18:30 p6eval rakudo 657c16: OUTPUT«want␤»
18:30 jnthn oh...well, something sane it seems.
18:31 moritz_ it assigns to a   new ['Str']  variable in PIR
18:32 baest #64880 should be closable. There are still some problems with quoting in regex, but it doesn't die just gives a wrong result
18:32 diakopter TimToady: if Pugs brought the New Testament, and Pharisaism is on the rise today, does that mean we're premillenial or amillenial or, GAH, preterists????  Has Jerusalem already been sacked by the Romans?  How long until the Reformation?
18:32 moritz_ adn in Mur.pir there's a :vtable('get_string') that re-dispatches to sel.'Str'()
18:32 jnthn moritz_: nod
18:33 moritz_ so it all seems sane... except that it doesn't work as expected with Parcel
18:33 moritz_ rakudo: say "foo" ~~ /"foo"/
18:33 p6eval rakudo 657c16: OUTPUT«foo␤»
18:34 dalek rakudo: fbd8bc9 | moritz++ | t/spectest.data:
18:34 dalek rakudo: two more passing test files, baest++,  arnsholt++
18:34 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​bd8bc996112e67e5ce9e76eec56230c65900d62
18:34 moritz_ I could have written taht as <arnsholt baest>».++ but that would have been unfair to karma tracking :-)
18:35 jnthn rakudo: say 42++
18:35 p6eval rakudo 657c16: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 16757 (src/builtins/Junction.pir:373)␤»
18:36 jnthn alpha: say 42++
18:36 p6eval alpha 30e0ed: OUTPUT«Unable to set lvalue on PAST::Val node␤in Main (file <unknown>, line <unknown>)␤»
18:36 moritz_ rakudo: say 3.Str.WHAT
18:36 p6eval rakudo 657c16: OUTPUT«Str()␤»
18:37 moritz_ rakudo: class A { }; A.Str.WHAT.say
18:37 p6eval rakudo 657c16: OUTPUT«A()␤»
18:37 arnsholt say ++e;
18:37 moritz_ masak: that's another bug :-)
18:38 arnsholt rakudo: say ++e
18:38 p6eval rakudo 657c16: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 16757 (src/builtins/Junction.pir:373)␤»
18:38 baest #66742 should also be closable
18:39 uniejo rakudo: module Beer {}; module Food {}; Beer|Food++
18:39 p6eval rakudo 657c16: OUTPUT«Method 'clone' not found for non-object␤current instr.: '&postfix:<++>' pc 374966 (src/gen/core.pir:55148)␤»
18:39 masak that's disgusting :)
18:41 * masak submits A.Str.WHAT.say rakudobug
18:42 arnsholt rakudo: my Str %s = :a<b>a
18:42 p6eval rakudo 657c16: OUTPUT«Confused at line 11, near "my Str %s "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
18:42 arnsholt rakudo: my Str %s = :a<b>
18:42 p6eval rakudo 657c16: OUTPUT«get_pmc_keyed() not implemented in class ''␤current instr.: 'perl6;Associative[::T];postcircumfix:<{ }>' pc 13453 (src/builtins/Code.pir:84)␤»
18:42 moritz_ arnsholt: that should fail, but diffferently
18:43 moritz_ with a type check error
18:43 moritz_ because :a<b> is a Pair, not Associative[Str]
18:44 arnsholt Yeah, that's what I thought
18:44 arnsholt rakudo: my Str %s = {a => 'b'}
18:44 p6eval rakudo 657c16: OUTPUT«get_pmc_keyed() not implemented in class ''␤current instr.: 'perl6;Associative[::T];postcircumfix:<{ }>' pc 13453 (src/builtins/Code.pir:84)␤»
18:44 * masak submits rakudobug
18:45 arnsholt rakudo: my %s = {a => 'b'}
18:45 p6eval rakudo c36413:  ( no output )
18:45 masak rakudo: my Str %s
18:45 p6eval rakudo c36413:  ( no output )
18:45 moritz_ rakudo: my Str %s; my Str %a; %a<a> = a; %s = %a; say "alive"
18:45 p6eval rakudo c36413: OUTPUT«get_pmc_keyed() not implemented in class ''␤current instr.: 'perl6;Associative[::T];postcircumfix:<{ }>' pc 13453 (src/builtins/Code.pir:84)␤»
18:45 moritz_ rakudo: my Str %s; my Str %a; %a<a> = a;  say "alive"
18:45 p6eval rakudo c36413: OUTPUT«get_pmc_keyed() not implemented in class ''␤current instr.: 'perl6;Associative[::T];postcircumfix:<{ }>' pc 13453 (src/builtins/Code.pir:84)␤»
18:46 moritz_ rakudo: my Str %a; %a<a> = a;  say "alive"
18:46 p6eval rakudo c36413: OUTPUT«get_pmc_keyed() not implemented in class ''␤current instr.: 'perl6;Associative[::T];postcircumfix:<{ }>' pc 13453 (src/builtins/Code.pir:84)␤»
18:47 moritz_ that looks like fallout from the concrete role vs. role group distinguishing
18:48 jnthn moritz_: Not quite that.
18:48 jnthn moritz_: A FAIL attempt to get typed hashes working again that somehow got committed.
18:50 masak rakudo: my Str %s = a => 'b'
18:50 p6eval rakudo c36413: OUTPUT«get_pmc_keyed() not implemented in class ''␤current instr.: 'perl6;Associative[::T];postcircumfix:<{ }>' pc 13453 (src/builtins/Code.pir:84)␤»
18:51 dalek rakudo: be8b318 | jonathan++ | src/builtins/ (2 files):
18:51 dalek rakudo: Get Seq.new and Array.new working again.
18:51 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​e8b3182eef01ff3115c97da170d8dfa7eb67578
18:51 dalek rakudo: 3547ff1 | jonathan++ | t/spectest.data:
18:51 dalek rakudo: Re-enable S32-array/create.t.
18:51 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​547ff1cc47cfb83f658b3ed4bb0afdd04004d92
18:58 pugssvn r29991 | arnsholt++ | [t/spec] Fudged S09-typed-arrays/hashes.t
18:59 arnsholt Yet another file that can be added
19:02 lue joined #perl6
19:04 * lichtkind transalted wx.po file
19:05 lichtkind in better quality :)
19:07 masak food &
19:11 krakan joined #perl6
19:22 nihiliad1 joined #perl6
19:23 Trashlord joined #perl6
19:25 Hackathon Sorry for the delay. Our total this hour is...£10000 worth in bug fixes! (€96323, the equivalent in USD is 72 million digits long!)
19:26 Hackathon Thanks to our volunteers, and remember, our robot operators are standing by for YOUR bug reports!
19:28 rgrau joined #perl6
19:37 wolf2k_ubuntu joined #perl6
19:41 maerline joined #perl6
19:41 maerline joined #perl6
19:41 maerline left #perl6
19:44 colomon What madman turned arith.t back on?  :)
19:46 colomon hackathon++
20:10 lichtkind jnthn: do you want a beer too?
20:16 kensanata joined #perl6
20:29 amenhotep joined #perl6
20:34 arlinius joined #perl6
20:36 kensanata joined #perl6
20:44 akl joined #perl6
20:44 akl joined #perl6
20:54 akl joined #perl6
20:54 akl joined #perl6
20:55 synth joined #perl6
21:04 pmurias joined #perl6
21:04 pmurias hi
21:04 diakopter hi
21:04 diakopter :)
21:12 lichtkind pmurias: cheers
21:12 lichtkind diakopter: how is sprixel doing?
21:26 diakopter lichtkind: nicely, lately
21:26 lichtkind great
21:26 diakopter stage0 (the nqp-rx work-alike written in C#) is coming along...
21:27 diakopter typed declarations and assignment of primitives working.
21:27 payload joined #perl6
21:28 diakopter I strongly believe the grammar/compiler system to be flexible enough to support a full STD/Cursor workalike, without refactorings.
21:28 lichtkind diakopter: what is cursor?
21:28 diakopter ... without *further* refactorings, I mean.
21:28 lichtkind :)
21:29 diakopter the parser engine that STD.pm uses; http://svn.pugscode.org/pugs/src/perl6/Cursor.pmc
21:30 diakopter sprixel stage0 is ending up being basically an implementation of the strongly-typed/functional subset of Perl 5, with some Perl 6 stuff thrown in, plus Grammars, plus string eval
21:33 diakopter all invocations statically resolvable (no reason to have more than 1 [additional] layer of dispatchers)...  oh, and CIL type declarations (fields, methods, constructors, single-inheritance).  struct (CIL value type) declaration should be feasible as well.
21:33 diakopter so, all the subsets of Perl 6 that can be mapped directly (transliteratable) to CIL on the CLR.
21:34 diakopter plus closures & continuations, which my compiler is handling specially.
21:37 diakopter currently stage0 is compiled from in-memory structures to CIL (in-memory), and JITted, and executed, and then stage0 has enough API access/visibility to then compile the next stage (from the user input) to CIL (and then JITted), and then executed.
21:37 diakopter on *every* invocation.
21:38 lichtkind slowly please , my brain is in beer mode
21:38 japhb .oO( What would a "beer in brain mode" be like? )
21:38 diakopter ... which adds about 0.5s to compile stage0 on every invocation.  Once stage0 is compiled to disk, that 0.5s will drop to 0.01s or so.
21:39 diakopter (assuming nothing else is added to the compiler :P) (so, obviously, it'll get slower as I type more)
21:39 japhb .oO( Ale that makes you smarter? )
21:40 lichtkind diakopter: sounds great , where lies the code?
21:41 lichtkind japhb: als in de is hard to get
21:42 japhb lichtkind, so what is common then?
21:42 lichtkind japhb: beer :) but i seldom drink it :)
21:42 diakopter lichtkind: it's at csmeta.googlecode.com
21:42 lichtkind diakopter: thanks most of what i did was: http://www.perlfoundation.o​rg/perl6/index.cgi?timeline
21:43 * japhb never was skilled at "frothy alcoholic beverage" taxonomy
21:44 japhb Amateur brewers in friends and family have attempted to educate me, but most of it went in one ear and out the other.  :-)
21:44 japhb s/in/amongst/
21:44 lichtkind diakopter: mberend wrote for you some nice article , if you would just check it http://www.perlfoundation.o​rg/perl6/index.cgi?sprixel
21:45 diakopter I read it; it's fine
21:46 lichtkind great
21:46 lichtkind diakopter: thanks
21:46 lichtkind its about time that we build up some good readavble content
21:47 lichtkind diakopter: should i mention sprixel in the timeline?
21:47 UnGato joined #perl6
21:48 diakopter lichtkind: nah, not yet
21:48 UnGato left #perl6
21:48 diakopter ask pmurias if he thinks you should mention mildew...
21:48 lichtkind diakopter: its already mentioned
21:48 diakopter oh
21:49 lichtkind smop and mildew
21:49 szbalint joined #perl6
21:51 lichtkind diakopter: is mildew done by pmurias? i thought it was ruoso?
21:52 diakopter pmurias took it over 1.5 years ago
21:52 lichtkind ah thanks, so my msg that ruaso started is was wright
21:52 lichtkind i just used pugs logs
21:52 diakopter they worked together on it, I think
21:52 diakopter ask him :P
21:52 lichtkind :)
21:52 lichtkind pmurias: ping
21:53 alester joined #perl6
21:53 lichtkind diakopter: oh pmurias submited initial
21:54 fridim joined #perl6
21:54 lichtkind diakopter: you was right
21:56 diakopter well, there was a fork/rewrite/replace somewhere in there, iirc
22:03 masak joined #perl6
22:03 lichtkind diakopter: do you know why cursor has ending pmc not pm?
22:04 Apocal joined #perl6
22:04 arnsholt masak: It turns out "gift" and "gifte" are actually related
22:04 masak arnsholt: first being 'poison'?
22:04 arnsholt Yes
22:04 masak so, that's no:'gift' and no:'gifte'? :)
22:05 arnsholt Yep
22:05 masak sv:'gift' and sv:'gifta' :)
22:05 arnsholt Yeah
22:05 arnsholt So I think it has to be a case of renaming something unmentionable, like the Furies being called the kindly ones
22:05 moritz_ arnsholt, jnthn, baest: http://video.google.com/videop​lay?docid=-8860158196198824415
22:06 masak I misremembered about the tattoos. it meant 'green rice'. http://www.hanzismatter.co​m/2004/12/green-rice.html
22:06 masak he really wanted the combined character, which means 'essence'.
22:06 jnthn oh hai
22:07 jnthn I has a return.
22:07 masak whoa: http://lumberjaph.net/blog/index.php/​2010/03/07/github-explorer-a-preview/
22:07 * masak tries to find himself in that graph
22:08 masak the Perl 6 people are actually in the upper left. :)
22:09 moritz_ masak: given/when vs. hashes benchmark: 0m10.644s vs 0m9.167s for 100 iterations
22:10 masak moritz_: huh. not that significant... :/
22:14 moritz_ masak: yes, I was quite disappointed
22:14 moritz_ maybe I screwed up the benchmark... just a sec
22:15 xomas_ joined #perl6
22:16 lisppaste3 moritz_ pasted "Speed comparison hash vs. given/when" at http://paste.lisp.org/display/96069
22:16 moritz_ masak: that's the code
22:17 masak yup.
22:19 masak I need to write a cranky editorial about the absurdity of Perl 6 having "missed the boat."
22:20 levengli joined #perl6
22:20 levengli left #perl6
22:23 lichtkind [23:23:36] Herbert Breunung: side effect free language will have only one effect: make your CPU hot :)
22:24 masak that's an unusually narrow definition of 'side-effect-free'.
22:24 lichtkind but true :)
22:25 lichtkind masak: what you means by missed the boat?
22:25 masak lichtkind: actually, I'm just spreading a meme already being spread by spam bots on Twitter.
22:25 moritz_ (which resulted in http://perlbuzz.com/2009/08/perl​-6-has-not-missed-the-boat.html - the point being that there is no boat that could be missed)
22:26 jnthn It accidentally all over Twitter.
22:26 masak lichtkind: but seriously, if you don't consider calculating an actual result a side effect, then what you quoted isn't actually true.
22:27 alester "I'm finally working on my "handy responses for Perl 6 sniping" cheat sheet. I'll post it soon!"
22:27 masak the word 'side effect' means it's to the side of the main effect, which is calculating the result.
22:27 alester What buffoon wrote THAT promise?
22:27 moritz_ which promised?
22:27 masak alester: no idea :)
22:27 * moritz_ must have missed the boat... err, context :-)
22:27 lichtkind masak: sounds like a good wiki article :9
22:28 masak lichtkind: http://en.wikipedia.org/wiki/S​ide_effect_(computer_science)
22:28 lichtkind masak: the main argument was since even printing has side effects ther ewill nothing visible in side ffect free lang except cpu temperature
22:29 masak lichtkind: is this argument deliberately missing the point, or is it just dumb?
22:29 moritz_ lichtkind: that's the nice thing about *lazy* side-effect free languages - they don't even heat the CPU :-)
22:29 lichtkind :)
22:30 lichtkind masak: since the argument by Hejlsberg i think it was ment as a joke
22:30 masak lichtkind: but you never know, due to Hejlsberg's uncertainty principle...
22:31 lichtkind that was heisenberg i think :)
22:31 masak we don't know that either :)
22:31 lichtkind haha
22:32 moritz_ the nice the about mathematics and logic is that there are uncertainties you can be certain about
22:34 masak yes, after the disappointment it can be kind of a relief.
22:35 masak unless your goal really was omniscience...
22:35 moritz_ in which case you didn't learn your lessons from mathematics
22:35 moritz_ it's like trying to solve and integral that doesn't exist
22:36 masak been there, done that :/
22:36 moritz_ hugme: tweet rakudoperl intermediated outcome of the #perl6 hackathon in Copenhagen: a plan for module implementations at http://tinyurl.com/s11rakudo
22:36 * hugme hugs moritz_; tweet delivered
22:36 masak \o/
22:37 moritz_ E2LATETOSPEL
22:39 IllvilJa joined #perl6
22:51 Jedai joined #perl6
22:55 pugssvn r29992 | jnthn++ | [t/spec] Revise tests in light of list changes and unfudge a couple of tests master passes but alpha didn't.
23:09 pmurias lichtkind: pong
23:09 lichtkind ah
23:10 lichtkind pmurias: i mentioned you at http://www.perlfoundation.o​rg/perl6/index.cgi?timeline
23:10 lichtkind pmurias: please check and i would also have more info for http://www.perlfoundation.org​/perl6/index.cgi?pawel_murias
23:13 lichtkind http://mschnlnine.vo.llnwd.net/d1/ch9/2/4/9/0/​3/4/JAOO2008HeljsbergSteeleConcurrency_ch9.wmv this talk is great
23:13 lichtkind its also about the basic problems perl 6 taps into
23:14 lichtkind and what larry wants to do hejlsberg is afraid to do :)
23:14 masak Perl 6 taps into problems?
23:14 lichtkind no way :)
23:14 dalek rakudo: d802ffd | jonathan++ | src/builtins/control.pir:
23:14 dalek rakudo: Fixes with nextwith and callwith method detection - use a heuristic that works even for those methods written in PIR.
23:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​802ffd668fedc7d25e8437b64c18123e21e669f
23:14 dalek rakudo: a1f4ac9 | jonathan++ | src/glue/subset.pm:
23:14 dalek rakudo: Fixes to subsets so we can chain them and they check the base type.
23:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​1f4ac928e0c312fe6f80c293a56930d4bc56492
23:14 dalek rakudo: 5ec2c96 | jonathan++ | t/spectest.data:
23:14 dalek rakudo: Re-enable subset.t, which passes some tests alpha never passed. :-)
23:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​ec2c96f8c7a7e6761604167c6cbebf3f66d674c
23:14 lichtkind jnthn++
23:16 lichtkind masak: yes i was talking about the problem that iy you want to allow to make DSl on runtime you have to grant them acess to the AST or wven parser and thats was aders too afraid
23:18 masak we were talking about some issues related to that over breakfast.
23:19 moritz_ we were actually talking about what kind of objects a quasi quote returns, and if they are like closures, and if you can apply them at run time
23:19 masak something like: if you're able to pass quasiquotes around between different lexical scopes... yes, what moritz_ said.
23:19 moritz_ the answers were basically "dunno, some type", "not really" and "no"
23:19 lichtkind :)
23:19 masak they are AST types.
23:20 moritz_ types? or just one type?
23:20 masak dunno, some type(s). :)
23:21 masak PAST has a handful of types, so I wouldn't rule out there being several for quasi-generated ASTs as well.
23:21 masak (even though PAST and the quasi structures are quite different beasts)
23:29 lichtkind pmurias: no addons?
23:32 hejki joined #perl6
23:36 hercynium joined #perl6
23:39 pugssvn r29993 | jnthn++ | [t/spec] Unfudge a couple more subest tests that we can pass now.
23:40 arnsholt moritz_: Finally watched that Guy Steele talk
23:41 arnsholt That was brilliant
23:41 avar joined #perl6
23:41 jnthn OK, sleep time for me...night o/
23:43 mikwss joined #perl6
23:43 dalek rakudo: 2139748 | jonathan++ | src/Perl6/Grammar.pm:
23:43 dalek rakudo: Make my subset ... parse.
23:43 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​139748414c198eb5b17554e8c0e78e8f2d960e5
23:43 mikwss left #perl6
23:48 snarkyboojum joined #perl6
23:49 am0c joined #perl6
23:53 moritz_ before jnthn's commit we had 26664 passing tests

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

Perl 6 | Reference Documentation | Rakudo