»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:01 zwut00 left 00:02 SmokeMac_ left, SmokeMachine joined 00:04 ssutch left 00:05 rjbs joined
rjbs jnthn++ # just downloaded the nqp course 00:06
00:12 Psyche^_ joined 00:15 Psyche^ left 00:34 ssutch joined 00:41 leontopod left 00:43 xinming left 00:45 xinming joined, diakopter left 00:50 xinming left 00:52 xinming joined 00:54 raiph left 00:58 FROGGS_ joined 01:00 xinming left 01:01 xinming joined 01:02 FROGGS left 01:03 [Sno] left, [Sno] joined 01:16 SmokeMac_ joined 01:17 SmokeMachine left 01:32 btyler left 01:33 daniel-s joined 01:43 raiph joined 01:57 ribasushi left, ribasushi joined 01:58 FROGGS__ joined 02:02 FROGGS_ left 02:04 jnap left 02:14 diakopter joined 02:19 raiph left 02:37 odoacre left 02:42 hoelzro left 02:52 btyler joined 03:09 odoacre joined 03:12 preflex left, preflex_ joined, ChanServ sets mode: +v preflex_ 03:13 preflex_ is now known as preflex, odoacre left
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 :)
TimToady why is it using floating point to round rats? 03:51
oh, because that's what it's being passed...hmm 03:53
using 1/10**5 works fine on JVM, so I agree it's probably a pebcakish issue 03:57
.1**5 works too :) 03:58
arguably we could make .round refuse to work with a Num 03:59
04:00 xinming left
TimToady s/c/sh/ 04:00
04:02 xinming joined 04:05 araujo left 04:11 cognominal left, cognominal joined 04:15 krokite joined 04:18 daniel-s left 04:19 araujo joined 04:21 shuckle joined 04:22 shuckle left 04:23 xenoterracide left 04:24 araujo left 04:25 araujo joined 04:47 daniel-s joined 05:03 btyler left 05:28 woosley left 05:36 SamuraiJack joined 05:42 aindilis joined 05:43 BenGoldberg left 05:45 PacoAir joined
TimToady r: say ord $*IN.getc 05:45
camelia rakudo 6ff75a: OUTPUT«76␤»
TimToady this fails in rakujo
Method 'read' not found for invocant of class 'BOOTIO'
nr: say <a b c>.map: *.[0] 05:49
camelia niecza v24-95-ga6d4c5f: OUTPUT«a b c␤»
..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 …»
TimToady things of the form *.[], *.<>, and *.{} now fail since they aren't methods, but postfixes 05:50
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
(dunno if that's just on jvm)
(trying to get my quiz editor to run on rakudo/jvm...) 05:53
05:53 PacoAir left
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:02
so far the getc is the only showstopper, can work around the other by changing *.<foo> to {.<foo>} for now 06:04
hard to write an editor without single char input though...
06:13 ksh left 06:14 thou left, 20WAC7D55 left, rom1504 left, rom1504 joined, gabriel joined 06:15 m00se_ joined 06:16 ksh joined 06:17 m00se_ left 06:29 FROGGS__ left 06:36 krokite left, krokite joined 06:37 darutoko joined 06:44 iSlug joined 06:45 raiph joined 06:46 skids joined 06:47 sqirrel joined 06:55 denysonique left 06:56 dalek left 06:57 dalek joined, ChanServ sets mode: +v dalek 07:09 iSlug left 07:13 kaleem joined 07:14 araujo left 07:17 FROGGS joined
FROGGS o/ 07:22
07:26 fhelmberger joined 07:27 xinming left
nwc10 jnthn++ # JVM progess 07:28
07:29 xinming joined
masak morn'n, #perl6. 07:30
FROGGS morning 07:32
lizmat good *, #perl6!
moritz \o 07:37
FROGGS .oO( everybody stand tight, it's getting full ) 07:38
07:38 xinming left
moritz everybody stand back, I know regular expressions! 07:39
FROGGS /o\ 07:40
07:40 xinming joined
lizmat ducks 07:40
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?
n00bs, lol
:P
tadzik FROGGS: some nice... carpets?
FROGGS (moritz) <-- ha, captured!
hehe 07:42
tadzik: no :P
07:43 araujo joined 07:45 dmol joined 07:48 araujo left
masak on second thought, carpets don't provide much protection against... anything, really. 07:49
07:49 araujo joined
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.
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.
masak now that would be something -- a test so heavy it makes the *mouse* itself unable to move! 07:52
FROGGS *g*
yeah
moritz masak: yesterday I had that condition, but not because of the tests, but because thunderbird decided it needed 7.5GB memory 07:53
FROGGS nice 07:54
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
*ate
07:57 araujo left 08:01 araujo joined, gtodd left 08:02 hoelzro joined, gtodd joined 08:06 araujo left 08:08 ssutch left, araujo joined
moritz usually configures his systems without swap, so that such things fail faster 08:09
hoelzro morning #perl6
moritz or all shells with a ulimit of 4GB virtual memory
\o hoelzro 08:10
hoelzro returns from a six hour absence
08:10 araujo left
hoelzro Freenode said I was spamming =( 08:10
not true!
08:11 araujo joined, araujo left, araujo joined
nwc10 that's dalek's job 08:11
moritz has only three failing JVM spectests
t/spec/S29-os/system.rakudo.jvm test 5, t/spec/S32-list/roll.t test 40
nwc10 moritz: "quick, write more tests", to paraphrase purl
moritz not ok 5 - run() is affected by chdir() 08:13
I thought that was fixed weeks ago? :(
masak wasn't it fixed on Parrot?
lizmat fails for me for at least a week already 08:15
08:15 araujo left
moritz I thought the whole point of the chdir emulation was to fix the chdir/run combination on the JVM 08:15
but maybe I was wrong in assuming that it was actually *fixed* on the JVM :-)
FROGGS moritz: I believe the test was a wrong positive 08:16
err, false positive
arnsholt tadzik: Anyways (to move this to a slightly more relevant channel), commitbits are available if you wanna hack =) 08:17
08:17 araujo joined
tadzik arnsholt: I'll ask for it when I have something to push, thanks :) 08:18
arnsholt Cool =) 08:20
masak FROGGS: if a test can be a false positive, then there is something wrong with the way the test was written. 08:23
moritz erm, yes 08:24
the problem is that run() doesn't return anything except whether the command was launched successfully
FROGGS masak: true
moritz ok((run("dir", "t") != BEGIN { run("dir", "t") } ), 'run() is affected by chdir()');
08:24 raiph left
FROGGS yeah, and we do a chdir at runtime before that test 08:24
moritz uh, oh 08:25
does run() even do anything 08:26
FROGGS what do you mean?
08:26 cognominal left
moritz ~/p6/jvm-rakudo$ ./perl6 -e 'say run("echo", "README")' 08:26
1
08:26 cognominal joined
moritz it doesn't look to me like it does *anything* at all 08:26
except returning 1 08:27
FROGGS it should return 0 when it does something
weird 08:29
that is not how I remember it
so yes, it seems like run() is sort of a noop
okay, so run() is broken on all backends basically 08:31
I will re-implement run() for rakudo@parrot@windows later, using this: github.com/mirrors/perl/blob/blead...32.c#L3739 08:33
then try to get it to work for linux, and maybe then try find the jvm problems :/
somebody with more java knowledge is invited to join the fight :o) 08:34
masak ++FROGGS
moritz but 08:35
argl
it seems that shell() is what works 08:36
dalek ast: a299b31 | moritz++ | S29-os/system.t:
fudge run() tests for now

run seems to be broken on all backends
08:37
08:37 xinming_ joined 08:39 xinming left 08:41 xinming_ left
FROGGS moritz: why is that test questionable? 08:41
I don't know a better way to test run() that only returns the exit code 08:42
08:42 dakkar joined, xinming joined
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(
moritz: ahh, okay
moritz FROGGS: and it also assumes that dir() on all platforms returns a non-zero exit status with a non-existing dir name
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
suggestions welcome ó.ò
moritz if you wannt to test it reliably, write a Perl 6 program that writes its CWD into a temp file
and invoke it with an absolute path and the name of the temp file 08:45
08:52 denysonique joined
jnthn hi, #perl6 09:07
yoleaux 07:26Z <JimmyZ> jnthn: are you fine to github.com/MoarVM/MoarVM/commit/c531595dd7 ?
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
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)
JimmyZ hi 09:08
jnthn FROGGS: I don't think I changed any Parrot fudging yesterday though? Just JVM?
FROGGS hi jnthn
jnthn: no, that has nothing to do with recent changes
I just wanted to mention the curious thing going on 09:09
nwc10 seems that jnthn scared his alarm clock
jnthn JimmyZ: yeah, I suspect that doesn't make the error messages any worse, or not meaningfully worse
JimmyZ jnthn: ok, I will push it to master :P 09:10
09:12 odoacre joined
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 09:59 donaldh joined 10:01 donaldh left 10:03 atroxaper joined 10:05 hypolin left
atroxaper Hello #perl6 ! 10:13
dalek kudo/nom: c549b65 | (Elizabeth Mattijsen)++ | src/core/traits.pm:
Fix mention of DEPRECATED in list of possible routine traits
10:14 darutoko left
lizmat hello atroxaper! 10:19
atroxaper Does anybody know wich method of generation random number uses in perl6? And is it cryptographically?
Hello lizmat!
lizmat check nqp for rand_I and rand_N
rand_n rather
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:20
atroxaper Ok. I should use someting my stuff then. Thnaks. 10:22
10:26 lichtkind joined 10:29 odoacre left 10:40 rindolf joined 10:41 iSlug left 10:54 darutoko joined 11:02 atroxaper left, xinming left, daxim joined 11:04 sqirrel left, darutoko left, xinming joined
lizmat jnthn: wrt to adding phasers, I think we have a chicken and egg problem 11:12
some traits need a finished code object (e.g. is SYMBOL)
whereas is DEPRECATED needs to be run before the code object is finished
to be able to register the phaser 11:13
jnthn lizmat: What does "is SYMBOL" specifically need?
lizmat I'm now thinking about looping over the traits twice
jnthn No, that's wrong :)
But finish_code_object does a lot of things.
Maybe too many.
lizmat hold on: 11:14
the first time, it would just look for "is DEPRECATED" and makes sure the ENTER phaser will be primed
jnthn No, that's a fragile special case.
lizmat the is SYMBOL case is where this dies: 11:15
./perl6 --ll-exception --target=pir --output=lib/Test.pir lib/Test.pm
Null PMC access in get_string()
jnthn hm, but is SYMBOL is used on constants, iiuc? 11:16
lizmat yes, looks like that
jnthn Plus I can't find an is SYMBOL use in the setting...nor in Test.pm...hmm. 11:17
lizmat gist.github.com/lizmat/6712800 11:18
maybe "is export" is triggering this? 11:19
jnthn I think so, looking at the line number...
lizmat $ ./perl6 -e 'sub a is export { }' 11:20
===SORRY!=== Error while compiling -e
Null PMC access in get_string()
jnthn yeah...hmm
jnthn can kinda guess...
I think $!do is not populated early enough.
That needs to happen before the trait application 11:21
lizmat looks
jnthn Maybe we pull add_phasers_handling_code out of finish_code_object and call it separately after trait application... 11:22
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)
lizmat yup
jnthn It's already a separate method so it shouldn't be too hard to refactor.
lizmat ok, I'll try that
jnthn lizmat++
11:26 darutoko joined 11:44 pmurias joined
lizmat running spectest now 11:45
next thing: to make warn show the position a few callframes up 11:46
11:48 iSlug joined 11:52 rindolf left
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:53
11:53 xinming left 11:54 xinming joined
dalek kudo/nom: 95dabd9 | (Elizabeth Mattijsen)++ | src/Perl6/ (2 files):
Move add_phaser_handler_code out of finish_code_object

This to allow trait_mods to add phasers
11:55
lizmat warn "foo", :skip 4 ?
warn "foo", :skip(4) ?
moritz maybe 11:56
jnthn warn "foo", :from(CALLER::CALLER) # another way
dalek kudo/nom: 50a57df | (Elizabeth Mattijsen)++ | src/core/traits.pm:
Mostly code esthetics to is DEPRECATED

We don't seem to be able to use $r.package in any way to show the class of the method. At least not at compile time :-(
11:58
11:59 sqirrel joined 12:08 jnap joined 12:09 sqirrel left
masak may I recommend for people interested in the OOP/FP hybridization, Martin Odersky (creator of Scala)'s slides www.slideshare.net/Typesafe/scaladays-keynote 12:11
talk here: www.youtube.com/watch?v=iPitDNUNyR0
12:12 alester joined, sqirrel joined
masak tl;dr (so far): FP will absorb OOP just like OOP absorbed procedural. 12:13
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:22
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 pmurias left
moritz masak: yes, that's what I'm talking about :-) 12:23
masak moritz: Haskell has a monad called State :0
:)
maybe that's what you're looking for.
anyway, aggregates went a long way in showing me how to handle (and contain) local state. 12:24
12:25 kaare_ joined
moritz masak: no, not what I'm looking for, afaict 12:25
masak: I want to write pure functions whose signatures don't involve any monads
jnthn
.oO( "You have to use a Monad", stated Simon... )
moritz and use mutable, local state that doesn't escape
masak ah. "you can modify this container, if you promise not to let it escape the function". 12:26
moritz aye 12:27
masak what about returning a function that closes over the container?
I fear there are some problems of intractability inherent in this.
though I did read a very interesting paper on this not long ago.
it's all tied to "linear logic", which is also connected to quantum computing and the unitarity restriction. 12:28
12:30 pmurias joined
masak moritz: ah, found it. www.infoq.com/news/2012/12/Immutable-CSharp 12:30
"reference immutability". the idea doesn't seem 100% all there in terms of ease, but certainly interesting.
jnthn kinda wishes they'd allow the "let" declarator occur outside of Linq too 12:33
*to occur
12:35 risou_awy is now known as risou 12:37 aaryabhatt joined
moritz masak: and it seems that's what people expect from 'has %.h' # look, I didn't mark it as 'is rw' 12:38
unrelated 12:39
r: sub a() returns Hash { return {} }; a() 12:40
camelia ( no output )
moritz r: sub a() returns Hash { return my %h }; a()
camelia ( no output )
moritz I find it kinda annoying that we have no way to express the list-vs-item-ness in the type system
or really any concise way to document and test/introspect that 12:41
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
mind you, I do not know what those abstractions could be, or need to be. I'm just not seeing that we have them.
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:45
I guess the axes are not completely orthogonal, because arrays and hashes have "containers" in the (a) sense. 12:50
hm, objects too, I guess.
er (x)*
the (x) one strikes when Rakudo implementors start mumbling about "decontainerization".
moritz (x) is also related to the flattens/doesn't flatten axis 12:52
jnthn There are few places that the scalar container model pops its head up into userland. .VAR is one of them. 12:53
And := vs = is, of course, another.
12:54 donaldh joined
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
The fun really being that we have first-class l-values.
Rather than things such as assignment being a special form. 12:55
Decontainerization is really saying, "I don't want this thing to be usable as an l-value from this point on".
masak *nod* 12:56
it's interesting to look at how Python solves this, for example.
they say things like "we don't have variables. those are *labels*, existing in a hash table somewhere, pointing to an object". 12:57
12:58 notjack joined
moritz (and that's why their scoping is so weird / they have no mandatory declarations, right?) 12:58
jercos rn: :4294967296[1, 0].say
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…»
..rakudo 50a57d: OUTPUT«-2147483648␤»
moritz looks like rakudo doesn't use big numbers for the base 12:59
Template::Mojo also has warnings about bless.*
masak moritz: the scoping is really an orthogonal decision to that, but yeah.
local variables are not explicitly declared in the common case. 13:00
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
masak moritz: add "block scope, not function scope" to the list, too :) 13:02
JavaScript and Python both suffer from that one. JavaScript is doing something about it.
moritz releases R*
there, tag push, tarball uploaded 13:03
colomon \o/ 13:05
moritz++
nwc10 fails to get the significance of the "not block" in "function, not block"
moritz++
moritz nwc10: function() { if (42) { var x = 42 }; alert(x) }
nwc10: the inner block (from the if) isn't a scope boundary
(in js) 13:06
13:06 zakharyas1 joined
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
camelia rakudo 50a57d: OUTPUT«invoke() not implemented in class 'Blob'␤ in block at /tmp/l1zg_x0MU9:1␤␤»
jercos erm. heh.
r: blob32.new(0xFFFFFFFF).bytes.say;blob32.new(0xFFFFFFFF).unpack("H").say
camelia rakudo 50a57d: OUTPUT«1␤-1f␤»
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?
nwc10 moritz: ah, in JS 13:07
nwc10 doesn't know JS. Is this on x or two?
masak moritz++ 13:08
moritz nwc10: there's just one x, because the inner {} don't introduce a new scope
nwc10 function() { var x = "Bother"; if (42) { var x = 42 }; alert(x) }
moritz that'll show 42
13:08 zakharyas left
masak nwc10: that's one x. 13:08
nwc10 OK. thanks. Mmm. That's not, um, C-like :-(
masak nwc10: JavaScript's 'var' doesn't have block scope, only global/function scope.
nwc10: JavaScript was developed in 11 days :P 13:09
nwc10 does it even warn that you've repeated var twice?
masak nope.
13:09 ajr joined
masak well, that's implementation-dependent, I guess. 13:09
13:09 ajr is now known as Guest74092
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
nwc10 so it's better designed than PHP? :-)
moritz nwc10: maybe jslint (3rd party tool) warns about that one 13:10
nwc10 and the design is sort of improving?
masak I wonder if *any* other language has both kinds of scoping in the same language.
nwc10: the design is definitely improving.
nwc10 mmm, not thought of that. Awesome
masak nwc10: partly thanks to wrapper langs like CoffeeScript, it seems.
that are leading the way and trying out new things in a kind of sandbox.
13:10 PacoAir joined, raiph joined
nwc10 and NQP soon? :-) 13:10
13:11 cognominal left
masak heh. 13:11
pmurias it will propably take a while before NQP/Perl 6 to JavaScript becomes production quality 13:12
13:12 cognominal joined
FROGGS Christmas I suppose 13:13
13:13 ajr_ joined, Guest74092 left 13:15 xenoterracide joined 13:25 grondilu joined
grondilu Hello #perl6 13:25
FROGGS hi grondilu
13:26 cognominal left, lowpro30 joined
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?
hoelzro moritz++ 13:27
hoelzro builds a package
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
masak jnthn: does that mean that whoever releases NQP/Rakudo in October should pay special attention to Moar when doing the NQP release?
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 :)
masak hm, point.
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
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:30
pmurias when is the October NQP release? 13:31
masak pmurias: generally two days after the Parrot release is schedules.
pmurias: (same as Rakudo)
scheduled*
FROGGS 2013-10-17 Rakudo #69 Coke 13:32
just one day after my special day :o)
13:34 zakharyas1 left 13:35 zakharyas joined 13:38 risou is now known as risou_awy 13:40 grondilu left, stevan_ left 13:51 zakharyas left
dalek ar: d41ce21 | moritz++ | tools/star/release-guide.pod:
note 2013.09 release in release-guide.pod
13:51
13:54 lowpro30_ joined 13:56 bluescreen10 joined 13:57 ksh left, lowpro30 left 13:58 ksh joined, thou joined 14:05 atroxaper joined
atroxaper Congratzzz all with R* ! 14:05
GlitchMr <moritz> nwc10: function() { if (42) { var x = 42 }; alert(x) } 14:11
<moritz> nwc10: the inner block (from the if) isn't a scope boundary
heh, it's actually worse in other programming languages.
codepad.org/z7tVhXsi 14:12
codepad.org/qda1gS1J
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?
I mean, it'll just be null
GlitchMr In JavaScript, x is undefined in this case.
null !== undefined
nwc10 GlitchMr: it fails, as in, run time exception?
GlitchMr Yes
moritz can never remember which of those is used for what
nwc10 "that's nice, dear"
masak GlitchMr: in Python, basically everything is late-bound.
GlitchMr: even function/class declarations. 14:14
GlitchMr: you can put a *class declaration* in an if statement!
nwc10 so to be confident you haven't made typos, in python you need at (at a minimum) 100% code coverage?
GlitchMr Yeah, null and undefined are confusing in JavaScript, and probably nobody understands when null is used, and when undefined.
masak GlitchMr: I understand it :)
(and I practically never use null, even though I acknowledge that it's distinct from undefined) 14:15
14:15 btyler joined
masak in my opinion, the chief contribution of null in JavaScript is to be a security vulnerability. 14:15
GlitchMr Well, I do to.
But there are places where you have to use null. 14:16
Most notably, Object.create(null)
masak GlitchMr: then "probably" was a bit of a weird usage. maybe you meant "virtually" or "practically".
GlitchMr ok, practically
Generally, null is defined value that doesn't exist, and undefined is well, undefined. 14:17
But seriously, why JS needs two similar types.
FROGGS right, why only two? 14:18
jnthn masak: Maybe you meant you literally never use null? :P
FROGGS is looking at you, Any, Mu, Nil and Whatever
GlitchMr You forgot Int, Str, and actually any type.
PerlJam masak: surely you only use null practically ;)
GlitchMr I never type undefined. 14:19
It lets you more easily detect when value that should be defined isn't.
14:21 xenoterracide_ joined, xenoterracide left
GlitchMr null is intentionally set nothing. 14:21
masak jnthn: I "literally" "never" "use" null :) 14:24
FROGGS .oO( "I" ... )
FROGGS .oO( ":o)" ) 14:25
masak .oO( ".oO( ... )" )
FROGGS hehe
GlitchMr .oO '.oO( ".oO( ... )" )'
FROGGS I love that
O.o
PerlJam GlitchMr++ I saw that coming :)
FROGGS q{ .oO '.oO( ".oO( ... )" )' }
masak ...and so on, ad recursitum. 14:26
GlitchMr Except I made syntax error.
GlitchMr .oO ('.oO( ".oO( ... )" )')
FROGGS true
GlitchMr masak: Until quotes end, but in Perl 6 you can do q[[]], so not.
Even with Unicode there is finite number of character. 14:27
characters*
FROGGS Perl 6 is really a multi-purpose quoting language
GlitchMr In C, there are only "" quotes ('' is for single character), so such recursion would have lots of backslashes. 14:28
FROGGS NFG ftw! <̈ 14:29
14:29 cognominal joined
FROGGS meh, it swallows the ̈ 14:29
the dots -> ö
GlitchMr .oO ( ".oO ( \".oO ( \\\".oO ( \\\\\\\".oO ( \\\\\\\\\\\\\\\".oO ( \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\".oO( ... )\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\" )\\\\\\\\\\\\\\\" )\\\\\\\" )\\\" )\" )" ) 14:30
Who would want to read something like that.
coffeescript.org/#try:str%20%3D%20%...lert%20str 14:31
code
14:45 ssutch joined
pmurias masak: how is null a security vulenrablity in JavaScript? 14:51
GlitchMr I've no idea, considering it mostly uses the same code as undefined. 14:54
in many JS implementations
14:55 kaleem left 14:57 lowpro30_ left 14:58 kaleem joined
masak pmurias: people tend to remember to check for undefinedness, but seldom to check for null. 14:59
pmurias: null is another possible input to functions that may unpleasantly surprise the original programmer. 15:00
pmurias don't people usally check for null undefined with ==? 15:03
15:03 stevan_ joined 15:04 sqirrel left, jnap left 15:05 iSlug left, jnap joined, skids left
masak pmurias: yes :( 15:07
pmurias: which, despite the fact that it actually *works*, is really two errors compounded.
pmurias heh
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
masak (for those who are curious, JavaScript has infix:<==> which does a failed form of smartmatching, and infix:<===>, which does exact matching.)
15:09 xinming left, ajr_ left, ajr joined 15:10 ajr is now known as Guest61877, xinming joined
GlitchMr masak, personally, I'm fine with == null. 15:12
15:12 Guest61877 is now known as ajr_
masak GlitchMr: I hope you would reconsider on that. 15:12
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?
GlitchMr This is surprisingly a case where == actually works.
masak GlitchMr: there just isn't any good reason in JavaScript to keep using infix:<==>, or to encourage its use. 15:14
GlitchMr I find code like variable === undefined || variable === null ugly. 15:15
Why do that, when you can write variable == null, and it means the same thing.
FROGGS GlitchMr: I fear that doesn't work on Internet Explorer Mobile 5.0 :P 15:16
GlitchMr Actually, it does.
It was like that even in first JavaScript version.
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 kaleem left
GlitchMr ... now if IE Mobile 5.0 would exist. 15:17
Wikipedia skips it.
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
1t looks too much like lt
1d and 1f look too much like hexadecimal
and f has floater associations
so far I like 1r-5 best
15:21 iSlug joined
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.
TimToady 1r9 is a lot easier to write than 1_000_000_000 15:23
jnthn 1R-5 is ambig with 1 R- 5
TimToady not really
std: 1R-5
GlitchMr 1e5.Rat
camelia std 7c17586: OUTPUT«===SORRY!===␤Whitespace is required between alphanumeric tokens at /tmp/jBpxMwih4l line 1:␤------> 1⏏R-5␤Check failed␤FAILED 00:00 42m␤»
jnthn Ah...yeah.
!ww
GlitchMr rn: 1e5.Rat.perl.say
camelia rakudo 50a57d, niecza v24-95-ga6d4c5f: OUTPUT«100000.0␤»
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
which we discovered trying to use it to round
GlitchMr hm, yeah.
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
camelia rakudo 50a57d: OUTPUT«1e-05␤»
..niecza v24-95-ga6d4c5f: OUTPUT«1.0000000000000006E-05␤»
GlitchMr hm, no
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.
TimToady huh 15:27
GlitchMr 1e-5 would return Rat, and if you want 1e-5 to be Num, use something like 1e-5d
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
GlitchMr hm, yeah
TimToady likewise f
15:28 sqirrel joined
TimToady n would be it, I guess 15:28
GlitchMr 1e-5.Num
Self documenting
TimToady but not a literal 15:29
and tiresome if you want a bunch of 'em
GlitchMr Why somebody would want Num, and not Rat.
Or Int.
TimToady really drive everyone nuts, 1e-5 is Rat, 1E-5 is Num :)
GlitchMr I would think that 1e6 is actually Int, but nope.
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
1s6, s for "scale" 15:31
then it could be Int or Rat
GlitchMr 2d4 to make things very confusing?
TimToady 2d6 would be even worse 15:32
5d20.roll
GlitchMr 2d6 should be syntax sugar for roll 2, 1..6
TimToady well, we settled on a postfix:<d6> the other day for that :)
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:34
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?
GlitchMr if 5 < [+] 2d6 { }
It looks great. Too bad I cannot declare infix:<d> without spaces inbetween.
nwc10 didn't we solve that with U+2063 ? 15:36
GlitchMr .u 2063
yoleaux U+2063 INVISIBLE SEPARATOR [Cf] (<control>)
GlitchMr Yeah, I'm going to add invisible separator to my code in order to make it more confusing. 15:37
nwc10 :-)
GlitchMr Seriously, what?
TimToady don't need that if you just use a zero-width space
GlitchMr I want 4d6 to just work, without invisible nonsense. 15:38
masak GlitchMr: then put it in quotes, like this: "4d6". 15:39
GlitchMr <4d6> would be nicer. 15:40
But the problem is, it's just a string.
15:40 iSlug left
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.
masak lizmat: same question. where is ∅ defined? I'm postulating you dreamed it. :P
lizmat: I've always had the empty set as 'set' 15:41
rn: say set.elems
camelia rakudo 50a57d, niecza v24-95-ga6d4c5f: OUTPUT«0␤»
colomon masak: TimToady++ defined it in the original version of the Set code. ;)
masak I see.
GlitchMr And please, don't suggest BEGIN { for ^100 { eval "sub postfix:<$_> \{ ... \}" } }.
TimToady GlitchMr: you have that many kinds of dice?
masak GlitchMr: well, it seems to me you are in slang territory.
moritz that won't even work, because subs are lexically scoped
FROGGS put everything in that BEGIN block then 15:42
GlitchMr And please, don't suggest BEGIN { for ^100 { eval "our sub postfix:<d$_> \{ ... \}" } }.
FROGGS no runtime at all so it would even be faster
15:43 FROGGS[mobile] joined, FROGGS left
GlitchMr Besides, eval is very slow in Rakudo, so code using this hack would be slow. 15:43
masak you mean besides the fact that it wouldn't work because of what moritz++ said? :) 15:44
GlitchMr That too.
masak minor detail.
you'd be better off dynamically building a class. 15:45
nwc10 what does 2d6 currently parse as?
masak std: 2d6
camelia std 7c17586: OUTPUT«===SORRY!===␤Whitespace is required between alphanumeric tokens at /tmp/gG_mPRCvH7 line 1:␤------> 2⏏d6␤Two terms in a row at /tmp/gG_mPRCvH7 line 1:␤------> 2⏏d6␤ expecting any of:␤ POST␤ feed_separator␤…»
nwc10 std: 2e6
masak TTIAR.
camelia std 7c17586: OUTPUT«ok 00:00 41m␤»
TimToady you really want a macro postfix:<d>($x) with an 'is parsed' somewhere
15:45 araujo left 15:46 araujo joined, araujo left, araujo joined
GlitchMr hax 15:46
I probably would be better using Perl 5, source filters, and /\b\d+d\d+\b/.
15:47 raiph left
GlitchMr s/\b(\d+)d(\d+)\b/do { map { 1 + int rand $2 } 1..$1 }/g 15:49
do { } is used in order to avoid parsing problems. 15:50
I mean
s/\b(\d+)d(\d+)\b/do { map { 1 + int rand $1 } 1..$2 }/g
Except that doesn't work in scalar context, so... 15:51
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.
GlitchMr hm, yeah.
Does Perl 6 have source filters?
TimToady um, no
by design
daxim what do you want to achieve?
TimToady daxim: see backlog 15:54
dice notation, specifically
he wants to be able to roll 19-sided dice and such, for some reason...
GlitchMr Why hardcode d2, d4, d6, d8, d10, d12, d20, d100, and so on. 15:55
What if somebody wants d337
TimToady then they can write a postfix
it's a one-liner
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)
TimToady or slangs
masak GlitchMr: you're on a rather quixotic march here.
GlitchMr 4d337 is DSL. 15:57
TimToady a rather impoverished DSL, masak is point out
15:57 stevan_ left
masak GlitchMr: usually, nice designs/APIs are found by compromising between the exact user expectations and the limitations of the syntax. 15:57
GlitchMr: banging your head against the syntax rarely solves anything.
TimToady if we were designing a gaming DSL, then yes, I'd have both the low-wattage and high-wattage forms 15:58
but I'm not :)
masak TimToady++ # principled in the right places
TimToady is trying to design a DSLGL 15:59
or would that be a DSLSL?
GlitchMr DSL Generation Language?
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.
GlitchMr: "generic"
15:59 donaldh left
TimToady Perl 6 is a DGL 15:59
TimToady is much more interested in 2r6 than 2d6 16:00
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
masak GlitchMr: in the fullness of time, you will be able to do that.
TimToady not without a macro
masak right.
GlitchMr: it's not about "allowed", it's about NYI.
GlitchMr oh, ok
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
TimToady just needs an 'is parsed' on $term or so 16:03
16:04 fhelmberger_ left, daxim left
TimToady alternately, prefix:<d> that takes a number in front of the d 16:05
then you can write 5d $sides
instead of $count\d6 16:06
masak still sucks either way, compared to d(5, $sides)
16:06 fhelmberger left
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
masak TimToady: nah, better not. 16:07
GlitchMr Or alternatively 4[d]5. Hm
infix:<[d]> could work. 16:08
masak TimToady: (^$sides).roll(5) already does that.
TimToady masak: no, 0-based
masak TimToady: >>+>> 1
TimToady GlitchMr: don't need to define it with squares, you get it for free 16:09
jnthn (1..$sides).rool(5) :)
masak rn: sub infix:<d>($count, $sides) { (1..$sides).roll(5) }; .say for 4d6
GlitchMr rool.
camelia rakudo 50a57d: OUTPUT«===SORRY!=== Error while compiling /tmp/IBepwCwf6c␤Confused␤at /tmp/IBepwCwf6c:1␤------> des) { (1..$sides).roll(5) }; .say for 4⏏d6␤ expecting any of:␤ whitespace␤»
..niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Whitespace is required between alphanumeric tokens at /tmp/4zalP3ZoKJ line 1:␤------> des) { (1..$sides).roll(5) }; .say for 4⏏d6␤␤Whitespace is required between alphanumeric tokens at /tmp/4zalP3ZoKJ …»
masak rn: sub infix:<d>($count, $sides) { (1..$sides).roll(5) }; .say for 4[d]6
camelia rakudo 50a57d: OUTPUT«===SORRY!=== Error while compiling /tmp/Rc0lECImcc␤Two terms in a row␤at /tmp/Rc0lECImcc:1␤------> ) { (1..$sides).roll(5) }; .say for 4[d]⏏6␤ expecting any of:␤ argument list␤ postfix␤ statement end␤…»
..niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Two terms in a row at /tmp/oEGLaeOgcQ line 1:␤------> ) { (1..$sides).roll(5) }; .say for 4[d]⏏6␤Other potential difficulties:␤ $count is declared but not used at /tmp/oEGLaeOgcQ line 1:␤------> …»
TimToady nr: sub infix:<d>($a,$b) { [+] $a + roll $a, ^$b }; say 5[d]20
camelia rakudo 50a57d: OUTPUT«===SORRY!=== Error while compiling /tmp/fPf6q9P7O5␤Two terms in a row␤at /tmp/fPf6q9P7O5:1␤------> ,$b) { [+] $a + roll $a, ^$b }; say 5[d]⏏20␤ expecting any of:␤ argument list␤ postfix␤ statement en…»
..niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Two terms in a row at /tmp/WTy0cjQjyS line 1:␤------> ,$b) { [+] $a + roll $a, ^$b }; say 5[d]⏏20␤␤Undeclared routine:␤ 'd' used at line 1␤␤Parse failed␤␤» 16:10
masak time to submit a rakudobug? :)
GlitchMr std: sub infix:<d>($a,$b) { [+] $a + roll $a, ^$b }; say 5[d]20
camelia std 7c17586: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/BY8NW2CxxD line 1:␤------> ,$b) { [+] $a + roll $a, ^$b }; say 5[d]⏏20␤ expecting any of:␤ POST␤ feed_separator␤ infix or meta-infix␤ infixed function␤ postcircumfix␤ postfix␤
..postfix…»
GlitchMr time to send an everythingbug? :)
masak everything sucks. :/
TimToady oh, yeah, postcircumfix [], oops
jnthn It's a postcircumfix.
Which is parsed as part of term.
[Coke] oooh, I get the moar release? nifty. 16:11
TimToady oh well, forget that approach
16:16 dmol left 16:22 sqirrel left
[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
(rakudo.jvm)
16:25 vk joined 16:26 vk left
jnthn [Coke]: thanks :) 16:30
16:34 aaryabhatt left 16:36 dakkar left 16:38 skids joined 16:41 Rotwang joined, Rotwang left, Rotwang joined
dalek ecs: 8ece611 | larry++ | S32-setting-library/Containers.pod:
Mention ∅, clarify set composer semantics more
16:50
16:50 aaryabhatt joined 16:51 ajr_ left
lizmat masak, moritz: # U+2205 EMPTY SET 16:51
#constant term:<<"\x2205">> = set(); # invoke() not implemented in class 'QAST::Want'
line 70 in src/core/Setty.pm 16:52
n: say ∅
camelia niecza v24-95-ga6d4c5f: OUTPUT«set()␤»
TimToady lizmat: did you notice that the subscripting change broke *.[], *.<>, and *.{} 16:53
16:54 sisar joined, FROGGS joined
lizmat TimToady: no, don't think so 16:54
I fudged a number of tests, but I don't recall fudging any .[] related tests
TimToady nr: my @a = [1,2,3],[4,5,6],[7,8,9]; say @a.map: *.[2]
camelia niecza v24-95-ga6d4c5f: OUTPUT«3 6 9␤»
..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…»
masak lizmat, TimToady: I think U+2205 EMPTY SET needn't be part of the setting. 16:55
if someone wants to be cute with Unicode constants in their own code, they can.
for the setting, there's already set()
lizmat masak: why not? then you might as well go texas on all other set operators as well
TimToady we have all the Unicode set ops, so why not ∅?
masak *sigh* 16:56
it's hard to argue *against* bloat. :/
jnthn Given we have all the Unicode set ops, I think that bloat has already sailed...
TimToady tacky...
masak .oO( Perl 6 has missed the bloat )
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
lizmat it wouldn't be much of a problem moving the non-texas versions out into a separate module
jnthn thought at one point the spec had it so you did a "use" to get the Unicode set ops imported... 16:58
Then it was decided to put 'em in the setting instead.
TimToady funny how the bloat argument shows up when we add a single character to the language :)
sisar o/ 16:59
Need some help. unable to build rakudo: sprunge.us/VPPA
TimToady jnthn: under the philosophy that we shouldn't have to import ordinary math
lizmat well, whatever is decided: putting them into a separate module would not be a lot of work
moritz ok, I have an anty-bloat proposal: get rid for 1) 'for' being lazy 2) sink context 3) Failure
those three concepts confuse the heck out of everybody
TimToady moritz: sink context is never, ever going away
the others are more negotiable 17:00
moritz TimToady: with which functionality?
TimToady the functionality of telling you when you're doing something stupid
17:00 atroxaper left
moritz ok, I meant sink context specifically as a runtime construct 17:01
I'm fine with tracking it at compile time
TimToady I suppose we shouldn't tell a list whether we want it to act lazy or eager at run-time either? 17:02
sink is just one end of the laziness spectrum
as such, we can probably avoid passing sink in as a special flag the way P5 does 17:03
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
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
lizmat there's no hurry on my side to get this fixed, btw 17:06
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 :-)
jnthn We may need more spectsts for termdef :) 17:08
And apparently we need some for *.[] :)
lizmat jnthn: I'm not sure how to fix .[] etc., any pointers ? 17:09
17:09 ssutch left
lizmat aaahhhhh… I completely missed that TimToady meant Whatever.[] 17:11
yes, that broke: simplest case
nr say *[0](1,2,3)
nr: say *[0](1,2,3)
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…»
..rakudo 50a57d: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Whatever'␤ in block at /tmp/IcpYdTyvhm:1␤␤»
jnthn lizmat: yeah 17:12
lizmat: See Actions.pm, whatever_curry
lizmat checks
jnthn lizmat: Near the top it OKs infix, prefix and postfix. Try adding postcircumfix to that list.
17:13 raiph left
lizmat I guess I should follow the callmethod value, right? 17:13
jnthn ? 17:14
no, inside whatever_curry
(nqp::index($past.name, '&infix:') == 0 ||
nqp::index($past.name, '&prefix:') == 0 ||
nqp::index($past.name, '&postfix:') == 0 ||
lizmat ahhhh ok
jnthn After that
lizmat compiling and testing 17:16
jnthn shop & 17:17
TimToady using index to test for prefix bothers me, since it'll scan uselessly whenever it doesn't match 17:19
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:20
masak :P 17:21
TimToady well, the == 0 prevents that, but it's just the waste that bothers me
17:23 sqirrel joined, raiph joined
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:24
17:25 ssutch joined
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
sure would be nice if we could write Perl 6 in Perl 6 :) 17:26
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.
lizmat $ perl6 --ll-exception -e 'say *[0](1,2,3)'
Too many positional parameters passed; got 3 but expected 1
full stack trace: gist.github.com/lizmat/6717575 17:28
the error changed
TimToady colomon: what do you think of the idea of a scaled rat literal?
lizmat but I have no idea where that code lives
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
TimToady lizmat: src/Perl6/Actions.nqp sez a recursive grep 17:30
17:31 fhelmberger left
TimToady yes, the specific case was .round(1r-5) that you were commenting on earlier 17:31
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:33
17:34 sisar left
TimToady nr: say (1,2,3,4,5)[0] 17:35
camelia rakudo 50a57d, niecza v24-95-ga6d4c5f: OUTPUT«1␤»
TimToady so it would seem
lizmat right *phew*
TimToady so *() has to be exempted from the postcirumfixes for *
unless we force people to say (*[0])(1,2,3,45) 17:36
lizmat trying that
TimToady if we decide there's a use case for *.()
which arguably there probably is
17:36 SamuraiJack left
TimToady map: *.() should invoke each of a list of invokables 17:36
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:37
in that case, *[0](1,2,3,4,5) means { $_.[0].(1,2,3,4,5) } (as a WhateverCode) 17:38
that feels cleaner to me
the use case for callinging a WhateverCode directly is minimal
*inginging
lizmat feels she no longer has to duck 17:39
TimToady nr: say *[0](1,2,3,4,5).WHAT
lizmat as in: this is way over my head
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…»
..rakudo 50a57d: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Whatever'␤ in block at /tmp/uP5CQeMuln:1␤␤»
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…»
TimToady I guess niecza exempts .() though
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…»
TimToady n: say ({.(1,2,3,4,5)}).WHAT 17:49
camelia niecza v24-95-ga6d4c5f: OUTPUT«(Block)␤»
TimToady thinks *(1,2,3,4,5) should mean that
well, except it's a WhateverCode
masak TimToady: *(1,2,3,4,5) looks like -> &f { &f(1,2,3,4,5) } to me. 17:51
oh wait, we're saying the same thing, aren't we?
TimToady yes, though I just wrote it {.()}
so I flipflopped on my answer to lizmat++ and don't think .() should be an exception under Whatever 17:52
lizmat
.oO( lalaalalalala I'm not listening ) :-)
17:53
TimToady but you BROKE it! WAAAH! :P
lizmat may I plead insanity ? 17:54
TimToady as long as you don't plead ultro-low-frequency EM
*ultra 17:55
lizmat My Hero!
TimToady but in that case someone needs to file a bug
17:55 jnap left
lizmat
.oO( I was suddenly reminded of en.wikipedia.org/wiki/My_Hero_(UK_TV_series) )
17:56
17:56 stevan_ joined
TimToady looks around for an anti-hero to file the bug report for all the wrong reasons... 17:57
18:00 vfonic joined
lizmat I will file one if I can't get it fixed 18:00
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:01
18:03 vfonic left 18:07 zwut00 joined
dalek ecs: 26c204c | larry++ | S02-bits.pod:
spec postcircumfix behavior under Whatever
18:10
18:10 ssutch left
[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:10
18:11 rjbs left, rjbs joined
[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.
TimToady flussence: if the problem is compile time, just avoid compiling it :) 18:12
then when you do have to compile it, you can relax, throw Nerfoids at your officemates, and tell the boss "I'm compiling!" 18:14
just invoke the mode that compiles it down to a .o, and call it with the native interface :) 18:15
18:16 aaryabhatt left
TimToady (only half joking) 18:16
but yeah, it'll be nice when the compiler is faster
diakopter++ and I were discussing ways to cut down parser allocations last night 18:17
18:17 aaryabhatt joined
lizmat submitted rakudobug #120025 18:18
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120025
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
at fixing this in some sort of reasonable wallclock time
18:19 iSlug left
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:21
18:22 dmol joined 18:23 stevan__ joined
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:23
TimToady why Q? 18:24
18:27 stevan_ left
TimToady also, a postfix is a little late, if the literal to the left of it has already thrown away precision 18:27
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
TimToady and a Rat might've already decided to promote to Num
1r-5 -> Rat and 1R-5 -> FatRat maybe 18:30
18:31 aaryabhatt left
TimToady or take GlitchMr++'s proposal to make e notation return Int/Rat, and have an explicit marker for floaters 18:31
not necessarily d though 18:32
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:34
that is, 1e5 returns Int, 1e-5 returns Rat, and 1E5 returns Num 18:35
18:35 darutoko left
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
TimToady i is bad 18:35
jnthn Complex?
TimToady yeah 18:36
1i-1
r: say 1i-1
camelia rakudo 50a57d: OUTPUT«-1+1i␤»
jnthn yeah
That won't fly :)
TimToady thought of that one half an hour ago, which is why I rejected it so quick :)
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
so the problem is still likely to work if you get the wrong e or E
it'll just run slower
s/problem/program/
otoh, a separate marker for floaters has the advantage of working without e notation 18:39
1n could be a floating 1.0
though that look like ln 18:40
1N is more distinctive
nwc10 can you use 'f' instead of 'e' for the exponent? 18:41
TimToady looks like hex
nwc10 true.
TimToady of course, so does e :)_
pardon the drool
must be lunch time...
'course real hex always has a prefix, so it's not officially ambiguous 18:42
1F0 almost looks like 1E0... 18:43
and 1R0 almost looks like 1F0...
18:44 krokite left
TimToady but me is enough of a Unixbrane to think uppercase looks ugly there 18:44
moritz and 1F0 almost looks like UFO
TimToady a 1dentified flying 0bject 18:45
moritz 1dentified quantiFied Object 18:46
18:47 not_gerd joined, stevan__ left
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
lizmat
.oO( they all look like R2D2 predecessors to me )
TimToady squeee! 18:49
colomon lizmat++
not_gerd C also allows the 'p' instead 'e' if you want binary exponentials instead of base-10 ones, btw
dalek p/nqp_spawn: c300084 | (Tobias Leich)++ | src/vm/parrot/ (2 files):
added nqp::spawn for windows+rakudo

This is needed because qutoing of the arguments of rakudos spawn op is broken. This gives us the chance too to pass the env hash.
TimToady huh, when did they put that in? 18:50
TimToady still thinks in K & R
nwc10 TimToady: C99 18:51
C99's atof() is not compatible with C89's
TimToady consarned newfangle contraptions!! 18:52
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
not "move the goalposts"
TimToady well, it's a different language :D
not_gerd aren't the ato* functions deprecated in favour of strto* anyway? 18:54
TimToady obviously they shoulda broken it harder
nwc10 nailed a few more legs onto it? :-)
TimToady
.oO( A Call to Legs )
18:55
18:58 iSlug left
nwc10 I *think* that this almost contains a complement, as there's only one reference to "actual octopi" -- c2.com/cgi/wiki?ExtraLegsOntoaDog 18:58
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:01
if we haven't "released", by definition we don't have a working OO system. 19:02
and 68 Rakudo releases unfortunately don't count as having "released".
19:03 zwut00 left
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?
(and that I indirectly made you grumpy, and this isn't helping)
masak nwc10: no, that did help. 19:05
19:05 ssutch joined
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?)
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
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
does this dog by any chance have two mouths? 19:08
masak lizmat++ # RT #120025
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120025
lizmat yw 19:09
19:09 FROGGS[mobile] left
nwc10 RT #826 19:09
oh, doesn't work for me :-)
or maybe it's fussy about queues
jnthn nwc10: Think it expects more digits than that 19:10
TimToady quick, file more bugs...oh wait...
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
r: say nqp::elems nqp::hash
camelia rakudo 50a57d: OUTPUT«0␤»
moritz nqp: say(nqp::elems({ a => 1, b => 2})
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)␤»
moritz nqp: say(nqp::elems(hash( a => 1, b => 2))
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)␤»
nwc10 ah, OK. RT #18400 19:12
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=18400
moritz nqp: say(nqp::elems(hash( a => 1, b => 2)))
camelia nqp: OUTPUT«2␤»
nwc10 I believe that 18400 is the smallest numbered Perl 6 bug. 19:13
RT #2968 is an open Perl 5 bug. I guess that that is "too short" 19:14
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...ml?id=2968
nwc10 oh, no.:-)
FROGGS RT #1
RT #0001
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...ml?id=0001
nwc10 I think that RT #826 is the oldest bug.
FROGGS ha!
19:15 sqirrel left
nwc10 at least, it's probably the oldest that is visible. An exhaustive search might find more, but upset the admins 19:15
(and it's a test. The oldest open Perl 5 bug appears to be 1170)
FROGGS yay, this works now on windows@parrot: perl6 -e "run('dir', '/OS', 't')" 19:18
TimToady hopes that bug is "Perl 5 doesn't run on a PDP-11/70" 19:25
19:25 stevan_ joined 19:30 dmol left 19:31 araujo left 19:36 SmokeMac_ left
dalek kudo/nom: e01955c | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Use a self-annihilating ENTER phaser for "is DEPRECATED" trait

This is again a proof of concept. Because of &?BLOCK not existing, it is impossible to create a Block.remove_phaser($type,&?BLOCK) capability. Instead, this commit creates a "pop_phaser" method that will simply pop the last phaser of the given type from the list of phasers for that type. Since the ENTER phaser of the "is DEPRECATED" trait is added *after* any other ENTER phasers in that block, popping a phaser means removing the one that was added for
  "is DEPRECATED". Maybe we need a better way for a phaser to remove itself
from future execution.
19:36
lizmat afk for some R&R
jnthn I really don't think removing it from the phasers list is the way to go... 19:40
What if somebody adds another trait that adds a phaser and uses it after is DEPRECATED...
geekosaur wouldn't it be better to have it use a state var? 19:42
or do state vars themselves use BEGIN in the background or something 19:43
?
19:43 araujo joined, araujo left, araujo joined
jnthn geekosaur: A state var, or once block, would make sense to me. 19:43
19:44 raiph left 20:05 kaare_ left
FROGGS meh 20:07
jnthn: the S29-os\system.t dies in P6bigint.c->gc_cleanup :o(
jnthn: and my guts tell my that this is not due to my recent nqp patch 20:08
I have a feeling that $status but !$status in control.pm causes this
jnthn FROGGS: Sounds kinda familiar... 20:09
TimToady if we decide to deprecate 'is DEPRECATED', will we have to start allowing traits on traits? 20:10
TimToady agrees with jnthn++ that mutating phaser lists on a (supposedly) immutable Block is fishy-smelling 20:12
dalek kudo/nqp_spawn: 6a08772 | (Tobias Leich)++ | src/core/control.pm:
use nqp::spawn instead of pir:: for windows too
20:13
FROGGS jnthn: that makes me think that a) we need to fix that bug, or b) we should introduce ProcessState now
jnthn TimToady: Could just put is DEPRECATED on the trait_mod for is DEPRECATED... :P
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 { }
camelia ( no output )
TimToady depends on what the meaning of "is" is... 20:15
jnthn I applied the trait without touching it!
TimToady circularity saw is dented... 20:16
*'s
FROGGS r: class A is A { } 20:17
camelia rakudo e01955: OUTPUT«===SORRY!=== Error while compiling /tmp/8IaRmXPhst␤'A' cannot inherit from itself.␤at /tmp/8IaRmXPhst:1␤------> ␤»
jnthn hah, it ain't that stupid... :)
TimToady that message is LTA
jnthn TimToady: How so?
TimToady it should say: cannot inherit from itself, dummy!
:) 20:18
jnthn It feels a bit funny to say SORRY, then call the user a dummy :P
FROGGS we really need X::Insulting :o)
TimToady "we are all very sorry you are a dummy"
class A eats itself by that tail and disappears in a puff of magic dragons 20:19
*the tail
jnthn ok, enough $dayjob for today... 20:20
jnthn figures he'll do a Perl 6 thing or to...
TimToady JVM is a thing, and Moar is another thing...
FROGGS *g* 20:21
start with a small thing....
... like moarvm :o)
TimToady that would be Moar, relatively speaking, yeah
FROGGS but I think jnthn++'s priority is JVM* 20:22
err, R* including JVM
TimToady R* including * 20:23
20:23 snoopy_ joined
FROGGS yeah, * 20:23
masak r: class A { ... }; class B is A {}; class A is B {}
camelia ( no output )
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␤␤»
masak oh, right.
FROGGS r: class A { ... }; class B is A {}; class A is B {}; say A.new
camelia rakudo e01955: OUTPUT«No such method 'new' for invocant of type 'A'␤ in block at /tmp/lRDRKYqCYh:1␤␤»
FROGGS r: class A { }; class B is A {}; class A is B {}; say A.new
camelia rakudo e01955: OUTPUT«===SORRY!=== Error while compiling /tmp/UYG3XVNkoN␤Redeclaration of symbol A␤at /tmp/UYG3XVNkoN:1␤------> ss A { }; class B is A {}; class A is B ⏏{}; say A.new␤ expecting any of:␤ statement list␤ horizontal…»
FROGGS Aaah
r: class A { }; class B is A { }; class A is B { }; 20:25
camelia rakudo e01955: OUTPUT«===SORRY!=== Error while compiling /tmp/v4eVwLLkDj␤Redeclaration of symbol A␤at /tmp/v4eVwLLkDj:1␤------> s A { }; class B is A { }; class A is B ⏏{ };␤ expecting any of:␤ statement list␤ horizontal whitespa…»
FROGGS ahh, and now I see the errmsg
TimToady r: class A { ... }; class B is A {}; class A is B {}; say A.^mro
camelia rakudo e01955: OUTPUT«No such method 'dispatch:<.^>' for invocant of type 'A'␤ in block at /tmp/2Viydo7amJ:1␤␤»
TimToady r: class A { ... }; class B is A {}; class A is B {}; say B.^mro
camelia rakudo e01955: OUTPUT«No such method 'dispatch:<.^>' for invocant of type 'B'␤ in block at /tmp/r4TXufA8kE:1␤␤»
TimToady r: say Int.^mro 20:26
camelia rakudo e01955: OUTPUT«(Int) (Cool) (Any) (Mu)␤»
TimToady thinks A and B disappeared in a puff of something or other
masak "The MOP treats circularity as damage and doesn't attempt to route anything." :P
timotimo TimToady: "a puff of each other" more like
TimToady n: class A { ... }; class B is A {}; class A is B {}; say A.^mro 20:27
camelia niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Two definitions found for symbol ::GLOBAL::A␤␤ first at /tmp/Rs1FwCkB1z line 1␤ second at /tmp/Rs1FwCkB1z line 1 at /tmp/Rs1FwCkB1z line 1:␤------> { ... }; class B is A {}; class A is B ⏏{}; say A.^mro…»
masak is reminded of when he put the helmet in the helmet
FROGGS these puffs must be full of crap
[Coke] eval server still not handling test_summary.pl 20:29
lots of aborts today still.
jnthn :S
[Coke] output from eval server: nada.
FROGGS did mine too
[Coke] though the shell that launched it is hairy, and maybe I screwed it up: 20:30
exec 3> >( ./perl6-eval-server -bind-stdin -cookie TESTCOOKIE -app perl6.jar 2>&1 | tee eval-server.log )
geekosaur if that's on a platform whose /bin/sh is not bash then you will need to force bash 20:31
[Coke] #!/usr/bin/env bash 20:32
20:34 alester left
TimToady feels naptacular suddenly 20:34
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 20:36 ajr is now known as Guest45126 20:38 peteretep joined
peteretep Is there a list/repository anywhere of non-trivial Perl6 usage? 20:38
[Coke] "what do you mean?" 20:39
PerlJam peteretep: Define "trivial"?
[Coke] like, a showcase of applications written by people that isn't modules.perl6.org ?
peteretep Any companies using Perl6 in production, or any significant open-source projects in Perl 6?
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
pmurias how should perl6 modules be wrapped to node.js ones? 20:42
masak peteretep: I use Perl 6 to drive my (static) blog site. have been for the past 3 years. 20:43
peteretep: see strangelyconsistent.org/blog/dog-fo...rl6-flavor
timotimo masak: have you had successes with rakudo-jvm in the mean time?
masak hm, seems I have published 164 blog posts since the switch to psyde. :) 20:44
timotimo: please be more specific.
20:45 snoopy_ left
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.
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.
masak consider it to be on my todo list from now on.
timotimo i seem to recall you wanted to, a couple month ago
20:45 dwarring joined
masak timotimo: that may well be true :/ 20:45
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?
dalek p: 216debe | jnthn++ | src/vm/parrot/QAST/Operations.nqp:
Add nqp::getcfh op on Parrot backend.

Maps to what is used to provide getc in Rakudo now; will allow us to provide a JVM implementation also.
20:47
20:47 btyler left
timotimo cool 20:47
[Coke] jnthn: one line blurb on what that opcode does? 20:48
(that doesn't reference another opcode? ;)
FROGGS it reads a char from an opened filehandle
jnthn Reads a single character from the supplied filehandle.
20:48 BenGoldberg joined
FROGGS hehe, jnthn's answer is copy+paste-able 20:49
masak timotimo: that was me, yes. 20:50
dalek p: f15686a | coke++ | docs/ops.markdown:
document new opcode

  jnthn++
FROGGS timotimo: this was/is parrot specific
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.
timotimo oh, interesting 20:51
[Coke] peteretep++
masak timotimo: and FROGGS++ fixed the Parrot bug.
timotimo cool
masak timotimo: ...but due to our Rakudo release mechanics, the latest compiler (and Star) release doesn't contain the fix. 20:52
[Coke] tries to tread water on the docs. 20:53
timotimo wait ... the current one? 20:54
but wasn't that fixed like 3 months ago?
FROGGS timotimo: no, more like three weeks 20:55
dalek p: bd10d58 | coke++ | docs/ops.markdown:
fix style nit
20:55 Rotwang left
FROGGS ha style-nazi! :P 20:55
[Coke] it was... necessary. 20:56
FROGGS yeah, I understand that
I hate unproperly indended code fwiw 20:57
masak [Coke]++ # style
timotimo FROGGS: wut. 20:59
dalek p: b4e00e5 | coke++ | docs/ops.markdown:
fix formatting for trig ops.
timotimo i'm thoroughly confused now
20:59 btyler joined
masak timotimo: why? 21:00
timotimo: Rakudo only upgrades its Parrot under certain conditions.
timotimo: those conditions, quite clearly, didn't apply this release.
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.
masak (as the Parrot release this month did not happen)
timotimo: well, I wailed about the problem months ago. I submitted a Parrot ticket. nothing happened back then, though.
FROGGS++ is the only one who took action.
FROGGS timotimo: just look at the parrot commits, I believe mine is the last *g*
timotimo :( 21:02
moritz FROGGS: the last non-docs commit, yes
masak dukeleto++ is doing an admirable job pretending that Parrot isn't, at this point, well and truly, beyond-any-parrot-joke dead.
but it is.
21:03 skids left
FROGGS that doesn't mean it will never come back 21:03
not_gerd still has io-related, uncommitted parrot changes in his stash
masak FROGGS: oh, sure.
FROGGS: someone just needs to come up with a, you know, purpose. and preferably a user base. 21:04
21:05 stevan_ left 21:07 donaldh joined
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
oh, and JavaScript.
pmurias++
pmurias :)
21:09 zwut00 joined 21:10 lowpro30 joined 21:15 araujo left, araujo joined 21:16 araujo left, araujo joined
pmurias masak: I think the current parrot plan is to repurpose it for something else other than Perl 6 21:16
tadzik alles beste 21:17
not_gerd 'night, #perl6
tadzik guten nacht, not_gerd
21:17 lowpro30_ joined
BenGoldberg Hello, #perl6 :) 21:17
not_gerd gute nacht, tadzik 21:18
tadzik ach, right, gute
I'm just Parroting what I learned years ago, it may be a little inaccurate :) 21:19
timotimo besichtigst du die schlafenswürdigkeiten? :)
BenGoldberg Are there any languages, currently supported by parrot, which aren't better supported by other vms or native compilers?
masak pmurias: far be it from me to stand in their way. and best of luck to them in finding that "something else".
BenGoldberg: Perl 6.
BenGoldberg: NQP. 21:20
timotimo BenGoldberg: winxed :)
masak PIR. :/
tadzik hmm, I find schlafenswuerdigkeiten hard to decipher
sleep-sights? :)
21:20 not_gerd left
timotimo deciphering is easy, but i don't think it has any simple translation 21:21
masak 'sleepworthinesses'?
21:21 lowpro30 left
BenGoldberg Pleasant dreams? 21:21
tadzik I'm quite sleep-worthy now :)
BenGoldberg What does winxed accomplish (other than inline pir), that javascript does not? 21:26
tadzik seamless parrot interop, I think 21:27
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
21:29 SHODAN left
timotimo yeah 21:29
tadzik it's not useful outside parrot really
21:30 Guest45126 is now known as ajr_ 21:31 SHODAN joined
dwarring jnthn++ masak++ for the edument course notes and examples 21:35
21:36 iSlug joined
masak yes, we do awesome things. :) 21:36
we're hiring.
21:37 lowpro30_ left
dwarring my rate is $0 21:37
diakopter o_O
dwarring I've done a few little extrra hacks on the rubyish example - github.com/dwarring/nqp-rubyish 21:38
21:38 iSlug left
dwarring mostly just stealing stuff from NQP::Grammar 21:38
21:41 ajr_ left
masak dwarring++ # cool! 21:41
21:42 ajr joined, ajr is now known as Guest82492
dwarring fun! 21:43
diakopter: snoopy is me 21:44
diakopter ?
masak diakopter: snoopy is he.
diakopter ...
there's some stub code for you 21:45
masak does the Snoopy dance
dwarring %^%&^$$%$
masak std: %^%&^$$%$ 21:46
camelia std 7c17586: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at /tmp/bxQjWQMaq5 line 1:␤------> <BOL>⏏%^%&^$$%$␤Use of uninitialized value $first in string eq at STD.pm line 66222.␤Use of uninitialized value $first in string lt at S…»
diakopter well now, that's just going too far.
well, stdbug anyway
masak indeed. 21:47
dwarring++
21:49 stevan_ joined 21:57 REPLeffect left 21:58 REPLeffect joined 22:01 donaldh left 22:04 raiph joined
dalek p: 7b79b2f | jnthn++ | src/vm/jvm/ (5 files):
First pass at nqp::getcfh on JVM.
22:05
kudo/nom: a79c943 | jnthn++ | / (2 files):
Use nqp::getcfh to implement getc.

Also bump NQP_REVISION to a version that supports this op on both JVM and Parrot.
22:07
TimToady \o/
22:08 bluescreen10 left, REPLeffect left
jnthn TimToady: It passes getc.t, which has all of one test, so let me know how it works out in reality :) 22:08
timotimo does it work with utf16? :) 22:09
22:09 btyler left
timotimo or does it operate on buf-level? 22:09
jnthn Yes, it is careful with encodings. :) 22:10
That's why it's so much darn code.
TimToady would be doing work, but he's compiling... 22:11
timotimo :)
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:12
TimToady does it have to intuit where space is significant? :) 22:13
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:14
22:22 REPLeffect joined
BenGoldberg Well, not just check for being correctly formatted, but perhaps produce a parse tree, or otherwise act on the data. 22:25
diakopter BenGoldberg: a parser generator generator? 22:27
22:28 PacoAir left
jnthn Don't think I'll get to defterm today. 22:38
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:40
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
most BNF is really sloppy this way...
it also lets you write "Seattle , WA" 22:46
jnthn So does the postman... :)
22:47 thou left
TimToady I don't know the IQ of my postman, but I'm pretty sure the IQ of my computer is less. 22:47
diakopter has a postwoman 22:48
22:48 btyler joined
TimToady mine varies :) 22:48
sometimes he's a woman...
diakopter considers legally changing my name to Trigger Word
dalek rl6-roast-data: 968c080 | coke++ | / (5 files):
today (automated commit)
22:50
rl6-roast-data: 45d69ec | coke++ | bin/rakudo.jvm.sh:
Track eval server output to catch any errors
rl6-roast-data: e76c1f0 | coke++ | / (5 files):
today (automated commit)
[Coke] rakudo.jvm test_summary on eval server still borking after a while on diakopter's machine. 22:51
22:53 pmurias left 22:54 pmurias joined
TimToady jnthn: your getc appears to work for my quiz editor 22:57
jnthn TimToady: greatc \o/
TimToady: It runs on Rakudo JVM now?
TimToady the JVM version still isn't quite as snappy as the niecza version, but I expect that'll improve over time
jnthn TimToady: Snappier than the Parrot one? 22:58
TimToady yes
jnthn And yes, things will improve. :)
22:59 zwut00 left
TimToady about half our quizzers are from India, and their parents tend to be Java-literate, so they will be impressed, I think :) 23:01
masak \o/ 23:03
TimToady++ # using Perl 6 in production
diakopter producify!
23:03 kay__ left
masak 'night, #perl6 23:03
diakopter g'n
g'n'
TimToady sleep good 23:04
diakopter sleep long and popsicle
[Coke] jnthn++ 23:08
23:08 pmurias left 23:11 kay__ joined 23:13 Guest82492 left
jnthn 'night o/ 23:29
23:43 sisar joined
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
sisar_ .tell [Coke] thanks for looking into it, but no luck. It fails with: 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:49 REPLeffect left, sisar left 23:50 REPLeffect joined 23:53 sisar_ left 23:59 REPLeffect left