»ö« 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. |
|||
00:15
kivutar left
00:17
skids joined
00:18
benabik joined
00:31
tokuhiro_ left,
tokuhiro_ joined
|
|||
dalek | pan style="color: #395be5">perl6-examples: 1af516d | (Felix Herrmann)++ | euler/prob018-felher.pl: [euler] add solution for problem 18 |
00:33 | |
[Coke] | for masak: | 00:34 | |
-> (19:33) From Strider, to random: | |||
- You have a problem. You think "I know, I'll use bits." Now you have 10 | |||
- problems. | |||
dalek | pan style="color: #395be5">perl6-examples: b55835e | (Felix Herrmann)++ | euler/ (2 files): [euler] add solution for problem 67 |
00:35 | |
00:43
Kharec left
00:51
popl left
00:55
leont left
00:56
anuby joined
|
|||
sorear | o/ anuby | 00:59 | |
anuby | hi | 01:00 | |
i merely come office | 01:03 | ||
01:07
hypolin joined
01:10
atrodo left
01:32
bowtie left
01:33
ifim joined
|
|||
[Coke] | rn: my $u = "\x[4444,4445]"; say $u.codes; | 01:44 | |
p6eval | rakudo e2f2dc, niecza v24-5-g599cbcb: OUTPUT«2» | ||
[Coke] | rn: my $u = "\x[4444,4445]"; say $u.graphs; | ||
p6eval | niecza v24-5-g599cbcb: OUTPUT«Unhandled exception: Unable to resolve method graphs in type Str at /tmp/_Xn7jXVahd line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 4208 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4209 (module-CORE @ 580)  at /home/… | ||
..rakudo e2f2dc: OUTPUT«No such method 'graphs' for invocant of type 'Str' in block at /tmp/Gs_XKTdXkx:1» | |||
dalek | ast: 59f4e89 | coke++ | S0 (2 files): niecza fudge |
01:55 | |
ecza: fa7713b | coke++ | t/spectest.data: run fudged tests |
01:56 | ||
02:04
FROGGS_ joined
02:08
FROGGS left
02:09
kcwu left
02:22
kcwu joined
02:56
hypolin left
03:01
hypolin joined
03:08
noggle left
03:16
lue left
03:26
noggle joined
03:35
orafu left
03:37
noggle left
03:51
kcwu left
04:00
PacoAir left
04:03
ira joined
|
|||
ira | nick quester | 04:03 | |
04:04
ira left,
kcwu joined
04:06
ira joined
04:07
ira is now known as _quester
04:11
fgomez left
04:12
fgomez joined
|
|||
xenoterracide | hmm | 04:16 | |
my rakudo build doesn't include a perl6-debug | 04:17 | ||
TimToady | comes with star, seems | 04:19 | |
xenoterracide | so something I'd have to install after building from git | 04:20 | |
04:24
BaggioKwok joined
04:25
BaggioKwok left
04:36
Psyche^ joined
04:39
Patterner left,
Psyche^ is now known as Patterner
04:49
noggle joined
|
|||
xenoterracide | privatepaste.com/96e1f26c24 < what? | 04:49 | |
t/new.t .. No such method 'postcircumfix:<( )>' for invocant of type 'PseudoStash' | 04:50 | ||
04:52
sisar joined
|
|||
sorear | r: MY() | 04:52 | |
p6eval | rakudo e2f2dc: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&MY' called (line 1)» | ||
sorear | r: MY.() | ||
p6eval | rakudo e2f2dc: OUTPUT«invoke() not implemented in class 'MY' in block at /tmp/trToAqUHeX:1» | ||
sorear | r: MY::.() | ||
p6eval | rakudo e2f2dc: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'PseudoStash' in at src/gen/BOOTSTRAP.pm:852 in any at src/gen/BOOTSTRAP.pm:836 in block at /tmp/of3M7TE55C:1» | ||
doy | r: class A { }; my $fmn = "A"; my $impl = ::( $fmn ).new; say $impl | ||
p6eval | rakudo e2f2dc: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'PseudoStash' in at src/gen/BOOTSTRAP.pm:852 in any at src/gen/BOOTSTRAP.pm:836 in block at /tmp/BRbptseP1L:1» | ||
sorear | n: class A { }; my $fmn = "A"; my $impl = ::( $fmn ).new; say $impl | 04:53 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type PseudoStash at /tmp/C9vGvabk1E line 1 (mainline @ 6)  at /home/p6eval/niecza/lib/CORE.setting line 4208 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4209 (module-COR… | ||
sorear | what | ||
doy | rn: ::( "foo" ) | 04:55 | |
p6eval | rakudo e2f2dc: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'PseudoStash' in at src/gen/BOOTSTRAP.pm:852 in any at src/gen/BOOTSTRAP.pm:836 in block at /tmp/okXiWQ2ntX:1» | ||
..niecza v24-5-g599cbcb: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type PseudoStash at /tmp/PQWiNJPR7H line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4208 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4209 (module-COR… | |||
04:55
jdv79 joined
|
|||
xenoterracide | it does not like the whitespace | 04:56 | |
doy | rn: ::("foo") | ||
p6eval | rakudo e2f2dc: ( no output ) | ||
..niecza v24-5-g599cbcb: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] in <filen… | |||
doy | rn: ::("foo bar") | 04:57 | |
p6eval | rakudo e2f2dc: ( no output ) | ||
..niecza v24-5-g599cbcb: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] in <filen… | |||
sorear | n: class A { }; my $fmn = "A"; my $impl = ::($fmn).new; say $impl | 04:58 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«A.new(...)» | ||
sorear | xenoterracide++ | 04:59 | |
crazzy LTM bugs | |||
05:00
toebu left
|
|||
xenoterracide | youtu.be/kf0yQbrY9Pw < what? | 05:01 | |
jdv79 | i don't remember that being so blue | 05:02 | |
05:14
noggle left
05:16
skids left
05:19
telex left
05:20
Chillance joined,
telex joined
05:25
telex left
05:33
_quester left
05:38
telex joined,
kcwu left
05:43
quester_ joined
05:47
quester_ is now known as quester
05:55
hlin_laptop joined
05:56
hlin_laptop left
05:57
hypolin left,
Chillance left
05:58
hypolin joined
06:03
kaleem joined
06:04
xilo_ left
06:05
fgomez left,
noggle joined
06:06
hlin_laptop joined,
hypolin left
06:07
_jaldhar left
06:09
birdwindupbird joined
06:12
fgomez joined
06:17
SamuraiJack joined
06:21
GlitchMr joined
|
|||
GlitchMr | perl6advent.wordpress.com/2012/12/0...-debugger/ | 06:28 | |
phenny | GlitchMr: 04 Dec 23:23Z <japhb> tell GlitchMr Regarding SIGSEGV from run(), see Rakudo bug #115390 -- in my bench script, I've had to convert loops with multiple run() calls to multiple loops with only one run() call each (as the last statement in the loop block). | ||
GlitchMr | Why this isn't in 2012 category? | ||
I'll have to look into what's wrong with my only commit to Rakudo | 06:30 | ||
Perhaps I was abusing undefined behavior | 06:31 | ||
github.com/rakudo/rakudo/blob/0093...m#L167-178 | |||
06:36
FROGGS_ left
06:37
FROGGS_ joined
06:47
FROGGS_ left
06:48
FROGGS_ joined
06:51
cibs joined
07:04
FROGGS_ left
07:05
FROGGS joined
07:40
sisar left
07:42
fgomez left
07:43
hoelzro|away is now known as hoelzro
07:50
quester is now known as quester_
07:53
ifim left,
quester_ is now known as quester
08:09
GlitchMr left
08:11
kcwu joined
08:28
Kharec joined
08:31
quester left
08:35
Hor|zon left,
Hor|zon joined
08:45
kresike joined
|
|||
kresike | good morning all you happy perl6 people | 08:45 | |
FROGGS | morning kresike | 08:50 | |
kresike | FROGGS, o/ | 08:52 | |
08:54
fgomez joined
09:05
marloshouse left
09:10
augustus joined,
noggle_ joined,
noggle left
|
|||
augustus | hello, anybody hanging out here? | 09:11 | |
felher | Who wrote the 'project euler' blogpost? | ||
o/ augustus | |||
diakopter | augustus: what's up | 09:12 | |
augustus | well i just got the latest from git, it's been about a year since I did | 09:13 | |
wanted to check and see how some things were working, particularly phasers | |||
it seems like some things work better, but it's hard to tell since the old version doesn't run anymore I guess | |||
09:15
marloshouse joined
|
|||
sorear | hey augustus | 09:16 | |
augustus | yes sorear? | ||
felher | augustus: I can not comment on old versions not running anymore. But since you noted that you are interested in phasers -- there will be a perl6 advent calendar post on the fifteenth which is named 'Phasers set to stun: some neat use case'. You might want to read that :) | 09:17 | |
augustus | I will certainly, it is an important topic to me ;) Mostly I wanted to find out if there was more current documentation on them | ||
they seem to work about 50% or so? | 09:18 | ||
but it is hard to tell what is intended vs what is not working yet | |||
diakopter | augustus: I'm curious, why phasers | 09:19 | |
09:19
am0c left
|
|||
tadzik | augustus: how about perl6.org/compilers/features? | 09:19 | |
sorear | o/ tadzik | 09:20 | |
tadzik | bah. I found a screenshot from a project I once started, but I can't find the code anywhere :( | ||
sorear: o/ | |||
augustus | diakopter: features that promote correctness appeal to me, and phasers promote correctness ;) | ||
tadzik: I mean in the itty little details; phasers are *there* but don't always work as intended (?) | 09:21 | ||
tadzik | if they don't, it's a bug to be filed :) Any particular example>? | ||
FROGGS | IMO jnthn was working on phasers within the last two months and fixed stuff | 09:22 | |
tadzik | that's more of a fact than an opinion :) | ||
augustus | well for one, UNDO never triggers and KEEP doesn't trigger except when loop naturally loops. hard to tell when they are supposed to trigger | ||
FROGGS | augustus: see this for example: github.com/rakudo/rakudo/blob/nom/.../ChangeLog | 09:24 | |
augustus | FROGGS: thank you, I had looked at the latest changelog but should review further back | 09:25 | |
FROGGS | augustus: here are the spectests for phasers: github.com/perl6/roast/tree/master/S04-phasers | 09:26 | |
so you can see what is working | 09:27 | ||
augustus | FROGGS: Thank you, I will look through those to see how they are supposed to work | 09:30 | |
FROGGS | ya, but I dont see UNDO or KEEP there... | ||
maybe NYI | |||
09:31
am0c joined
|
|||
augustus | they have keep/undo, but only with respect to functions, not loops | 09:31 | |
and I'm guessing that the return value evaluating to True in a boolean context is what determines which gets run? | 09:32 | ||
although my expectation on KEEP/UNDO has to do with exceptions being thrown or not | 09:33 | ||
09:33
fhelmberger joined
|
|||
sorear | loops are a kind of function. | 09:34 | |
niecza has KEEP and UNDO but not fail. I don't like fail. | |||
09:35
wamba joined
|
|||
augustus | sorear: what I meant was that the test code provided does not included a loop, and I have been unabel to trigger an UNDO within a loop. | 09:36 | |
09:39
dayangkun joined
|
|||
sorear | n: for 1..10 { UNDO { say "undo called" }; die 5 } | 09:39 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«undo calledUnhandled exception: 5 at <unknown> line 0 (ExitRunloop @ 0)  at /tmp/DE9FeblqRa line 1 (ANON @ 5)  at /tmp/DE9FeblqRa line 1 (mainline @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 4208 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE… | ||
09:39
dayangkun left
|
|||
sorear | n: for 1..10 { UNDO { say "undo called" }; last } | 09:39 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«undo called» | ||
jnthn | phenny: tell GlitchMr looks like somebody already fixed my category error | ||
phenny | jnthn: I'll pass that on when GlitchMr is around. | ||
bbkr | jnthn++ # excellent post about debugger | 09:40 | |
jnthn | augustus: It's not about true vs false, it's about defined/undefined. | 09:41 | |
r: for 1..10 { KEEP { say "kept" }; UNDO { say "undid" }; $_ %% 2 ?? 1 !! Mu } | 09:42 | ||
p6eval | rakudo e2f2dc: OUTPUT«undidkeptundidkeptundidkeptundidkeptundidkept» | ||
augustus | jnthn: ok, that is good to know. | ||
jnthn: I take it Mu is undefined? | 09:43 | ||
jnthn | augustus: Well, undefined values in Perl 6 are represented by type objects, so you can have typed undefined values. But Mu is the most general kind of undefined, yes. | 09:44 | |
sorear | Mu is undefined | ||
Any is undefined | |||
5 is not undefined | |||
jnthn | But Int is | 09:45 | |
:) | |||
sorear | augustus' question is quite cromulent if you interpret "undefined" as an adjective :p | ||
diakopter | n: Int.defined.say | ||
p6eval | niecza v24-5-g599cbcb: OUTPUT«False» | ||
augustus | ok, so I do I get next/last to return undefined? next Mu doesn't work | ||
sorear | augustus: Did you see the n: example I gave? | ||
diakopter | r: Int.defined.say | ||
p6eval | rakudo e2f2dc: OUTPUT«False» | ||
sorear | n: for 1..10 { UNDO { say "undo called" }; next } # augustus, read this | 09:46 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«undo calledundo calledundo calledundo calledundo calledundo calledundo calledundo calledundo calledundo called» | ||
augustus | sorear: yes sorry, I saw. I think it may be a difference between nicza and rakudo? | ||
jnthn | sorear: Is it explicitly spec'd to do that? | ||
augustus | it seems that next/last skip the entire leave chain | 09:47 | |
jnthn | sorear: Or more a case of "it's the thing that makes most sense"? | ||
nr: for 1..10 { LEAVE { say "undo called" }; next } | |||
p6eval | niecza v24-5-g599cbcb: OUTPUT«undo calledundo calledundo calledundo calledundo calledundo calledundo calledundo calledundo calledundo called» | ||
..rakudo e2f2dc: ( no output ) | |||
jnthn | um, that's certainly wrong. | 09:48 | |
sorear | augustus: I did not realize that was a rakudo-specific question | ||
augustus | sorry, I have rakudo, but my question relates to how thigns are supposed to be | ||
i don't know for some if it's intended or not | |||
jnthn | augustus: Niecza gets this one right, Rakudo has it wrong in this particular case. | ||
augustus | ok I see | 09:49 | |
sorear | jnthn: I think next is specced to take a return value in at least one case (not the obvious one) | ||
jnthn | r: loop { LEAVE { say "undo called" }; next } | ||
p6eval | rakudo e2f2dc: OUTPUT«(timeout)» | ||
jnthn | At least it's consistently wrong... | ||
sorear | jnthn: so I would conjecture that plain next uses Nil, which is undefined | ||
jnthn | sorear: OK, makes sense. | 09:50 | |
sorear learned a new name recently: penumbral argument | |||
augustus | Another quick question: if a block exits by an exception being thrown, that will be undefined and trigger UNDO? I get an error about &throw being an undefined function so I don't know how to throw an exception | ||
sorear | augustus: exceptions are thrown by "die", and that absolutely calls UNDO | 09:51 | |
augustus | when I tried die, the program just ended | ||
is "throw" no longer being used then? | |||
sorear | did you have a CATCH in scope? | ||
augustus | no | ||
sorear | throw was never used in Perl | 09:52 | |
augustus | hmm I googled and found some perl6 thing using throw lol | ||
sorear | I think you may need CATCH or try to get a stack unwind | ||
r: LEAVE say "bye"; die "cow" | 09:53 | ||
p6eval | rakudo e2f2dc: OUTPUT«bye» | ||
sorear | r: UNDO say "bye"; die "cow" | ||
p6eval | rakudo e2f2dc: OUTPUT«bye» | ||
sorear | maybe some p6eval weirdness | ||
augustus | ok with a CATCH, die does what I'd expect, thank you. | 09:55 | |
can you explain how CONTROL works? It triggers for me on next/last, but I when I say $_ it doesn't tell me what triggered it | 09:56 | ||
jnthn guesses he should take care of $dayjob tasks before looking into the next/last... | |||
10:00
hlin_laptop left,
woosley joined
|
|||
hoelzro | updated gist on my advent calendar post: gist.github.com/4205120 | 10:02 | |
the more I think about this, the more I wonder if this should be a series of posts | |||
maybe the advent calendar should just whet the reader's appetite? | |||
sorear | augustus: CONTROL is triggered on next/last and tells the loop what to do. | 10:04 | |
r: loop { CONTROL say $_; last } | |||
p6eval | rakudo e2f2dc: OUTPUT«===SORRY!===Missing blockat /tmp/ys0vY66TA7:1» | ||
sorear | r: loop { CONTROL { say $_ }; last } | ||
p6eval | rakudo e2f2dc: OUTPUT« in block at src/gen/CORE.setting:429 in block at src/gen/CORE.setting:486 in block at /tmp/mJRETvsdBp:1» | ||
sorear | r: loop { CONTROL { say $_.PARROT }; last } | 10:05 | |
p6eval | rakudo e2f2dc: OUTPUT«No such method 'PARROT' for invocant of type 'X::AdHoc' in block at /tmp/OyqE99KUBF:1 in block at /tmp/OyqE99KUBF:1» | ||
sorear | r: loop { CONTROL { say $_.WHAT }; last } | ||
p6eval | rakudo e2f2dc: OUTPUT«X::AdHoc()» | ||
sorear | r: loop { CONTROL { say $_.keys }; last } | ||
p6eval | rakudo e2f2dc: OUTPUT«0» | ||
sorear | r: loop { CONTROL { say $_.^methods }; last } | ||
p6eval | rakudo e2f2dc: OUTPUT«message Numeric <anon> backtrace throw rethrow resumable resume fail is-compile-time Str gist» | ||
sorear | r: loop { CONTROL { say $_.message }; last } | ||
p6eval | rakudo e2f2dc: OUTPUT«» | ||
sorear | r: loop { CONTROL { say $_.perl }; last } | ||
p6eval | rakudo e2f2dc: OUTPUT«X::AdHoc.new(payload => "")» | ||
sorear | My guess is that rakudo is cheating a bit on CONTROL exceptions because they are so common. | 10:06 | |
Niecza does. | |||
10:07
am0c left
|
|||
augustus | what else generates control exceptions? I wouldn't think next/last were so common. And is there some element of that output which I can use to distinguish between next/last? | 10:07 | |
or rather I guess, since you suspect they might be cheating a little, do you know if it's intended that $_ can be examined to make this distinction? | 10:09 | ||
10:10
hoelzro is now known as hoelzro|away
10:11
hoelzro|away is now known as hoelzro
10:14
LoRe left
|
|||
sorear | augustus: next, last, return, redo, goto, leave, proceed, succeed (and thus when) | 10:14 | |
10:14
leont joined
10:15
LoRe joined
|
|||
sorear | n: loop { CONTROL { say $_.perl } ; last } | 10:15 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object at GState..ctor (Niecza.Compartment setting, System.String orig, Niecza.P6any actions) [0x00000] in <filename unknown>:0  at Cursor..ctor (Niecza.Co… | ||
sorear | n: loop { last } | ||
p6eval | niecza v24-5-g599cbcb: ( no output ) | ||
sorear | n: for 1..10 { CONTROL { say $_.perl } ; last } | ||
p6eval | niecza v24-5-g599cbcb: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object at GState..ctor (Niecza.Compartment setting, System.String orig, Niecza.P6any actions) [0x00000] in <filename unknown>:0  at Cursor..ctor (Niecza.Co… | ||
sorear | n: for 1..10 { CATCH { say $_.perl } ; last } | ||
p6eval | niecza v24-5-g599cbcb: ( no output ) | 10:16 | |
flussence | rn: class H { has $!b = 1; method foo { say $!b } }; H.new(b => 2).foo; | ||
sorear | n: for 1..10 { CONTROL { say "moo" } ; last } | ||
p6eval | rakudo e2f2dc, niecza v24-5-g599cbcb: OUTPUT«1» | ||
niecza v24-5-g599cbcb: OUTPUT«moo» | |||
sorear | n: for 1..10 { CONTROL { say "moo$_" } ; last } | ||
flussence | am I doing something completely wrong there? | ||
p6eval | niecza v24-5-g599cbcb: OUTPUT«(timeout)» | ||
10:17
rindolf joined
|
|||
sorear | n: my $c; for 1..10 { CONTROL { $c=$! } ; last }; say $c | 10:17 | |
p6eval | niecza v24-5-g599cbcb: OUTPUT«Any()» | ||
felher | jnthn++ # nice debugger blogpost | ||
sorear | n: my $c; for 1..10 { CONTROL { $c=$_ } ; last }; say $c.perl | ||
p6eval | niecza v24-5-g599cbcb: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object at GState..ctor (Niecza.Compartment setting, System.String orig, Niecza.P6any actions) [0x00000] in <filename unknown>:0  at Cursor..ctor (Niecza.Co… | ||
sorear | n: my $c; for 1..10 { CONTROL -> $x { $c=$x } ; last }; say $c.perl | ||
p6eval | niecza v24-5-g599cbcb: OUTPUT«===SORRY!===Missing block at /tmp/nZ2cN8ECkV line 1:------> my $c; for 1..10 { CONTROL ⏏-> $x { $c=$x } ; last }; say $c.perlParse failed» | ||
sorear | augustus: at one point in the past you could inspect $_ in CONTROL in Niecza, but that feature seems broken | 10:18 | |
augustus | ok, thanks for all your help. | ||
sorear | augustus: it was never very useful, the value in $_ was just a small integer code like 3 for last :D | ||
augustus: I think eventually there should be spec for this | |||
augustus | well if it was well defined | ||
jnthn | Maybe they should be typed exceptions... | ||
augustus | yes so long as it's specced and you can count on it | ||
jnthn | X::Control::Next etc. | ||
Guess moritz++ may have a take on this. :) | 10:19 | ||
augustus | i would vote for that | ||
if I had a vote lol ;) | |||
if they were typed, then would CONTROL just be an alias for CATCH then? | |||
sorear | flussence: private attributes cannot be assigned in constructors or inspected using .perl, because it makes Damian sad | ||
jnthn | augustus: No | 10:20 | |
flussence | sorear: oh, thanks | ||
10:20
bloonix joined
|
|||
augustus | jnthn: because control exceptions aren't like other exceptions I take it? | 10:20 | |
sorear | flussence: if people keep coming in here with that question I'll revert the spec change | ||
p6l thinks purity of the "private attribute" concept trumps usability | 10:21 | ||
I acquiesced then, but my regret only grows | 10:22 | ||
flussence | it's definitely not following POLS. I think I just wasted 2 hours looking for a bug that wasn't there... | ||
augustus | sorear: when you are posting ouput from niecza is that from an online evaluator, or are you copy and pasting from your local machine? | 10:24 | |
jnthn | augustus: Something like that. | ||
augustus | jnthn: ok some exceptions are more equal than others lol :) | 10:25 | |
sorear | augustus: look carefully, the replies are not coming from sorear... | ||
jnthn | sorear: Not being able to refactor your privates safe in the knowledge you aren't breaking API is also a usability issue. | 10:26 | |
augustus | yes, I saw that, which is what made me suspect an online evaluator, but I wasn't sure | ||
ohh is that what the n: does? run in niecza? | |||
and r: rakudo I'm guessing lol | 10:27 | ||
flussence | jnthn: would be helpful if it at least threw a warning there to say that code's wrong... | ||
sorear | augustus: yes! you can use it too! | 10:28 | |
10:28
leont left
|
|||
augustus | i presume it's considered uncouth to run something that generates more than a couple lines of output? | 10:30 | |
10:30
hoelzro is now known as hoelzro|away
|
|||
flussence | nah | 10:30 | |
sorear | augustus: it's automatically truncated to one line | ||
flussence | r: say 'a' x 3000 | ||
p6eval | rakudo e2f2dc: OUTPUT«aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa… | ||
augustus | ohh ok good, don't want to be a nuisance lol | 10:31 | |
sorear | p: say $*PERL | ||
p6eval | pugs: OUTPUT«» | ||
sorear | p: say $*VM | 10:32 | |
p6eval | pugs: OUTPUT«» | ||
sorear | p: say GLOBAL:: | ||
p6eval | pugs: OUTPUT«***  Unexpected end of input at /tmp/M2ELxMXJih line 1, column 13» | ||
sorear | anyway, I had better sleep | ||
be bold! | |||
& | |||
jnthn | .oO( I normally lean towards being italic myself... ) |
10:33 | |
augustus | thanks for all your help sorear | 10:34 | |
10:37
_jaldhar joined
|
|||
masak | g'antenoon, #perl6 | 10:39 | |
FROGGS | hi masak | ||
masak | [Coke]: [backlog] ooh, hadn't seen the "bits -> 10 problems" variation before :) #autopun | 10:40 | |
jnthn | masak: There's a bug for you to file in le backlog too :) | ||
masak | :) getting there. | 10:42 | |
nr: for 1..10 { LEAVE { say "undo called" }; next } | |||
p6eval | niecza v24-5-g599cbcb: OUTPUT«undo calledundo calledundo calledundo calledundo calledundo calledundo calledundo calledundo calledundo called» | 10:43 | |
..rakudo e2f2dc: ( no output ) | |||
masak | hm, may I change the text here? it's confusing. :P | ||
nr: for 1..10 { LEAVE { say "x" }; next } | |||
p6eval | niecza v24-5-g599cbcb: OUTPUT«xxxxxxxxxx» | ||
..rakudo e2f2dc: ( no output ) | |||
masak submits rakudobug | |||
I'm sure I could sit down one evening with the phasers, go through S04 carefully, and shake out two or three bugs ;) | 10:44 | ||
sorear: I'm fine with reverting the pure privateness of private attributes, but I think it should be accompanied by a proper discussion, just like last time. | 10:48 | ||
jnthn for one is not fine with it. | 10:49 | ||
augustus | masak: not sure if this is strictly related to phasers or if it's a bug, we were also discussing how/whether next/last could trigger UNDO (for example saying next Mu;) and how you could tell which CONTROL exception triggered from within a CONTROL phaser | ||
masak | sorear: keep in mind that even *without* .perl and constructor arguments, Perl 6 leans heavily to protecting the private attributes. you can't even reach them in a derived class or 'augment' re-declaration. | 10:50 | |
augustus: yeah, it's possible that that needs clarification, actually. | |||
augustus | personally, I would want a way to do next/last with a rollback, but would expect the default to KEEP. it seems the rakudo bug is skipping the entire LEAVE sequence if that helps | 10:52 | |
jnthn | LEAVE and KEEP vs UNDO are handled it the same place, so if it's skipping one of them it'll be skipping the lot. | ||
masak | leaving a block should always trigger LEAVE, and exactly one of KEEP/UNDO. | 10:53 | |
jnthn | Right. | ||
augustus | ok | ||
masak | (that's not to say that an individual block can't have several phasers of these types, of course) | 10:54 | |
augustus | right; begin-type phasers go in order of declaration, end-type in reverse order right? | 10:55 | |
masak | right. | 10:56 | |
10:56
grondilu joined
|
|||
augustus | and they're some kind of attribute that you can manipulate at run time right? | 10:56 | |
grondilu | I got a "No object at index 164" when trying to (re)bootstrap panda | 10:57 | |
masak | grondilu: that's a serialization error. could be due to version skew. | 10:58 | |
...somewhere. | |||
jnthn | Probably stale .pir files somewhere | ||
grondilu | oh I know | ||
I remember panda asking me to manually compile something last time | |||
jnthn | I thought I'd nailed the various pre-comp bugs and could start on some automated handling of that but I seem to recall hearing there still is at least one... | 10:59 | |
tadzik | panda asking to manually compile stuff? | ||
oh my. It became self-conscious | |||
rindolf | Hi all. | 11:00 | |
paste.debian.net/214489/ | |||
grondilu | yeah iirc | ||
/usr/local/src/rakudo/install/lib/parrot/4.10.0-devel/languages/perl6/site/lib/JSON/Tiny/Actions.pm | |||
rindolf | What can I do about it? | ||
grondilu | ^ this one | ||
well, removing the pir or recompiling it didn't solve the problem anywya | 11:01 | ||
rindolf | I am getting a "Confused" message with latest nom. | 11:02 | |
masak | rindolf: it would help if that paste contained the source code, too. | ||
rindolf | masak: sure. | ||
11:02
hoelzro|away is now known as hoelzro
|
|||
rindolf | masak: here - paste.debian.net/214490/ | 11:03 | |
masak | rindolf: =cut | 11:04 | |
rindolf: I'm not aware that Perl 6's Pod has '=cut' | |||
tadzik: what's your opinion? | 11:05 | ||
rindolf | masak: then how do I terminate it? | ||
11:05
Su-Shee_ joined
|
|||
masak | rindolf: please read S26. | 11:05 | |
rindolf: line 63: 'foreach'!? | |||
rindolf: as a human parser, I'm bailing out of this code now. | 11:06 | ||
11:06
Su-Shee left
|
|||
jnthn | r: foreach 1..10 { } | 11:06 | |
p6eval | rakudo e2f2dc: OUTPUT«===SORRY!===Unsupported use of 'foreach'; in Perl 6 please use 'for'at /tmp/LrJKHZWFMw:1» | ||
masak | please re-do so that it actually uses Perl 6 keywords :) | ||
jnthn | :) | ||
11:06
wamba left
|
|||
jnthn | At least we catch that one... | 11:06 | |
std: =cut | |||
p6eval | std a8bc48f: OUTPUT«ok 00:00 40m» | ||
rindolf | masak: it was originally a Perl 6 program. | ||
masak: it was originally a Perl 5 program. | |||
tadzik | ah, =cut | 11:07 | |
augustus | masak: It is possible to do policy injection by dynamically adding/removing phasers? | ||
tadzik | =cut is a legal Pod Block name | ||
masak | rindolf: yeah, it looks it. it's insufficiently translated. | ||
jnthn | tadzik: ah, yes :) | ||
tadzik | so you can =cut, or =begin cut, or =para cut | ||
but we should probably warn if someone does that | |||
like, when would you mean that? Probably never | |||
masak | tadzik: we should probably error if someone does that. | ||
tadzik | maybe even error, yes | ||
masak | tadzik: '=cut' is all-lowercase, so it's reserved, no? | ||
then we can error. | |||
tadzik | true | 11:08 | |
rindolf | Confused again. | 11:09 | |
What kind of an error message is "confused"? | |||
masak | a bad one. | 11:11 | |
we do our best to replace it with better ones when we can. | |||
STD is still state-of-the-art on this. | |||
jnthn | rindolf: It means "There's a syntax error that the parser can't classify any better for you" | ||
masak | Niecza does better than Rakudo, but Rakudo is getting there. | ||
rindolf | jnthn: well, it points to line #1. | ||
masak | rindolf: generally, if you know Perl 6 syntax, you won't get many "Confused" error messages. | 11:12 | |
jnthn | rindolf: Yeah, 'cus Rakudo doesn't implement the highwater algorithm yet. | ||
rindolf | masak: don't look at me - I'm just a code monkey. | ||
11:12
anuby left
|
|||
jnthn | At least once we have that we'll be able to give a much better idea of exactly where things came unstuck... | 11:13 | |
rindolf | I take orders, and perform them in the worst possible way. | ||
paste.debian.net/214497/ - well this is what I have right now - should I use STD on it? | |||
masak | rindolf: not passing judgment. just letting you know that "Confused" isn't all that common once you know the syntax. | 11:15 | |
rindolf | masak: OK. | ||
masak | rindolf: we should still fix those errors to be better for new users, of course. | 11:16 | |
rindolf | masak: yes, indeed. | ||
masak: also the line number. | |||
jnthn | If I can catch enough of a break from $dayjob stuffs, I should get at lesat the position bit of the highwater stuff in for December Rakudo release, which should mean we get much better position info in cases like this one. | 11:17 | |
11:18
Gothmog_ joined
11:24
not_gerd joined
|
|||
not_gerd | hello, #perl6 | 11:24 | |
FROGGS | ho not_gerd | ||
hi* | |||
not_gerd | rindolf: it's probably the missing , after the blocks when using &map | 11:25 | |
masak | std: my @array = 1, 2; map { 42 } @array | 11:27 | |
p6eval | std a8bc48f: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/F7Uy7nypIE line 1:------> my @array = 1, 2; map { 42 }⏏ @array expecting any of: horizontal whitespace infix or meta-infix infixed f… | ||
masak | arguably that's a better error message for that. | ||
rindolf | OK, STD to the rescue. | 11:29 | |
$.k++; ==> now this gives me a cannot assign to read-only value. | |||
masak | rindolf: you probably didn't declare the attribute 'is rw' | 11:30 | |
they're read-only by default. | |||
rindolf | masak: ah, OK. | ||
11:30
leont joined
11:31
wamba joined
|
|||
augustus | I was reading apocalypse 12 (maybe the wrong place to look), and I must be missing something. How do you add properties to an object on the fly without touching the class? | 11:33 | |
jnthn | augustus: S12 is probably terribly out of date; see S12. But you're looking for mixins. | 11:34 | |
rindolf | OK, now I'm getting a run time error. :-( | 11:35 | |
paste.debian.net/214500/ - why does this throws Wrong s100! | |||
masak | r: class C {}; my $d = C.new but role { has $.z is rw }; $d.z = 42; say $d.z | 11:36 | |
p6eval | rakudo e2f2dc: OUTPUT«42» | ||
masak | augustus: see ^ | ||
augustus | ahh ok | ||
masak | rindolf: no idea. glad to hear you got your code running, though. | 11:37 | |
rindolf: when asking questions of the form "why does it do X?", it helps if you remove all the code that's not relevant. that may also help you in seeing the problem. | |||
rindolf | masak: OK. | ||
masak: here is a reduced code - paste.debian.net/214502/ | 11:39 | ||
masak | rindolf: so, you're running <complicated function> lots of times, and your question is "why isn't it 11:43 < masak> nr: for 1..10 { LEAVE { say "x" }; next } | 11:41 | |
11:43 <+p6eval> niecza v24-5-g599cbcb: OUTPUT«xxxxxxxxxx» | |||
11:43 <+p6eval> ..rakudo e2f2dc: ( no output ) | |||
11:43 * masak submits rakudobug | |||
oops. | |||
and your question is "why isn't it 86613?" | |||
rindolf: I... I don't know why it isn't 86613. it's your code. | |||
it's not obvious to me why it should be 86613. | |||
not_gerd | rindolf: add debug output to your for 1 .. 99 and you'll see that it'll yield 86613, but not in the expected position | 11:42 | |
grondilu is back | |||
11:43
cognominal joined
|
|||
rindolf | Oh wait, it was 11 .. 99 | 11:43 | |
augustus | is there some code you can point me to where I can see how to iterate/search/add/remove phasers? | 11:44 | |
rindolf | An extra 1 got lost. | ||
OK, now it appears to run, but it's very slow. | 11:45 | ||
masak | rindolf: welcome to #perl6 :) | 11:46 | |
timotimo | for fast, try niecza. otherwise youre pretty much out of luck for now :( | ||
masak .oO( the initiation rites of a fiver: "it doesn't compile" -- "write Perl 6 like this" -- "it's slow" -- "yup" ) | |||
not_gerd | rindolf: type annotations *can* help, but Rakudo just is incredibly slow | 11:47 | |
11:47
dakkar joined
|
|||
not_gerd | (still faster than it used to be, though) | 11:47 | |
FROGGS | masak++ # :o) | 11:49 | |
masak | there are various things you can do to avoid being terribly slow. not using 'for' loops is one thing. using native types is another. | ||
FROGGS | it's not that fast, but it is still awesome | ||
masak | and yeah, this is a temporary condition. we're steadily improving. | 11:50 | |
FROGGS: no need to defend a bad state of affairs. | |||
FROGGS: we want to fix the slowness, plain and simple. | |||
jnthn | masak: "Don't use for" is bad advice, fwiw | ||
FROGGS | ya, sure, but all these magic that you can do, it is just more awesome than say Perl 5 | 11:51 | |
jnthn | masak: It can be faster. | ||
r: my $s = now; my $a; for 1..100000 { $a++ }; say $a; say now - $s | |||
p6eval | rakudo e2f2dc: OUTPUT«1000002.4631678» | ||
jnthn | r: my $s = now; my $a; while $a < 100000 { $a++ }; say $a; say now - $s | ||
p6eval | rakudo e2f2dc: OUTPUT«use of uninitialized variable $a of type Any in numeric context in block at /tmp/_RorDS1cMr:11000002.2285593» | ||
jnthn | Um. | ||
The for version won on my box :S | 11:52 | ||
0.519 vs .0715 | |||
*0.715 | |||
masak | so... the "'for' loops are slow" thing doesn't hold anymore? nice. | 11:53 | |
jnthn | masak: Depends what you do with them. | ||
dalek | pan style="color: #395be5">perl6-examples: fc6cc65 | (L. Grondin)++ | euler/prob001-grondilu.pl: [Euler] #001 brute force, very short code |
||
jnthn | masak: But I think the numbers above give an indication that the for with a range can match while loops. | ||
11:53
Rix left
|
|||
masak | aye. | 11:54 | |
augustus | From S06 I'm unclear, can I make up my own traits? Are they discoverable at runtime? | 11:55 | |
not_gerd | r: my $s = now; my int $a; while $a < 100000 { $a++ }; say $a; say now - $s | ||
p6eval | rakudo e2f2dc: OUTPUT«Cannot assign to a non-container in sub postfix:<++> at src/gen/CORE.setting:3077 in block at /tmp/RbjBf91vgn:1» | ||
11:55
Kharec left
|
|||
not_gerd | r: my $s = now; my int $a; while $a < 100000 { $a = $a + 1 }; say $a; say now - $s | 11:55 | |
p6eval | rakudo e2f2dc: OUTPUT«1000001.05353699» | ||
11:57
Kharec joined
|
|||
jnthn | augustus: Traits are compile time, but yes, you can make your own | 11:58 | |
star: use NativeCall; sub malloc() returns OpaquePointer is native { * }; my $mem = malloc(128); | 11:59 | ||
p6eval | star 2012.10: OUTPUT«===SORRY!===CHECK FAILED:Calling 'malloc' will never work with argument types (int) (line 1) Expected: :()» | ||
jnthn | oops :) | ||
star: use NativeCall; sub malloc(int) returns OpaquePointer is native { * }; my $mem = malloc(128); | |||
p6eval | star 2012.10: ( no output ) | ||
augustus | Ok, i see an advent calendar entry from last year that may show me how to make my own. I understand they are compile time; I was wondering if that meta data is lost at runtime. | ||
jnthn | Anyway, the "is native" trait there is provided by the NativeCall module. | ||
augustus: It's up to your trait implementation to attach any metadata. | 12:00 | ||
FROGGS | r: multi trait_mod:<is>(Routine $r, :$awesome!) { say 42 }; sub a is awesome { ... } | ||
p6eval | rakudo e2f2dc: OUTPUT«42» | ||
jnthn | r: sub trait_mod:<is>(Routine $r, :$lol!) { $r does role { method lol() { 42 } } }; sub foo is lol { }; say &foo.lol | 12:01 | |
p6eval | rakudo e2f2dc: OUTPUT«42» | ||
12:02
leont left
|
|||
augustus | ahh ok so the Routine paramters is the one being modified | 12:03 | |
12:03
yves_ left
|
|||
moritz | right | 12:04 | |
moritz wants 'is rw' renamed to 'is assignable' | |||
jnthn | yes, first arg is the declarand | 12:05 | |
masak | moritz! \o/ | 12:06 | |
augustus | lets see, now to assign a trait to an anymous block, do I have to use a different syntax for the block? It won't take {...} is trait | ||
masak | moritz: 'assignable' doesn't seem Huffmanly right. | ||
moritz | masak: but 'rw' and 'ro' carry conotations that confuse the user | 12:08 | |
jnthn | We could always abbreviate assignable to...er, let's not :P | 12:09 | |
FROGGS | hehe | ||
augustus | 'rw' and 'ro' just seem archaic, not wrong, but weird when the rest of perl 6 is so umm... modern? | ||
masak | moritz: I think the whole concept of readonlyness is still unresolved in Perl 6. especially between container objects and their contents. | 12:11 | |
augustus | S06 specifically says you can't put traits on "Pointy Blocks." how do I assign traits to blocks? | 12:13 | |
jnthn | You can add them to both using the "also" syntax | 12:15 | |
r: sub trait_mod:<is>(Block $r, :$lol!) { $r does role { method lol() { 42 } } }; my $x = -> { also is lol; }; say $x.lol | |||
p6eval | rakudo e2f2dc: OUTPUT«42» | ||
jnthn | r: sub trait_mod:<is>(Block $r, :$lol!) { $r does role { method lol() { 42 } } }; my $x = { also is lol; }; say $x.lol # I think this works too | ||
p6eval | rakudo e2f2dc: OUTPUT«42» | ||
augustus | ah, inside the block | 12:16 | |
jnthn | yes, preceded by an "also" | ||
btw you can do this generally | |||
class Foo { also is BaseFoo; } # can write the inheritance stuff like this | |||
augustus | I take it a Routine IsA Block? | 12:17 | |
jnthn | Yes | ||
augustus | ok. On a conceptual level, would you consider it better to assign phasers traits or roles to denote what policy they are implementing? | 12:18 | |
I understand the trait in turn assigns a role | |||
moritz | it totally depends on what you do | 12:21 | |
some traits simply change existing attributes | |||
others (like "is export") only change external information | |||
12:21
yves_ joined
|
|||
augustus | yes, sorry, not all traits would assign roles, but in order to retain information all the way to runtime, you have to assign a role yes? | 12:22 | |
12:22
bowtie joined
|
|||
augustus | *well, add new information and have to stick around. I understand you could change existing attributes without assigning a new role | 12:23 | |
jnthn | augustus: If you want the information to be attached to the object, and the object doesn't already have a way to model the information, yes, you'd want to mix in a role. | ||
moritz | if you want to attach extra information to an object which you don't control, yes, you'd mix in a role | 12:24 | |
jnthn++ was faster :-) | |||
jnthn | :) | ||
augustus | let me be more specific. Lets say I want to scan existing phasers of a block, and see if any of them implmenet Policy X (potentially version Y from Vendor V etc etc). If so, remove them, and add my own implmentation of Policy X. This Policy meta-data, would you figure you assign it with a trait, or just adding roles directly? | 12:27 | |
This seems like a gut-feel question, not a right or wrong kind of question ;) | 12:28 | ||
jnthn throws in a cautionary remark about &foo.phasers being somewhat experimental and not actually in the spec yet :) | 12:29 | ||
12:29
benabik left
|
|||
jnthn | But yeah, you would probably find traits the most convenient way to attach the info. | 12:29 | |
NEXT { also is SomePolicy; blah... } | 12:30 | ||
augustus | ok, this is the vibe I was getting. Thanks for the feedback. | 12:31 | |
oh, and I think that this kind of policy injection is a significant use case, so I would encourage &foo.phasers to be formalized so module writers can depend on it :) | 12:36 | ||
jnthn | augustus: Well, as with all meta-programming stuff, it's trying to stike a difficult balance between giving implementations the flexibility they need to evolve and providing a common API for fiddling. | 12:37 | |
dalek | rlito: f15277a | (Flavio S. Glock)++ | README-perlito5-js: Perlito5 - js - docs: add another link |
12:40 | |
augustus | yes, you don't want to be exposing the wrong details through introspection, and I can't say as I have any particular insight as to how to balance it. But I do know some things are meaningful on a conceptual/semantic level, and you can lock in a model for that | 12:42 | |
even when implementation details later change; and of course then sometimes you have to do an incompatible v2 if your model missed something | 12:43 | ||
rindolf | OK, my code runs faster with Niecza. | ||
augustus | Thanks again everyone for all your help, but my time is up for the day. | 12:46 | |
moritz | does YAPC::EU 2013 already have a website? if yes, where? | 12:47 | |
12:47
augustus left
12:48
PacoAir joined
12:51
Kharec left,
Kharec joined
12:56
SmokeMachine left
13:01
SamuraiJack left,
SmokeMachine joined
13:02
SamuraiJack joined
13:05
SamuraiJack left
|
|||
bbkr | "Sink (void) context causes a Failure to throw" - from doc.perl6.org/Failure. what exactly is this "Sink context"? | 13:09 | |
moritz | bbkr: if the return value from an expression is not used (ie not assigned, bound or passed to somewhere else) it is said to be in sink context | 13:16 | |
bbkr: it's not yet implemented (though I've started several branches to do that; the latest is qast-sink-1) | |||
bbkr | r: my $x = Exception.new.fail; say "alive" # so this should fail once sink context is implemented? | 13:18 | |
p6eval | rakudo e2f2dc: ( no output ) | ||
moritz | bbkr: no | ||
bbkr: because the exception is assigned to $x, so it's not in sink context | |||
sub f() { fail('oh noes') }; f(); 1; | 13:19 | ||
here f is called in sink context | |||
so the Failure would be in sonk context too | |||
and thus would turn fatal | |||
bbkr | moritz: thanks, everything is clear now | 13:20 | |
13:20
benabik joined,
_jaldhar left
13:21
kaleem left
|
|||
moritz | bbkr: you're welcome | 13:21 | |
bbkr | moritz: one more thing - does context forcing counts as sink context in incoming implementation, for example ~f() ? | 13:24 | |
hoelzro | who has time to look at my revised advent calendar notes? =) | 13:25 | |
rindolf | Hi all. | 13:27 | |
Malformed has at /home/shlomif/Download/unpack/perl/Perl6/perl6-examples/euler/prob149-shlomif.pl line 36: | |||
------> has⏏ int $.k is rw = 1; | |||
How can I give a typo annotation to has? | |||
moritz | typo annotation! | 13:28 | |
r: class A { has int $.x } | |||
p6eval | rakudo e2f2dc: ( no output ) | ||
moritz | r: class A { has int $.x is rw } | ||
p6eval | rakudo e2f2dc: OUTPUT«===SORRY!===Cannot create rw-accessors for natively typed attribute '$!x'» | ||
moritz | r: class A { has int $.x = 1 } | ||
p6eval | rakudo e2f2dc: ( no output ) | ||
moritz | rindolf: try it without the 'is rw' | ||
bbkr: well ~f() doesn't put f() into sink context | 13:29 | ||
but ~f() might itself be in sink context | |||
rindolf | moritz: but how will I modify it afterwards? | ||
moritz | rindolf: from inside the class, by assigning to $!k | ||
rindolf | moritz: ah. | 13:30 | |
bbkr | moritz: thanks again! | ||
rindolf | Malformed has at /home/shlomif/Download/unpack/perl/Perl6/perl6-examples/euler/prob149-shlomif.pl line 36: | 13:32 | |
------> has⏏ int $!k = 1; | |||
timotimo | what's the line before it? | ||
rindolf | class FiboRand { | 13:35 | |
paste.debian.net/214520/ - here's the nopaste. | |||
13:36
Kharec left
|
|||
timotimo | r: class FiboRand { has int $!k = 1; } | 13:39 | |
p6eval | rakudo e2f2dc: ( no output ) | ||
timotimo | are you perhaps on a too old version of rakudo? | ||
star: class FiboRand { has int $!k = 1; } | |||
p6eval | star 2012.10: ( no output ) | ||
rindolf | I'm using Niecza. | ||
timotimo | n: class FiboRand { has int $!k = 1; } | ||
p6eval | niecza v24-5-g599cbcb: OUTPUT«===SORRY!===Malformed has at /tmp/KOGInHMLGl line 1:------> class FiboRand { has⏏ int $!k = 1; }Parse failed» | ||
timotimo | n: class FiboRand { has Int $!k = 1; } | ||
p6eval | niecza v24-5-g599cbcb: ( no output ) | ||
rindolf | Ouch. | ||
moritz | rindolf: oh, I think niecza doesn't support native types | ||
timotimo | try capital I, yeah | ||
rindolf | moritz: ah. | 13:40 | |
not_gerd | r: (class { has int $!foo = 42 }).new | 13:42 | |
p6eval | rakudo e2f2dc: OUTPUT«Cannot assign to a non-container in block at src/gen/CORE.setting:752 in method BUILDALL at src/gen/CORE.setting:730 in method bless at src/gen/CORE.setting:720 in method new at src/gen/CORE.setting:705 in block at /tmp/W5d_w7Ypvr:1» | ||
not_gerd | jnthn: ^^^ | 13:43 | |
jnthn | not_gerd: known/RT'd already | ||
not_gerd | thanks | ||
jnthn | Waiting for somebody (probably me...) to make another pass over the native stuff | ||
Need to solve the $native-int++ one to... | 13:44 | ||
*too | |||
dalek | pan style="color: #395be5">perl6-examples: e130ce9 | (L. Grondin)++ | rosalind/lia-grondilu.pl: [rosalind] LIA |
13:46 | |
pan style="color: #395be5">perl6-examples: 0625935 | (Shlomi Fish)++ | euler/prob149-shlomif.pl: Add a (very slow so far) solution for Euler #149. |
13:54 | ||
pan style="color: #395be5">perl6-examples: 3036039 | colomon++ | euler/prob149-shlomif.pl: Merge pull request #10 from shlomif/master Euler No. 149 |
|||
rindolf nuzzles dalek | 13:55 | ||
Exterminate! | |||
colomon++ # Merging my pull request. | 13:56 | ||
colomon | Mind you, I think you're right that there's got to be a more perl6y way of doing that. ;) | ||
rindolf | I've been thinking of using an infinite stream. | 13:57 | |
Will it be trimmed? | |||
colomon | it? | 13:58 | |
masak | in what use case? | ||
infinite basically presumes lazy. unless you really like programs that hang. | 13:59 | ||
14:03
hash_table joined
14:08
hash_table left
14:17
atrodo joined
|
|||
timotimo | grondilu: how do you feel about adding comments to the rosalind example where you explain what the problem means, or a link to the problem statement on the website? | 14:18 | |
grondilu | timotimo: I don't understand what you mean | 14:20 | |
moritz | when looking at the rosalind solutions, one sees a solution without knowing what the problem is | ||
timotimo | github.com/perl6/perl6-examples/bl...rondilu.pl - looking at this file and not knowing much about rosalind, i have no idea what's going on | ||
grondilu | there is already the code of the problem, so it's easy to check it out on rosalind.info | ||
moritz | (I guess) | ||
timotimo | oh? is "lia" the problem code? | 14:21 | |
grondilu | it is | ||
timotimo | oh, indeed | ||
grondilu | rosalind.info/problems/lia | ||
not_gerd | might be a good idea to add the direct address to README | 14:22 | |
grondilu | I'll add in README an explanation on how to make a link to rosalind given a problem code | ||
14:25
skids joined
|
|||
dalek | pan style="color: #395be5">perl6-examples: 2b09646 | (L. Grondin)++ | rosalind/README: adding explanation on how to find a problem on rosalind given its code |
14:29 | |
pan style="color: #395be5">perl6-examples: 648b159 | (L. Grondin)++ | euler/prob149-shlomif.pl: Merge branch 'master' of github.com:perl6/perl6-examples |
|||
not_gerd | grondilu++ | 14:31 | |
grondilu | not_gerd: thanks but there's no need to increment me, dalek does it automatically ;) | ||
though I'm not sure my IRC and github login are reckognised as the same thing :/ | 14:34 | ||
moritz | they aren't | ||
grondilu | oh ok | ||
moritz | there's a (pretty outdated) mapping in the CREDITS file in parrot | ||
not_gerd | also, I appreciate your work on perl6-examples | 14:35 | |
14:36
kaare_ joined
14:39
rurban joined
14:42
Rix joined
|
|||
[Coke] wonders why we're using PARROT. | 14:48 | ||
that shouldn't have been uc'd, whoops. | |||
Seems like something in perl6/mu would be more apropos. | 14:49 | ||
14:49
xilo_ joined
|
|||
jnthn | [Coke]: Prolly hysterical raisons. | 14:49 | |
colomon | Am I correct in thinking that \w will match Unicode symbols and not just ASCII? | 14:52 | |
masak | jnthn: is "raisons" a typo of "reasons" or "raisins"? :P | 14:53 | |
(or surprise French?) | |||
14:54
rjt_pl joined
|
|||
rurban | colomon: with icu, yes | 14:55 | |
colomon | rurban: danke | ||
14:56
Kharec joined
|
|||
jnthn | masak: oui, oui :P | 14:58 | |
grondilu has never tasted hysterical raisins :P | 15:00 | ||
masak | grondilu: and yet they're so common in development circles ;) | ||
rurban | colomon: but maybe even without icu also, only normalization is done by icu, so charclasses could also be handled without icu. | 15:03 | |
15:04
stopbit joined
|
|||
colomon | rurban: I think I have icu anyway, and the fact the program has been running for five minutes and my computer cooling fan just came on suggests it's getting much farther than it did before. :) | 15:04 | |
rurban | fan detection :) | 15:05 | |
15:06
tokuhiro_ left
15:07
tokuhiro_ joined
|
|||
jnthn | .oO( "I think my program has an infinite loop..." "Va fan!" ) |
15:09 | |
15:11
xinming_ joined
|
|||
masak | phenny: sv en "Va fan!"? | 15:11 | |
phenny | masak: "What the hell !" (sv to en, translate.google.com) | ||
masak | close enough :) | ||
15:12
GlitchMr joined
|
|||
masak | though invoking the devil seems rather disproportionate for an infinite loop :) especially if it's only a suspected one. | 15:12 | |
maybe invoke some minor demon instead? | |||
jnthn | Worth it for a bad bi-language pun :P | ||
15:13
Su-Shee_ is now known as Su-Shee
|
|||
masak | I'm still holding out for your tri-language puns, they're the really good ones :P | 15:13 | |
[Coke] | QUAD LANGUAGE PUN! | ||
15:14
cognominal left
|
|||
masak | three or more, yes :) | 15:14 | |
jnthn | I'm trying to remember if I found one that involved at least 3. | ||
masak | jnthn: "Min cheese e kass" | ||
still the best one :) | |||
jnthn | No, no | ||
15:14
xinming left
|
|||
jnthn | "Min cheeze e sirsly kass" :P | 15:15 | |
masak | hahaha | ||
there's at least three languages in there. | |||
jnthn | :) | ||
[Coke] hurls gist.github.com/4216414 for anyone looking for some easy rakudo fudging targets. | 15:16 | ||
(there are two that work as is that aren't being run.) | 15:17 | ||
masak | I really like that leftmost column. | ||
how can some files have A set without S and some have both S and A set? | |||
[Coke] is surprised jnthn didn't turn on t/spec/S05-modifier/perl5_0.t | 15:18 | ||
masak | does that mean that the ones with just A are empty? | ||
[Coke] | masak: it's from tools/up* . I don't overthink it, I just use to find likely unfudge targets. | ||
(that's a current run with any "0/0" removed) | 15:19 | ||
masak | [Coke]: ok. just curious :) | 15:21 | |
the "does 'all' imply 'some'" question reminds me of syllogisms, though. | 15:22 | ||
hoelzro | hey guys, what would be the best way to differentiate a Perl 6 file from a Perl 5 one? I'm thinking of adding better support for Perl 6 to ack | 15:23 | |
alester | Last time I raised this issue in here, y'all said "Extensions are best" | 15:24 | |
phenny | alester: 29 Aug 14:25Z <[Coke]> tell alester I'm seeing "technical debt" mentioned in several presentations at this $dayjob-internal conference. \o/ | ||
PerlJam | I'm not sure there's a "best" yet. There's just some stuff that kinda works. | ||
rjt_pl | masak: Reminds me more of MP's professor of logic. | ||
masak | "MP"? | 15:25 | |
15:25
cognominal joined
|
|||
rjt_pl | Monty Python :-) | 15:25 | |
masak | the... argument clinic? | ||
rjt_pl | No it isn't! | 15:26 | |
masak | :P | ||
moritz | hoelzro: 'use v6;' is a sure indicator that it's Perl 6 | ||
PerlJam | hoelzro: files named *.p6 or *.pm6 are likely perl 6. files that contain "use v6" or "module Foo" are likely perl 6. | ||
hoelzro | moritz: is 'use v6' pretty reliable? | ||
moritz | hoelzro: I've never seen a Perl 5 file 'use v6;' | 15:27 | |
alester | But within how many lines of the first? | ||
jnthn | [Coke]: hm, I thought perl5_0.t was still epic fail...if it is workier now, it can be fudged :) | ||
moritz | so in that direction is it rather reliable | ||
15:27
dakkar left
|
|||
alester | How many lines do we have to read before we hit the "use v6" | 15:27 | |
hoelzro | moritz: I'm more concerned about Perl 6 files that don't include use v6 | ||
alester | Also, do modules need the "use v6;"? | ||
PerlJam | hoelzro: I'd start by looking at S01:103 | ||
moritz | alester: no; it's just good practise | 15:28 | |
alester | hoelzro: My concern about the use v6 is that it would be first instance of us checking beyond the first line of the file for determining file-type | 15:30 | |
hoelzro | fair enough | 15:31 | |
I just want --perl6 to work =( | |||
I was thinking of adding a new ack filter for it, and not putting the perl6 rule in the defaults | 15:32 | ||
15:33
imarcusthis left
|
|||
masak | hoelzro: there are a bunch of other heuristics you could apply to a source file to detect if it's Perl 6. | 15:34 | |
hoelzro: I bet something fairly accurate could be built just by detecting certain source substrings. | |||
hoelzro | I don't think coming up with a fairly accurate detector would be terrible, but I know that alester is concerned about looking past the extension/first line | 15:35 | |
15:35
rjt_pl left
|
|||
masak | oh, ok. | 15:36 | |
not_gerd | .p6/.pl6/.pm6, shebang (Rakudo, Niecza, Pugs?) and use v6 in first lines sound resonable to me | ||
masak | well, if those are the limitations, then you will have to live with not detecting all Perl 6 files, I guess. | ||
PerlJam | How many lines to read into the file could be parameterized though. Let the user choose how much to read. | ||
15:37
rjt_pl joined
|
|||
hoelzro | my current rules in my own ackrc check the shebang and .p[lm]?6$ | 15:37 | |
GlitchMr | hoelzro: I usually use ack with perl6 with --perl | ||
phenny | GlitchMr: 09:39Z <jnthn> tell GlitchMr looks like somebody already fixed my category error | ||
hoelzro | but a lot of Perl 6 out there uses .pl/.pm =( | ||
GlitchMr | It doesn't work with .p6, but that's rare | ||
15:38
asdf__ joined,
dakkar joined
|
|||
GlitchMr | Also, Perl 5 programs will be valid Perl 6 programs when Perl 6 implementations will support Perl 5. | 15:39 | |
hoelzro | I thought that was no longer a goal? | 15:40 | |
masak | it's not a particularly easy goal, if that's what you mean :) | ||
GlitchMr | It isn't easy | ||
But I think that Perlito already does that | |||
15:41
hash_table joined
|
|||
GlitchMr | And AFAIK niecza also has experimental Perl 5 support | 15:41 | |
hoelzro | very cool | 15:42 | |
not_gerd | hoelzro: I'd just add a rule to detect .pl/.pm as perl6 if it starts with use v6 (or six-y shebang) and call it quits | ||
GlitchMr | Specification mentions either rakudo/niecza or pugs in shebang | ||
hoelzro | not_gerd: that would be good, but how far do we look for use v6? | ||
PerlJam | hoelzro: 10 lines | ||
:-) | |||
GlitchMr | It isn't easy | 15:43 | |
alester | hoelzro and I are discussing getting out a beta of ack 2.0 | ||
and he foolishly said "I was thinking we could get a beta out by Christmas" | |||
to which I could only respond... | 15:44 | ||
GlitchMr | Which Christmas? | ||
not_gerd | hoelzro: just beyond the shebang (assuming p5/p6 ever get to interoperate) and tell your users to not do stupid things | ||
GlitchMr | lol | 15:45 | |
alester | If there's one good thing about having been in development for 11 years now is that we get a good running joke out of it. | ||
not_gerd: The problem with "stupid things" is that there is no definition of what "smart things" is at this point. | |||
hoelzro | 11 = 5 + 6! | ||
coincidence?! | |||
;) | |||
alester | There is no definition that "This is how you make a Perl 6 file be a Perl 6 file" | ||
GlitchMr | hoelzro: that calculation isn't valid | ||
To begin with, 6! is 720. | |||
hoelzro | heh | 15:46 | |
15:46
imarcusthis joined
|
|||
flussence | it's valid in base-724 | 15:46 | |
hoelzro | 11 is 5 + 6. | ||
true | |||
GlitchMr | The problem is that better than grep (usually called ack) is very popular. Surely some of users would want to do "stupid things". | 15:47 | |
alester | What is stupid? | 15:48 | |
What are you calling stupid? | |||
GlitchMr | alester: I was referencing what not_gerd has said | ||
not_gerd | alester: not starting a .pl/.pm file containing perl6 with use v6 | ||
alester | Yes, but what exactly is a "stupid thing" | ||
Why is that stupid? | |||
Is it a requirement? | |||
15:49
cognominal left
|
|||
not_gerd | because for historical reasons, .pl files are invoked with perl, and that will fail unpredictably if use v6 isn't used | 15:49 | |
GlitchMr | By the way, I don't think ack is better than grep. To begin with, the regexpes in ack aren't guaranteed to fast. In grep, they are guaranteed to be O(NM) | ||
alester | GlitchMr: Excellent. Then don't use it. | 15:50 | |
PerlJam | heh | ||
15:50
am0c joined
|
|||
not_gerd | just brainstorming, though - what about having --perl, --perl5 and --perl6 options, with the caveat that the --perl5 can have false positives and the latter false negatives? | 15:50 | |
GlitchMr | But that regex performance issue affects most of programming languages with few exceptions that aren't popular anyway. | 15:51 | |
not_gerd | (anyway, once we can freely intermix p5 and p6, the point becomes moot) | ||
hoelzro | well, it's not called "faster than grep" | ||
not_gerd can dream of the future | |||
alester | Also, the "betterthangrep" in the domain name doesn't specify what "better" means | ||
and it also doesn't refer to ack. | |||
See also: betterthangrep.com/more-tools/ | 15:52 | ||
flussence | better = uses a sane regex syntax? :) | ||
alester | which are also better than grep, for some values of "better" and for some set of users. | ||
hoelzro | inouropinionanimprovementupongrep.com | ||
alester | GlitchMr: If you're hoping to engage in some sort of debate about the appropriateness of ack as your tool of choice, you're going to be disappointed. | ||
GlitchMr | Just wondering, is git grep better than grep? | ||
alester | I can't tell you without you defining what "better" means. | 15:53 | |
GlitchMr | I usually use 'git grep' for searching. | 15:54 | |
not_gerd | or, to make it more symmetric: --perl for both p5/p6, --perl5 and --perl6 for files that can be positively recognized as one or the other | ||
hoelzro | I get that a lot these days. | 15:55 | |
alester | GlitchMr: Excellent. | ||
hoelzro | not_gerd: that's an interesting take on it; I hadn't considered that before | ||
alester | I'll also suggest that it's possible to have two different tools to choose from. | ||
GlitchMr | I like 'git grep' because 1) It works like grep 2) It ignores backup files 3) It ignores binary data | 15:56 | |
alester | not_gerd, hoelzro: I'm just wary about --perl6 not being adequately reliable. | ||
15:56
cognominal joined
|
|||
GlitchMr | I propose instead to not add --perl6 and adding *.p6 files detection to --perl | 15:56 | |
not_gerd | alester: that was (part of) my reasoning behind having --perl catch both perl5 and perl6 | 15:57 | |
masak | not everyone names their Perl 6 source files *.p6 | ||
not_gerd | also, what should happen with files that intermix { use v5;} and { use v6; } blocks? | 15:58 | |
alester | masak: Exactly. And there is no standard yet. | ||
masak | likely never will be. | ||
alester | Perl 6 is still in footpath territory, and we're talking about paving sidewalks. | ||
masak | not everyone uses *.pl for their Perl 5 code. | ||
GlitchMr | std: use v5; print/regexp/; | 15:59 | |
p6eval | std a8bc48f: OUTPUT«===SORRY!===Bogus term at /tmp/d866jMaCoj line 1:------> use v5; print/regexp/⏏; expecting any of: prefix or term whitespaceParse failedFAILED 00:01 52m» | ||
masak | I've heard people insist that the .pl ending is for Prolog code. | ||
hoelzro uses .pro | |||
alester | And maybe for them it is. | ||
GlitchMr | Actually, it is | ||
masak | personally, I tend not to use a file ending at all. | ||
kresike | bye folks | ||
16:00
kresike left
|
|||
masak | I don't see why I should. from the outside, it's an executable file which happens to be a script. | 16:00 | |
GlitchMr | Only .pm is magical for Perl 5. | ||
alester | GlitchMr: Except when it's Perl. | ||
GlitchMr | There is NOTHING special for .pl files | ||
alester | There is no one canonical answer. | ||
masak | indeed. | 16:01 | |
hoelzro | I don't care what extension (if any) people use for Perl 6 scripts | 16:05 | |
that's up to personal taste | |||
I would just like ack to detect them properly =) | 16:06 | ||
and maybe that's not a reasonable goal at the moment | |||
16:06
FROGGS left
|
|||
alester | hoelzro: That's my feeling, too. That was my understanding a year or two ago, and it still is based on today's discussion. | 16:06 | |
masak | well, detecting .p6 seems like a safe bet. it's just that it's not going to capture everything. | ||
GlitchMr | Actually, it won't catch most scripts... but it will catch my December wiki | 16:07 | |
masak | if you only detect on file endings, you'll never catch my files without file endings. if you detect on shebang lines, too, you're better of, since I tend to put them in. | ||
16:07
FROGGS joined
|
|||
GlitchMr | The problem with .p6 is that it's practically used only for executables | 16:08 | |
Usually most of logic is in .pm files | |||
hoelzro | masak: I currently check for .p6/.pm6 and the shebang line | ||
GlitchMr | And NOBODY uses .pm6 | ||
hoelzro | really? | ||
I do...=( | |||
jnthn | STD.pm6 does :P | ||
GlitchMr | Well, ok | 16:09 | |
masak | I tend to use .pm | ||
jnthn | Rakudo happily recognizes it. | ||
masak | I think .pm6 is a bit silly. | ||
GlitchMr | Official grammar does use it, but does anything else do | ||
hoelzro | and that's the issue | ||
not that people use .pm for Perl 6 | |||
but that my technique currently doesn't register those files as Perl 6 code | |||
masak | generally, I try to avoid marking things as explicitly Perl 6. I know Perl 6 is a separate language from Perl 5, but I'm still not willing to mark everything up like that. | 16:10 | |
FROGGS | masak: as long as you dont upload Perl 6 stuff to PAUSE ;o) | 16:11 | |
masak | it's been done. not by me, though. | ||
GlitchMr | Actually, I think that some time ago somebody did upload Perl 6 stuff to PAUSE | 16:12 | |
masak | I know both moritz and szabgab tried it. | ||
GlitchMr | But that was long time ago | ||
masak | with fairly disappointing results. documentation doesn't render right, for example. | ||
16:12
Rix left
|
|||
TimToady thinks of that as new wine in old wineskins | 16:12 | ||
FROGGS | ya, of course | ||
masak | I think there were other infrastructural problems. | ||
GlitchMr | But this is confusing, as PAUSE is intended to be used only with Perl 5 modules | ||
not_gerd | alester, hoelzro: see gist.github.com/4216992 | ||
GlitchMr | For example, CPAN Testers could totally get confused when seeing Perl 6 module | 16:13 | |
masak | GlitchMr: and yet we dearly want a CPAN eventually. | ||
FROGGS | masak: the indexer reads the module's version too, this doesnt work either | ||
IMO CPAN is one of the greatest thing, we need that | 16:14 | ||
things* | |||
GlitchMr | Isn't ecosystem CPAN already | ||
FROGGS | well, when talking about CPAN I really mean PAUSE+cpan client (panda) and search.perl.org (modules.perl.org) | 16:15 | |
we still need a few improvements | 16:16 | ||
(and dists) | |||
GlitchMr | Something like CPAN or NPM registry? | ||
FROGGS | and a testers matrix | ||
alester | hoelzro: Do you have a ticket on this issue? I think that not_gerd's gist would be a good start of one as far as ideas. | ||
rurban | How do you guys get the nice formatting in wordpress blog posts? Pasting from MS Word? | ||
FROGGS | GlitchMr: NPM? | ||
hoelzro | alester: good idea! I do! | ||
16:16
cognominal left
|
|||
GlitchMr | FROGGS: npmjs.org/ | 16:16 | |
alester | But really, just bringing up CPAN points to the issues that are much bigger than ack. | 16:17 | |
How does PAUSE handle Perl 6 files? | |||
GlitchMr | It doesn't. | ||
We are using perl6 ecosystem for now. | |||
But this isn't even close to CPAN | |||
not_gerd | rurban: I used markdown to write the article and just copied the generated HTML to WP | ||
jnthn just wrote the post straight in the WP editor | 16:18 | ||
GlitchMr | By ecosystem, I mean github.com/perl6/ecosystem/blob/ma.../META.list | ||
rurban | hmn, jonathans posts are specially nice | ||
FROGGS | alester: the main problem is that you can make a distribution (a bundle with a specific version) yet, so even having an upload portal wont help that much | ||
cnt* | |||
cant* | |||
16:19
grondilu left
|
|||
alester | The Perl 6 CPAN will be the 800 pound gorilla of defining behaviors. | 16:20 | |
FROGGS | that might be true | 16:21 | |
hoelzro coins the term "6PAN" | |||
TimToady | already been done | ||
hoelzro | =( | ||
FROGGS | cool, 6pan.org is still available | ||
BinGOs | prior art is no barrier to a patent | 16:22 | |
16:22
pmurias joined
|
|||
pmurias | masak: rakudo got uploaded to PAUSE ;) | 16:23 | |
TimToady | .oO(6pandoratheexplorer) |
||
[Coke] | back in the day, parrot was shipped that way. | 16:24 | |
hoelzro | TimToady: sounds like a search tool =) | ||
[Coke] | someone, IIRC, got paid a big grant to map out 6pan stuff. | ||
so, be sure to dig for that paper before going off on your own. | |||
16:25
Rix joined
|
|||
masak | [Coke]: are you thinking of MarkOv and cpan6.org/ ? | 16:25 | |
pmurias | [Coke]: metacpan.org/module/Rakudo::Star | 16:26 | |
masak | from that page: "CPAN6 is not even usable on the moment (as is Perl6)" :( | 16:27 | |
FROGGS | a bit outdated | ||
flussence | that guy needs a slap for domain-squatting. | 16:28 | |
masak | it's no fun to have a page that was last updated in 2010 make statements about the usability of Perl 6. | ||
flussence: what, why? he is developing a project called cpan6. | |||
pmurias | it seems tempting to reuse cpan testers by making perl6 modules put on cpanm use Rakudo::Star to run their tests ;) | ||
16:29
Celelibi left
|
|||
flussence | masak: yeah, the site *says* it's under development. Doesn't mean it is though. | 16:29 | |
BinGOs | cpanm != CPAN | ||
alester posts an orange diamond "Under Construction" animated GIF | |||
masak | flussence: that's not what I meant. I meant it's an appropriate domain name for a project with that name. | ||
flussence: it hardly qualifies as "domain squatting" in any reasonable sense of the word. | 16:30 | ||
rurban | MarkOv would certainly be happy to use rakudostar to run the tests | ||
Someone just should kick his lazy ass, esp. if he/she is in the neitherlands. | |||
BinGOs | pmurias: and ironically cpanm is the one CPAN client that doesn't send CPAN tester reports. | ||
16:31
cognominal joined,
Celelibi joined
|
|||
flussence | it just seems wrong (and rude) to grab a site like that to ride on the perl 6 name, while contributing nothing in the other direction. | 16:32 | |
alester | flussence: Or maybe someone nicely ask him about it. | ||
The guy who registered rakudo.org was pretty cool about letting the project use it. | 16:33 | ||
rurban | Wellm his plan was to create a pause6 and cpan6, but then he went the xml way... | ||
cpan6.org/papers/cpan6-impl.pdf | |||
timotimo | hah, "the neitherlands" | ||
moritz | :-) | 16:34 | |
rurban | converting all that mess to YAML and then it could be doable. | ||
not_gerd | that's where you get when you take a wrong turn on your way to neverland | ||
flussence | YAML? Why not $three-million-formats.pick()? | ||
timotimo | is the logo from the left composed of bits of the ubuntu logo? >_> | ||
moritz | I think everything on cpan6.org is older than Ubuntu :-) | 16:35 | |
rurban | I'm sure he would love to get cpan6 functional | 16:36 | |
GlitchMr | For me Perl 6 should support multiple module versions | ||
masak | I dislike when people talk about "slapping" or "kicking" someone who went as far as writing a specification and a web page for their project. feels a bit lacking in appreciation. | ||
GlitchMr | Just like Node.js already allows. | ||
rurban | masak: yes, sorry. I regret it | ||
16:36
Chillance joined
16:37
hoelzro is now known as hoelzro|away
|
|||
rurban | Liz invited him to the Perl summit | 16:37 | |
masak | which was very good. | ||
he does initiate collaborations. and his heart is in the right place. | |||
I just think that his design as it stands is pretty far away from what Perl 6 needs. | 16:38 | ||
rurban | we have github nowadays, we just need an index | ||
flussence | masak: you're right. I shouldn't care. There's people paying for the site's development, they can care instead :) | ||
masak | flussence: if you correlate rudeness with number of abandoned projects, you'd probably consider me very rude. | 16:39 | |
not_gerd | bye, #perl6 | ||
16:39
not_gerd left
|
|||
TimToady | rurban: yes, though github is just one way to turn an identity into a module; the important thing is to be sure that we know how to specify identity | 16:40 | |
FROGGS | GlitchMr: what exactly do you mean by "multiple module versions"? | 16:41 | |
GlitchMr | For example, module A requires module B version 0.1.*. Module C requires module B version 0.2.*. | ||
timotimo | "use ACME::Cat(v0.1)" | ||
masak | timotimo: there's no need to invent syntax for this. it's all in S11. | 16:42 | |
masak feels a bit grumpy today :) | |||
FROGGS | GlitchMr: ohh, would that work? | ||
masak------^ ? | |||
timotimo | great | ||
FROGGS | timotimo: perlcabal.org/syn/S11.html#Versioning # this tab is open on my laptop for a week now | 16:43 | |
TimToady | FROGGS: you want S11:570 specifically | 16:44 | |
FROGGS | TimToady: what is 570 ? | 16:45 | |
TimToady | line number | ||
in the pod file | |||
FROGGS | ohh, must open with another editor to see that ;o) | ||
TimToady | the irclog will make that into a link | ||
moritz | FROGGS: check the public IRC logs; there S11:570 is a link to a specific line | ||
FROGGS | moritz: thanks | ||
masak | always nice to see new people discover the goodness of the IRC logs :) | 16:47 | |
moritz++ | |||
FROGGS | ya, the irclog is pretty handy | ||
okay, so it should work to have multiple versions... but since we dont have versions implemented it should be NYI | 16:48 | ||
TimToady | s/versions/identities/ is how I think of it | 16:49 | |
FROGGS | ya, could be two different auth's too | 16:50 | |
TimToady | a version is just an arbitrary sequential tag for (part of) an identity, while an auth is an unordered one of those | ||
git has pretty much demonstrated you don't need versions to track identities | |||
but for official modules, it's the identity and the readonly-ness that are important | 16:51 | ||
since if a module is not readonly, it's merely a container identity, which doesn't tell you much about what the module really does | |||
note that the filename-via-INC is container identity, hence not suitable for official modules | 16:53 | ||
fine for prototyping and such, of course | |||
but that's why S11 distinguishes official modules from unofficial | 16:54 | ||
and I don't think the unofficial/official boundary should be seen at the CPANish boundary | |||
a site should have a way to make their own modules official | 16:55 | ||
just as you can gave a git repo of your own, where everything is tracked by identity | |||
s/be seen at/be seen as existing only at/ | 16:56 | ||
FROGGS | I think I get what you mean | ||
TimToady | it's basically what rurban++ was getting at; the git model of identity is close to what we need for our module libraries | 16:57 | |
and name/version/auth is just a mapping to that identity | 16:58 | ||
16:59
cognominal left
|
|||
FROGGS | I dont know what you mean by "git model of identity" | 16:59 | |
TimToady | the name of anything in git is just its crypto-checksum | ||
which stands in for the actual identity of the file, which is the actual entire file | 17:02 | ||
just as value types in p6 have a .WHICH that is the value itself | |||
the identity of any value is simply the value itself (by which I mean the abstract value that includes its type, not just the bits in memory) | 17:04 | ||
rurban | Go's goinstall has also a nice hackish way of installing things. First it looks for a core module of that name, and then it looks at github. | ||
FROGGS | I was thinking that we make a checksum when installing a dist to local disk to have something unique, but what you said sound like we should maybe do that when bundling dists or when uploading it to a 6PAN | ||
TimToady | modules are just immutable value types | ||
rurban | Now go has this dashboard as index: godashboard.appspot.com/ where you can submit your package | 17:05 | |
FROGGS | he, most things start with "go" | 17:06 | |
17:06
hoelzro|away is now known as hoelzro
|
|||
TimToady | FROGGS: yes, a module must have a unique global identity from the time of submission, not just locally | 17:06 | |
17:07
fhelmberger left,
cognominal joined
|
|||
FROGGS | will there be several 6PANs? or just one to trust? | 17:07 | |
TimToady | the advantage of this view is that once you know the identity of what you want to download, IT DOESN'T MATTER where it comes from | 17:08 | |
tadzik | trust pandas | ||
(hello perl6) | |||
FROGGS | hi tadzik | ||
TimToady | so no CPANish bottlenecks | ||
FROGGS | ya | ||
FROGGS will read something about signatures then | |||
TimToady | because it's easy to replicate a readonly data | 17:09 | |
*database | |||
rurban | golang.org/doc/articles/go_command.html | ||
TimToady | the CPAN bottleneck is actually in the assignment of identity, I suppose, since it can replicate once things are uploaded | 17:10 | |
the git approach provides a global way to calculate identity without going through a PAUSE | |||
so it scales better | |||
17:11
SamuraiJack joined
|
|||
TimToady | in a sense, github is making the same "mistake" as PAUSE, in giving you a single point of failure/constriction | 17:11 | |
FROGGS | so you say I type: panda install [email@hidden.address] and there is no need for the author to package it? | ||
TimToady | well, depends on what you mean by "package" | 17:13 | |
FROGGS | basically incrementing the version, and make a zipball | 17:14 | |
TimToady | to the extent that a module knows its own dependencies, it can "self-package" | ||
zipball is not an identity, it's just a collection that is convenient for transporting a bunch of objects in parallel; dependency calculation is separate from this, to my mind | 17:15 | ||
17:15
birdwindupbird left
|
|||
TimToady | if it happens that the zipball contains the dependencies, it simplifies things, fo course | 17:15 | |
FROGGS | I'm not talking about dependencies, I'm talking about making a cut and ship this thingy (the zipball) as a working piece | 17:16 | |
TimToady | it won't work if you don't talk about dependencies :) | ||
17:17
pmurias left
|
|||
TimToady | it's the dependencies that make it into a working piece | 17:17 | |
FROGGS | well, its pandas job to get the dependencies too | ||
my job when making a package is just to declare the deps, not to include them | 17:18 | ||
TimToady | I guess I don't see how you're saying anything different from me... | 17:19 | |
17:19
cognominal left
|
|||
FROGGS | hmmmm :/ | 17:19 | |
well, that should be good, ehh? | |||
TimToady | I guess I'm saying it doesn't matter much where packaging is done, on the one end or the other, as long as the user ends up with the right deps | 17:20 | |
17:21
SAAMW1P joined
|
|||
TimToady | packaging is a convenience for transport, mostly, and it's the contents of the package that provide its identity | 17:21 | |
a bundle of value types is still kind of a value type | |||
masak | oh, most definitely. | 17:22 | |
TimToady | RPMs kind of mix up those two levels, from the standpoint of how I look at it | ||
17:23
FROGGS_ joined
|
|||
TimToady | sort of the same problem as makefile dependencies that are not emergent from the properties of the files themselves | 17:23 | |
17:24
FROGGS left
|
|||
TimToady | it's installing a higher-level dependency to stand in for a bunch of low-level dependencies, which has both advantages and disadvantages | 17:25 | |
rurban | I'm halfway through with my parrot string debugging adventure: perl6advent.wordpress.com/?p=1217&a...eview=true | 17:26 | |
17:28
cognominal joined,
FROGGS_ is now known as FROGGS
17:30
rjt_pl left
|
|||
diakopter | rurban: not visible | 17:32 | |
rurban: (to me anyway) | 17:38 | ||
rurban | it's just a draft | 17:39 | |
masak .oO( I smell a wumpus ) | 17:40 | ||
au | hjkjhghnbvcf65hnnnnbghnhbbn8i8i99i~89ikol, | 17:49 | |
whoa, bad cat. sorry. | 17:50 | ||
masak | I thought it was a brilliant solution to the modules discussion :P | ||
au | certainly so if you choose a suitable decoder :p | ||
masak | seems the cat was walking left-to-right, anyway. | 17:51 | |
au | very astute :p | ||
17:52
FROGGS left
17:54
spider-mario joined,
FROGGS joined
17:56
Kharec left
17:59
Kharec joined
|
|||
timotimo | it seems like the cat was a bit into vim ... hjkjh :) | 18:01 | |
18:08
cognominal left
18:10
grondilu joined
|
|||
grondilu | rn: say (state $)++ for ^3; # testing anonymous state variable | 18:10 | |
diakopter | keyboards should detect cat feet | ||
p6eval | rakudo e2f2dc, niecza v24-5-g599cbcb: OUTPUT«012» | ||
grondilu | cool | 18:11 | |
[Coke] | au: hi! | ||
diakopter | .u 1F43E | 18:13 | |
phenny | diakopter: Sorry, no results for '1F43E'. | ||
diakopter | PAW PRINTS it should say | ||
FROGGS | .u ó | 18:14 | |
phenny | U+00F3 LATIN SMALL LETTER O WITH ACUTE (ó) | ||
FROGGS | cool, my client is doing utf-8 now ;o) | ||
[Coke] | Does perl6 give us a way to get U+00F3 LATIN SMALL LETTER O WITH ACUTE (ó) from ó ? | 18:15 | |
(or is a lookup table needed?) | |||
18:17
dakkar left
|
|||
[Coke] | 12345ó789 | 18:18 | |
FROGGS | I believe there is a lookup table, see cpansearch.perl.org/src/DANKOGAI/Un...de/Char.pm | ||
au | o/ [Coke] | 18:22 | |
dalek | kudo/stdier: 71dc392 | jnthn++ | src/core/Exception.pm: D'oh, got red/green back to front. |
18:27 | |
kudo/stdier: ff0bbde | jnthn++ | src/Perl6/Grammar.pm: Fix $*PKGDECL showing up in output. |
|||
masak | hehe, "stdier". :) | 18:29 | |
18:29
MayDaniel joined
|
|||
masak | red/green back to front: "your program is TOTALLY WRONG up to here. then it gets much better" :P | 18:29 | |
jnthn | Yes :P | 18:30 | |
Can't believe I didn't spot that the other night :P | |||
I'm gonna have that branch for a while as the place I develop various bits of STD convergence work. | |||
masak | maybe you were temporarily color-blind. | ||
jnthn | But will merge into master now and then as I feel happy stuff is good enough to share. | ||
Which is where I've got with what's in there so far, so... | 18:31 | ||
dalek | ast: 7fb70de | jnthn++ | S14-roles/basic.t: Fudge an error message test. For one, should probably be a typed exception. But also it passed for the wrong reason before; location information isn't meant to make it into the message itself. No regression from user perspective (in fact, the position of the error is more clearly indicated now). |
18:34 | |
kudo/nom: 6b01881 | jnthn++ | src/ (2 files): Start showing context, with eject marker. |
|||
kudo/nom: a109e73 | jnthn++ | src/Perl6/Grammar.pm: Make panic always throw X::Comp::AdHoc. This also means all the panics get the location included in the error. |
|||
kudo/nom: cff96f1 | jnthn++ | src/core/Exception.pm: Color output of compile time errors. |
|||
kudo/nom: 8dbb9a8 | jnthn++ | src/core/Exception.pm: Only show location if we have it. Just hardening for the case we don't for some reason. |
|||
kudo/nom: 71dc392 | jnthn++ | src/core/Exception.pm: D'oh, got red/green back to front. |
|||
kudo/nom: ff0bbde | jnthn++ | src/Perl6/Grammar.pm: Fix $*PKGDECL showing up in output. |
|||
18:37
raiph joined
|
|||
[Coke] | IWBNI, if you do a perl --Configure.pl --gen-parrot and nothing changes, that it NOT do a make realclean. | 18:38 | |
(end up rebuilding more than you need) | |||
raiph | phenny tell moritz stackoverflow.com/questions/2526804...g-where-pe | 18:40 | |
masak | raiph: phenny didn't seem to listen to that. maybe a colon is needed? | 18:48 | |
moritz | it's OK | ||
18:51
hoelzro is now known as hoelzro|away
|
|||
[Coke] wonders what we should now see in nom branch re: stdification. | 18:51 | ||
19:04
SamuraiJack left
|
|||
jnthn | Better location info, hopefully. | 19:12 | |
r: if 1 { say sin(42 } | |||
p6eval | rakudo ff0bbd: OUTPUT«===SORRY!===Unable to parse expression in argument list; couldn't find final ')'at /tmp/YqaIVte5gw:1------> if 1 { say sin(42 ⏏}» | ||
jnthn | Like so. | ||
[Coke] | ah. doesn't show in the REPL. | 19:15 | |
jnthn++ | 19:16 | ||
jnthn | std: hmm... | 19:17 | |
p6eval | std a8bc48f: OUTPUT«===SORRY!===Bogus term at /tmp/dqQKs8shjt line 1 (EOF):------> hmm...⏏<EOL>Undeclared routine: 'hmm' used at line 1Parse failedFAILED 00:00 42m» | ||
jnthn | ah yes, it does have 3 =s too | ||
mikemol | Funny beep messages again? | 19:25 | |
19:29
bluescreen10 joined
|
|||
jnthn | mikemol: Huh? | 19:29 | |
19:30
cognominal joined
|
|||
mikemol | Nothing. Heard some unexplained beeps from my computer, had an unread hilight from #perl6 still, looked, didn't see a highlight, but did see some od output from p6eval. | 19:30 | |
A few times in the past, p6eval was coaxed into emitting characters that caused beeps in my irssi+screen session. Though maybe that's what happened. | 19:31 | ||
But now I think it was just a vim session giving me some delayed terminal beeps from a few too many ESC commands. | 19:32 | ||
masak | r: say "mikemol: \a" | 19:35 | |
p6eval | rakudo ff0bbd: OUTPUT«mikemol: » | ||
masak | r: say "beep boop \a \a" for ^10 | ||
p6eval | rakudo ff0bbd: OUTPUT«beep boop beep boop beep boop beep boop beep boop beep boop beep boop beep boop beep boop beep boop » | ||
masak | :D | 19:36 | |
jnthn locks masak in a cage so he can't escape | |||
masak | can I bring my laptop? | 19:37 | |
jnthn | Sure! :P | ||
TimToady | see also rosettacode.org/wiki/Morse_code#Perl_6 | ||
masak | jnthn: then we have an agreement. | ||
TimToady: :P | 19:38 | ||
TimToady: reminds me of www.youtube.com/watch?v=PENJxl-THS8 :D | 19:39 | ||
dalek | p: d140252 | jnthn++ | src/ (2 files): Add a $!shared to cursor, for parse-wide things. We'll move $!orig and $!target in to here. This will mean they need not both be copied into every Cursor, meaning we'll save a word per Cursor, at the cost of a little extra indirection occasionally. Also this will be a good place to hang certain other things. |
19:40 | |
p: 0b5b9e8 | jnthn++ | src/QRegex/Cursor.nqp: Move $!orig into ParseShared. |
|||
p: 4e91efd | jnthn++ | src/ (2 files): Stop breaking Cursor's encapsulation. |
|||
p: 3b98f66 | jnthn++ | src/ (2 files): Move $!target into ParseShared. This means we're now saving a pointer per Cursor. |
|||
kudo/nom: a8d2cc2 | jnthn++ | / (3 files): Updates for Cursor memory use reduction refactor. |
19:41 | ||
flussence | stuff is happening! | 19:42 | |
19:48
_ilbot left
19:49
_ilbot joined
19:52
benabik_ joined,
benabik left,
benabik_ is now known as benabik
|
|||
TimToady | it's only the stuff that isn't happening that keeps everything from happening all at once... | 19:54 | |
time if funny that way... | |||
*is | |||
GlitchMr | But stuff is always happening! | 19:55 | |
(no idea why I've used "!" at end of previous sentence) | |||
flussence | why are we yelling!? | ||
TimToady | WE'RE NOT! | 19:56 | |
GlitchMr | You cannot lie on IRC. | ||
IRC protocol doesn't support YELL command or anything close. But I guess that CTCP ACTION could be abused to add such command... | |||
flussence | I imagine it'd be really uncomfortable to lie down on an IRC channel, what with the speed text scrolls at... | 19:57 | |
TimToady | I was gonna say I usually lie on my bed, but that could be misconstrued... | 19:58 | |
GlitchMr | Sometimes it scrolls slowly, sometimes it scrolls quickly (like when somebody merges branches). | ||
jnthn | stroll, then I'll take a crack at the highwater thingymajig... & | 19:59 | |
FROGGS | jnthn: cant build nqp+rakudo: Can not get attribute '$!target' declared in class 'NQPCursor' with this object | ||
GlitchMr | But you know what, Earth scrolls with 465.1m/s at equator. Enjoy. | ||
TimToady | GlitchMr: but it's biased in favor of those who read left-to-right | 20:01 | |
ingy suspects TimToady is typing from his bed again... (he's prone to that) | |||
flussence | r: 0.14 #`[mm/px] * 12 #`[px line height] * 60 #`[fps] # IRC scroll speed in mm/sec (probably messed up somewhere :) | ||
p6eval | rakudo ff0bbd: ( no output ) | ||
flussence | r: say 0.14 #`[mm/px] * 12 #`[px line height] * 60 #`[fps] # IRC scroll speed in mm/sec (yep) | ||
p6eval | rakudo ff0bbd: OUTPUT«100.8» | ||
GlitchMr | Uhmmm... pixels are angular measurement unit. | ||
flussence | let's pretend 96dpi :) | 20:02 | |
GlitchMr | Well, ok then | ||
FROGGS | jnthn: does this change something? (behaviour of .panic) github.com/rakudo/rakudo/commit/ff0bbded3e | 20:03 | |
flussence | .oO( we can extrapolate that moving phone displays are significantly less dangerous to sit on than desktop ones... ) |
||
TimToady | but the desktop ones are moving too | 20:04 | |
20:14
snearch joined
|
|||
jnthn | Niice! | 20:17 | |
The weather is now awesome cold rather than annoying cold. :) | |||
FROGGS: Yeah, it was the quick fix...probably should also go hunt down whatever it is in NQP that makes that not work properly as it was. | |||
FROGGS: Still got build problems? | |||
20:17
benabik left
20:18
benabik joined
|
|||
jnthn | The error looks like once you'd get with a non-updated NQP.. | 20:18 | |
sorear | good * #perl6 | 20:29 | |
masak | sorear! \o/ | ||
20:35
snearch left
20:36
kurahaupo joined
|
|||
dalek | rl6-roast-data: c5a5f97 | coke++ | / (3 files): today (automated commit) |
20:37 | |
[Coke] | yay, niecza is back up over 86%. | 20:38 | |
rakudo - +S12-introspection/parents.t aborted 59 test(s) | |||
20:39
kivutar joined
|
|||
FROGGS | jnthn: still the same, stopped | 20:43 | |
Using ~/dev/nqp/nqp (version 2012.11.1-9-g3b98f66). | |||
ohh, wait | 20:44 | ||
jnthn: false alarm | 20:48 | ||
wow, thats colorful | 20:49 | ||
20:51
spider-mario left
20:53
kivutar left
20:59
GlitchMr left
|
|||
moritz | jnthn++ # stdier | 21:00 | |
p6advent post for tomorrow is already lined up for publishing | 21:01 | ||
perl6advent.wordpress.com/2012/12/0...eview=true | |||
jnthn | FROGGS: I'm hoping it's also more informative... :) | 21:02 | |
moritz | rurban: there seem to be two copies of your post for day 7 -- could you please delete the one that you don't want published? | ||
FROGGS | jnthn: it is ;o) | 21:03 | |
just wanted to check that the error messages I fiddled are behaving nicely | |||
moritz | btw rakudo setting parse time didn't change much with this last patch | 21:04 | |
21:04
jeffreykegler joined
|
|||
jnthn | moritz: Yeah, that's a good thing. | 21:05 | |
moritz: There was the risk of the extra indirection being a slowdown. | 21:06 | ||
Now I just gotta hope the highwater thing doesn't have that effect. | |||
STD does it as a contextual, but for no especially good reason, it seems. | |||
Well, besides it's cute/convenient. | |||
21:08
hash_table left
21:09
jeffreykegler left
21:14
fhelmberger joined
21:19
xilo_ left
21:20
xilo_ joined
21:23
fhelmberger left
21:31
spider-mario joined
21:34
bluescreen10 left
|
|||
jnthn | Woo, highwater (the position bit, not the expects) seems to work! | 21:35 | |
gist.github.com/4219713 # example of the improvement | |||
masak | ~~~\o/~~~ | ||
jnthn | Gets line number right now too :) | 21:36 | |
And doesn't seem to slow things down. | |||
jnthn waits for the spectest to finish | |||
21:36
spider-mario left
|
|||
jnthn | Provided it passes this is going straight into nom :) | 21:36 | |
[Coke] | jnthn++ | ||
jnthn | I'll do highexpect in the branch 'cus that one is a bit scarier. :) | 21:37 | |
21:37
spider-mario joined,
spider-mario left
21:38
spider-mario joined,
benabik left,
benabik joined
21:39
spider-mario left
|
|||
dalek | p: 785d2fa | jnthn++ | src/QRegex/Cursor.nqp: Implement tracking of highwater whenever we lex. |
21:39 | |
21:40
spider-mario joined
21:43
tadzik left,
PerlJam left,
uvtc joined
|
|||
jnthn | dalek seems in no hurry to report it but I pushed the changes to nom. | 21:44 | |
21:44
topo joined,
PerlJam joined
|
|||
jnthn | This and the earlier work should mean we now do a lot better at reporting the locations where things went wrong. | 21:44 | |
uvtc | Hi all. Just noticed, at the 2012 advent calendar, the day 5 blog post wants to be tagged "table of contents"3. | 21:45 | |
Without the 3. | |||
:) | |||
21:46
uvtc left
21:51
bruges joined
21:52
spider-mario left
21:53
bruges_ left,
spider-mario joined
21:54
spider-mario left,
Kharec left
21:55
spider-mario joined
|
|||
bbkr_ | was .candidates_matching on Method class renamed lately? | 21:57 | |
jnthn | Yes; candidates_matching was always a Rakudo thing and it was renamed to match spec. | 21:58 | |
Now called "cando" | |||
22:03
spider-mario left
|
|||
bbkr_ | jnthn: thanks. looks like it's expecting Capture now (which seems more logical to me than list of params), but everything works as expected :) | 22:03 | |
jnthn | bbkr_: Yeah, and .cando since it's spec is also now regression tested in spectest :) | 22:04 | |
bbkr_ | hm, how can I flatten list of params in Capture? I have sample $params = [1,"foo",3] and previously I had .candidates_matching(|$params). the same trick does not work in cando( \( |$params) ) | 22:08 | |
22:12
cognominal_ joined,
skids left,
cognominal left
22:14
LlamaRider joined
|
|||
bbkr_ | nvm, .flat method did the trick | 22:17 | |
22:17
kaare_ left
22:34
LlamaRider left
22:36
lue joined,
rindolf left
|
|||
lue | hello o/ | 22:36 | |
masak | hellue! \o/ | ||
22:38
rindolf joined
|
|||
lue | I've come to the conclusion now that the best way to separate the src/core is to give rakudo the gift of gcc's -c flag (at least the "oh don't worry, those stubbed classes, they're defined in another file" part) | 22:39 | |
masak | lue: not sure what you mean. | 22:40 | |
bbkr_ | r: class A { method foo (Int){} }; my $t = [1]; A.^find_method("foo").cando( \(A, @($t) )).perl.say; | 22:41 | |
p6eval | rakudo 53daef: OUTPUT«()» | ||
bbkr_ | looks like bug to me | ||
sorear | if only it were that simple | 22:42 | |
lue | The idea is to to run each file in src/core through perl6 in a way that it won't complain about as-of-yet undefined classes etc. (hence me thinking of gcc -c and multi-file C/++ projects). Then concatenate the compiled files and do the normal PIR->PBC step. | 22:44 | |
I have no idea how difficult it would be to add this, but I like this idea better than trying to rearrange the code in src/core | |||
bbkr_ | jnthn: do you have any idea why my example above one does not work? if I replace signature with \(A, 1) it finds method. | 22:45 | |
22:46
Araq joined
|
|||
lue | (In other words: allow pmichaud's suggestion here: L<www.nntp.perl.org/group/perl.perl6....1.html> to work, as rakudo currently complains on a package that's only stubbed) | 22:46 | |
bbkr_ | r: (\(1)).perl.say; my $t=[1]; (\(@($t))).perl.say' | 22:47 | |
p6eval | rakudo 53daef: OUTPUT«===SORRY!===Confusedat /tmp/jj3Zd5Fe2W:1------> perl.say; my $t=[1]; (\(@($t))).perl.say⏏'» | ||
bbkr_ | r: (\(1)).perl.say; my $t=[1]; (\(@($t))).perl.say | ||
p6eval | rakudo 53daef: OUTPUT«Capture.new( list => (1,).list, hash => EnumMap.new())Capture.new( list => (1,).list, hash => EnumMap.new())» | ||
sorear | Araq! | ||
Araq | sorear! | ||
masak | Araq! \o/ | ||
Araq | wow ... do you guys know who I am? ;-) | 22:48 | |
sorear | lue: it is not so simple as to just concatenate the compiled files. A lot of delicate surgery must be done to link them together | ||
masak | Araq: nope. but welcome! :) | 22:49 | |
sorear | masak: you don't remember Araq? | ||
lue | I figured. That was how I initially thought out the process, but had trouble believing "just concatenating" would work. | ||
sorear | I do | ||
masak | sorear: the name sounds vaguely familiar, yes... | ||
masak hits the backlog | |||
oh, yeah. | 22:50 | ||
Araq: yes, I do know who you are :) | |||
Araq | yay ... alright ... so are strings still mutable in perl 6? | 22:51 | |
sorear | no. | ||
Araq | pity ... but understandable | ||
lue | (Frankly, I'm not very sure that src/core *could be* rearranged into compilable smaller bits, which is why I right now prefer what I've proposed.) | 22:52 | |
masak | Araq: it doesn't really limit what you can do with them. | ||
sorear | lue: I have a new computer and it builds the niecza setting in 18 seconds | 22:53 | |
Araq | well how do you explain to an outsider that the "king of strings" language called perl changed its string semantics? ;-) | ||
sorear | I would say it didn't. | 22:54 | |
Strings in perl have never been mutable, from my point of view... ;D | |||
but we did change a lot of stuff with Str | 22:55 | ||
for instance, Str always contains Unicode codepoints now, *never* octets | |||
masak | Araq: let's put it like this: what is it that you think you can no longer do now that strings are immutable? | ||
lue should try niecza really soon. He already has mono on his computer. | 22:57 | ||
Araq | masak: can I do s[i] = 'A' ? sorry if the syntax is wrong, I hardly ever used perl ;-) | 22:58 | |
doy | Araq: you couldn't do that in perl 5 either | ||
masak | Araq: Perl doesn't tend to view strings as arrays. | 22:59 | |
sorear | what *is* different is that current perl 6 implementations use garbage collection, so they can't optimize the case of substr($x,0,1,'A'); when $x points to a Str with one reference | ||
Perl 5 could do that in a zero-copy way if SvREFCNT($x) == 1 | 23:00 | ||
masak | strings are item values. if you want them as a sequence of chars, you have to do .comb | ||
sorear | I mean the underlying PV refcnt | ||
doy | r: my $foo = "foo"; substr-rw($foo, 0, 1) = "a"; say $foo | ||
p6eval | rakudo 53daef: OUTPUT«aoo» | ||
Araq | ok, I think I got it | ||
doy | eval: my $foo = "foo"; substr($foo, 0, 1) = "a"; $foo | ||
buubot_backup | doy: aoo | ||
23:01
stopbit left
|
|||
Araq | eval: my $foo = "foo"; my $bar = $foo; substr($foo, 0, 1) = "a"; $bar | 23:04 | |
buubot_backup | Araq: foo | ||
23:05
LlamaRider joined
23:10
rindolf left
23:12
rindolf joined
23:14
znsba joined
|
|||
Araq | bye | 23:16 | |
23:16
Araq left
23:20
Chillance left
23:23
wamba left,
MayDaniel left
23:24
LlamaRider left
|
|||
jnthn | sleep & | 23:27 | |
23:29
znsba left
23:30
hash_table joined
|
|||
[Coke] sets up jnthn with an IV drip of caffeine for sleeping and plays an audio book of the spec. | 23:34 | ||
23:35
rindolf left
23:36
hash_table left
23:38
raiph left
23:40
Gothmog_ left
23:42
cognominal_ left,
tadzik joined
23:46
benabik left
23:49
skids joined
|