»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
jnthn Only 2 days of vacation left /o\ 00:02
00:05 havenn joined 00:08 colomon left 00:10 colomon joined 00:17 icwiener left 00:31 bacek_ left 00:35 dalek left 00:36 dalek joined, ChanServ sets mode: +v dalek 00:37 masak left, masak joined 00:48 cognominal_ joined 00:52 cognominal___ left 01:12 cbk1090 joined 01:18 Christofosho joined, wolfman2000 joined 01:20 Christofosho left 01:22 dalek left 01:23 dalek joined, ChanServ sets mode: +v dalek 01:24 liuchong joined 01:26 havenn left 01:38 xinming joined 01:45 cbk1090 left 02:02 orafu left, orafu joined 02:08 tokuhiro_ joined 02:09 d4l3k_ joined 02:10 dalek left, d4l3k_ is now known as dalek 02:28 xinming left 02:31 whiteknight left 02:34 xinming joined 02:37 mucker left, fgomez joined 02:38 fgomez left, fgomez joined 02:56 d4l3k_ joined 02:57 dalek left, d4l3k_ is now known as dalek 02:59 orafu left 03:00 orafu joined 03:06 Chillance left 03:10 mucker joined 03:30 fgomez left 03:31 fgomez joined 03:39 PacoAir left 03:43 d4l3k_ joined, dalek left 03:44 d4l3k_ is now known as dalek 04:30 dalek left, d4l3k_ joined 04:31 d4l3k_ is now known as dalek, pmichaud left, pmichaud joined
sisar was hoping for a good April fool's joke about perl6 04:46
04:51 colomon left
sisar (well, the Wikipedia page was not a disappointment) 04:57
05:06 preflex_ joined 05:08 preflex left, preflex_ is now known as preflex 05:17 dalek left, dalek joined, ChanServ sets mode: +v dalek 05:18 masak left, masak joined 05:36 cbk1090 joined 05:45 cbk1090 left 05:58 samlh joined 06:04 dalek left, d4l3k_ joined 06:05 d4l3k_ is now known as dalek, pmichaud left, pmichaud joined, PerlJam left 06:06 PerlJam joined, Util left, Util joined 06:26 Guest18260 left 06:31 constantined joined 06:34 libertyprime left, xenu_ joined 06:35 libertyprime joined 06:39 havenn joined 06:42 birdwindupbird joined 06:46 Patterner left 06:47 NamelessTee joined, Psyche^ joined, Psyche^ is now known as Patterner 06:51 dalek left, dalek joined, ChanServ sets mode: +v dalek 06:52 pmichaud left, pmichaud joined 06:53 PerlJam left, PerlJam joined, birdwindupbird left 06:55 birdwindupbird joined 06:57 xinming left 07:28 daxim joined 07:38 dalek left, dalek joined, ChanServ sets mode: +v dalek 07:39 Juerd left, Juerd joined 07:42 xinming joined
sorear defines alternating finite automata, lays the necessary groundwork for regexes with & in O(2^2^n) time : www.geocities.com/stockmeyer@sbcglo...et/alt.pdf 07:43
also contains a proof of the PSPACE-completeness of (a problem equivalent to) quantified boolean formulas, which is why I was looking for this 07:44
... mainly linking this because some months ago I conjectured that regexes with & were not in O(2^2^....^2^n) time for any finite power tower 07:45
nice to know I was wrong... still, I'm not about to implement 2-EXPTIME algorithms in niecza D:
samlh sorear: sorry for disappearing for ~a month now 07:54
phenny samlh: 28 Feb 19:16Z <sorear> tell samlh I am curious what version of Mono.Cairo.dll you have
samlh sorear: and i'm likely to disappear again
sorear Who are you? 07:55
samlh sorear: sorry, a windows user from a while back
sorear: just wanted to let you know that qx/notepad.exe/ and run("c:/windows/notepad.exe") now work on .net 07:58
sorear sweet 07:59
08:12 birdwindupbird left 08:25 d4l3k_ joined 08:26 dalek left, d4l3k_ is now known as dalek, Juerd left, Juerd joined 08:30 dolmen joined 08:35 lestrrat left 08:36 lestrrat joined 08:42 pjcj left 08:43 fsergot joined
fsergot morning #perl6 o/ 08:45
08:51 pjcj joined 08:54 Patterner left 08:58 sisar left 09:12 fsergot left, dalek left, Psyche^ joined, Psyche^ is now known as Patterner 09:13 dalek joined, ChanServ sets mode: +v dalek 09:14 Juerd left, Juerd joined
moritz p6: say (1 - 0.5**128) == 1 09:14
p6eval rakudo 8d4f0c, niecza v16-17-g648c49b: OUTPUT«True␤»
..pugs: OUTPUT«␤»
moritz p6: say (1 - 0.5.FatRat**128) == 1
p6eval niecza v16-17-g648c49b: OUTPUT«False␤»
..pugs: OUTPUT«*** No such method in class Rat: "&FatRat"␤ at /tmp/pTPkOlmXVC line 1, column 6-25␤»
..rakudo 8d4f0c: OUTPUT«True␤»
moritz r: say (0.5.FatRat**128).WHAT 09:15
p6eval rakudo 8d4f0c: OUTPUT«FatRat()␤»
moritz r: say (1 - 0.5.FatRat**128).WHAT
p6eval rakudo 8d4f0c: OUTPUT«FatRat()␤»
moritz r: say (1 - 0.5.FatRat**128).perl
p6eval rakudo 8d4f0c: OUTPUT«FatRat.new(340282366920938463463374607431768211455, 340282366920938463463374607431768211456)␤»
tadzik r: say (1 - 0.5.FatRat**128).Num.perl
p6eval rakudo 8d4f0c: OUTPUT«1e0␤»
moritz oh, infix:<==> converts to Num
so, missing candidates. Easy to fix. 09:16
09:20 birdwindupbird joined 09:27 fsergot joined 09:38 dolmen left 09:39 brrt joined 09:41 brrt left
masak good antenoon, #perl6 09:47
09:47 havenn left
masak 0.5.FatRat is another case of method casting. should we always write FatRat(0.5) instead? 09:55
10:00 dalek left, dalek joined, ChanServ sets mode: +v dalek 10:01 hugme left 10:02 Util left, Util joined 10:04 hugme joined, ChanServ sets mode: +v hugme 10:19 spider-mario joined 10:48 dalek left 10:49 dalek joined, ChanServ sets mode: +v dalek 10:50 masak left, masak joined
dalek kudo/nom: 3218a72 | moritz++ | src/core/Rat.pm:
==-compare rats directly

before we would go through Num, which made (1-0.5.FatRat**128) == 1 produce True, falsely
ast: 9d639e1 | moritz++ | S32-num/fatrat.t:
check that == for FatRat does not go through Num
masak moritz++ 11:19
11:19 cbk1090 joined
moritz note that the other comparison operators still suffer from the same problem 11:24
masak worth submitting a rakudobug over, you think? 11:25
I held back submitting the above one, because I had the feeling that you were already fixing it ;) 11:27
moritz sure, submit away 11:28
masak submits rakudobug
11:36 whiteknight joined 11:37 d4l3k_ joined, dalek left 11:38 d4l3k_ is now known as dalek
masak is looking at PAST and trying to fit the pieces together in his head 11:38
11:49 NamelessTee left
masak hm, mystified by the following: PAST::Val, and a bunch of other well-known PAST node types, don't seem to have a definition anywhere within the perl6/nqp repository. 11:50
are PIR and nqp flexible enough that they recognize a namespace even if it hasn't been declared anywhere? 11:51
and if so, what handles all the PAST::Val.new and PAST::Val.ACCEPTS calls everywhere?
moritz masak: I think they are inside the parrot repo 11:52
masak: compilers/pct/src/PAST/{Node,Compiler}.pir
masak ah. 'course. 11:56
the ability to re-open any namespace from any PIR file constitutes a very "powerful" feature ;)
but it's no worse than Perl 5, I guess. 11:57
moritz aye
masak ah, yeah. this is the stuff. 11:58
12:02 PacoAir joined
masak looks like the contents of compilers/pct/src/PAST/{Node,Compiler}.pir, plus some things from the nqp repo's src/PAST/NQP.pir, make up what would need to be ported to QAST. 12:08
it's code describing the node layout, and a bunch of as_post methods to compile PAST nodes to POST.
heh, Java 7 allows the syntax "catch (IOException|SQLException ex) {" to avoid having to repeat the same catch clause with only the exception type differing. 12:15
Java 7 also introduces 0b binary literals.
12:22 fgomez left
moritz junctions! 12:22
tadzik :) 12:23
arnsholt Very limited junctions though =)
gfldex java junction: wiki.openttd.org/images/d/d0/3way_basic3.png 12:25
per6 junction: wiki.openttd.org/images/c/c0/QuadBr...nction.png
12:26 d4l3k_ joined, dalek left
moritz www.perl-community.de/bat/poard/thread/17283 # German perl forum 12:26
12:27 d4l3k_ is now known as dalek
tadzik eek 12:28
gfldex the aprils fool so far is from a german blog that never had a comment function 12:29
he added one with very advanced captcha
it's worth to hit shift-reload a few times
*the best 12:31
masak laughs at this 12:39
12:50 liuchong left 13:13 dalek left 13:14 icwiener joined, dalek joined, ChanServ sets mode: +v dalek 13:16 icwiener left 13:17 icwiener joined 13:20 GlitchMr joined 13:25 xinming left 13:27 DarthGandalf left 13:28 sisar joined 13:32 DarthGandalf joined 13:34 xinming joined 13:40 BruceZu joined
masak p6: enum Month <_ January February March April>; say Month("April") 13:41
p6eval niecza v16-17-g648c49b: OUTPUT«April␤»
..pugs: OUTPUT«*** No such subroutine: "&enum"␤ at /tmp/B2FCGdwNJJ line 1, column 1-44␤»
..rakudo 3218a7: OUTPUT«Method 'gist' not found for invocant of class 'Undef'␤ in sub say at src/gen/CORE.setting:6244␤ in block <anon> at /tmp/1NdbbJ5bjT:1␤␤»
masak hm. is this rakudobug known?
13:45 leont joined
[Coke] I also am experience feather networking issues this past week or so. 13:46
leont FYI: bioperl.org/pipermail/bioperl-l/201...36407.html 13:48
tadzik seems legit 13:49
leont I'm not sure what to think about it though 13:50
tadzik he could have posted it on a better date :)
and, TPF is not on gsoc anyway :/
leont But Open Biology Foundation is ;-)
tadzik oh, nice :) 13:51
masak "implement Bioperl in Perl 6" sounds like a larger task than a GSoC task.
leont s/Biology/Bioinformatics/
masak: exactly
masak mind you, one might get off to a good start.
leont I mean, I'm sure perl6 is learnable in that amount of time, but I do assume that takes time too
masak I'd advise this person to get into contact with #perl6 ASAP. 13:52
leont I'm not sure how much useful stuff one would get done
Yeah, and #bioperl too􏿽x85
masak indeed, learning Perl 6 is not instantaneous. though it's quicker to learn with today's documentation than with last year's.
tadzik well, is it? 13:53
masak learning to write *idiomatic* Perl 6, which one would perhaps expect from a project like this, takes more than a summer :)
...but then again, "good start" and all that.
with TDD and refactoring, most projects can be lifted from the limitations of an initial design and faltering first steps of implementation.
leont Well, it's important to get foundations right for a project like this before people depend on it 13:54
BioPerl is scary Perl 5 from the mid-late 90s
Also, BioPerl as a whole is more than 2000 modules. You can't reimplement that with a dozen GSOC students. It would be fairly minimal in that regard. 14:00
14:00 d4l3k_ joined, dalek left 14:01 d4l3k_ is now known as dalek, Chillance joined 14:02 mdupont left 14:03 mtk left 14:06 xenu_ left 14:09 mdupont joined
masak right. 14:11
also, there's a bit of prior art, as far as I know.
pyrimidine hangs out here quite a bit. I seem to recall he wrote some bioperl6 code already. 14:12
probably thought about the design a bit, too.
14:14 mdupont left
arnsholt IIRC pyrimidine has a fair bit of bioperl6 code already 14:18
leont From a quick look, that code is mostly perl5 translated literally to perl6 14:21
Juerd [Coke]: Past week, really? We know about network issues the past 2 days.
14:44 spider-mario left 14:45 mdupont joined 14:48 dalek left, d4l3k_ joined, d4l3k_ is now known as dalek 14:49 Araq joined 14:58 leont left 15:01 sisar left 15:02 NamelessTee joined 15:03 xenu_ joined, icwiener left, icwiener joined 15:04 colomon joined 15:05 sisar joined 15:07 birdwind1pbird joined 15:08 xenu_ left 15:11 leont joined
tadzik yay, LWP::Simple now installs on nom 15:16
masak this should make lichtkind happy. 15:20
moritz phenny: tell lichtkind that LWP::Simple now works again on newest rakudo
phenny moritz: I'll pass that on when lichtkind is around.
tadzik (is panda-installable too)
masak makes ready to get on a train 15:24
15:25 jferrero left
[Coke] Juerd: perhaps I am projecting. 15:28
15:31 jferrero joined 15:34 JimmyZ joined 15:35 d4l3k_ joined, dalek left 15:36 d4l3k_ is now known as dalek 15:41 leont left 15:42 birdwind1pbird left 15:47 birdwind1pbird joined 15:50 Patterner left 15:52 Psyche^ joined, Psyche^ is now known as Patterner 15:56 JimmyZ left 16:12 lichtkind joined
lichtkind cheers 16:13
phenny lichtkind: 15:20Z <moritz> tell lichtkind that LWP::Simple now works again on newest rakudo
lichtkind phenny: tell moritz thanks 16:14
phenny lichtkind: I'll pass that on when moritz is around.
moritz . 16:20
phenny moritz: 16:14Z <lichtkind> tell moritz thanks
moritz it's a real nuisance to write out all the comparison ops for rats 16:22
they all go like this: multi infix:<op>(Rational:D $a, Rational:D $b) { $a.numerator * $b.denominator op $b.numerator * $a.denominator } 16:23
16:23 dalek left
moritz then another (Rational:D, Int:D) and a (Int:D, Rational:D) variant 16:23
16:23 dalek joined, ChanServ sets mode: +v dalek
moritz and I have to write those for <, <=, >, >=, <=> 16:23
I guess that could be done with macros 16:24
16:30 fglock joined
lichtkind moritz: its a module i have to install? kwp doesnt seems to be incore 16:31
but i recompile rakudo anyway :)
moritz lichtkind: yes, needs to be installed. panda can help you.
16:33 birdwind1pbird left
masak hello-on-a-train, #perl6! 16:34
tadzik hello masak
masak , with totally undiminished enthusiasm for IRC-ing in a moving vehicle
moritz: I was thinking "macros" also, when I read your complaint above. I think the interesting question, though, is: can it be done with *AST* macros? 16:35
and if not, which primitives are we lacking that would allow that? 16:36
moritz we'd need to be able to add holes into identifiers
but a textual macro would work in that simple case
masak sure it would. I'm just looking for ways to extend the niche of AST macros at the expense of textual macros. 16:38
lichtkind can you tell me about that failong subtest about loading?
i think i will also ask so question about postcircumfix and alike, while this is easy there are other cat i not quite understand 16:42
moritz ENOCONTEXT 16:43
which failing subtest about loading?
16:44 daxim left 16:45 s1n joined, birdwindupbird left
lichtkind i ran make test on raudo 16:47
and got t/02-embed/01-load.t ............... Failed 1/1 subtests 16:48
Araq what's perl6's way of providing genSym?
lichtkind what is gensym?
Araq a way to introduce a unique symbol for hygenic macros 16:49
16:51 wolfman2000 left
lichtkind and by symbol you mean a operator? 16:53
Araq by symbol I mean symbol
identifier 16:54
lichtkind we have hygenic macros 16:55
Araq good
how do they work?
lichtkind strangelyconsistent.org/blog/macros...hey-really
a short overview
masak that blog post doesn't really address gensymming, though. 17:03
lichtkind yes but it explains that macros produce an ast 17:04
masak Araq: the short and slightly unsatisfactory answer is that careful separation of lexical scopes replaces gensymming in Perl 6.
lichtkind and this gets weaved into the program ast by compiler
masak at least by our current best understanding.
lichtkind: right, but there are lots of subtleties, starting with the fact that an AST must have a "context" much like a closure does. 17:05
Araq: at the end of masak.org/carl/gpw-2012-macros/talk.pdf there is an elucidation about how the lexical scopes conspire to make gensymming unnecessary. 17:06
unfortunately, there is no audio track with the PDF :) please ask more if things are not clear. 17:07
17:07 s1n left 17:09 sisar left 17:11 d4l3k_ joined 17:13 dalek left 17:14 d4l3k_ is now known as dalek
moritz olvvvvvv 17:19
masak o/ Ronja :) 17:20
moritz I wonder why the wikipedia page on hygienic macros doesn't mention careful scoping as a solution
masak that struck me as odd too.
maybe it won't work :P
or maybe Wikipedia has, I dunno, some sort of omission. 17:21
17:22 s1n joined
moritz if it works, it seems indeed to be the cleanest solution 17:23
masak aye. 17:25
when I get to the point where it works in Rakudo, I might add the alternative to the list in the article ;)
17:30 leont joined 17:32 mucker left
Araq what is the alternative, masak? 17:39
masak well, let's make an example to make things concrete. 17:44
Araq careful scoping is no substitute for gensym
masak macro foo($x) { quasi { my $a = 1; say $a; say {{{$x}}} } }; my $a = 2; foo($a) 17:45
there are two variables called '$a' -- the one in the quasi block, and the one in the mainline.
generally, we'd need to gensym the one in the quasi block so that it won't collide with the one in the mainline. 17:46
but not in Perl 6.
Araq yeah but what if the macro wants to inject a new variable that is destructed at scope end (C++ like RAII)? 17:47
masak we generally handle destruction at scope end with a LEAVE phaser.
though it's still a little unclear to me which block the LEAVE phaser latches on to -- the quasi block, or the block in the mainline. 17:48
seems to me we would want it to latch on to the block in the mainline at least sometimes. this would imply that phasers in quasi blocks are "deferred" until macro application time, just like type declarations etc. 17:49
as to variable injection in general (with or without RAII), see the discuission on the COMPILING:: namespace in S06. 17:52
Araq link? 17:53
masak COMPILING:: grants you a kind of "un-hygiene", even for declarations if you want.
it's just that hygiene is switched on by default, because we think it's a nice default :) 17:54
lichtkind tadzik: while isntalling panda i got use of uninitialized value of type Command in string context 17:55
tadzik lichtkind: yeah, I know. I have no idea where that comes from :)
masak and gosh, I sure hope that careful scoping *is* a substitute for gensymming. :) but maybe we were talking past each other, because there certainly are ways in which it wouldn't be in other languages. in Perl 6, it is.
17:56 bbkr joined
lichtkind tadzik: also the failing test in the fetcher? 17:56
tadzik lichtkind: if you look closely, there's no failing test
just a git error message that I don't know how to silence
17:57 leont left
Araq *shrug* I like gensym and dirty macros and scope injection 17:58
17:59 dalek left
Teratogen dirty macros? 17:59
17:59 dalek joined, ChanServ sets mode: +v dalek
Araq un-hygienic macros 18:00
lichtkind tadzik: allright but i have to restart to isntall modules?
masak Teratogen: see en.wikipedia.org/wiki/Hygienic_macro for details. 18:01
Teratogen: the distinction doesn't really exist in C, though ;)
Araq brb
masak (I'm not aware of any gensymming in C. all C macros that I recall have been unhygienic.) 18:02
lichtkind tadzik: yes your right bit now i got: src/gen/Metamodel.pm 18:03
i mean Incorrect pre-compiled version of src/gen/Metamodel.pm loaded
18:04 s1n left
tadzik (in a cross-platform way, that is) 18:04
lichtkind: oh, right
lichtkind: find ~/.perl6 -name '*.pir' -delete 18:05
there's something seriously wrong about module precompilation in rakudo
18:09 leprevost left
masak there is? please go on. 18:09
moritz it leads to weird errors and segfaults when loading some of the modules 18:10
masak yes, but what is it that's wrong? 18:12
and what RT ticket is this and how come I missed it? :) 18:13
18:14 fglock left
lichtkind tadzik: thanks a lot it works now soemthing without error 18:14
lord and behold i might even write a perl 6 module :)
18:16 spider-mario joined
masak it's 'lo and behold' -- the 'lo' is an old shortening of 'look' ;) 18:16
lichtkind moritz: there is still failing tests it escape.t 18:17
moritz well, lichtkind has an idiosyncratic interpretation of every language I know :-)
lichtkind: which module?
lichtkind LWP::Simple 18:18
the one we talked about
moritz lichtkind: what revision are you on?
lichtkind moritz: you mena rakudo version? 18:19
moritz lichtkind: no, LWP::Simple
18:19 s1n joined
lichtkind moritz: i think panda fetches the newest out of git? 18:20
masak making it, um, anaphora, I think.
(because both "lo" and "behold" eĉpress the same idea)
18:21 xinming left
moritz lichtkind: I just cloned URI newly from git, and didn't get any test failurs 18:22
18:23 xinming joined
sorear good * #perl6 18:26
18:26 s1n left
moritz good *, sorear 18:26
lichtkind moritz: how did you install ?
moritz lichtkind: I didn't install it. I cloned it from git, and ran 'make test'
previously I installed the prerequisites and removed all .pir files from ~/.perl6/lib 18:27
masak sorear! \o/ 18:28
sorear: how's C<handles> going?
lichtkind moritz: whats the secret of that pir removing? 18:29
i almost ran outa tuit for today
Teratogen when Araq said "dirty macros" I immediately thought "macro porn!"
lichtkind Teratogen: cs wise it is
moritz lichtkind: precompiling breaks stuff in weird ways :( 18:31
at least right now
sorear masak! \o/ 18:33
masak: I looked at Rakudo's implementation, that's about all I've done so far
sorear would kind of like to get niecza back over 100% this week... but that's probably not realistic.
Teratogen when Araq said "dirty macros" I immediately thought "macro porn!=jyukih 18:34
Araq "macro porn"? omg
Teratogen \,m. `17,6vg888bbbbbbbbbbbbbbbbbbbc6666666666666bbc6f456RFDRT6/?
masak sorear: ok.
Teratogen SORRY ABOUT THAT 18:35
sorry about that
ferret on keyboard
little varmint
masak Teratogen: I'm going to have to ask you to calm down. :/
sorear Teratogen++ # novel excuse
Teratogen it was my pet ferret Archimedes, masak!@ 18:36
he likes to get up on the keyboard and just kind of sit on it
benabik Teratogen: The many lines of apology is more irritating than the one line of random text.
Teratogen mashing keys as he does
sorear masak: Yesterday Teratogen was saying that when ey gets bored, ey makes noise on #perl6 to entertain emself
Teratogen sorear, hush
masak sorear: aye, I saw that.
tadzik masak: (precompilation) if we know what's wrong, it probably wouldn't be already :)
masak: but I know this since GPW. Loading precompiled SVG::Plot (for example) segfaults
masak Teratogen: we love to see you make progress as someone who contributes positively to the channel. right now you're not showing signs of that. 18:37
tadzik: I wasn't really aware until now.
Teratogen I'll try to do better masak
masak tadzik: it sounds familiar, but I haven't tried to precompile modules in a while, and so I haven't been affected. 18:38
masak hugs Teratogen
18:38 birdwindupbird joined 18:39 s1n joined
lichtkind moritz: ok i lay the problem down for now just want to finish grammar categories and special var 18:41
18:43 samlh left 18:44 imarcusthis left 18:46 imarcusthis joined, d4l3k_ joined 18:47 hugme left 18:48 hugme joined, ChanServ sets mode: +v hugme, dalek left, d4l3k_ is now known as dalek 18:50 brrt joined
brrt in rakudo, is there a branch that does implement declared array dimensions? 18:54
moritz no 18:55
18:56 whiteknight left 18:59 gandaro joined 19:00 localhost left, gandaro left 19:01 localhost joined
tadzik did you tackle the freenode riddle today? 19:03
masak heh. I thought I needed a dynamic variable in a module, but it turned out I just needed a lexical variable in that module. I wonder what made me confused in that particular way.
seems to me now that dynamic variables are mostly useful in situations that resemble traversal, or recursion. 19:04
masak de-trains 19:06
moritz masak: agreed about recursion and dynamic vars 19:09
or what STD.pm6 and rakudo's Grammar.pm use is to do some tiny bits of configuration on the calling location for stuff that goes deep into the call stack and that isn't worth passing around as objects all the time 19:11
lichtkind masak: whos idea was it to lowercase pod? 19:18
tadzik Damian's 19:19
I think
lichtkind and you know the reason?
damian is still around?
sorear damian is impossible to get rid of! 19:20
lichtkind here it is a good thing :)
Araq implicit parameters seem a better solution than dynamic vars
sorear Araq ! 19:21
tadzik I believe they serve different purposes
sorear Hi ! Haven't seen you fo a while
Araq well thanks, hi
lichtkind tadzik: only reason for me was it just looks better ebcasue special var have to stick out more and if pod do it too there is tto much uppercase and since is got even more part of the lang it should be lowercase like rest of keywords 19:22
19:34 hugme left, dalek left 19:35 dalek joined, ChanServ sets mode: +v dalek
tadzik damn, feather is completely unusable these days 19:35
19:36 Util left, Util joined
sorear Juerd: is your company still being ddos'ed? 19:38
spider-mario woah, macros in rakudo? 19:41
perl6: macro hello($name) {quasi {say "Hello { {{{$name}}} }!"}}; hello "Perl" 19:42
p6eval niecza v16-17-g648c49b: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1226 (warn @ 3) ␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 234 (Mu.Str @ 10) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/boot/…
..pugs: OUTPUT«*** Undeclared variable: ("$name",MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = <Scalar:0x7f46576b5b59>, pe_flags = MkEntryFlags {ef_isContext = True}, pe_store = <ref:0x7f46576b5091>}),("@_",PELexical {pe_type = (mkType "Array"), pe_proto = <Ar…
..rakudo 3218a7: OUTPUT«Hello AST<3843861497533412442>!␤»
spider-mario so, $name is an AST
that makes sense 19:43
19:43 MayDaniel joined
sorear o/ spider-mario 19:43
Araq perl6: macro hello($name) {quasi {hello "Hello { {{{$name}}} }!"}}; hello "Perl" 19:44
p6eval niecza v16-17-g648c49b: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1226 (warn @ 3) ␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 234 (Mu.Str @ 10) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/boot/…
..rakudo 3218a7: ( no output )
..pugs: OUTPUT«pugs: *** Cannot bind to non-existing variable: "$name"␤ at /tmp/xHkOsrr4f1 line 1, column 1␤»
spider-mario macros can’t call macros yet? 19:45
or is it just recursion that’s not handled?
dalek kudo/nom: 984dc7c | moritz++ | src/core/Rat.pm:
comperator ops for rats and rats and ints
spider-mario perl6: macro test1 {quasi {say "test1"}}; macro test2 {test1}; test2 19:46
p6eval niecza v16-17-g648c49b: OUTPUT«===SORRY!===␤␤Action method quasiquibble not yet implemented at /tmp/DgvqYWCRV2 line 1:␤------> macro test1 {quasi {say "test1"}⏏}; macro test2 {test1}; test2␤␤Action method quote:quasi not yet implemented at /tmp/DgvqY…
..rakudo 3218a7: OUTPUT«===SORRY!===␤Could not find sub &say␤»
..pugs: OUTPUT«test1␤*** ␤ Unexpected end of input␤ expecting bare or pointy block construct, ":" or identifier␤ Macro did not return an AST, a Str or a Code!␤ at /tmp/c9bzkAvbPm line 2, column 1␤»
spider-mario Could not find sub &say
tadzik spider-mario: I don't think quasi is there yet
spider-mario oh
quasi did work on a more complex example 19:47
perl6: macro test1 {quasi {say "test1"}}; macro test2 {quasi {test1}}; test2
moritz t/spec/S06-macros/macros-d1.t has the macro tests that rakudo currently passes
p6eval pugs, rakudo 3218a7: OUTPUT«test1␤»
..niecza v16-17-g648c49b: OUTPUT«===SORRY!===␤␤Action method quasiquibble not yet implemented at /tmp/3BgyLngsBN line 1:␤------> macro test1 {quasi {say "test1"}⏏}; macro test2 {quasi {test1}}; test2␤␤Action method quote:quasi not yet implemented at /t…
moritz anything that's not in there is likely to fail
spider-mario: if you start your queries with 'rakudo:' instead of 'perl6:
spider-mario yes, sorry
moritz ... instead of 'perl6:' you can avoid a lot of extra output 19:48
spider-mario I always forget then realize
moritz :-)
r: macro a() { quasy { say "foo" } }; a
p6eval rakudo 3218a7: OUTPUT«===SORRY!===␤Could not find sub &quasy␤»
moritz r: macro a() { quasi { say "foo" } }; a
p6eval rakudo 3218a7: OUTPUT«foo␤»
spider-mario but appearently, pugs is able to run the code too
19:48 MayDaniel left
spider-mario oh, I get it 19:49
moritz r: macro a() { quasi($x) { say "foo"; $x } }; a say 'foo'
p6eval rakudo 3218a7: OUTPUT«===SORRY!===␤Variable $x is not declared␤at /tmp/kBBUtSXrGj:1␤»
spider-mario say was executed at build time
which explains why it was not found
moritz but it should be available at compile time
r: BEGIN say 'foo'
p6eval rakudo 3218a7: OUTPUT«foo␤»
spider-mario oh, indeed
macro test {say "hello"}; test
r: macro test {say "hello"}; test 19:50
p6eval rakudo 3218a7: OUTPUT«hello␤===SORRY!===␤Macro did not return AST at line 1, near ""␤»
spider-mario r: macro test {say "hello"; quasi {}}; test
p6eval rakudo 3218a7: OUTPUT«hello␤»
spider-mario hm…
r: macro test1 {say "hello"; quasi {}}; macro test2 {test1}; test2
p6eval rakudo 3218a7: OUTPUT«hello␤===SORRY!===␤Macro did not return AST at line 1, near ""␤»
spider-mario r: macro test1 {say "hello"; quasi {}}; macro test2 {test1()}; test2 19:51
p6eval rakudo 3218a7: OUTPUT«hello␤===SORRY!===␤Macro did not return AST at line 1, near ""␤»
moritz r: macro a() { quasi { 1 +1 } }; say a
p6eval rakudo 3218a7: OUTPUT«2␤»
spider-mario what am I missing?
pugs: macro test1 {say "hello"; quasi {}}; macro test2 {test1}; test2 19:52
p6eval pugs: OUTPUT«hello␤»
spider-mario pugs gets it right
and surprisingly quickly :D
timotimo huh, i can do "next" in a function that has no loop in it, if it's called from some place that has a loop?
i could just try instead of asking, actually 19:55
19:55 hugme joined
tadzik :) 19:55
19:55 ChanServ sets mode: +v hugme
timotimo that's pretty neat 19:56
i suppose the same mechanism makes "take" work in any function called transitively from inside a gather block
interestingly, next without a loop around it is not a problem to rakudo 19:57
p6: next
p6eval pugs: OUTPUT«*** Cannot use this control structure outside a 'loop' structure␤ at /tmp/YLNP69ye1w line 1, column 1 - line 2, column 1␤»
..niecza v16-17-g648c49b: OUTPUT«Unhandled exception: Illegal control operator: next␤ at /tmp/Bl9JeABqqZ line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3839 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3840 (module-CORE @ 65) ␤ at /home/p6eval/niecza…