»ö« 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 |
11:13 | |
ast: 9d639e1 | moritz++ | S32-num/fatrat.t: check that == for FatRat does not go through Num |
11:15 | ||
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 | |
moritz++ | |||
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 | |||
blog.fefe.de/?ts=b189f277 | |||
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 toox85 | |||
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 | |
lwp | |||
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 | ||
\o | |||
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. | ||
perlcabal.org/syn/S06.html#Macros | |||
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) | |||
express* | |||
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 | |
err | |||
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}; test2Action 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}}; test2Action 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 declaredat /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 | |||
oops | |||
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… |