Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-09-26

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:02 SmokeMachine joined #perl6
00:05 rjbs joined #perl6
00:06 rjbs jnthn++ # just downloaded the nqp course
00:12 Psyche^_ joined #perl6
00:34 ssutch joined #perl6
00:45 xinming joined #perl6
00:52 xinming joined #perl6
00:58 FROGGS_ joined #perl6
01:01 xinming joined #perl6
01:03 [Sno] joined #perl6
01:16 SmokeMac_ joined #perl6
01:33 daniel-s joined #perl6
01:43 raiph joined #perl6
01:57 ribasushi joined #perl6
01:58 FROGGS__ joined #perl6
02:14 diakopter joined #perl6
02:52 btyler joined #perl6
03:09 odoacre joined #perl6
03:12 preflex_ joined #perl6
03:30 colomon jnthn: about the rounding test … I'm not convinced the test is right.  or rather, I'm not convinced that jakudo's answer is wrong.  it's a tricky question.
03:30 yoleaux 25 Sep 2013 20:26Z <jnthn> colomon: If you're interested in a mathy one on JVM, see the rakudo.jvm fudge in rounders.t :)
03:51 TimToady why is it using floating point to round rats?
03:53 TimToady oh, because that's what it's being passed...hmm
03:57 TimToady using 1/10**5 works fine on JVM, so I agree it's probably a pebcakish issue
03:58 TimToady .1**5 works too :)
03:59 TimToady arguably we could make .round refuse to work with a Num
04:00 TimToady s/c/sh/
04:02 xinming joined #perl6
04:11 cognominal joined #perl6
04:15 krokite joined #perl6
04:15 krokite joined #perl6
04:19 araujo joined #perl6
04:21 shuckle joined #perl6
04:25 araujo joined #perl6
04:47 daniel-s joined #perl6
05:36 SamuraiJack joined #perl6
05:42 aindilis joined #perl6
05:45 PacoAir joined #perl6
05:45 TimToady r: say ord $*IN.getc
05:45 camelia rakudo 6ff75a: OUTPUT«76␤»
05:45 TimToady this fails in rakujo
05:45 TimToady Method 'read' not found for invocant of class 'BOOTIO'
05:49 TimToady nr: say <a b c>.map: *.[0]
05:49 camelia niecza v24-95-ga6d4c5f: OUTPUT«a b c␤»
05:49 camelia ..rakudo 6ff75a: OUTPUT«No such method 'count' for invocant of type 'Whatever'␤  in method reify at src/gen/CORE.setting:7085␤  in method reify at src/gen/CORE.setting:7002␤  in method reify at src/gen/CORE.setting:7002␤  in method reify at src/gen/CORE.setting:7002␤  in method reify …»
05:50 TimToady things of the form *.[], *.<>, and *.{} now fail since they aren't methods, but postfixes
05:52 TimToady my getc error is in a line that is following a set of cascaded if/elsif/else, but it reports the error number at the beginning of the if
05:52 TimToady (dunno if that's just on jvm)
05:53 TimToady (trying to get my quiz editor to run on rakudo/jvm...)
06:02 TimToady hmm, can't seem to reproduce the line number issue in a small test case, will have to cut down the big program to isolate that one
06:04 TimToady so far the getc is the only showstopper, can work around the other by changing *.<foo> to {.<foo>} for now
06:04 TimToady hard to write an editor without single char input though...
06:14 rom1504 joined #perl6
06:14 gabriel joined #perl6
06:15 m00se_ joined #perl6
06:16 ksh joined #perl6
06:17 m00se_ left #perl6
06:36 krokite joined #perl6
06:37 darutoko joined #perl6
06:44 iSlug joined #perl6
06:45 raiph joined #perl6
06:46 skids joined #perl6
06:47 sqirrel joined #perl6
06:57 dalek joined #perl6
07:13 kaleem joined #perl6
07:17 FROGGS joined #perl6
07:22 FROGGS o/
07:26 fhelmberger joined #perl6
07:28 nwc10 jnthn++ # JVM progess
07:29 xinming joined #perl6
07:30 masak morn'n, #perl6.
07:31 FROGGS morning
07:32 lizmat good *, #perl6!
07:37 moritz \o
07:38 * FROGGS .oO( everybody stand tight, it's getting full )
07:39 moritz everybody stand back, I know regular expressions!
07:40 FROGGS /o\
07:40 xinming joined #perl6
07:40 * lizmat ducks
07:41 * masak throws himself under a carpet
07:41 FROGGS I have some nice ones on my whiteboard here at work (p5 and p6), and the ppl that see that are like: O.o What the hell is that?
07:41 FROGGS n00bs, lol
07:41 FROGGS :P
07:41 tadzik FROGGS: some nice... carpets?
07:41 FROGGS (moritz) <-- ha, captured!
07:42 FROGGS hehe
07:42 FROGGS tadzik: no :P
07:43 araujo joined #perl6
07:45 dmol joined #perl6
07:49 masak on second thought, carpets don't provide much protection against... anything, really.
07:49 araujo joined #perl6
07:50 FROGGS .tell jnthn S06-other/main-usage still fails on rakudo@parrot on my linux box using TEST_JOBS=4, and an earlier test killed my windows7 running in a virtualbox vm
07:50 yoleaux FROGGS: I'll pass your message to jnthn.
07:51 FROGGS .tell jnthn when this murderer-test runs, I almost can't move the mouse (I can move it physically, yes (haha!) but the cursor, well, you know)
07:51 yoleaux FROGGS: I'll pass your message to jnthn.
07:52 masak now that would be something -- a test so heavy it makes the *mouse* itself unable to move!
07:52 FROGGS *g*
07:52 FROGGS yeah
07:53 moritz masak: yesterday I had that condition, but not because of the tests, but because thunderbird decided it needed 7.5GB memory
07:54 FROGGS nice
07:55 lizmat fwiw, I've had that the other day when an expanding [1..*] at all of my RAM and all of my swap (about 90G in total)
07:55 lizmat *ate
08:01 araujo joined #perl6
08:02 hoelzro joined #perl6
08:02 gtodd joined #perl6
08:08 araujo joined #perl6
08:09 * moritz usually configures his systems without swap, so that such things fail faster
08:09 hoelzro morning #perl6
08:09 moritz or all shells with a ulimit of 4GB virtual memory
08:10 moritz \o hoelzro
08:10 * hoelzro returns from a six hour absence
08:10 hoelzro Freenode said I was spamming =(
08:10 hoelzro not true!
08:11 araujo joined #perl6
08:11 araujo joined #perl6
08:11 * moritz has only three failing JVM spectests
08:11 nwc10 that's dalek's job
08:11 moritz t/spec/S29-os/system.rakudo.jvm test 5, t/spec/S32-list/roll.t test 40
08:11 nwc10 moritz: "quick, write more tests", to paraphrase purl
08:13 moritz not ok 5 - run() is affected by chdir()
08:13 moritz I thought that was fixed weeks ago? :(
08:13 masak wasn't it fixed on Parrot?
08:15 lizmat fails for me for at least a week already
08:15 moritz I thought the whole point of the chdir emulation was to fix the chdir/run combination on the JVM
08:15 moritz but maybe I was wrong in assuming that it was actually *fixed* on the JVM :-)
08:16 FROGGS moritz: I believe the test was a wrong positive
08:16 FROGGS err, false positive
08:17 arnsholt tadzik: Anyways (to move this to a slightly more relevant channel), commitbits are available if you wanna hack =)
08:17 araujo joined #perl6
08:18 tadzik arnsholt: I'll ask for it when I have something to push, thanks :)
08:20 arnsholt Cool =)
08:23 masak FROGGS: if a test can be a false positive, then there is something wrong with the way the test was written.
08:24 moritz erm, yes
08:24 moritz the problem is that run() doesn't return anything except whether the command was launched successfully
08:24 FROGGS masak: true
08:24 moritz ok((run("dir", "t") != BEGIN { run("dir", "t") } ), 'run() is affected by chdir()');
08:24 FROGGS yeah, and we do a chdir at runtime before that test
08:25 moritz uh, oh
08:26 moritz does run() even do anything
08:26 FROGGS what do you mean?
08:26 moritz ~/p6/jvm-rakudo$ ./perl6 -e 'say run("echo",  "README")'
08:26 moritz 1
08:26 cognominal joined #perl6
08:26 moritz it doesn't look to me like it does *anything* at all
08:26 moritz except returning 1
08:27 FROGGS it should return 0 when it does something
08:29 FROGGS weird
08:29 FROGGS that is not how I remember it
08:29 FROGGS so yes, it seems like run() is sort of a noop
08:31 FROGGS okay, so run() is broken on all backends basically
08:33 FROGGS I will re-implement run() for rakudo@parrot@windows later, using this: https://github.com/mirrors/perl/blob/blead/win32/win32.c#L3739
08:33 FROGGS then try to get it to work for linux, and maybe then try find the jvm problems :/
08:34 FROGGS somebody with more java knowledge is invited to join the fight :o)
08:34 masak ++FROGGS
08:35 moritz but
08:35 moritz argl
08:36 moritz it seems that shell() is what works
08:36 dalek roast: a299b31 | moritz++ | S29-os/system.t:
08:36 dalek roast: fudge run() tests for now
08:36 dalek roast:
08:36 dalek roast: run seems to be broken on all backends
08:36 dalek roast: review: https://github.com/perl6/roast/commit/a299b31499
08:37 xinming_ joined #perl6
08:41 FROGGS moritz: why is that test questionable?
08:42 FROGGS I don't know a better way to test run() that only returns the exit code
08:42 dakkar joined #perl6
08:42 xinming joined #perl6
08:43 moritz FROGGS: because it presumes the non-existence of a t/t/ directory without testing it first
08:43 FROGGS damn, looks like the jvm-spectest run aborted all tests after S16 :o(
08:43 FROGGS moritz: ahh, okay
08:43 moritz FROGGS: and it also assumes that dir() on all platforms returns a non-zero exit status with a non-existing dir name
08:44 moritz FROGGS: and finally producing output to STDOUT that is not in TAP format is a great way to confuse the TAP harness
08:44 FROGGS hmpf
08:44 FROGGS suggestions welcome ó.ò
08:44 moritz if you wannt to test it reliably, write a Perl 6 program that writes its CWD into a temp file
08:45 moritz and invoke it with an absolute path and the name of the temp file
08:52 denysonique joined #perl6
09:07 jnthn hi, #perl6
09:07 yoleaux 07:26Z <JimmyZ> jnthn: are you fine to https://github.com/MoarVM/MoarVM/commit/c531595dd7 ?
09:07 yoleaux 07:50Z <FROGGS> jnthn: S06-other/main-usage still fails on rakudo@parrot on my linux box using TEST_JOBS=4, and an earlier test killed my windows7 running in a virtualbox vm
09:07 yoleaux 07:51Z <FROGGS> jnthn: when this murderer-test runs, I almost can't move the mouse (I can move it physically, yes (haha!) but the cursor, well, you know)
09:08 JimmyZ hi
09:08 jnthn FROGGS: I don't think I changed any Parrot fudging yesterday though? Just JVM?
09:08 FROGGS hi jnthn
09:08 FROGGS jnthn: no, that has nothing to do with recent changes
09:09 FROGGS I just wanted to mention the curious thing going on
09:09 nwc10 seems that jnthn scared his alarm clock
09:09 jnthn JimmyZ: yeah, I suspect that doesn't make the error messages any worse, or not meaningfully worse
09:10 JimmyZ jnthn: ok, I will push it to master :P
09:12 odoacre joined #perl6
09:35 jnthn .tell TimToady the .getc is just a NYI yet; it's in my list of failing tests to triage already
09:35 yoleaux jnthn: I'll pass your message to TimToady.
09:52 iSlug joined #perl6
09:59 donaldh joined #perl6
10:03 atroxaper joined #perl6
10:13 atroxaper Hello #perl6 !
10:13 dalek rakudo/nom: c549b65 | (Elizabeth Mattijsen)++ | src/core/traits.pm:
10:13 dalek rakudo/nom: Fix mention of DEPRECATED in list of possible routine traits
10:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c549b655ef
10:18 lizmat hello atroxaper!
10:19 atroxaper Does anybody know wich method of generation random number uses in perl6? And is it cryptographically?
10:19 atroxaper Hello lizmat!
10:19 lizmat check nqp for rand_I and rand_N
10:19 lizmat rand_n rather
10:20 jnthn It probably varies by backend. On JVM we delegate to what's provided there. rand is not promised to be cryptographically strong afaik.
10:22 atroxaper Ok. I should use someting my stuff then. Thnaks.
10:26 lichtkind joined #perl6
10:39 rindolf joined #perl6
10:54 darutoko joined #perl6
11:02 daxim joined #perl6
11:04 xinming joined #perl6
11:12 lizmat jnthn: wrt to adding phasers, I think we have a chicken and egg problem
11:12 lizmat some traits need a finished code object (e.g. is SYMBOL)
11:12 lizmat whereas is DEPRECATED needs to be run before the code object is finished
11:13 lizmat to be able to register the phaser
11:13 jnthn lizmat: What does "is SYMBOL" specifically need?
11:13 lizmat I'm now thinking about looping over the traits twice
11:13 jnthn No, that's wrong :)
11:13 jnthn But finish_code_object does a lot of things.
11:13 jnthn Maybe too many.
11:14 lizmat hold on:
11:14 lizmat the first time, it would just look for "is DEPRECATED" and makes sure the ENTER phaser will be primed
11:14 jnthn No, that's a fragile special case.
11:15 lizmat the is SYMBOL case is where this dies:
11:15 lizmat ./perl6 --ll-exception --target=pir --output=lib/Test.pir lib/Test.pm
11:15 lizmat Null PMC access in get_string()
11:16 jnthn hm, but is SYMBOL is used on constants, iiuc?
11:16 lizmat yes, looks like that
11:17 jnthn Plus I can't find an is SYMBOL use in the setting...nor in Test.pm...hmm.
11:18 lizmat https://gist.github.com/lizmat/6712800
11:19 lizmat maybe "is export" is triggering this?
11:19 jnthn I think so, looking at the line number...
11:20 lizmat $ ./perl6 -e 'sub a is export { }'
11:20 lizmat ===SORRY!=== Error while compiling -e
11:20 lizmat Null PMC access in get_string()
11:20 jnthn yeah...hmm
11:20 * jnthn can kinda guess...
11:20 jnthn I think $!do is not populated early enough.
11:21 jnthn That needs to happen before the trait application
11:21 * lizmat looks
11:22 jnthn Maybe we pull add_phasers_handling_code out of finish_code_object and call it separately after trait application...
11:23 lizmat ok, I'll try that
11:23 jnthn Will need to update a few places (including World's general create_code_object, and anything else that calls finish_code_object)
11:23 lizmat yup
11:23 jnthn It's already a separate method so it shouldn't be too hard to refactor.
11:23 lizmat ok, I'll try that
11:23 jnthn lizmat++
11:26 darutoko joined #perl6
11:44 pmurias joined #perl6
11:45 lizmat running spectest now
11:46 lizmat next thing: to make warn show the position a few callframes up
11:48 iSlug joined #perl6
11:53 moritz if we can sneak in another attribute into the exception object (or at least some of them), we can give the backtrace printer some hints where to start searching
11:54 xinming joined #perl6
11:55 dalek rakudo/nom: 95dabd9 | (Elizabeth Mattijsen)++ | src/Perl6/ (2 files):
11:55 dalek rakudo/nom: Move add_phaser_handler_code out of finish_code_object
11:55 dalek rakudo/nom:
11:55 dalek rakudo/nom: This to allow trait_mods to add phasers
11:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/95dabd9e7c
11:55 lizmat warn "foo", :skip 4  ?
11:55 lizmat warn "foo", :skip(4)  ?
11:56 moritz maybe
11:56 jnthn warn "foo", :from(CALLER::CALLER) # another way
11:58 dalek rakudo/nom: 50a57df | (Elizabeth Mattijsen)++ | src/core/traits.pm:
11:58 dalek rakudo/nom: Mostly code esthetics to is DEPRECATED
11:58 dalek rakudo/nom:
11:58 dalek rakudo/nom: We don't seem to be able to use $r.package in any way to show the class of the
11:58 dalek rakudo/nom: method.  At least not at compile time  :-(
11:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/50a57df125
11:59 sqirrel joined #perl6
12:08 jnap joined #perl6
12:10 masak may I recommend for people interested in the OOP/FP hybridization, Martin Odersky (creator of Scala)'s slides http://www.slideshare.net/Typesafe/scaladays-keynote
12:11 masak talk here: http://www.youtube.com/watch?v=iPitDNUNyR0
12:12 alester joined #perl6
12:12 sqirrel joined #perl6
12:13 masak tl;dr (so far): FP will absorb OOP just like OOP absorbed procedural.
12:22 moritz and i like it that some (semi) FP-folks publicly state that local state *can* make things easier, and isn't all bad
12:23 masak he just did that in the talk.
12:23 moritz it's something that I've thought for a while, and I found it a bit weird that Haskell doesn't offer some sane way to handle local, mutable state
12:23 moritz masak: yes, that's what I'm talking about :-)
12:23 masak moritz: Haskell has a monad called State :0
12:23 masak :)
12:23 masak maybe that's what you're looking for.
12:24 masak anyway, aggregates went a long way in showing me how to handle (and contain) local state.
12:25 kaare_ joined #perl6
12:25 moritz masak: no, not what I'm looking for, afaict
12:25 moritz masak: I want to write pure functions whose signatures don't involve any monads
12:25 jnthn .oO( "You have to use a Monad", stated Simon... )
12:25 moritz and use mutable, local state that doesn't escape
12:26 masak ah. "you can modify this container, if you promise not to let it escape the function".
12:27 moritz aye
12:27 masak what about returning a function that closes over the container?
12:27 masak I fear there are some problems of intractability inherent in this.
12:27 masak though I did read a very interesting paper on this not long ago.
12:28 masak it's all tied to "linear logic", which is also connected to quantum computing and the unitarity restriction.
12:30 pmurias joined #perl6
12:30 masak moritz: ah, found it. http://www.infoq.com/news/2012/12/Immutable-CSharp
12:30 masak "reference immutability". the idea doesn't seem 100% all there in terms of ease, but certainly interesting.
12:33 * jnthn kinda wishes they'd allow the "let" declarator occur outside of Linq too
12:33 jnthn *to occur
12:37 aaryabhatt joined #perl6
12:38 moritz masak: and it seems that's what people expect from  'has %.h' # look, I didn't mark it as 'is rw'
12:39 moritz unrelated
12:40 moritz r: sub a() returns Hash { return {} }; a()
12:40 camelia rakudo 50a57d: ( no output )
12:40 moritz r: sub a() returns Hash { return my %h }; a()
12:40 camelia rakudo 50a57d: ( no output )
12:40 moritz I find it kinda annoying that we have no way to express the list-vs-item-ness in the type system
12:41 moritz or really any concise way to document and test/introspect that
12:44 masak moritz: yes, the readonly-ness of containers has grabbed my interest in the past years. I have become convinced that Perl 6 (as a spec) does not have the appropriate abstractions to make elements of a container readonly.
12:44 masak mind you, I do not know what those abstractions could be, or need to be. I'm just not seeing that we have them.
12:45 masak there are two axes of confusion, actually: (x) readonlyness of a variable vs a container vs a value; (y) readonlyness of an object, array, or hash vs its attributes/elements.
12:50 masak I guess the axes are not completely orthogonal, because arrays and hashes have "containers" in the (a) sense.
12:50 masak hm, objects too, I guess.
12:50 masak er (x)*
12:50 masak the (x) one strikes when Rakudo implementors start mumbling about "decontainerization".
12:52 moritz (x) is also related to the flattens/doesn't flatten axis
12:53 jnthn There are few places that the scalar container model pops its head up into userland. .VAR is one of them.
12:53 jnthn And := vs = is, of course, another.
12:54 donaldh joined #perl6
12:54 jnthn Those aside, people largely expect to be able to talk about $x, or @a[1], as l-values and r-values without thinking too much about containers.
12:54 jnthn The fun really being that we have first-class l-values.
12:55 jnthn Rather than things such as assignment being a special form.
12:55 jnthn Decontainerization is really saying, "I don't want this thing to be usable as an l-value from this point on".
12:56 masak *nod*
12:56 masak it's interesting to look at how Python solves this, for example.
12:57 masak they say things like "we don't have variables. those are *labels*, existing in a hash table somewhere, pointing to an object".
12:58 notjack joined #perl6
12:58 moritz (and that's why their scoping is so weird / they have no mandatory declarations, right?)
12:58 jercos rn: :4294967296[1, 0].say
12:58 camelia niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: :16[...] syntax NYI␤  at /home/p6eval/niecza/lib/CORE.setting line 1536 (die @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3803 (unbase @ 8) ␤  at /tmp/khNkM8VLxx line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.sett…»
12:58 camelia ..rakudo 50a57d: OUTPUT«-2147483648␤»
12:59 moritz looks like rakudo doesn't use big numbers for the base
12:59 moritz Template::Mojo also has warnings about bless.*
12:59 masak moritz: the scoping is really an orthogonal decision to that, but yeah.
13:00 masak local variables are not explicitly declared in the common case.
13:01 * moritz adds "explicit declarations" to his list of "things we know how to get right in programming languages"
13:01 masak the lookup rules can be summarized as "LEGB": Local (function, not block), Enclosing (outer functions, innermost-first), Global (module), Built-in.
13:02 zakharyas joined #perl6
13:02 masak moritz: add "block scope, not function scope" to the list, too :)
13:02 masak JavaScript and Python both suffer from that one. JavaScript is doing something about it.
13:02 * moritz releases R*
13:03 moritz there, tag push, tarball uploaded
13:04 colomon \o/
13:05 colomon moritz++
13:05 * nwc10 fails to get the significance of the "not block" in "function, not block"
13:05 nwc10 moritz++
13:05 moritz nwc10: function() { if (42) { var x = 42 }; alert(x) }
13:05 moritz nwc10: the inner block (from the if) isn't a scope boundary
13:06 moritz (in js)
13:06 zakharyas1 joined #perl6
13:06 moritz which is a "feature" you avoid if you create a new language
13:06 jercos r: blob32(0xFFFFFFFF).bytes.say;blob32.new(0xFFFFFFFF).unpack("H").say
13:06 camelia rakudo 50a57d: OUTPUT«invoke() not implemented in class 'Blob'␤  in block  at /tmp/l1zg_x0MU9:1␤␤»
13:06 jercos erm. heh.
13:06 jercos r: blob32.new(0xFFFFFFFF).bytes.say;blob32.new(0xFFFFFFFF).unpack("H").say
13:06 camelia rakudo 50a57d: OUTPUT«1␤-1f␤»
13:06 pmurias does spliting the nqpjs js runtime into nqp-runtime-core (the platform intependend part) / nqp-runtime-node / nqp-runtime-browser seem sane/good idea?
13:07 nwc10 moritz: ah, in JS
13:07 * nwc10 doesn't know JS. Is this on x or two?
13:08 masak moritz++
13:08 moritz nwc10: there's just one x, because the inner {} don't introduce a new scope
13:08 nwc10 function() { var x = "Bother"; if (42) { var x = 42 }; alert(x) }
13:08 moritz that'll show 42
13:08 masak nwc10: that's one x.
13:08 nwc10 OK. thanks. Mmm. That's not, um, C-like :-(
13:08 masak nwc10: JavaScript's 'var' doesn't have block scope, only global/function scope.
13:09 masak nwc10: JavaScript was developed in 11 days :P
13:09 nwc10 does it even warn that you've repeated var twice?
13:09 masak nope.
13:09 ajr joined #perl6
13:09 masak well, that's implementation-dependent, I guess.
13:09 masak nwc10: the good news is that ES6 introduces 'let', which *is* block-scoped.
13:09 * pmurias really hates the function scoped var in javascript
13:09 nwc10 so it's better designed than PHP? :-)
13:09 moritz nwc10: maybe jslint (3rd party tool) warns about that one
13:10 nwc10 and the design is sort of improving?
13:10 masak I wonder if *any* other language has both kinds of scoping in the same language.
13:10 masak nwc10: the design is definitely improving.
13:10 nwc10 mmm, not thought of that. Awesome
13:10 masak nwc10: partly thanks to wrapper langs like CoffeeScript, it seems.
13:10 masak that are leading the way and trying out new things in a kind of sandbox.
13:10 PacoAir joined #perl6
13:10 raiph joined #perl6
13:10 nwc10 and NQP soon? :-)
13:11 masak heh.
13:12 pmurias it will propably take a while before NQP/Perl 6 to JavaScript becomes production quality
13:12 cognominal joined #perl6
13:13 FROGGS Christmas I suppose
13:13 ajr_ joined #perl6
13:15 xenoterracide joined #perl6
13:25 grondilu joined #perl6
13:25 grondilu Hello #perl6
13:25 FROGGS hi grondilu
13:26 lowpro30 joined #perl6
13:26 jnthn moritz++ # star release
13:26 grondilu any good news about MoarVM?  I mean, the team still hopes to release a rakudo port soon, right?
13:27 hoelzro moritz++
13:27 * hoelzro builds a package
13:28 jnthn grondilu: The plan is to have NQP bootstrapped on MoarVM and have support in the October NQP release for MoarVM. The Rakudo proting work will then begin.
13:28 grondilu ok
13:28 masak jnthn: does that mean that whoever releases NQP/Rakudo in October should pay special attention to Moar when doing the NQP release?
13:29 FROGGS masak: I guess enough ppl will pay special attention
13:29 jnthn masak: I don't think there was any special attention given to the first release with JVM in :)
13:29 masak hm, point.
13:29 FROGGS and this nqp release will maybe state that moarvm support is there, but it won't be that useful at that moment I guess
13:30 * grondilu already noticed that nqp on moarvm is quite fast (he ran 'my $n := 1; while $n < 100000 { say($n); $n := $n + 1 }'), so he's having big expectations.
13:31 pmurias when is the October NQP release?
13:31 masak pmurias: generally two days after the Parrot release is schedules.
13:31 masak pmurias: (same as Rakudo)
13:31 masak scheduled*
13:32 FROGGS 2013-10-17   Rakudo #69                      Coke
13:32 FROGGS just one day after my special day :o)
13:35 zakharyas joined #perl6
13:51 dalek star: d41ce21 | moritz++ | tools/star/release-guide.pod:
13:51 dalek star: note 2013.09 release in release-guide.pod
13:51 dalek star: review: https://github.com/rakudo/star/commit/d41ce21904
13:54 lowpro30_ joined #perl6
13:56 bluescreen10 joined #perl6
13:58 ksh joined #perl6
13:58 thou joined #perl6
14:05 atroxaper joined #perl6
14:05 atroxaper Congratzzz all with R* !
14:11 GlitchMr <moritz> nwc10: function() { if (42) { var x = 42 }; alert(x) }
14:11 GlitchMr <moritz> nwc10: the inner block (from the if) isn't a scope boundary
14:11 GlitchMr heh, it's actually worse in other programming languages.
14:12 GlitchMr http://codepad.org/z7tVhXsi
14:12 GlitchMr http://codepad.org/qda1gS1J
14:13 GlitchMr In Python, it's fine when 'if' is true. If it's not, than it fails.
14:13 moritz I guess in js it's roughly the same, no?
14:13 moritz I mean, it'll just be null
14:13 GlitchMr In JavaScript, x is undefined in this case.
14:13 GlitchMr null !== undefined
14:13 nwc10 GlitchMr: it fails, as in, run time exception?
14:13 GlitchMr Yes
14:13 * moritz can never remember which of those is used for what
14:13 nwc10 "that's nice, dear"
14:13 masak GlitchMr: in Python, basically everything is late-bound.
14:14 masak GlitchMr: even function/class declarations.
14:14 masak GlitchMr: you can put a *class declaration* in an if statement!
14:14 nwc10 so to be confident you haven't made typos, in python you need at (at a minimum) 100% code coverage?
14:14 GlitchMr Yeah, null and undefined are confusing in JavaScript, and probably nobody understands when null is used, and when undefined.
14:14 masak GlitchMr: I understand it :)
14:15 masak (and I practically never use null, even though I acknowledge that it's distinct from undefined)
14:15 btyler joined #perl6
14:15 masak in my opinion, the chief contribution of null in JavaScript is to be a security vulnerability.
14:15 GlitchMr Well, I do to.
14:16 GlitchMr But there are places where you have to use null.
14:16 GlitchMr Most notably, Object.create(null)
14:16 masak GlitchMr: then "probably" was a bit of a weird usage. maybe you meant "virtually" or "practically".
14:16 GlitchMr ok, practically
14:17 GlitchMr Generally, null is defined value that doesn't exist, and undefined is well, undefined.
14:17 GlitchMr But seriously, why JS needs two similar types.
14:18 FROGGS right, why only two?
14:18 jnthn masak: Maybe you meant you literally never use null? :P
14:18 * FROGGS is looking at you, Any, Mu, Nil and Whatever
14:18 GlitchMr You forgot Int, Str, and actually any type.
14:18 PerlJam masak: surely you only use null practically  ;)
14:19 GlitchMr I never type undefined.
14:19 GlitchMr It lets you more easily detect when value that should be defined isn't.
14:21 xenoterracide_ joined #perl6
14:21 GlitchMr null is intentionally set nothing.
14:24 masak jnthn: I "literally" "never" "use" null :)
14:24 * FROGGS .oO( "I" ... )
14:25 * FROGGS .oO( ":o)" )
14:25 * masak .oO( ".oO( ... )" )
14:25 FROGGS hehe
14:25 * GlitchMr .oO '.oO( ".oO( ... )" )'
14:25 FROGGS I love that
14:25 FROGGS O.o
14:25 PerlJam GlitchMr++ I saw that coming :)
14:25 * FROGGS q{ .oO '.oO( ".oO( ... )" )' }
14:26 masak ...and so on, ad recursitum.
14:26 GlitchMr Except I made syntax error.
14:26 * GlitchMr .oO ('.oO( ".oO( ... )" )')
14:26 FROGGS true
14:26 GlitchMr masak: Until quotes end, but in Perl 6 you can do q[[]], so not.
14:27 GlitchMr Even with Unicode there is finite number of character.
14:27 GlitchMr characters*
14:27 FROGGS Perl 6 is really a multi-purpose quoting language
14:28 GlitchMr In C, there are only "" quotes ('' is for single character), so such recursion would have lots of backslashes.
14:29 FROGGS NFG ftw! <̈
14:29 cognominal joined #perl6
14:29 FROGGS meh, it swallows the ̈
14:29 FROGGS the dots -> ö
14:30 GlitchMr .oO ( ".oO ( \".oO ( \\\".oO ( \\\\\\\".oO ( \\\\\\\\\\\\\\\".oO ( \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\".oO( ... )\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" )\\\\\\\\\\\\\\\" )\\\\\\\" )\\\" )\" )" )
14:30 GlitchMr Who would want to read something like that.
14:31 GlitchMr http://coffeescript.org/#try:str%20%3D%20%27.oO%28%20...%20%29%27%0Afor%20[1..6]%0A%20%20str%20%3D%20%22.oO%20%28%20%23{JSON.stringify%20str}%20%29%22%0Aalert%20str
14:31 GlitchMr code
14:45 ssutch joined #perl6
14:51 pmurias masak: how is null a security vulenrablity in JavaScript?
14:54 GlitchMr I've no idea, considering it mostly uses the same code as undefined.
14:54 GlitchMr in many JS implementations
14:58 kaleem joined #perl6
14:59 masak pmurias: people tend to remember to check for undefinedness, but seldom to check for null.
15:00 masak pmurias: null is another possible input to functions that may unpleasantly surprise the original programmer.
15:02 pmurias don't people usally check for null undefined with ==?
15:03 stevan_ joined #perl6
15:05 jnap joined #perl6
15:07 masak pmurias: yes :(
15:07 masak pmurias: which, despite the fact that it actually *works*, is really two errors compounded.
15:07 pmurias heh
15:08 TimToady well, can still run my program on niecza, so no hurry on the getc from this end
15:08 yoleaux 09:35Z <jnthn> TimToady: the .getc is just a NYI yet; it's in my list of failing tests to triage already
15:08 masak (for those who are curious, JavaScript has infix:<==> which does a failed form of smartmatching, and infix:<===>, which does exact matching.)
15:09 ajr joined #perl6
15:10 xinming joined #perl6
15:12 GlitchMr masak, personally, I'm fine with == null.
15:12 masak GlitchMr: I hope you would reconsider on that.
15:13 GlitchMr If you read the specification, you can notice that null is only equal to null or undefined.
15:13 TimToady do we need an e-ish notation scaled Rats?, so we could write 123.456789.round(1r-5) or some such?
15:13 GlitchMr This is surprisingly a case where == actually works.
15:14 masak GlitchMr: there just isn't any good reason in JavaScript to keep using infix:<==>, or to encourage its use.
15:15 GlitchMr I find code like variable === undefined || variable === null ugly.
15:15 GlitchMr Why do that, when you can write variable == null, and it means the same thing.
15:16 FROGGS GlitchMr: I fear that doesn't work on Internet Explorer Mobile 5.0 :P
15:16 GlitchMr Actually, it does.
15:16 GlitchMr It was like that even in first JavaScript version.
15:17 GlitchMr I don't know about IE Mobile 5.0, but I know it works in Netscape 2 and IE 3.
15:17 FROGGS I am pretty sure it doesnt on IEM5, I have to support it at $work
15:17 GlitchMr ... now if IE Mobile 5.0 would exist.
15:17 GlitchMr Wikipedia skips it.
15:21 TimToady assuming we need a Rat exponential form, what color should the bikeshed be painted: 1d-5 1r-5 1f-5 1t-5
15:21 TimToady 1t looks too much like lt
15:21 TimToady 1d and 1f look too much like hexadecimal
15:21 TimToady and f has floater associations
15:21 TimToady so far I like 1r-5 best
15:21 iSlug joined #perl6
15:22 TimToady 1R-5 doesn't look so bad either, since Rat starts with R
15:22 GlitchMr I'm not sure what does 1R-5 do by looking at it.
15:23 TimToady 1r9 is a lot easier to write than 1_000_000_000
15:23 jnthn 1R-5 is ambig with 1 R- 5
15:23 TimToady not really
15:23 TimToady std: 1R-5
15:23 GlitchMr 1e5.Rat
15:23 camelia std 7c17586: OUTPUT«[31m===[0mSORRY![31m===[0m�Whitespace is required between alphanumeric tokens at /tmp/jBpxMwih4l line 1:�------> [32m1[33m�[31mR-5[0m�Check failed�FAILED 00:00 42m�»
15:23 jnthn Ah...yeah.
15:23 jnthn !ww
15:23 GlitchMr rn: 1e5.Rat.perl.say
15:23 camelia rakudo 50a57d, niecza v24-95-ga6d4c5f: OUTPUT«100000.0␤»
15:24 GlitchMr Except it probably won't work with huge numbers.
15:24 TimToady GlitchMr: that's fine for positives, but 1e-5 is not exact
15:24 TimToady which we discovered trying to use it to round
15:24 GlitchMr hm, yeah.
15:25 TimToady 1r5 has the same "eye shape" as 1e5, from an ascender/descender point of view
15:25 GlitchMr rn: (1.0*10.0**-5.0).perl.say
15:25 camelia rakudo 50a57d: OUTPUT«1e-05␤»
15:25 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«1.0000000000000006E-05␤»
15:25 GlitchMr hm, no
15:26 TimToady 1ə5  :)
15:26 GlitchMr My suggestion would be to make e fractional, and move floating point numbers to some other syntax, like 44.23d.
15:27 TimToady huh
15:27 GlitchMr 1e-5 would return Rat, and if you want 1e-5 to be Num, use something like 1e-5d
15:28 FROGGS GlitchMr: part of the HTTP_UA_OS is "Windows CE (Pocket PC) - Version 5.1"
15:28 TimToady well, d is bad because it looks like hex
15:28 GlitchMr hm, yeah
15:28 TimToady likewise f
15:28 sqirrel joined #perl6
15:28 TimToady n would be it, I guess
15:28 GlitchMr 1e-5.Num
15:28 GlitchMr Self documenting
15:29 TimToady but not a literal
15:29 TimToady and tiresome if you want a bunch of 'em
15:29 GlitchMr Why somebody would want Num, and not Rat.
15:29 GlitchMr Or Int.
15:29 TimToady really drive everyone nuts, 1e-5 is Rat, 1E-5 is Num  :)
15:29 GlitchMr I would think that 1e6 is actually Int, but nope.
15:30 GlitchMr 1e6 is way nicer than 1_000_000.
15:30 TimToady 1r6 ain't bad, if we can educate people, r for "move the radix point" maybe
15:31 TimToady 1s6, s for "scale"
15:31 TimToady then it could be Int or Rat
15:31 GlitchMr 2d4 to make things very confusing?
15:31 TimToady 2d6 would be even worse
15:32 TimToady 5d20.roll
15:32 GlitchMr 2d6 should be syntax sugar for roll 2, 1..6
15:32 TimToady well, we settled on a postfix:<d6> the other day for that :)
15:34 GlitchMr But I guess that if somebody would port some tabletop game using dices, he could declare infix:<d>, in order to make rolls less cryptic.
15:35 TimToady doesn't work well, for same reason 1R-5 didn't parse
15:35 masak moritz: I can't find the ∅ symbol anywhere in the spec -- do you have a reference?
15:35 GlitchMr if 5 < [+] 2d6 { }
15:35 GlitchMr It looks great. Too bad I cannot declare infix:<d> without spaces inbetween.
15:36 nwc10 didn't we solve that with U+2063 ?
15:36 GlitchMr .u 2063
15:36 yoleaux U+2063 INVISIBLE SEPARATOR [Cf] (<control>)
15:37 GlitchMr Yeah, I'm going to add invisible separator to my code in order to make it more confusing.
15:37 nwc10 :-)
15:37 GlitchMr Seriously, what?
15:37 TimToady don't need that if you just use a zero-width space
15:38 GlitchMr I want 4d6 to just work, without invisible nonsense.
15:39 masak GlitchMr: then put it in quotes, like this: "4d6".
15:40 GlitchMr <4d6> would be nicer.
15:40 GlitchMr But the problem is, it's just a string.
15:40 moritz masak: I don't; lizmat++ added the changelog entry in question
15:40 GlitchMr I want 4d6 to make instance of class other than Str.
15:40 masak lizmat: same question. where is ∅ defined? I'm postulating you dreamed it. :P
15:41 masak lizmat: I've always had the empty set as 'set'
15:41 masak rn: say set.elems
15:41 camelia rakudo 50a57d, niecza v24-95-ga6d4c5f: OUTPUT«0␤»
15:41 colomon masak: TimToady++ defined it in the original version of the Set code.  ;)
15:41 masak I see.
15:41 GlitchMr And please, don't suggest BEGIN { for ^100 { eval "sub postfix:<$_> \{ ... \}" } }.
15:41 TimToady GlitchMr: you have that many kinds of dice?
15:41 masak GlitchMr: well, it seems to me you are in slang territory.
15:41 moritz that won't even work, because subs are lexically scoped
15:42 FROGGS put everything in that BEGIN block then
15:42 GlitchMr And please, don't suggest BEGIN { for ^100 { eval "our sub postfix:<d$_> \{ ... \}" } }.
15:42 FROGGS no runtime at all so it would even be faster
15:43 FROGGS[mobile] joined #perl6
15:43 GlitchMr Besides, eval is very slow in Rakudo, so code using this hack would be slow.
15:44 masak you mean besides the fact that it wouldn't work because of what moritz++ said? :)
15:44 GlitchMr That too.
15:44 masak minor detail.
15:44 masak you'd be better off dynamically building a class.
15:45 nwc10 what does 2d6 currently parse as?
15:45 masak std: 2d6
15:45 camelia std 7c17586: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Whitespace is required between alphanumeric tokens at /tmp/gG_mPRCvH7 line 1:â�¤------> [32m2[33mâ��[31md6[0mâ�¤Two terms in a row at /tmp/gG_mPRCvH7 line 1:â�¤------> [32m2[33mâ��[31md6[0mâ�¤    expecting any of:â�¤   POSTâ�¤   feed_separatorâ�¤â€¦Â»
15:45 nwc10 std: 2e6
15:45 masak TTIAR.
15:45 camelia std 7c17586: OUTPUT«ok 00:00 41m␤»
15:45 TimToady you really want a macro postfix:<d>($x) with an 'is parsed' somewhere
15:46 araujo joined #perl6
15:46 araujo joined #perl6
15:46 GlitchMr hax
15:46 GlitchMr I probably would be better using Perl 5, source filters, and /\b\d+d\d+\b/.
15:49 GlitchMr s/\b(\d+)d(\d+)\b/do { map { 1 + int rand $2 } 1..$1 }/g
15:50 GlitchMr do { } is used in order to avoid parsing problems.
15:50 GlitchMr I mean
15:50 GlitchMr s/\b(\d+)d(\d+)\b/do { map { 1 + int rand $1 } 1..$2 }/g
15:51 GlitchMr Except that doesn't work in scalar context, so...
15:52 GlitchMr s/\b(\d+)d(\d+)\b/do { wantarray ? map { 1 + int rand $1 } 1..$2 : $2 == 1 ? 1 + int rand $1 : die "Cannot throw more than one dice in scalar context" }/g
15:52 masak GlitchMr: this is #perl6.
15:52 GlitchMr hm, yeah.
15:52 GlitchMr Does Perl 6 have source filters?
15:52 TimToady um, no
15:52 TimToady by design
15:52 daxim what do you want to achieve?
15:54 TimToady daxim: see backlog
15:54 TimToady dice notation, specifically
15:54 TimToady he wants to be able to roll 19-sided dice and such, for some reason...
15:55 GlitchMr Why hardcode d2, d4, d6, d8, d10, d12, d20, d100, and so on.
15:55 GlitchMr What if somebody wants d337
15:55 TimToady then they can write a postfix
15:55 TimToady it's a one-liner
15:56 TimToady and we won't need even that when we finish up macros
15:56 masak something like 4d337 will be terribly inflexible, throwing away all the usual advantages of, say d(4, 337)
15:56 TimToady or slangs
15:56 masak GlitchMr: you're on a rather quixotic march here.
15:57 GlitchMr 4d337 is DSL.
15:57 TimToady a rather impoverished DSL, masak is point out
15:57 masak GlitchMr: usually, nice designs/APIs are found by compromising between the exact user expectations and the limitations of the syntax.
15:57 masak GlitchMr: banging your head against the syntax rarely solves anything.
15:58 TimToady if we were designing a gaming DSL, then yes, I'd have both the low-wattage and high-wattage forms
15:58 TimToady but I'm not :)
15:58 masak TimToady++ # principled in the right places
15:59 * TimToady is trying to design a DSLGL
15:59 TimToady or would that be a DSLSL?
15:59 GlitchMr DSL Generation Language?
15:59 masak I guess what Perl 6 is all about is giving you the *option* to cleanly shoot yourself in the foot in (for example) the way GlitchMr desires.
15:59 masak GlitchMr: "generic"
15:59 TimToady Perl 6 is a DGL
16:00 * TimToady is much more interested in 2r6 than 2d6
16:01 GlitchMr Perl 6 already has dangerous things like variable variables. So why I shouldn't be allowed to add infix:<d> so I can write 1284.592d204.41329
16:01 TimToady you can, except you can't put a d next to a 2 like that
16:01 masak GlitchMr: in the fullness of time, you will be able to do that.
16:01 TimToady not without a macro
16:01 masak right.
16:01 masak GlitchMr: it's not about "allowed", it's about NYI.
16:01 GlitchMr oh, ok
16:02 masak r: macro postfix:<d>($term) { say "and you'll be able to put things after the d!"; return }; say 4d # \d+ NYI
16:02 camelia rakudo 50a57d: OUTPUT«and you'll be able to put things after the d!␤Nil␤»
16:03 fhelmberger_ joined #perl6
16:03 TimToady just needs an 'is parsed' on $term or so
16:05 TimToady alternately, prefix:<d> that takes a number in front of the d
16:05 TimToady then you can write 5d $sides
16:05 TimToady instead of $count\d6
16:06 masak still sucks either way, compared to d(5, $sides)
16:07 TimToady roll(5, $sides) could almost be made to work, but I'd have to be argued into it
16:07 GlitchMr Even (4)d(5) looks better.
16:07 raiph joined #perl6
16:07 masak TimToady: nah, better not.
16:07 GlitchMr Or alternatively 4[d]5. Hm
16:08 GlitchMr infix:<[d]> could work.
16:08 masak TimToady: (^$sides).roll(5) already does that.
16:08 TimToady masak: no, 0-based
16:08 masak TimToady: >>+>> 1
16:08 TimToady GlitchMr: don't need to define it with squares, you get it for free
16:09 jnthn (1..$sides).rool(5) :)
16:09 masak rn: sub infix:<d>($count, $sides) { (1..$sides).roll(5) }; .say for 4d6
16:09 GlitchMr rool.
16:09 camelia rakudo 50a57d: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/IBepwCwf6câ�¤Confusedâ�¤at /tmp/IBepwCwf6c:1â�¤------> [32mdes) { (1..$sides).roll(5) }; .say for 4[33mâ��[31md6[0mâ�¤    expecting any of:â�¤        whitespaceâ�¤Â»
16:09 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0m��Whitespace is required between alphanumeric tokens at /tmp/4zalP3ZoKJ line 1:�------> [32mdes) { (1..$sides).roll(5) }; .say for 4[33m�[31md6[0m��Whitespace is required between alphanumeric tokens at /tmp/4zalP3ZoKJ …»
16:09 masak rn: sub infix:<d>($count, $sides) { (1..$sides).roll(5) }; .say for 4[d]6
16:09 camelia rakudo 50a57d: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Rc0lECImccâ�¤Two terms in a rowâ�¤at /tmp/Rc0lECImcc:1â�¤------> [32m) { (1..$sides).roll(5) }; .say for 4[d][33mâ��[31m6[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        statement endâ�¤â€¦Â»
16:09 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Two terms in a row at /tmp/oEGLaeOgcQ line 1:â�¤------> [32m) { (1..$sides).roll(5) }; .say for 4[d][33mâ��[31m6[0mâ�¤Other potential difficulties:â�¤  $count is declared but not used at /tmp/oEGLaeOgcQ line 1:â�¤------> [32m…»
16:09 TimToady nr: sub infix:<d>($a,$b) { [+] $a + roll $a, ^$b }; say 5[d]20
16:09 camelia rakudo 50a57d: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/fPf6q9P7O5â�¤Two terms in a rowâ�¤at /tmp/fPf6q9P7O5:1â�¤------> [32m,$b) { [+] $a + roll $a, ^$b }; say 5[d][33mâ��[31m20[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        statement en…»
16:09 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Two terms in a row at /tmp/WTy0cjQjyS line 1:â�¤------> [32m,$b) { [+] $a + roll $a, ^$b }; say 5[d][33mâ��[31m20[0mâ�¤â�¤Undeclared routine:â�¤       'd' used at line 1â�¤â�¤Parse failedâ�¤â�¤Â»
16:10 masak time to submit a rakudobug? :)
16:10 GlitchMr std: sub infix:<d>($a,$b) { [+] $a + roll $a, ^$b }; say 5[d]20
16:10 camelia std 7c17586: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a row at /tmp/BY8NW2CxxD line 1:â�¤------> [32m,$b) { [+] $a + roll $a, ^$b }; say 5[d][33mâ��[31m20[0mâ�¤    expecting any of:â�¤  POSTâ�¤   feed_separatorâ�¤ infix or meta-infixâ�¤    infixed functionâ�¤       postcircumfixâ�¤  postfixâ�¤
16:10 camelia ..postfix…»
16:10 GlitchMr time to send an everythingbug? :)
16:10 masak everything sucks. :/
16:10 TimToady oh, yeah, postcircumfix [], oops
16:10 jnthn It's a postcircumfix.
16:10 jnthn Which is parsed as part of term.
16:11 [Coke] oooh, I get the moar release? nifty.
16:11 TimToady oh well, forget that approach
16:22 [Coke] I added something to the daily run to track any potential output from the eval server. I'll let y'all know if I catch anything.
16:22 [Coke] (rakudo.jvm)
16:25 vk joined #perl6
16:30 jnthn [Coke]: thanks :)
16:38 skids joined #perl6
16:41 Rotwang joined #perl6
16:41 Rotwang joined #perl6
16:50 dalek specs: 8ece611 | larry++ | S32-setting-library/Containers.pod:
16:50 dalek specs: Mention ∅, clarify set composer semantics more
16:50 dalek specs: review: https://github.com/perl6/specs/commit/8ece611462
16:50 aaryabhatt joined #perl6
16:51 lizmat masak, moritz: # U+2205 EMPTY SET
16:51 lizmat #constant term:<<"\x2205">> = set();  # invoke() not implemented in class 'QAST::Want'
16:52 lizmat line 70 in src/core/Setty.pm
16:52 lizmat n: say ∅
16:52 camelia niecza v24-95-ga6d4c5f: OUTPUT«set()␤»
16:53 TimToady lizmat: did you notice that the subscripting change broke *.[], *.<>, and *.{}
16:54 sisar joined #perl6
16:54 FROGGS joined #perl6
16:54 lizmat TimToady: no, don't think so
16:54 lizmat I fudged a number of tests, but I don't recall fudging any .[] related tests
16:54 TimToady nr: my @a = [1,2,3],[4,5,6],[7,8,9]; say @a.map: *.[2]
16:54 camelia niecza v24-95-ga6d4c5f: OUTPUT«3 6 9␤»
16:54 camelia ..rakudo 50a57d: OUTPUT«Index out of range. Is: 2, should be in 0..0␤  in method <anon> at src/gen/CORE.setting:11768␤  in any  at src/gen/Metamodel.nqp:2671␤  in any find_method_fallback at src/gen/Metamodel.nqp:2659␤  in any find_method at src/gen/Metamodel.nqp:946␤  in method reify…»
16:55 masak lizmat, TimToady: I think U+2205 EMPTY SET needn't be part of the setting.
16:55 masak if someone wants to be cute with Unicode constants in their own code, they can.
16:55 masak for the setting, there's already set()
16:55 lizmat masak: why not?  then you might as well go texas on all other set operators as well
16:55 TimToady we have all the Unicode set ops, so why not ∅?
16:56 masak *sigh*
16:56 masak it's hard to argue *against* bloat. :/
16:56 jnthn Given we have all the Unicode set ops, I think that bloat has already sailed...
16:56 TimToady tacky...
16:56 * masak .oO( Perl 6 has missed the bloat )
16:57 lizmat not necessaarily: the non-texas versions are actually just front-ends for the texas versions
16:57 jnthn lizmat: I may be able to hunt that bug down later this evening
16:57 lizmat it wouldn't be much of a problem moving the non-texas versions out into a separate module
16:58 * jnthn thought at one point the spec had it so you did a "use" to get the Unicode set ops imported...
16:58 jnthn Then it was decided to put 'em in the setting instead.
16:58 TimToady funny how the bloat argument shows up when we add a single character to the language :)
16:59 sisar o/
16:59 sisar Need some help. unable to build rakudo: http://sprunge.us/VPPA
16:59 TimToady jnthn: under the philosophy that we shouldn't have to import ordinary math
16:59 lizmat well, whatever is decided: putting them into a separate module would not be a lot of work
16:59 moritz ok, I have an anty-bloat proposal: get rid for 1) 'for' being lazy 2) sink context 3) Failure
16:59 moritz those three concepts confuse the heck out of everybody
16:59 TimToady moritz: sink context is never, ever going away
17:00 TimToady the others are more negotiable
17:00 moritz TimToady: with which functionality?
17:00 TimToady the functionality of telling you when you're doing something stupid
17:01 moritz ok, I meant sink context specifically as a runtime construct
17:01 moritz I'm fine with tracking it at compile time
17:02 TimToady I suppose we shouldn't tell a list whether we want it to act lazy or eager at run-time either?
17:02 TimToady sink is just one end of the laziness spectrum
17:03 TimToady as such, we can probably avoid passing sink in as a special flag the way P5 does
17:05 jnthn lizmat: oh...that was the "we don't do termdef yet" thing...
17:05 TimToady I mean, it doesn't need a flag in teh stack frame
17:05 iSlug joined #perl6
17:05 lizmat jnthn: yes
17:05 TimToady the list reading api needs to be able specify to the list how it is to be read though
17:06 lizmat there's no hurry on my side to get this fixed, btw
17:07 jnthn lizmat: aye, but it'd be good to fix the termdef thing in general.
17:07 lizmat then by all means, it would mean ~10 spectests  :-)
17:08 jnthn We may need more spectsts for termdef :)
17:08 jnthn And apparently we need some for *.[] :)
17:09 lizmat jnthn: I'm not sure how to fix .[] etc., any pointers ?
17:11 lizmat aaahhhhh…   I completely missed that TimToady meant Whatever.[]
17:11 lizmat yes, that broke: simplest case
17:11 lizmat nr say *[0](1,2,3)
17:11 lizmat nr: say *[0](1,2,3)
17:11 camelia niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Excess arguments to ANON, used 1 of 3 positionals␤  at /tmp/GbWfbqMj6Y line 0 (ANON @ 1) ␤  at /tmp/GbWfbqMj6Y line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE…»
17:11 camelia ..rakudo 50a57d: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Whatever'␤  in block  at /tmp/IcpYdTyvhm:1␤␤»
17:12 jnthn lizmat: yeah
17:12 jnthn lizmat: See Actions.pm, whatever_curry
17:12 * lizmat checks
17:12 jnthn lizmat: Near the top it OKs infix, prefix and postfix. Try adding postcircumfix to that list.
17:13 lizmat I guess I should follow the callmethod value, right?
17:14 jnthn ?
17:14 jnthn no, inside whatever_curry
17:14 jnthn (nqp::index($past.name, '&infix:') == 0 ||
17:14 jnthn nqp::index($past.name, '&prefix:') == 0 ||
17:14 jnthn nqp::index($past.name, '&postfix:') == 0 ||
17:14 lizmat ahhhh ok
17:14 jnthn After that
17:16 lizmat compiling and testing
17:17 jnthn shop &
17:19 TimToady using index to test for prefix bothers me, since it'll scan uselessly whenever it doesn't match
17:20 * moritz waits for masak++ to construct a bug report that involves a variable named 'something&infix:bla' which shouldn't be treated as an infix, but is
17:21 masak :P
17:21 TimToady well, the == 0 prevents that, but it's just the waste that bothers me
17:23 sqirrel joined #perl6
17:23 raiph joined #perl6
17:24 TimToady it's like using a pile-driver to squash a bug, and after doing it 50 times, then checking to see if you were successful the first time
17:25 ssutch joined #perl6
17:25 moritz might still be faster than nqp::eq(nqp::substr($past.name, 0, nqp::chars('&infix:')), '&infix:')
17:25 TimToady and a smart index might even have set up Boyer-Moore tables on the assumption it was going to scan
17:26 TimToady sure would be nice if we could write Perl 6 in Perl 6 :)
17:27 TimToady then it's just /^ '&' [ in | pre | post 'circum'? ] fix ':' /    :)
17:27 colomon TimToady: if said bug was a spider, I'm pretty sure my wife would be in favor of overdoing the piledriver.
17:27 lizmat $ perl6 --ll-exception -e 'say *[0](1,2,3)'
17:27 lizmat Too many positional parameters passed; got 3 but expected 1
17:28 lizmat full stack trace: https://gist.github.com/lizmat/6717575
17:28 lizmat the error changed
17:28 TimToady colomon: what do you think of the idea of a scaled rat literal?
17:28 lizmat but I have no idea where that code lives
17:29 FROGGS lizmat: maybe look at the ast
17:29 colomon TimToady: you mean like the 1.23r20 talk in the backlog?
17:30 fhelmberger joined #perl6
17:30 TimToady lizmat: src/Perl6/Actions.nqp sez a recursive grep
17:31 TimToady yes, the specific case was .round(1r-5) that you were commenting on earlier
17:32 TimToady but also the frustration of being forced to write 1_000_000_000 at times
17:32 lizmat sanity check: *[0](1,2,3,4,5) should return the first element of the (1,2,3,4,5) parcel, right ?
17:35 TimToady nr: say (1,2,3,4,5)[0]
17:35 camelia rakudo 50a57d, niecza v24-95-ga6d4c5f: OUTPUT«1␤»
17:35 TimToady so it would seem
17:35 lizmat right  *phew*
17:35 TimToady so *() has to be exempted from the postcirumfixes for *
17:36 TimToady unless we force people to say (*[0])(1,2,3,45)
17:36 lizmat trying that
17:36 TimToady if we decide there's a use case for *.()
17:36 TimToady which arguably there probably is
17:36 TimToady map: *.() should invoke each of a list of invokables
17:37 TimToady so I'm inclined to not make *() an exception, and force people to say (*[0])(1,2,3,4,5) if that's what they mean
17:38 TimToady in that case, *[0](1,2,3,4,5) means { $_.[0].(1,2,3,4,5) } (as a WhateverCode)
17:38 TimToady that feels cleaner to me
17:38 TimToady the use case for callinging a WhateverCode directly is minimal
17:38 TimToady *inginging
17:39 * lizmat feels she no longer has to duck
17:39 TimToady nr: say *[0](1,2,3,4,5).WHAT
17:39 lizmat as in: this is way over my head
17:39 camelia niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Excess arguments to ANON, used 1 of 5 positionals␤  at /tmp/vU2WHEK3m3 line 0 (ANON @ 1) ␤  at /tmp/vU2WHEK3m3 line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE…»
17:39 camelia ..rakudo 50a57d: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Whatever'␤  in block  at /tmp/uP5CQeMuln:1␤␤»
17:40 TimToady n: say (*[0](1,2,3,4,5)).WHAT
17:40 camelia niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Excess arguments to ANON, used 1 of 5 positionals␤  at /tmp/zSzO4DEzSC line 0 (ANON @ 1) ␤  at /tmp/zSzO4DEzSC line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE…»
17:40 TimToady I guess niecza exempts .() though
17:41 TimToady n: say (*(1,2,3,4,5)).WHAT
17:41 camelia niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Whatever␤  at /tmp/JqJTGWQeaz line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-C…»
17:49 TimToady n: say ({.(1,2,3,4,5)}).WHAT
17:49 camelia niecza v24-95-ga6d4c5f: OUTPUT«(Block)␤»
17:49 * TimToady thinks *(1,2,3,4,5) should mean that
17:49 TimToady well, except it's a WhateverCode
17:51 masak TimToady: *(1,2,3,4,5) looks like -> &f { &f(1,2,3,4,5) } to me.
17:51 masak oh wait, we're saying the same thing, aren't we?
17:51 TimToady yes, though I just wrote it {.()}
17:52 TimToady so I flipflopped on my answer to lizmat++ and don't think .() should be an exception under Whatever
17:53 lizmat .oO( lalaalalalala  I'm not listening )  :-)
17:53 TimToady but you BROKE it! WAAAH!  :P
17:54 lizmat may I plead insanity ?
17:54 TimToady as long as you don't plead ultro-low-frequency EM
17:55 TimToady *ultra
17:55 lizmat My Hero!
17:55 TimToady but in that case someone needs to file a bug
17:56 lizmat .oO( I was suddenly reminded of http://en.wikipedia.org/wiki/My_Hero_(UK_TV_series) )
17:56 stevan_ joined #perl6
17:57 * TimToady looks around for an anti-hero to file the bug report for all the wrong reasons...
18:00 vfonic joined #perl6
18:00 lizmat I will file one if I can't get it fixed
18:01 flussence TimToady: forgot to mention this the other day, those changes you suggested cut the compile time of my module in half. (I need to make that number more like 95% before I can call it usable though...)
18:03 vfonic left #perl6
18:07 zwut00 joined #perl6
18:10 dalek specs: 26c204c | larry++ | S02-bits.pod:
18:10 dalek specs: spec postcircumfix behavior under Whatever
18:10 dalek specs: review: https://github.com/perl6/specs/commit/26c204cfad
18:10 [Coke] sisar - you have a prebuilt parrot, but not a pre-built nqp, it looks like - you probably need to pass --gen-nqp to rakudo's Configure.pl
18:11 rjbs joined #perl6
18:11 [Coke] .to sisar - you have a prebuilt parrot, but not a pre-built nqp, it looks like - you probably need to pass --gen-nqp to rakudo's Configure.pl
18:11 yoleaux [Coke]: I'll pass your message to sisar.
18:12 TimToady flussence: if the problem is compile time, just avoid compiling it :)
18:14 TimToady then when you do have to compile it, you can relax, throw Nerfoids at your officemates, and tell the boss "I'm compiling!"
18:15 TimToady just invoke the mode that compiles it down to a .o, and call it with the native interface :)
18:16 TimToady (only half joking)
18:16 TimToady but yeah, it'll be nice when the compiler is faster
18:17 TimToady diakopter++ and I were discussing ways to cut down parser allocations last night
18:17 aaryabhatt joined #perl6
18:18 * lizmat submitted rakudobug #120025
18:18 * synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=120025
18:19 lizmat sorry, but this is way over my head, and with a 5+ minute test cycle, I feel someone more knowledgeable will have a much better chance
18:19 lizmat at fixing this in some sort of reasonable wallclock time
18:21 flussence .oO( a native lib for that might not be such a bad idea; p5 has a similar module that could benefit from some XS )
18:22 dmol joined #perl6
18:23 stevan__ joined #perl6
18:23 colomon TimToady: sorry for the slow reply.  I'd forgotten that round works with both Num and Rat!  I don't have any strong feelings on the letter to use for a Rat exponential.  Those I remember pondering postfix:<Q> to turn things into FatRats, if that might factor in somehow.
18:24 TimToady why Q?
18:27 TimToady also, a postfix is a little late, if the literal to the left of it has already thrown away precision
18:28 TimToady 1e-5Q would have already floatified the 1e-5 for instance
18:28 colomon TimToady: symbol for rational numbers.  And maybe it should be part of the normal grammar for literal numbers?  I don't know.  just wanted to throw this into the fray
18:28 TimToady and a Rat might've already decided to promote to Num
18:30 TimToady 1r-5 -> Rat and 1R-5 -> FatRat maybe
18:31 TimToady or take GlitchMr++'s proposal to make e notation return Int/Rat, and have an explicit marker for floaters
18:32 TimToady not necessarily d though
18:34 TimToady or make an e/E distinction, which is unorthodox, but not so bad for all that, since we distinguish case in most other areas of the language
18:35 TimToady that is, 1e5 returns Int, 1e-5 returns Rat, and 1E5 returns Num
18:35 jnthn Could use n for num, i for int, and r for rat... :)
18:35 TimToady doesn't extend to FatRat though...
18:35 iSlug joined #perl6
18:35 TimToady i is bad
18:35 jnthn Complex?
18:36 TimToady yeah
18:36 TimToady 1i-1
18:36 TimToady r: say 1i-1
18:36 camelia rakudo 50a57d: OUTPUT«-1+1i␤»
18:36 jnthn yeah
18:36 jnthn That won't fly :)
18:36 TimToady thought of that one half an hour ago, which is why I rejected it so quick :)
18:38 TimToady and there's an argument that the e/E distinction is useful, insofar as it only changes the type of the number, not really the magnitude of it (ignoring precision loss)
18:38 TimToady so the problem is still likely to work if you get the wrong e or E
18:38 TimToady it'll just run slower
18:38 TimToady s/problem/program/
18:39 TimToady otoh, a separate marker for floaters has the advantage of working without e notation
18:39 TimToady 1n could be a floating 1.0
18:40 TimToady though that look like ln
18:40 TimToady 1N is more distinctive
18:41 nwc10 can you use 'f' instead of 'e' for the exponent?
18:41 TimToady looks like hex
18:41 nwc10 true.
18:41 TimToady of course, so does e :)_
18:41 TimToady pardon the drool
18:41 TimToady must be lunch time...
18:42 TimToady 'course real hex always has a prefix, so it's not officially ambiguous
18:43 TimToady 1F0 almost looks like 1E0...
18:43 TimToady and 1R0 almost looks like 1F0...
18:44 TimToady but me is enough of a Unixbrane to think uppercase looks ugly there
18:44 moritz and 1F0 almost looks like UFO
18:45 TimToady a 1dentified flying 0bject
18:46 moritz 1dentified quantiFied Object
18:47 not_gerd joined #perl6
18:48 not_gerd note that C uses the f suffix to denote float literals (in  contrast to the default of double)
18:48 TimToady yes, that also is a source of interference
18:48 lizmat .oO( they all look like R2D2 predecessors to me )
18:48 TimToady squeee!
18:49 colomon lizmat++
18:49 not_gerd C also allows the 'p' instead 'e' if you want binary exponentials instead of base-10 ones, btw
18:49 dalek nqp/nqp_spawn: c300084 | (Tobias Leich)++ | src/vm/parrot/ (2 files):
18:49 dalek nqp/nqp_spawn: added nqp::spawn for windows+rakudo
18:49 dalek nqp/nqp_spawn:
18:49 dalek nqp/nqp_spawn: This is needed because qutoing of the arguments of rakudos spawn
18:49 dalek nqp/nqp_spawn: op is broken. This gives us the chance too to pass the env hash.
18:49 dalek nqp/nqp_spawn: review: https://github.com/perl6/nqp/commit/c300084f0f
18:50 TimToady huh, when did they put that in?
18:50 * TimToady still thinks in K & R
18:51 nwc10 TimToady: C99
18:51 nwc10 C99's atof() is not compatible with C89's
18:52 TimToady consarned newfangle contraptions!!
18:53 nwc10 I still think that if they wanted to change the documented behaviour (and it was reasonable to want the new behaviour available) they should have used a *new* name and kept the old name doing the standardised thing
18:53 nwc10 not "move the goalposts"
18:53 TimToady well, it's a different language :D
18:54 not_gerd aren't the ato* functions deprecated in favour of strto* anyway?
18:54 TimToady obviously they shoulda broken it harder
18:54 nwc10 nailed a few more legs onto it? :-)
18:55 TimToady .oO( A Call to Legs )
18:58 nwc10 I *think* that this almost contains a complement, as there's only one reference to "actual octopi" -- http://c2.com/cgi/wiki?ExtraLegsOntoaDog
19:01 masak nwc10: well, the "and it still doesn't" is just another example of the all-you-get-is-one-bit world view on the other side of the echo chamber wall.
19:02 masak if we haven't "released", by definition we don't have a working OO system.
19:02 masak and 68 Rakudo releases unfortunately don't count as having "released".
19:04 TimToady But this is our Last Chance to fix X!!!
19:04 nwc10 I appreciate that you're grumpy, but I will be undiplomatic and ask if the channel logger is written in Perl 6 yet?
19:04 nwc10 (and that I indirectly made you grumpy, and this isn't helping)
19:05 masak nwc10: no, that did help.
19:05 ssutch joined #perl6
19:05 masak nwc10: unfortunately, 2013 will not be the year of "write all the things in Perl 6". 2014 will.
19:05 TimToady .oO(now where did I put my lawn?)
19:06 nwc10 yes. agree that soon a lot of the answers will be different. And this is good. If not awesome
19:06 TimToady nearly all of the dogfood issues hinge on performance
19:07 not_gerd oO( but how much food does a dog with 8 legs need? )
19:07 TimToady depends on whether you're walking it, or it's biting you
19:08 TimToady does this dog by any chance have two mouths?
19:08 masak lizmat++ # RT #120025
19:08 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=120025
19:09 lizmat yw
19:09 nwc10 RT #826
19:09 nwc10 oh, doesn't work for me :-)
19:09 nwc10 or maybe it's fussy about queues
19:10 jnthn nwc10: Think it expects more digits than that
19:10 TimToady quick, file more bugs...oh wait...
19:11 lizmat Q: you can use nqp::elems to find out the number of keys in an nqp::hash, or not ?
19:11 jnthn lizmat: ja
19:11 jnthn r: say nqp::elems nqp::hash
19:11 camelia rakudo 50a57d: OUTPUT«0␤»
19:11 moritz nqp: say(nqp::elems({ a => 1, b => 2})
19:11 camelia nqp: OUTPUT«Confused at line 2, near "say(nqp::e"␤current instr.: 'panic' pc 14693 (src/stage2/gen/NQPHLL.pir:5223) (src/stage2/gen/NQPHLL.nqp:279)␤»
19:11 moritz nqp: say(nqp::elems(hash( a => 1, b => 2))
19:11 camelia nqp: OUTPUT«Confused at line 2, near "say(nqp::e"␤current instr.: 'panic' pc 14693 (src/stage2/gen/NQPHLL.pir:5223) (src/stage2/gen/NQPHLL.nqp:279)␤»
19:12 nwc10 ah, OK. RT #18400
19:12 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=18400
19:12 moritz nqp: say(nqp::elems(hash( a => 1, b => 2)))
19:12 camelia nqp: OUTPUT«2␤»
19:13 nwc10 I believe that 18400 is the smallest numbered Perl 6 bug.
19:14 nwc10 RT #2968 is an open Perl 5 bug. I guess that that is "too short"
19:14 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=2968
19:14 nwc10 oh, no.:-)
19:14 FROGGS RT #1
19:14 FROGGS RT #0001
19:14 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=0001
19:14 nwc10 I think that RT #826 is the oldest bug.
19:14 FROGGS ha!
19:15 nwc10 at least, it's probably the oldest that is visible. An exhaustive search might find more, but upset the admins
19:15 nwc10 (and it's a test. The oldest open Perl 5 bug appears to be 1170)
19:18 FROGGS yay, this works now on windows@parrot: perl6 -e "run('dir', '/OS', 't')"
19:25 * TimToady hopes that bug is "Perl 5 doesn't run on a PDP-11/70"
19:25 stevan_ joined #perl6
19:36 dalek rakudo/nom: e01955c | (Elizabeth Mattijsen)++ | src/core/ (2 files):
19:36 dalek rakudo/nom: Use a self-annihilating ENTER phaser for "is DEPRECATED" trait
19:36 dalek rakudo/nom:
19:36 dalek rakudo/nom: This is again a proof of concept.  Because of &?BLOCK not existing, it is
19:36 dalek rakudo/nom: impossible to create a Block.remove_phaser($type,&?BLOCK) capability.  Instead,
19:36 dalek rakudo/nom: this commit creates a "pop_phaser" method that will simply pop the last phaser
19:36 dalek rakudo/nom: of the given type from the list of phasers for that type.  Since the ENTER
19:36 dalek rakudo/nom: phaser of the "is DEPRECATED" trait is added *after* any other ENTER phasers in
19:36 dalek rakudo/nom: that block, popping a phaser means removing the one that was added for
19:36 dalek rakudo/nom: "is DEPRECATED".  Maybe we need a better way for a phaser to remove itself
19:36 dalek rakudo/nom: from future execution.
19:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e01955ce81
19:36 lizmat afk for some R&R
19:40 jnthn I really don't think removing it from the phasers list is the way to go...
19:40 jnthn What if somebody adds another trait that adds a phaser and uses it after is DEPRECATED...
19:42 geekosaur wouldn't it be better to have it use a state var?
19:43 geekosaur or do state vars themselves use BEGIN in the background or something
19:43 geekosaur ?
19:43 araujo joined #perl6
19:43 araujo joined #perl6
19:43 jnthn geekosaur: A state var, or once block, would make sense to me.
20:07 FROGGS meh
20:07 FROGGS jnthn: the S29-os\system.t dies in P6bigint.c->gc_cleanup :o(
20:08 FROGGS jnthn: and my guts tell my that this is not due to my recent nqp patch
20:08 FROGGS I have a feeling that $status but !$status in control.pm causes this
20:09 jnthn FROGGS: Sounds kinda familiar...
20:10 TimToady if we decide to deprecate 'is DEPRECATED', will we have to start allowing traits on traits?
20:12 * TimToady agrees with jnthn++ that mutating phaser lists on a (supposedly) immutable Block is fishy-smelling
20:13 dalek rakudo/nqp_spawn: 6a08772 | (Tobias Leich)++ | src/core/control.pm:
20:13 dalek rakudo/nqp_spawn: use nqp::spawn instead of pir:: for windows too
20:13 dalek rakudo/nqp_spawn: review: https://github.com/rakudo/rakudo/commit/6a08772d91
20:13 FROGGS jnthn: that makes me think that a) we need to fix that bug, or b) we should introduce ProcessState now
20:13 jnthn TimToady: Could just put is DEPRECATED on the trait_mod for is DEPRECATED... :P
20:14 FROGGS ... and I'm not sure I can do a) at all
20:14 jnthn r: multi trait_mod:<is>(Routine:D $r, :$OMGZ!) is OMGZ { }
20:14 camelia rakudo 50a57d: ( no output )
20:15 TimToady depends on what the meaning of "is" is...
20:15 jnthn I applied the trait without touching it!
20:16 * TimToady circularity saw is dented...
20:16 TimToady *'s
20:17 FROGGS r: class A is A { }
20:17 camelia rakudo e01955: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/8IaRmXPhst�'A' cannot inherit from itself.�at /tmp/8IaRmXPhst:1�------> �»
20:17 jnthn hah, it ain't that stupid... :)
20:17 TimToady that message is LTA
20:17 jnthn TimToady: How so?
20:17 TimToady it should say: cannot inherit from itself, dummy!
20:18 TimToady :)
20:18 jnthn It feels a bit funny to say SORRY, then call the user a dummy :P
20:18 FROGGS we really need X::Insulting :o)
20:18 TimToady "we are all very sorry you are a dummy"
20:19 TimToady class A eats itself by that tail and disappears in a puff of magic dragons
20:19 TimToady *the tail
20:20 jnthn ok, enough $dayjob for today...
20:20 * jnthn figures he'll do a Perl 6 thing or to...
20:20 TimToady JVM is a thing, and Moar is another thing...
20:21 FROGGS *g*
20:21 FROGGS start with a small thing....
20:21 FROGGS ... like moarvm :o)
20:21 TimToady that would be Moar, relatively speaking, yeah
20:22 FROGGS but I think jnthn++'s priority is JVM*
20:22 FROGGS err, R* including JVM
20:23 TimToady R* including *
20:23 snoopy_ joined #perl6
20:23 FROGGS yeah, *
20:23 masak r: class A { ... }; class B is A {}; class A is B {}
20:23 camelia rakudo e01955: ( no output )
20:24 masak r: class A { ... }; class B is A {}; class A is B {}; say A ~~ B; say B ~~ A
20:24 camelia rakudo e01955: OUTPUT«No such method 'ACCEPTS' for invocant of type 'B'␤  in block  at /tmp/vxbwCmb91X:1␤␤»
20:24 masak oh, right.
20:24 FROGGS r: class A { ... }; class B is A {}; class A is B {}; say A.new
20:24 camelia rakudo e01955: OUTPUT«No such method 'new' for invocant of type 'A'␤  in block  at /tmp/lRDRKYqCYh:1␤␤»
20:24 FROGGS r: class A { }; class B is A {}; class A is B {}; say A.new
20:24 camelia rakudo e01955: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/UYG3XVNkoNâ�¤Redeclaration of symbol Aâ�¤at /tmp/UYG3XVNkoN:1â�¤------> [32mss A { }; class B is A {}; class A is B [33mâ��[31m{}; say A.new[0mâ�¤    expecting any of:â�¤        statement listâ�¤        horizontal…»
20:24 FROGGS Aaah
20:25 FROGGS r: class A { }; class B is A { }; class A is B { };
20:25 camelia rakudo e01955: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/v4eVwLLkDjâ�¤Redeclaration of symbol Aâ�¤at /tmp/v4eVwLLkDj:1â�¤------> [32ms A { }; class B is A { }; class A is B [33mâ��[31m{ };[0mâ�¤    expecting any of:â�¤        statement listâ�¤        horizontal whitespa…»
20:25 FROGGS ahh, and now I see the errmsg
20:25 TimToady r: class A { ... }; class B is A {}; class A is B {}; say A.^mro
20:25 camelia rakudo e01955: OUTPUT«No such method 'dispatch:<.^>' for invocant of type 'A'␤  in block  at /tmp/2Viydo7amJ:1␤␤»
20:25 TimToady r: class A { ... }; class B is A {}; class A is B {}; say B.^mro
20:25 camelia rakudo e01955: OUTPUT«No such method 'dispatch:<.^>' for invocant of type 'B'␤  in block  at /tmp/r4TXufA8kE:1␤␤»
20:26 TimToady r: say Int.^mro
20:26 camelia rakudo e01955: OUTPUT«(Int) (Cool) (Any) (Mu)␤»
20:26 * TimToady thinks A and B disappeared in a puff of something or other
20:26 masak "The MOP treats circularity as damage and doesn't attempt to route anything." :P
20:26 timotimo TimToady: "a puff of each other" more like
20:27 TimToady n: class A { ... }; class B is A {}; class A is B {}; say A.^mro
20:27 camelia niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Two definitions found for symbol ::GLOBAL::Aâ�¤â�¤  first at /tmp/Rs1FwCkB1z line 1â�¤  second at /tmp/Rs1FwCkB1z line 1 at /tmp/Rs1FwCkB1z line 1:â�¤------> [32m { ... }; class B is A {}; class A is B [33mâ��[31m{}; say A.^mro…»
20:27 * masak is reminded of when he put the helmet in the helmet
20:27 FROGGS these puffs must be full of crap
20:29 [Coke] eval server still not handling test_summary.pl
20:29 [Coke] lots of aborts today still.
20:29 jnthn :S
20:29 [Coke] output from eval server: nada.
20:29 FROGGS did mine too
20:30 [Coke] though the shell that launched it is hairy, and maybe I screwed it up:
20:30 [Coke] exec 3> >( ./perl6-eval-server -bind-stdin -cookie TESTCOOKIE -app perl6.jar 2>&1 | tee eval-server.log )
20:31 geekosaur if that's on a platform whose /bin/sh is not bash then you will need to force bash
20:32 [Coke] #!/usr/bin/env bash
20:34 * TimToady feels naptacular suddenly
20:35 * geekosaur has been feeling that way for the past hour and a half :/
20:35 [Coke] wonder if test_summary.pl is hiding output that would be useful here.
20:35 ajr joined #perl6
20:38 peteretep joined #perl6
20:38 peteretep Is there a list/repository anywhere of non-trivial Perl6 usage?
20:39 [Coke] "what do you mean?"
20:39 PerlJam peteretep: Define "trivial"?
20:39 [Coke] like, a showcase of applications written by people that isn't modules.perl6.org ?
20:39 peteretep Any companies using Perl6 in production, or any significant open-source projects in Perl 6?
20:40 PerlJam peteretep: Rakudo is a significant open source project using Perl 6  ;)
20:40 [Coke] one company. haven't heard from him in a while. (OS projects) see modules.perl6.org
20:42 pmurias how should perl6 modules be wrapped to node.js ones?
20:43 masak peteretep: I use Perl 6 to drive my (static) blog site. have been for the past 3 years.
20:43 masak peteretep: see http://strangelyconsistent.org/blog/dog-food-with-a-distinct-perl6-flavor
20:43 timotimo masak: have you had successes with rakudo-jvm in the mean time?
20:44 masak hm, seems I have published 164 blog posts since the switch to psyde. :)
20:44 masak timotimo: please be more specific.
20:45 timotimo does it build your website? is it much faster than on parrot?
20:45 masak timotimo: ah. no, I haven't tried/checked that.
20:45 jnthn peteretep: You're going to find Perl 6 usage relatively small scale so far, given performance is not yet great and we're still rather early on the adoption curve.
20:45 masak consider it to be on my todo list from now on.
20:45 timotimo i seem to recall you wanted to, a couple month ago
20:45 dwarring joined #perl6
20:45 masak timotimo: that may well be true :/
20:46 peteretep I wonder if I can interest my dev team to try using Perl6 for their next hacker day
20:46 timotimo wasn't there some issue with unicode getting split in half at read chunk size boundaries a long time ago? or was that somebody else?
20:47 dalek nqp: 216debe | jnthn++ | src/vm/parrot/QAST/Operations.nqp:
20:47 dalek nqp: Add nqp::getcfh op on Parrot backend.
20:47 dalek nqp:
20:47 dalek nqp: Maps to what is used to provide getc in Rakudo now; will allow us to
20:47 dalek nqp: provide a JVM implementation also.
20:47 dalek nqp: review: https://github.com/perl6/nqp/commit/216debe5e7
20:47 timotimo cool
20:48 [Coke] jnthn: one line blurb on what that opcode does?
20:48 [Coke] (that doesn't reference another opcode? ;)
20:48 FROGGS it reads a char from an opened filehandle
20:48 jnthn Reads a single character from the supplied filehandle.
20:48 BenGoldberg joined #perl6
20:49 FROGGS hehe, jnthn's answer is copy+paste-able
20:50 masak timotimo: that was me, yes.
20:50 dalek nqp: f15686a | coke++ | docs/ops.markdown:
20:50 dalek nqp: document new opcode
20:50 dalek nqp:
20:50 dalek nqp: jnthn++
20:50 dalek nqp: review: https://github.com/perl6/nqp/commit/f15686a742
20:50 FROGGS timotimo: this was/is parrot specific
20:50 masak peteretep: interesting your dev team to try using Perl 6 for a hacker day sounds like good fun. let us know (a) if you need help finding docs/resources, (b) how it went.
20:51 timotimo oh, interesting
20:51 [Coke] peteretep++
20:51 masak timotimo: and FROGGS++ fixed the Parrot bug.
20:51 timotimo cool
20:52 masak timotimo: ...but due to our Rakudo release mechanics, the latest compiler (and Star) release doesn't contain the fix.
20:53 * [Coke] tries to tread water on the docs.
20:54 timotimo wait ... the current one?
20:54 timotimo but wasn't that fixed like 3 months ago?
20:55 FROGGS timotimo: no, more like three weeks
20:55 dalek nqp: bd10d58 | coke++ | docs/ops.markdown:
20:55 dalek nqp: fix style nit
20:55 dalek nqp: review: https://github.com/perl6/nqp/commit/bd10d585b8
20:55 FROGGS ha style-nazi! :P
20:56 [Coke] it was... necessary.
20:56 FROGGS yeah, I understand that
20:57 FROGGS I hate unproperly indended code fwiw
20:57 masak [Coke]++ # style
20:59 timotimo FROGGS: wut.
20:59 dalek nqp: b4e00e5 | coke++ | docs/ops.markdown:
20:59 dalek nqp: fix formatting for trig ops.
20:59 dalek nqp: review: https://github.com/perl6/nqp/commit/b4e00e508a
20:59 timotimo i'm thoroughly confused now
20:59 btyler joined #perl6
21:00 masak timotimo: why?
21:00 masak timotimo: Rakudo only upgrades its Parrot under certain conditions.
21:00 masak timotimo: those conditions, quite clearly, didn't apply this release.
21:01 masak timotimo: perhaps more importantly, there was no Parrot release to upgrade *to*, anyway.
21:01 timotimo i was sure that fix had been relevant three months, not weeks ago.
21:01 masak (as the Parrot release this month did not happen)
21:01 masak timotimo: well, I wailed about the problem months ago. I submitted a Parrot ticket. nothing happened back then, though.
21:01 masak FROGGS++ is the only one who took action.
21:01 FROGGS timotimo: just look at the parrot commits, I believe mine is the last *g*
21:02 timotimo :(
21:02 moritz FROGGS: the last non-docs commit, yes
21:02 masak dukeleto++ is doing an admirable job pretending that Parrot isn't, at this point, well and truly, beyond-any-parrot-joke dead.
21:02 masak but it is.
21:03 FROGGS that doesn't mean it will never come back
21:03 * not_gerd still has io-related, uncommitted parrot changes in his stash
21:03 masak FROGGS: oh, sure.
21:04 masak FROGGS: someone just needs to come up with a, you know, purpose. and preferably a user base.
21:07 donaldh joined #perl6
21:07 masak now, Parrot and Perl 6 has had a long ride together, and I don't mean to be too harsh. but I don't see the Parrot road leading anywhere significant. meanwhile, Perl 6 will establish itself on the JVM, on Moar, and on the CLR.
21:07 masak oh, and JavaScript.
21:07 masak pmurias++
21:07 pmurias :)
21:09 zwut00 joined #perl6
21:10 lowpro30 joined #perl6
21:15 araujo joined #perl6
21:16 araujo joined #perl6
21:16 pmurias masak: I think the current parrot plan is to repurpose it for something else other than Perl 6
21:17 tadzik alles beste
21:17 not_gerd 'night, #perl6
21:17 tadzik guten nacht, not_gerd
21:17 lowpro30_ joined #perl6
21:17 BenGoldberg Hello, #perl6 :)
21:18 not_gerd gute nacht, tadzik
21:18 tadzik ach, right, gute
21:19 tadzik I'm just Parroting what I learned years ago, it may be a little inaccurate :)
21:19 timotimo besichtigst du die schlafenswürdigkeiten? :)
21:19 BenGoldberg Are there any languages, currently supported by parrot, which aren't better supported by other vms or native compilers?
21:19 masak pmurias: far be it from me to stand in their way. and best of luck to them in finding that "something else".
21:19 masak BenGoldberg: Perl 6.
21:19 masak BenGoldberg: NQP.
21:20 timotimo BenGoldberg: winxed :)
21:20 masak PIR. :/
21:20 tadzik hmm, I find schlafenswuerdigkeiten hard to decipher
21:20 tadzik sleep-sights? :)
21:20 not_gerd left #perl6
21:21 timotimo deciphering is easy, but i don't think it has any simple translation
21:21 masak 'sleepworthinesses'?
21:21 BenGoldberg Pleasant dreams?
21:21 tadzik I'm quite sleep-worthy now :)
21:26 BenGoldberg What does winxed accomplish (other than inline pir), that javascript does not?
21:27 tadzik seamless parrot interop, I think
21:29 BenGoldberg So it's really only useful if you want to have a javascript-like language which needs to interop with some other language which runs on parrot.
21:29 timotimo yeah
21:29 tadzik it's not useful outside parrot really
21:31 SHODAN joined #perl6
21:35 dwarring jnthn++ masak++ for the edument course notes and examples
21:36 iSlug joined #perl6
21:36 masak yes, we do awesome things. :)
21:36 masak we're hiring.
21:37 dwarring my rate is $0
21:37 diakopter o_O
21:38 dwarring I've done a few little extrra hacks on the rubyish example - https://github.com/dwarring/nqp-rubyish
21:38 * dwarring mostly just stealing stuff from NQP::Grammar
21:41 masak dwarring++ # cool!
21:42 ajr joined #perl6
21:43 dwarring fun!
21:44 dwarring diakopter: snoopy is me
21:44 diakopter ?
21:44 masak diakopter: snoopy is he.
21:44 diakopter ...
21:45 diakopter there's some stub code for you
21:45 * masak does the Snoopy dance
21:45 dwarring %^%&^$$%$
21:46 masak std: %^%&^$$%$
21:46 camelia std 7c17586: OUTPUT«[31m===[0mSORRY![31m===[0m�Non-declarative sigil is missing its name at /tmp/bxQjWQMaq5 line 1:�------> [32m<BOL>[33m�[31m%^%&^$$%$[0m�Use of uninitialized value $first in string eq at STD.pm line 66222.�Use of uninitialized value $first in string lt at S…»
21:46 diakopter well now, that's just going too far.
21:46 diakopter well, stdbug anyway
21:47 masak indeed.
21:47 masak dwarring++
21:49 stevan_ joined #perl6
21:58 REPLeffect joined #perl6
22:04 raiph joined #perl6
22:05 dalek nqp: 7b79b2f | jnthn++ | src/vm/jvm/ (5 files):
22:05 dalek nqp: First pass at nqp::getcfh on JVM.
22:05 dalek nqp: review: https://github.com/perl6/nqp/commit/7b79b2f1cd
22:07 dalek rakudo/nom: a79c943 | jnthn++ | / (2 files):
22:07 dalek rakudo/nom: Use nqp::getcfh to implement getc.
22:07 dalek rakudo/nom:
22:07 dalek rakudo/nom: Also bump NQP_REVISION to a version that supports this op on both JVM
22:07 dalek rakudo/nom: and Parrot.
22:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a79c94340c
22:07 TimToady \o/
22:08 jnthn TimToady: It passes getc.t, which has all of one test, so let me know how it works out in reality :)
22:09 timotimo does it work with utf16? :)
22:09 timotimo or does it operate on buf-level?
22:10 jnthn Yes, it is careful with encodings. :)
22:10 jnthn That's why it's so much darn code.
22:11 * TimToady would be doing work, but he's compiling...
22:11 timotimo :)
22:12 BenGoldberg How hard would it be, to create a perl6 grammar (and actions) which could read in a Bakus Naur Form grammar, and output a perl6 grammar?
22:13 TimToady does it have to intuit where space is significant? :)
22:14 BenGoldberg Not sure.  But it would be nice if I could write a perl6 program which read in a bnf (from some external file, perhaps), and then verified that some other file was correctly formatted.
22:22 REPLeffect joined #perl6
22:25 BenGoldberg Well, not just check for being correctly formatted, but perhaps produce a parse tree, or otherwise act on the data.
22:27 diakopter BenGoldberg: a parser generator generator?
22:38 jnthn Don't think I'll get to defterm today.
22:40 TimToady I note that the postal address example of BNF on wikipedia requires one to intuit where whitespace is required, where it is allowed, and where it is forbidden. :)
22:41 TimToady it assumes spaces are allowed between names, but a first name can be a letter followed by a ".", presumably with whitespace in between disallowed somehow
22:41 TimToady most BNF is really sloppy this way...
22:46 TimToady it also lets you write "Seattle , WA"
22:46 jnthn So does the postman... :)
22:47 TimToady I don't know the IQ of my postman, but I'm pretty sure the IQ of my computer is less.
22:48 * diakopter has a postwoman
22:48 btyler joined #perl6
22:48 TimToady mine varies :)
22:48 TimToady sometimes he's a woman...
22:48 * diakopter considers legally changing my name to Trigger Word
22:50 dalek perl6-roast-data: 968c080 | coke++ | / (5 files):
22:50 dalek perl6-roast-data: today (automated commit)
22:50 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/968c0806a1
22:50 dalek perl6-roast-data: 45d69ec | coke++ | bin/rakudo.jvm.sh:
22:50 dalek perl6-roast-data: Track eval server output to catch any errors
22:50 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/45d69ecf22
22:50 dalek perl6-roast-data: e76c1f0 | coke++ | / (5 files):
22:50 dalek perl6-roast-data: today (automated commit)
22:50 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/e76c1f00c4
22:51 [Coke] rakudo.jvm test_summary on eval server still borking after a while on diakopter's machine.
22:54 pmurias joined #perl6
22:57 TimToady jnthn: your getc appears to work for my quiz editor
22:57 jnthn TimToady: greatc \o/
22:57 jnthn TimToady: It runs on Rakudo JVM now?
22:57 TimToady the JVM version still isn't quite as snappy as the niecza version, but I expect that'll improve over time
22:58 jnthn TimToady: Snappier than the Parrot one?
22:58 TimToady yes
22:58 jnthn And yes, things will improve. :)
22:59 zwut00 left #perl6
23:01 TimToady about half our quizzers are from India, and their parents tend to be Java-literate, so they will be impressed, I think :)
23:03 masak \o/
23:03 masak TimToady++ # using Perl 6 in production
23:03 diakopter producify!
23:03 masak 'night, #perl6
23:03 diakopter g'n
23:03 diakopter g'n'
23:04 TimToady sleep good
23:04 diakopter sleep long and popsicle
23:08 [Coke] jnthn++
23:11 kay__ joined #perl6
23:29 jnthn 'night o/
23:43 sisar joined #perl6
23:45 sisar o/
23:45 yoleaux 18:11Z <[Coke]> sisar: - you have a prebuilt parrot, but not a pre-built nqp, it looks like - you probably need to pass --gen-nqp to rakudo's Configure.pl
23:46 sisar_ joined #perl6
23:48 sisar_ .tell [Coke] thanks for looking into it, but no luck. It fails with: http://sprunge.us/fVAH. I'm unfamiliar with the build process, but I thought that invoking '--gen-parrot' would automaticall build nqp too.
23:48 yoleaux sisar_: I'll pass your message to [Coke].
23:50 REPLeffect joined #perl6

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

Perl 6 | Reference Documentation | Rakudo