»ö« 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 | er, if you leave that in QAST::Node you don't save any memory. | 00:01 | |
hm...that error is legit and not so easy to fix... | |||
00:05
fgomez joined
00:09
att__ is now known as att_
|
|||
jnthn | sleep & | 00:09 | |
00:10
att_ is now known as att__
|
|||
lue | good knight jnthn o/ | 00:12 | |
dalek | kudo/stdier: c5e946f | jnthn++ | src/Perl6/Grammar.pm: A little STD alignment. Gets us a panic where STD has one and we lacked it, plus a bogus statement error that was also missing. |
00:16 | |
00:18
quester joined
00:27
pmurias left
00:28
rindolf left
00:44
MayDaniel left
00:46
cognominal left
01:04
pecastro joined
01:14
pecastro left,
fgomez left,
erkan left,
xinming_ left,
PacoAir left,
sizz left,
mj41 left,
fgomez joined
01:15
xinming joined,
sizz joined,
erkan joined,
erkan left,
erkan joined,
PacoAir joined,
odoacre joined,
pecastro joined,
mj41 joined
01:19
phenny joined
01:27
pecastro left
01:28
mikemol joined
01:31
pecastro joined
01:36
bowtie left
01:43
pecastro left,
pecastro joined
01:46
xinming left
01:47
xinming joined
01:49
hash_table joined
01:56
pecastro left
02:05
lichtkind left
|
|||
dalek | blets: 696f770 | (Herbert Breunung)++ | docs/appendix-a-index.txt: explain indent in A |
02:12 | |
02:21
hash_table left,
FROGGS_ joined
02:24
FROGGS left
02:32
PacoAir left
|
|||
dalek | blets: f5b74af | (Herbert Breunung)++ | docs/appendix- (2 files): adding TABSTOP-compiler-var |
02:35 | |
blets: 5c87432 | (Herbert Breunung)++ | docs/appendix-a-index.txt: adding tim variants |
|||
02:57
fgomez left
|
|||
lue | Can knowhows (in nqp) inherit anything? | 03:01 | |
03:01
wamba left
03:03
benabik joined
|
|||
PerlJam | GlitchMr++ Thanks. Yesterday and today did *not* go as planned for me. | 03:18 | |
(I was without internet until just a little while ago) | 03:19 | ||
flussence | rpn: say $*EXECUTABLE_NAME | 03:23 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«/home/p6eval/niecza/run/Niecza.exe» | ||
..rakudo 53daef: OUTPUT«./nom-inst/bin/perl6» | |||
..pugs: OUTPUT«» | |||
flussence | is there any easy way to do "shell($self ...)" type things? | 03:24 | |
(right now I've got it hardcoded to 'perl6 ...', which isn't very niecza-friendly...) | 03:25 | ||
03:28
fgomez joined
03:29
whiteknight left
03:30
noggle joined
03:34
noggle_ left
|
|||
lue | shell($*EXECUTABLE_NAME ~ "rest of the command"), I would think (or "$*EXECUTABLE_NAME rest of it", if you prefer) | 03:40 | |
flussence | yeah, but that won't work with niecza because it needs "mono" prepending to it if you don't have binfmt_misc stuff set up... | 03:41 | |
(I wonder if prepending xdg-open to it would make things better or worse...) | 03:42 | ||
03:43
xinming left
|
|||
lue | my $prefix = $*EXECUTABLE_NAME ~~ /Niecza/ ?? "mono " !! ""; shell($prefix ~ $*EXECUTABLE_NAME ~ "args"); | 03:43 | |
03:44
xinming joined
04:12
erkan left
04:37
Psyche^ joined
04:38
cooper_ joined
04:40
Patterner left,
Psyche^ is now known as Patterner
04:44
xinming_ joined
04:47
xinming left
04:58
daniel-s__ joined
04:59
tokuhiro_ joined
05:01
daniel-s_ left
05:02
wooden left
05:05
hash_table joined
05:13
wooden joined,
wooden left,
wooden joined
05:22
cooper_ left,
brahmam joined
|
|||
brahmam | is perl6 interpreted or compiled | 05:23 | |
shachaf | Languages aren't interpreted or compiled. | 05:24 | |
brahmam | what is the end output.. i mean executable code... | 05:26 | |
i am very very new to perl | |||
shachaf | The end output of what? | ||
brahmam | like.. in java... the class file | ||
shachaf | Languages can be either interpreted or compiled, depending on whether you use an interpreter or a compiler. Perl 6 has both, as far as I know. | 05:27 | |
sorear | All known implementations of Perl 6 have both an interpreter and a compiler. | ||
brahmam | do perl5 has compiler too.. | ||
sorear | Yes. | ||
brahmam | so what is the executable file of perl script file.. | 05:28 | |
doy | basically all non-toy languages have a compiler of some sort | ||
brahmam | sorry... doy.. i didn't get you... what do you mean by non-toy languages... you mean which are not something fo experts.. | 05:29 | |
for* | 05:30 | ||
doy | brahmam: what are you actually asking here? | 05:32 | |
05:32
daniel-s__ left
|
|||
brahmam | one of my collegue said compiler based langs perform better than interpreter based.. | 05:33 | |
doy | that depends entirely on the compiler and interpreter involved | ||
brahmam | i am basically a oracle DBA, i want to design a tool, something like sql*plus, which can connect to any db ie. oracle,mysql, db2 or SQL Server with same syntax you are comfortable with.. | 05:34 | |
05:34
telex left
|
|||
doy | i suggest trying out the languages you're interested in and seeing if they are fast enough | 05:34 | |
brahmam | its basically converting the string entered by the user... to the equivalent of the target database, something lik ORM tools do.. | 05:35 | |
doy | perl 5 can do something like that via SQL::Abstract | ||
i'm not sure if perl 6 has something similar | 05:36 | ||
brahmam | as i am new to perl.... is it worth giving a shot at ...i want to take expert's advise.. | 05:37 | |
05:37
telex joined
|
|||
brahmam | i am good at sql, plsql and a little bit with java | 05:37 | |
05:44
xinming joined,
hash_table left
05:47
xinming_ left
05:59
daniel-s joined
06:00
brahmam left
06:09
daniel-s left
06:17
daniel-s joined
06:20
angelolicastro joined
06:28
angelolicastro left
06:30
daniel-s left
06:34
SamuraiJack joined
06:37
daniel-s joined
06:41
angelolicastro joined
06:44
angelolicastro left
07:07
fgomez left
07:17
fgomez joined
|
|||
moritz | good morning | 07:34 | |
jnthn: yes, qast-sink-1 still segfaults | |||
07:41
wamba joined
07:42
quester left
|
|||
grondilu | do you guys know the equivalent of <pattern>* % ':' in perl5 ? | 08:01 | |
maybe I have to repeat the pattern for the end: (?:<pattern>:)* <pattern> | 08:03 | ||
moritz | yes, that's it | 08:08 | |
08:19
tokuhir__ joined,
tokuhiro_ left
|
|||
FROGGS_ | morning | 08:22 | |
08:24
kaare_ joined
|
|||
moritz | \o FROGGS_ | 08:35 | |
08:35
Liz joined,
Liz is now known as lizmat
08:36
Chillance left
|
|||
FROGGS_ | masak: if I read you advent post right, rakudo will gain speed when doing all alternations of the LTM in different threads? | 08:36 | |
masak++ # btw, good post | 08:39 | ||
morning moritz | |||
moritz: what do you think about throwing typed warning/exceptions from modules? | 08:50 | ||
should be use a namespace pattern? X::Module::<Modulename> ? or X::<Modulename> or ... ? | 08:51 | ||
moritz | FROGGS_: X::<Modulename>::YourError | 08:52 | |
though usually grouped not by module, but by distribution | |||
dalek | href="https://perl6.org:">perl6.org: d0a4b8e | (Juan Francisco Cantero Hurtado)++ | source/documentation/index.html: Update link to the last "Using Perl 6" snapshot |
08:58 | |
masak | mornin', #perl6 | 09:20 | |
FROGGS_: theoretically, alternations of the LTM could be done in different threads. but something tells me there's not such a big speed gain to be had in that. | 09:21 | ||
because each alternation is fairly short, and would probably be dwarfed by threading overhead. | |||
FROGGS_: no, the real benefit is that conceptually, a DFA doesn't "go back" and try the next alternation from the last branch point. instead, the DFA tries all alternations conceptually "at once". by the end, all the non-matching alternations have been eliminated. | 09:23 | ||
lizmat | morning masak | ||
moritz | morning masak and lizmat | ||
masak | morning lizmat and moritz | 09:26 | |
wow, reading brahmam's question in the backlog is interesting. | |||
I could easily see myself asking such a question a couple of years back. | 09:27 | ||
especially the "a colleague said a compiler is faster than an interpreter, is it true?" question. | |||
but from my current vantage point, it just feels like brahmam is asking from within a great fog, and the answers barely reach back in to him. | 09:28 | ||
lichtkind: in github.com/perl6/tablets/commit/696f770d96 , why do you call it a "string object" when "string" is adequate? we don't talk of "integer objects" or "boolean objects" either. | 09:31 | ||
09:36
GlitchMr joined
09:40
ifim left
09:41
wamba left
09:43
Pleiades` left
09:48
Pleiades` joined
09:49
wamba joined
|
|||
GlitchMr | gist.github.com/4244090 | 09:56 | |
Example of something that is easy in AWK and Perl 6, but hard in Perl 5. | |||
masak | oh, it's awk. | 09:57 | |
I was wondering what weird dialect of Perl that was :) | |||
GlitchMr | I've choosed Perl just for syntax highlighting. | ||
In Perl 5 it looks simple: join ',', map quotemeta, @words... except that actually doesn't work | 09:59 | ||
oops | |||
join '|', map quotemeta, @words | |||
masak | nowadays I'm always suspicious of the practice of building sublanguages using strings. | 10:00 | |
not only because of the general risk of injection attacks, but because of the crudeness of the approach. | |||
GlitchMr | This is what PHP people do, I know. Oh, and Perl 5 with its regexpes. | 10:01 | |
Also, oops, my approach is simply wrong. It assumes array isn't empty. | |||
It should be fixed now | 10:04 | ||
tadzik | ah, the ol' "interpreted vs compiled" debate... | 10:05 | |
doog morning #perl6 | 10:06 | ||
GlitchMr | But... only UNIX shell language is popular interpreted language. | ||
Other languages are compiled. | |||
Perhaps they aren't compiling programs to files, but they still compile programs. | 10:07 | ||
sorear | GlitchMr: unix shell is actually pretty compiled | ||
GlitchMr | Why program like this is valid then: | 10:08 | |
exit | |||
ds'gew;tewv tv'ewrr.c24'r32$C"#@R?X"#@>""~``"3c;xe@"#:ex'@ | |||
sorear | because compilation occurs one line at a time | ||
s/line/top-level statement/ | |||
wrap that program in an if true; then ... fi and it won't compile. | |||
GlitchMr | Well, ok, that program had valid syntax | 10:09 | |
But perhaps something involving $) or something. | 10:10 | ||
exit | |||
$) | |||
In if true; then ... fi it isn't valid anymore | 10:11 | ||
masak | tadzik: it's silly. "compilation" is just a kind of translation. computers do it all the time. "interpretation" is just a switch statement in a loop. computers do that all the time too. | 10:17 | |
which one is faster? the question almost isn't well-posed. | |||
GlitchMr | Is Brainfuck interpreted or not (answer: depends on implementation)? | 10:18 | |
masak | yes, and that's what people answered brahmam in the backlog. | 10:20 | |
sorear | as someone who has spent a non-neglible amount of time studying CPU design, let me say that *everything* is interpreted... | 10:22 | |
masak | aye. | 10:23 | |
sorear | besides, transistors are a physics-based system for interpreting Boolean algebra. and some people say even physics is an interpreter... | ||
masak is struck by how the Church booleans look a bit like abstract transistors | 10:25 | ||
10:25
xinming left
10:28
PacoAir joined
10:31
kivutar joined
|
|||
jnthn | morning o/ | 10:33 | |
sorear | o/ jnthn | 10:34 | |
jnthn | An interpreter is just something that processes instructions and takes actions based on them. If the input to the process is different from the thing that gets interpreted, then there's a compiler inbetween the two performing that translation. | ||
masak | jnthn! \o/ | ||
tadzik | there's no one to convince anymore :) | ||
jnthn | Aye, just thought that was a nice way of putting it :) | ||
masak | aye. | 10:35 | |
lizmat | which would make perl* a compiler? | 10:38 | |
jnthn | lizmat: Sure, it doesn't work directly off the source code, but instead interprets a tree structure. | 10:40 | |
moritz | well, perl 5 contains both a compiler and an interpreter | ||
jnthn | Right. | ||
moritz | as does Rakudo | ||
lizmat | indeed… so it's getting foggier and foggier, no? | ||
who cares anyway… :-) | |||
as sorear pointed out, it's all interpreted by the CPU anyway :-) | 10:41 | ||
moritz | right, it's all a continuum these days | ||
jnthn | I suspect people are more inclined to believe things are compilers when they feed source code in and get some other file containing some other form of the program out. | ||
10:45
cognominal joined
|
|||
lizmat welcomes cognominal | 10:59 | ||
11:05
rindolf joined,
MayDaniel joined,
Su-Shee_ joined
|
|||
jnthn | moritz: hm, qast-sink-1 doesn't actually build now. | 11:08 | |
jnthn merges from nom | |||
11:09
Su-Shee left
|
|||
sorear | sleep& | 11:09 | |
shachaf | jnthn: Well, that *is* what a compiler is. | ||
For a sufficiently broad meaning of "file", anyway. | |||
11:09
birdwindupbird joined
|
|||
dalek | kudo/qast-sink-1: e2f2dc4 | moritz++ | src/Perl6/Metamodel/RolePunning.pm: fix nqp::can(role { }, "anything"). jnthn++ |
11:11 | |
kudo/qast-sink-1: 6b01881 | jnthn++ | src/ (2 files): Start showing context, with eject marker. my-scope the Parameter constants. For one because they should be, for two because it avoids a bug (that will need some separate tracking down). |
|||
11:11
dalek joined,
ChanServ sets mode: +v dalek
|
|||
moritz | jnthn: ah, it probably didn't like the new NQP cursor factoring | 11:12 | |
jnthn | yeah | 11:13 | |
now I get the segfaul | |||
*segfault | |||
and...urgh | |||
lizmat | glad you can reproduce now,… I thought I was going crazy yesterday | 11:14 | |
moritz | lizmat: but it's a different branch | ||
cognominal | \o everyone. lizmat sitting by me | ||
lizmat | well, the revert jnthn suggested, fixed the pb for me | 11:15 | |
jnthn | lizmat: No no, different segfaults... | ||
lizmat | :-( | ||
jnthn | lizmat: Yours is worrying | ||
moritz: Oh. | 11:16 | ||
It's nothing to do with sink. | |||
moritz: If I git revert 17bcd9649 it fixes it | 11:17 | ||
11:19
spider-mario joined
|
|||
moritz | erm, WTF. | 11:27 | |
I introduced that commit to avoid a different bug with sinking, which I hadn't triaged yet | 11:28 | ||
jnthn | moritz: ^ gets you constant and no segfaults :) | ||
moritz: Somehow we're losing lvalue nature of things somewhere... | 11:32 | ||
r: my %h = a => 42; for %h.pairs { .value += 100 }; say %h<a> | 11:35 | ||
p6eval | rakudo 53daef: OUTPUT«42» | ||
jnthn | r: my %h = a => 42; for %h.kv { .value += 100 }; say %h<a> | ||
p6eval | rakudo 53daef: OUTPUT«No such method 'value' for invocant of type 'Str' in block at /tmp/d2wS_JebRZ:1» | ||
jnthn | r: my %h = a => 42; for %h.kv -> $k, $v is rw { $v += 100 }; say %h<a> | ||
p6eval | rakudo 53daef: OUTPUT«42» | ||
jnthn | oh, that's not what the test is doing at all | 11:36 | |
oh...it's something with try. | 11:37 | ||
r: try for 1..10 { .say }; say 'ok' | 11:38 | ||
p6eval | rakudo 53daef: OUTPUT«12345678910ok» | ||
jnthn | moritz: ^ in qast-sink-1 only says the 'ok' | ||
11:39
MayDaniel left
|
|||
moritz | so, try isn't sunk yet | 11:40 | |
jnthn | yeah | ||
try-ing a patch for that ;) | |||
moritz | I guess we will uncover several missing pieces | 11:41 | |
one I know about is | |||
r: my $x = 0; while $x++ < 5 { for 1 { say } }; say 'ok' | |||
p6eval | rakudo 53daef: OUTPUT«ok» | ||
moritz | r: my $x = 0; while $x++ < 5 { for 1 { .say } }; say 'ok' | ||
p6eval | rakudo 53daef: OUTPUT«11111ok» | ||
moritz | that one only prints the last 1\n currently | 11:42 | |
I guess that needs modification to the codegen of loops | |||
r: my $x = 0; while True { last if $x++ > 2; $x } | 11:43 | ||
p6eval | rakudo 53daef: ( no output ) | ||
moritz | r: my $x = 0; say do while True { last if $x++ > 2; $x } | ||
p6eval | rakudo 53daef: OUTPUT«True» | ||
moritz | oh, the return value is the condition? | ||
then I guess the block just needs to be sunk always | |||
r: my $x = 0; say do while $x++ < 5 { 1 } | 11:45 | ||
p6eval | rakudo 53daef: OUTPUT«False» | ||
dalek | kudo/qast-sink-1: f122e60 | jnthn++ | src/Perl6/Actions.pm: Sink 'handle'. |
||
moritz | 'handle' handles exceptions? | ||
jnthn | Yeah | 11:47 | |
That got us back a couple of tests | |||
ah | |||
I see why the keybag ones explode. | |||
It does something like sub choose { ... for @blah -> $m { if ... { return $m } else { ... } } } | 11:48 | ||
And now that for is not eagerly evaluated, the return can happen too late | |||
moritz | r: eager for ^5 { .say } | 11:50 | |
p6eval | rakudo 53daef: OUTPUT«===SORRY!===Confusedat /tmp/aa2PkFW03V:1------> eager for ^5 ⏏{ .say }» | ||
moritz | r: eager do for ^5 { .say } | ||
p6eval | rakudo 53daef: OUTPUT«01234» | ||
moritz | std: eager for ^5 { .say } | ||
p6eval | std a8bc48f: OUTPUT«===SORRY!===Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/3WEPxvIVaP line 1:------> eager for ^5 ⏏{ .say } expecting infix or meta-infixParse failedFAILED 00:00 4… | ||
moritz | might be neat to have that one work (ie eager as a statement prefix) | ||
jnthn | yeah | 11:51 | |
std: eager do for ^5 { .say } | |||
p6eval | std a8bc48f: OUTPUT«ok 00:00 43m» | ||
jnthn | Trying that for now | ||
11:53
MayDaniel joined
11:58
xinming joined,
whiteknight joined
|
|||
FROGGS_ | masak: what is a DFA? | 12:00 | |
12:00
erkan joined,
erkan left,
erkan joined
|
|||
GlitchMr | FROGGS_: en.wikipedia.org/wiki/Deterministi..._automaton | 12:00 | |
dalek | kudo/qast-sink-1: c481a55 | jnthn++ | src/core/Bag.pm: Fix bag and keybag failures. |
12:01 | |
GlitchMr | Regexes can be converted to DFA. | ||
s/Regexes/Regular expressions/ | 12:02 | ||
en.wikipedia.org/wiki/Regular_language | |||
12:06
Su-Shee_ is now known as Su-Shee
12:10
tokuhir__ left
12:11
tokuhiro_ joined
12:12
PZt left
|
|||
moritz | sets are unordered, right? | 12:13 | |
there are some tests that assume otherwise | 12:14 | ||
jnthn | Yes, unordered. | ||
dalek | ast: ad3da93 | moritz++ | S02-types/set.t: sets are unordered, so do not assume that .list preserves order |
12:15 | |
12:15
PZt joined,
tokuhiro_ left
|
|||
jnthn | moritz: Any idea what the hash-interpolation.t one is about? | 12:16 | |
jnthn is working on some of the type-var related ones | |||
moritz | jnthn: hash assignment is half broken | 12:18 | |
jnthn: it's the while-not-sinking-its-last-statement bug | |||
jnthn: do you want to fix that, or should I try (with aid from you, I hope :-) ? | 12:21 | ||
12:24
kivutar left
|
|||
jnthn | moritz: I'm just trying to find where the exact semantics of this are spec'd/tested | 12:26 | |
moritz | n: my $x = 3; say do while $x-- > 0 { 42 } | ||
p6eval | niecza v24-5-g599cbcb: OUTPUT«Nil» | ||
moritz | n: my $x = 3; say do for ^3 { 42 } | ||
p6eval | niecza v24-5-g599cbcb: OUTPUT«Potential difficulties: $x is declared but not used at /tmp/gdKt1Y6Lnu line 1:------> my ⏏$x = 3; say do for ^3 { 42 }Nil» | ||
jnthn | n: my $x = 0; say do while $x { 1 } | 12:28 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«Nil» | ||
12:28
MayDaniel left
|
|||
jnthn | n: my $x = 0; say do until $x { ++$x } | 12:29 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«Nil» | ||
jnthn | r: my $x = 0; say do until $x { ++$x } | ||
p6eval | rakudo 53daef: OUTPUT«1» | ||
jnthn | r: my $x = 0; say do until $x { ++$x; 2 } | ||
p6eval | rakudo 53daef: OUTPUT«1» | ||
jnthn | Here's the thing: S04 says: | ||
The value of a loop statement is the list of values from each | |||
iteration. Each iteration's value is returned as a single "argument" | 12:30 | ||
object. See L<S02> for a long definition of argument, but in short, | |||
it's either an ordinary object or a parcel containing multiple values. | |||
There's not a single spectest match for do while/do repeat/do until/do loop. | 12:32 | ||
moritz | hrmpf | 12:33 | |
I can see how that is consistent with for loops, but I don't know how useful it is | 12:34 | ||
jnthn | Either way, it doesn't change that the loop body should be in sink context. | ||
moritz | erm | 12:35 | |
jnthn | er, wait | ||
moritz | if the values are collected, they aren't in sink context | ||
jnthn | Right | ||
moritz | unless the loop itself is in sink context | ||
jnthn | *nod* | ||
argh | |||
Every time I fix something in this branch, it breaks more things. | 12:36 | ||
moritz | I know that feeling :( | ||
lizmat | just for my sanity: what is the difference between sink and void context? | ||
moritz | lizmat: the name | 12:37 | |
lizmat | aha, ok | ||
I guess sink is easier to type than void :-) | |||
12:40
bowtie joined
|
|||
dalek | pan style="color: #395be5">perl6-examples: 562f7bd | (L. Grondin)++ | rosalind/nwck-grondilu.pl: [rosalind] NWCK |
12:42 | |
felher | masak++ #nice post about longest token matcing :) | ||
dalek | p: 03aa465 | jnthn++ | src/ops/nqp.ops: Make nqp::isconcrete safe on PMCs. |
12:45 | |
kudo/qast-sink-1: 63659db | jnthn++ | src/Perl6/ (2 files): Fix explosions when trying to sink typevars. |
12:46 | ||
kudo/qast-sink-1: 469768f | jnthn++ | src/Perl6/Actions.pm: Ensure loop bodies are sunk. In the future we need to implement the non-sink-context loop stuff, but since it's never worked before (except for 'for' of course) and is untested, it's fine to put that aside for now. |
13:03 | ||
jnthn | moritz: OK, things look a bit better now. | ||
moritz: At lesat S02 and S03 tests seem clean. | |||
moritz: And all the failing date/calendar related ones no longer fail. | |||
lizmat | r: my $a= sub { say "foo" }; $a.perl | 13:05 | |
p6eval | rakudo 53daef: ( no output ) | ||
lizmat | r: my $a= sub { say "foo" }; say $a.perl | ||
p6eval | rakudo 53daef: OUTPUT«sub() { ... }» | ||
lizmat | is that correct that the output just has a … in there? | 13:06 | |
jnthn | To do otherwise would mean that we have to carry around the entire source code in the compiled output. | ||
So yes, it's working as intended. | 13:07 | ||
Or at least, as *I* intended. :) | |||
lizmat | fair enough... | 13:08 | |
just discussing ovid's use of B::Deparse for his Perl 5 code deduplication module that he's working on | |||
and I was wondering how that would work in Perl 6 | |||
jnthn | In Perl 6 we should probably be building such things at the AST level. | 13:09 | |
moritz: ooh, eek | 13:10 | ||
moritz: When we sink "try", we sink the exception that gets caught in the catchless case, it seems | |||
moritz: And that then gets thrown, iiuc. | |||
moritz: That seems to be the issue in the S04-phasers/next.t anyways... | 13:12 | ||
lizmat | jnthn: doesn't the debugger do something like that? | 13:17 | |
jnthn | moritz: Yes, the debugger works off the AST | 13:18 | |
er | |||
lizmat: ^^ | |||
lizmat makes mental note to look at the debugger guts some more | 13:19 | ||
jnthn | moritz: Need to go do other stuff for a bit now, but hope those commits help get sink further along :) | 13:20 | |
lizmat: The debugger isn't terribly much code. | 13:21 | ||
lizmat | jnthn: indeed…. and probably the basis for a lot of other nice things... | 13:22 | |
moritz | jnthn: ok, thanks for the sinking so far :-) | 13:41 | |
will look a bit more at it soonish, though I don't know yet when | |||
13:41
MayDaniel joined
13:44
sizz left,
lizmat left,
Liz joined,
Pleiades` left
13:45
Liz is now known as Guest13393
13:48
sizz joined
13:50
Pleiades` joined
14:59
Guest13393 is now known as lizmat
|
|||
lizmat | r: macro marco { die 1 }; say marco | 15:09 | |
p6eval | rakudo 53daef: OUTPUT«===SORRY!===1at /tmp/Bu8sEMKkwA:1------> » | ||
lizmat | r: macro marco { die 1 } | ||
p6eval | rakudo 53daef: ( no output ) | ||
lizmat | r: macro marco { die 1 }; marco | 15:10 | |
p6eval | rakudo 53daef: OUTPUT«===SORRY!===1at /tmp/d8ep3hPwwl:1------> » | ||
jnthn | hmm, that location marker is LTA | 15:12 | |
lizmat was just going through some old perl6-compiler mails | 15:15 | ||
Woodi | hallo :) | 15:25 | |
just found new version of blue screen :) en.wikipedia.org/wiki/File:BSoD_in_Windows_8.png | 15:26 | ||
lizmat | fwiw, I've just downloaded a fresh copy of rakudo from github and it compiles and installs ok on Mac OSX | 15:29 | |
I assume there was some fix done (the git revert was not necessary) | 15:30 | ||
15:34
spider-mario left
|
|||
moritz | only 14 test files failing in qast-sink-1, jnthn++ | 16:02 | |
Woodi | is something like "partial evaluation" en.wikipedia.org/wiki/Partial_evaluation considered in Perl6 ? | 16:13 | |
moritz | I guess I know the reason for most of the failures in the sink branch | 16:18 | |
nested loops aren't executed the way you'd expect them to | |||
./perl6 -e 'for ^2 { .say; for <a b> { .say } } | |||
0 1 a b a b | |||
16:19
MayDaniel_ joined
|
|||
skids | Woodi: I would suspect it is on many levels. It's a rather broad concept. | 16:21 | |
jnthn | moritz: oooh. Hm. | 16:22 | |
16:22
MayDaniel left
|
|||
jnthn | That is a bit of an issue if you're evaluating the things for their side-effects... | 16:22 | |
Woodi | I just wonder if binary for four operation calculator with console IO still contains hashes, evals, methods... | 16:23 | |
lizmat | nr: sub foo { our $bar = 3 }; foo; say our $bar | 16:24 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«3» | ||
..rakudo 53daef: OUTPUT«Any()» | |||
lizmat thinks rakudo is right | 16:25 | ||
Woodi | rn: say our $bar | ||
p6eval | rakudo 53daef, niecza v24-5-g599cbcb: OUTPUT«Any()» | ||
Woodi | rn: say my $bar | ||
p6eval | niecza v24-5-g599cbcb: OUTPUT«Potential difficulties: $bar is declared but not used at /tmp/bMWyVtb4jD line 1:------> say my ⏏$barAny()» | ||
..rakudo 53daef: OUTPUT«Any()» | |||
Woodi | n: my $bar; say $bar | 16:26 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«Any()» | ||
Woodi | shouldn't it say empty string ? | ||
jnthn | No | 16:27 | |
lizmat | my understanding is that "our" is lexically scoped, even though it is referring to a package variable | ||
our is that too perl5ish? | |||
s/our/or/ | 16:28 | ||
jnthn | lizmat: our gives you a lexically scoped alias to a package-scoped variable. | ||
our $bar # like my $bar := OUR::<$bar> | 16:29 | ||
lizmat | ah, so you're saying the our inside the sub is an alias to the same package var outside | ||
and so that rakudo *is* wrong in this example... | 16:30 | ||
ok, gotcha | 16:32 | ||
jnthn | lizmat: Um, I didn't say Rakudo was wrong. | 16:33 | |
They're both aliases to the same thing in the package. | |||
Thus "alias" :) | |||
Really it's just binding. | 16:34 | ||
lizmat | but the assignment in foo() should be visible outside, no? | ||
jnthn | Oh...I misread the output | ||
Then I guess Rakudo gets it wrong | |||
Which isn't so surprising since it doesn't even try to make our @foo and our %bar work... | 16:35 | ||
lizmat | ah, ok | ||
jnthn | One of those "nobody really seems to care about it so much as they care about other things so it never makes the top of the todo list" things :) | ||
lizmat | nr: sub foo { our $bar = 3; return $bar }; say foo | ||
p6eval | rakudo 53daef, niecza v24-5-g599cbcb: OUTPUT«3» | ||
lizmat | nr: sub foo { our $bar = 3; return $bar }; say foo; say $bar | 16:36 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«===SORRY!===Variable $bar is not predeclared at /tmp/qaO7IGQasE line 1:------> r $bar = 3; return $bar }; say foo; say ⏏$barUnhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1443… | ||
..rakudo 53daef: OUTPUT«===SORRY!===Variable $bar is not declaredat /tmp/u4ayQ3eRkA:1------> ar = 3; return $bar }; say foo; say $bar⏏<EOL>» | |||
lizmat | nr: sub foo { our $bar = 3; return $bar }; say foo; say $<bar> | 16:37 | |
p6eval | rakudo 53daef, niecza v24-5-g599cbcb: OUTPUT«3Any()» | ||
jnthn | $<bar> means $/<bar> | 16:39 | |
lizmat | ack | ||
nr: sub foo { our $bar = 3; return $bar }; say foo; say OUR::<$bar> | |||
p6eval | rakudo 53daef, niecza v24-5-g599cbcb: OUTPUT«33» | ||
16:39
zby_home joined
16:58
birdwindupbird left
17:12
fgomez left
|
|||
skids | r: my $f = 0x9876543210; int($f).say; # will native types eventually coerce, or not, or spec TBD? | 17:13 | |
p6eval | rakudo 53daef: OUTPUT«invoke() not implemented in class 'int' in block at /tmp/_Nz5A6oCW5:1» | ||
jnthn | I suspect it'll be too surprising for them not to. | 17:14 | |
Need to nail down the exact semantics, however. | |||
skids | good. but given they are weird I thought "better ask about that" | ||
17:17
lizmat left
|
|||
skids | .oO(maybe the natives should actually have some extra asm-like methods specced, e.g. rol, ror, clz) |
17:19 | |
17:20
cognominal left
17:25
fgomez joined
|
|||
GlitchMr | Is viv acronym for viv is viv? | 17:26 | |
skids | roman numerals | 17:27 | |
17:33
PacoAir left
17:34
PacoAir joined
|
|||
flussence | masak++ # LTM post | 18:13 | |
18:13
MayDaniel_ left
|
|||
dalek | osystem: 8f2f019 | flussence++ | META.list: Add a few testing modules |
18:13 | |
flussence | there, have an early christmas present :) | ||
18:16
[particle]1 joined,
am0c joined
|
|||
skids | flussence++ | 18:18 | |
18:19
am0c left,
am0c joined
|
|||
skids | flussence: In Sum I have some (currently Panda-breaking) test code that checks that code in the manpage actually works. As part of that, I had to hack together an IO redirect that compares what a code chuck sends to stdio to expected output. Might be worth having. | 18:21 | |
flussence | thanks, I'll take a look | 18:22 | |
skids | t/siphash.t will have it | 18:23 | |
18:38
hash_table joined
18:54
bbkr_ joined
18:57
spider-mario joined
19:03
pecastro joined
|
|||
sorear | good * #perl6 | 19:16 | |
19:18
cognominal joined
|
|||
cognominal | \o drinking beer and chartreuse :) txh to duckduckgo | 19:22 | |
jnthn | o/ sorear, cognominal | 19:23 | |
19:36
SamuraiJack left
19:45
grondilu left
|
|||
sorear | o/ jnthn | 19:46 | |
masak | good evening, #perl6 | 19:54 | |
sorear | o/ masak | 19:58 | |
jnthn works on l'advent post | 20:00 | ||
cognominal | Hqllo from Wendy | ||
jnthn | .oO( If she pronounces it hqllo, the chartreuse must be going well :P ) |
20:01 | |
cognominal | Getting ouy of the pub . See u later. | 20:03 | |
20:03
cognominal left
|
|||
bbkr_ | as of today JSON::RPC in Perl6 implements whole specification (including Batches and Notifications) :) | 20:33 | |
moritz | \o/ | 20:35 | |
bbkr_: please blog about it! | 20:36 | ||
20:37
noggle left
|
|||
bbkr_ | moritz: good idea, there are few cool Perl6 features used to achieve that. for example meta fallback, finding method and validating params on metaobject level (find_method, cando), gather-taking, etc. I'll try to write blog post this week. | 20:39 | |
20:43
cognominal joined
|
|||
bbkr_ | can someone bump jsonrpc module version in Star repo? | 20:44 | |
20:44
noggle joined
|
|||
moritz | bbkr_: that's usually done before a release anyway | 20:46 | |
bbkr_ | moritz: ok, I was not sure about it - for example 2012.10 had no updates. | 20:48 | |
20:53
GlitchMr left,
cognominal left
|
|||
jnthn | Tomorrow's advent post written and scheduled. | 20:56 | |
FROGGS_ | jnthn:++ | ||
moritz | jnthn++ | ||
FROGGS_ is looking forward to it | |||
what's the topic? | 20:57 | ||
jnthn | Oh, a boring topic | ||
quotes :) | |||
am0c | jnthn++ | ||
jnthn | r: say 'omg single quotes' | ||
:) | |||
p6eval | rakudo 53daef: OUTPUT«omg single quotes» | ||
masak | at some point I'd like us to have a deep discussion about heredocs, indentation, and interpolation. | 20:58 | |
FROGGS_ | wow, a few lines about quotes, nice ;o) | ||
masak | but I'd like TimToday to be in it. | ||
anyway, jnthn++ for writing advent post. | |||
20:59
kurahaupo joined
21:04
yakshavr joined
21:07
ggoebel_ joined
21:14
am0c left
|
|||
bbkr_ | where does panda keep module list now? ~/.panda is not present anymore | 21:14 | |
FROGGS_ | maybe in the rakudo/install/... ? | 21:18 | |
r: my $s = '{ .substr(0,5) eq "cpan:"}'; $_ = 'cpan:abc'; say eval $s | 21:19 | ||
p6eval | rakudo 53daef: OUTPUT«No such method 'substr' for invocant of type 'Any' in block at eval_0:1 in at eval_0:1 in sub eval at src/gen/CORE.setting:579 in block at /tmp/iYohYq6tiM:1» | ||
FROGGS_ | how do I set the $_ for that block? | ||
flussence | r: my $s = '-> $_ { .substr(0,5) eq "cpan:"}'; (eval $s)('cpan:abc') | 21:21 | |
p6eval | rakudo 53daef: ( no output ) | ||
flussence | r: my $s = '-> $_ { .substr(0,5) eq "cpan:"}'; say (eval $s)('cpan:abc') | ||
p6eval | rakudo 53daef: OUTPUT«True» | ||
FROGGS_ | flussence: thanks! | 21:22 | |
jnthn | moritz: Hm, it's not immediately obvious how to fix the nested loops issue... | ||
tadzik | bbkr_: the CUSTOM_LIB thing | 21:23 | |
parrot/languages/perl6/site/panda or something like this | 21:24 | ||
jnthn | moritz: oh, mebbe I know... | 21:25 | |
bbkr_ | tadzik: thanks. panda was not updating my GH changes, then after reading source code i fount that it fetches from feather.perl6.nl:3000/projects.json ad not in realtime from GitHub | 21:26 | |
found* | |||
tadzik | bbkr_: yes, it gets the modules list from there | 21:27 | |
but if you 'panda install' a module, it gets it straight from GH | 21:28 | ||
if it knows it | |||
21:35
zby_home left
21:37
cognominal joined
|
|||
bbkr_ | tadzik: I've entered incorrect module name in "depends" so it breaks at dependencies resolving before fetching module from GH. no big deal, i'll just wait for rebuild :) | 21:38 | |
masak | rakudo could use some coloring-up of its error messages in the IRC logs. just like STD and niecza. | 21:45 | |
jnthn | moritz: I'm pretty sure Rakudo emits the same set of escape codes... | 21:47 | |
er | |||
^masak | |||
masak | yes. | ||
me too. | |||
so it's something in the backlog generator needs to change. | |||
'night, #perl6 | |||
dalek | kudo/qast-sink-1: d4bf9e4 | jnthn++ | src/core/ (3 files): Fix nested for-loop side-effects in sink context. |
21:49 | |
jnthn | moritz: Well, just pushed something that fixes your example and at least one of the failing tests. | ||
21:54
cognominal left
21:55
cognominal joined
21:58
lichtkind joined,
PacoAir left
|
|||
lue | hello world o/ | 22:07 | |
lichtkind | hai lue | ||
22:08
cooper left,
cooper_ joined
|
|||
rindolf | lue: hello. | 22:08 | |
OK, I think I'll read some Advent Calendar entries and listen to a song and then go to sleep. | 22:09 | ||
lue | jnthn: thinking about the NQPParametricRoleHOW bug I discovered, can knowhows inherit anything? | ||
jnthn | lue: No. | ||
That's the point of them. | |||
We use them to implement stuff like inheritance. | 22:10 | ||
lue | Didn't seem like it from my glance at them yesterday. | ||
(your answer to my question, that is) | |||
jnthn | I'm a bit surprised that the attributes they have aren't just conveyed to the target class and the fixing up happens there | ||
Oh, but maybe it's not set up that way... | 22:11 | ||
lue | (fwiw I had yet to apply the Children role to any classes. I wanted to see if what I did so far would compile.) | ||
jnthn | If you add something to the role implementation then really it just needs to play pass the parcel. | 22:13 | |
That is, it doesn't actually set any mappings up | |||
It just passing them along to the class | |||
That's done by the applier | |||
It may not be too hard to figure out how to do that. | 22:14 | ||
lichtkind | hej jnthn | ||
jnthn | ahoj, lichtkind | 22:15 | |
22:15
cooper_ is now known as cooper,
cooper left,
cooper joined
22:16
spider-mario left,
countley joined
|
|||
rindolf | jnthn: perl6advent.wordpress.com/2012/12/0...-debugger/ - nice post - the perl 6 debugger seems cool. | 22:18 | |
Good night, everybody. | |||
Sleep well. | |||
Happy Hanukkah. | |||
FROGGS_ | gnight rindolf | 22:19 | |
jnthn | rindolf: Yes, it's been fun to make and see people use :) | 22:20 | |
rindolf: 'night | 22:21 | ||
rindolf | OK, bye. | 22:22 | |
22:22
rindolf left
22:24
grondilu joined
|
|||
grondilu | rn: say exp(pi) - pi # xkcd.com/217 | 22:25 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«19.999099979189467» | ||
..rakudo 53daef: OUTPUT«19.9990999869983» | |||
lue | am I seeing that right on NQPClassHOW.pm:449? publish_parrot_vtablee_handler_mapping (that extra e in vtable) | ||
jnthn | lue: yes, typo (and the op itself is typo'd...) | 22:26 | |
Time for some rest here & | 22:27 | ||
lue | I could swear the error I got contained a non-typo'd version of that name, but I could be wrong. | ||
goodrest jnthn o/ | |||
lichtkind | jnthn lot has changed | 22:28 | |
lue | (nvm, the error was for a similarly named method) | 22:29 | |
dalek | blets: 6a19a29 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt: fixing utf in B |
22:30 | |
lichtkind | jnthn: is there any major internal change in rakudo in last 1,5y that i dont find in your blog? | 22:31 | |
22:31
att__ left
|
|||
tadzik | bbkr_: ah, gotcha | 22:32 | |
lue | .oO(Since when did nqp generate windows-style filepaths in its errors‽) |
22:35 | |
lichtkind | hej tadzik | 22:36 | |
tadzik | hej | ||
lichtkind | i back a bit | ||
sorear | hai lichtkind | 22:40 | |
lichtkind | :) | 22:41 | |
22:43
kaare_ left
|
|||
lichtkind | sorear: same to you any major niecza dev in last 1,5y i cant read somewhere? | 22:51 | |
sorear | niecza has only existed for 2,0y | 22:56 | |
so you're basically asking for the entire history of the project | |||
probably reading the docs/announce.* files is your best bet | |||
lichtkind | sorear: you mean all relevant is there? | 23:09 | |
sorear | maybe | 23:10 | |
23:11
hash_table left
|
|||
lichtkind | you should know :) | 23:11 | |
23:25
tokuhiro_ joined
23:54
cognominal left
|