»ö« 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:34
fgomez joined
|
|||
dalek | kudo/nom: 1d4eb48 | pmichaud++ | / (2 files): Refactor unary hypers to avoid .pick(*) and for loops, resulting in a 9x speed improvement for @array>>.xyz calls. Even with this level of improvement, unary hyper methods are not yet faster than @array.map( *.xyz ). This is partially due to some indirect block call overhead and some unneeded boxing of native values.. More improvements are forthcoming, but this is a really good first step. |
01:07 | |
01:11
scott___ joined
01:28
whiteknight joined
01:29
whiteknight is now known as Guest87046
|
|||
sergot | good night o/ | 01:35 | |
01:36
sergot left
01:40
UncleFester6 left
01:44
Ex left
01:57
Guest87046 left
02:01
orafu left,
orafu joined
02:02
mucker_ joined
02:10
adu left
02:12
Ex joined,
Ex left,
Ex joined
02:23
adu joined
02:36
Psyche^ joined
02:40
Patterner left,
Psyche^ is now known as Patterner
02:59
orafu left,
orafu joined
|
|||
[Coke] | S32-list/first.t uses 1...10; doesn't have to be a series, does it? | 03:28 | |
03:31
mucker left
03:32
mucker_ left
03:38
cognominal left
03:39
cognominal joined
|
|||
TimToady | nope | 03:51 | |
and wouldn't need the parens with .. | 03:52 | ||
04:10
fbjork joined
04:15
fbjork left
|
|||
diakopter | hm | 04:42 | |
TimToady | hmm, don't need them with ... either, I guess | ||
nr: my @x = 1 ... 10; say +@x; | 04:43 | ||
p6eval | rakudo c1bfbb, niecza v19-15-g051783d: OUTPUT«10» | ||
diakopter | n: say my @x .. @x | 04:46 | |
p6eval | niecza v19-15-g051783d: OUTPUT«[]..[]» | ||
diakopter | n: say (my @x .. @x)[0].WHAT | 04:48 | |
p6eval | niecza v19-15-g051783d: OUTPUT«Array()» | ||
diakopter | n: say (my @x .. @x)[1].WHAT | 04:49 | |
p6eval | niecza v19-15-g051783d: OUTPUT«Any()» | ||
TimToady | r: (my @x .. @x)[0].WHAT | 04:50 | |
p6eval | rakudo c1bfbb: OUTPUT«No such method 'succ' for invocant of type 'Array' in sub postfix:<++> at src/gen/CORE.setting:1348 in method reify at src/gen/CORE.setting:4865 in method reify at src/gen/CORE.setting:4987 in method gimme at src/gen/CORE.setting:5365 in method exists at … | ||
TimToady | r: say [] ~~ [] | 04:51 | |
p6eval | rakudo c1bfbb: OUTPUT«True» | ||
TimToady | r: (my @x ... @x)[0].WHAT | ||
p6eval | rakudo c1bfbb: ( no output ) | ||
TimToady | r: say [] ... [] | ||
p6eval | rakudo c1bfbb: OUTPUT«(timeout)» | 04:52 | |
TimToady | n: say [] ... [] | ||
p6eval | niecza v19-15-g051783d: OUTPUT«» | ||
TimToady | why is rakudo not smartmatching the [] and stopping immediately? | ||
r: say [] .. [] | 04:53 | ||
p6eval | rakudo c1bfbb: OUTPUT«[]..[]» | ||
TimToady | r: print [] .. [] | ||
p6eval | rakudo c1bfbb: OUTPUT«No such method 'succ' for invocant of type 'Array' in sub postfix:<++> at src/gen/CORE.setting:1348 in method reify at src/gen/CORE.setting:4865 in method reify at src/gen/CORE.setting:4987 in method gimme at src/gen/CORE.setting:5365 in method print at s… | ||
TimToady | and why is it looking for a .succ when (presumably) it has turned the .. into a ...? | ||
n: print [] .. [] | 04:54 | ||
p6eval | niecza v19-15-g051783d: ( no output ) | ||
diakopter | o_O | ||
TimToady | n: print [], *.succ ... [] | 04:55 | |
p6eval | niecza v19-15-g051783d: ( no output ) | ||
TimToady | r: print [], *.succ ... [] | ||
p6eval | rakudo c1bfbb: OUTPUT«No such method 'succ' for invocant of type 'Array' in block at /tmp/myIBzUnMPR:1» | ||
TimToady | rakudo should be smartmaching the [] first, methinks | ||
n: print [].succ | 04:56 | ||
p6eval | niecza v19-15-g051783d: OUTPUT«Unhandled exception: cannot increment a value of type Array at /home/p6eval/niecza/lib/CORE.setting line 1414 (die @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 272 (Mu.succ @ 9)  at /tmp/8ZH84JxK3p line 1 (mainline @ 3)  at /home/p6eval/niecz… | ||
TimToady | yes, it's not that it's defined in niecza either, it just doesn't call it | ||
diakopter | r: say [] ~~ [] | 04:59 | |
p6eval | rakudo c1bfbb: OUTPUT«True» | ||
diakopter | r: say ~~ [] ~~ [] | 05:00 | |
p6eval | rakudo c1bfbb: OUTPUT«False» | ||
diakopter | 0_0 | ||
n: say ~~ [] ~~ [] | 05:01 | ||
p6eval | niecza v19-15-g051783d: OUTPUT«===SORRY!===Expecting a term, but found either infix ~~ or redundant prefix ~ (to suppress this message, please use space between ~ ~) at /tmp/eFZwaDVzaB line 1:------> say ~~⏏ [] ~~ []Parse failed»… | ||
diakopter | rn: say [] ~~~ [] | 05:02 | |
p6eval | rakudo c1bfbb, niecza v19-15-g051783d: OUTPUT«True» | ||
05:02
quietfanatic left
|
|||
diakopter | someone explain r: say ~~ [] ~~ [] | 05:03 | |
oh nm | 05:04 | ||
rn: say ([] ^^ []).WHAT | 05:05 | ||
p6eval | rakudo c1bfbb: OUTPUT«Array()» | ||
..niecza v19-15-g051783d: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Any at /tmp/etWH_osYdY line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3929 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3930 (module-CORE @ 564… | |||
diakopter | well, one of them's wrong | 05:06 | |
rn: say ([] ^^^ []).WHAT | 05:07 | ||
p6eval | niecza v19-15-g051783d: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Any at /tmp/7eF9VXRR7v line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 3929 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3930 (module-CORE @ 564… | ||
..rakudo c1bfbb: OUTPUT«Range()» | |||
diakopter | o__ | 05:11 | |
05:19
birdwindupbird joined
05:20
am0c joined
|
|||
moritz | \o | 05:28 | |
diakopter | o/ | ||
o__ .> ___ | 05:33 | ||
moritz | is that diakopter lying down? | 05:34 | |
diakopter | eye closing | ||
moritz | sleep well then :-) | 05:35 | |
05:37
test_ joined
05:39
test_ left
05:44
wtw joined
|
|||
moritz | r: <a b c d>».say | 05:45 | |
p6eval | rakudo c1bfbb: OUTPUT«acdb» | ||
05:53
brrt joined
06:14
brrt left
06:18
xdbr joined
06:22
birdwindupbird left
06:24
birdwindupbird joined
06:42
SamuraiJack joined
06:44
kaleem joined
06:55
PacoAir left
06:59
drbean left
07:00
drbean joined
07:01
GlitchMr joined
07:03
vinian joined
07:08
brrt joined,
crab2313 joined
07:13
brrt left
|
|||
tadzik | hello #perl6 | 07:13 | |
sjohnson | ( `ー´) | 07:17 | |
moritz | \o tadzik, sjohnson | ||
sjohnson | moritz: *equivalent happy fat face emoticon* | 07:18 | |
:3 | |||
07:24
hoelzro|away is now known as hoelzro
07:35
cognominal left
07:36
cognominal joined
07:43
cognominal left
07:44
cognominal joined
07:45
rhr joined
|
|||
dalek | Heuristic branch merge: pushed 217 commits to nqp/dyncall-callbacks by arnsholt | 07:49 | |
volaj/callbacks: dc43e90 | (Arne Skjærholt)++ | lib/NativeCall.pm6: Change to right Parameter accessor for signatures. |
|||
volaj/callbacks: 2680acd | (Arne Skjærholt)++ | lib/NativeCall.pm6: Unbreak everything. |
|||
volaj/callbacks: 79429d9 | (Arne Skjærholt)++ | / (3 files): Return values from callbacks seem to work now as well. Tests and some small tweaks to the code. |
|||
arnsholt | 217 commits? I think most of those weren't mine ^_^ | ||
moritz | arnsholt: probably the toqast and pirt merges | 07:50 | |
arnsholt | Just toqast I think | ||
moritz | "Unbreak everything." | ||
I like that commit | |||
frettled | especially my heart | ||
arnsholt | Yeah, not sure why it worked before that commit, but that's life | ||
And since the previous commits were already there I couldn't rewrite history | 07:51 | ||
moritz hopes frettled's comment was purely rhetorical | |||
arnsholt: I know the desire for a clean history, but in the end it's in a branch anyway :-) | 07:52 | ||
arnsholt | True true | ||
Now, to see if pirt (what's that stand for anyways?) has any conflicts with my branch | |||
moritz | PIR Tree | 07:53 | |
Promiscuous IR Trap | |||
GlitchMr | Unbreak everything? | ||
But why it wouldn't work with "return"? | |||
moritz | Probabilistic Intermediate Representation Transformer | 07:54 | |
arnsholt | GlitchMr: jnthn and pmichaud explained it to me last night (Europe time) | ||
Since the value I'm returning isn't actually a Perl 6 object (but an NQP entity) return and falling of the end of the block are slightly different after all | 07:55 | ||
GlitchMr | Exception catching? | ||
moritz | ah yes, return is just a p6 code object | 07:56 | |
&return, that is | |||
r: say &return.WHAT | |||
p6eval | rakudo c1bfbb: OUTPUT«Block()» | ||
GlitchMr | return is just exception behind the scenes, am I right? | ||
moritz | yes | ||
arnsholt | GlitchMr: irclog.perlgeek.de/perl6/2012-07-29#i_5858172 | 07:58 | |
07:59
fhelmberger joined
08:11
kaleem left,
dudz joined
|
|||
jnthn | morning o/ | 08:15 | |
arnsholt | \o | ||
moritz | mrnng | 08:16 | |
jnthn | arnsholt++ | 08:17 | |
Callback support seems pretty advanced. :D | 08:18 | ||
arnsholt | You wanna review my changes before I merge it back into master? | ||
Yeah, callbacks are looking fairly good | 08:19 | ||
Wasn't ridiculously tricky to get working either, as it turns out | |||
jnthn | arnsholt: If you're comfortable with it, feel free to merge | 08:20 | |
arnsholt | 'k | ||
frettled | moritz: it was :) | ||
jnthn | I'll take a look over it, but not right now... Gotta do $dayjob sometimes. ;) | ||
08:20
Chillance joined
|
|||
frettled | moritz: </joe cocker> | 08:20 | |
moritz | frettled: unresolved culutural reference at frettled line *-3 :-) | 08:21 | |
dalek | p: 3a126fd | (Arne Skjærholt)++ | / (4 files): Initial callback handling. It works, but it'll leak memory since all the information needed to handle a callback is recreated (and allocated on the heap) on each call without ever being freed. |
08:24 | |
p: 0897370 | (Arne Skjærholt)++ | src/ops/nqp_dyncall.ops: Add caching of callback handling data. |
|||
p: fc4115b | (Arne Skjærholt)++ | / (12 files): Merge branch 'master' into dyncall-callbacks |
|||
p: e74bc7e | (Arne Skjærholt)++ | / (37 files): Merge branch 'master' into dyncall-callbacks |
|||
p: e63f932 | (Arne Skjærholt)++ | src/ops/nqp_dyncall.ops: Decontainerize callback return value. |
|||
p: ef3e3e4 | (Arne Skjærholt)++ | / (10 files): Merge remote branch 'origin/master' into dyncall-callbacks |
|||
08:25
dakkar joined
08:26
cognominal left,
cognominal joined
08:27
kaleem joined
|
|||
frettled | woops, I confused Toni Braxton with Joe Cocker | 08:27 | |
Joe Cocker had «Unchain My Heart», Toni Braxton had «Unbreak My Heart». Both are pop hits, the latter from sometime during the nineties. | |||
www.youtube.com/watch?v=pU2LzuVrqLQ | 08:28 | ||
moritz | frettled: I've heard both | 08:29 | |
frettled: but I didn't quite make the connection | |||
08:30
nwc10 joined
|
|||
nwc10 | jnthn++ | 08:31 | |
08:34
sergot joined
|
|||
hoelzro | if I'm consuming a role and I impelment a method that a role provides, is there a way to call the consumed role's version of that method from my own? | 08:35 | |
moritz | hoelzro: self.Role::Name::methodname(args) | ||
hoelzro | moritz: thanks! | 08:36 | |
sergot | hi o/ | ||
08:38
fgomez left
|
|||
moritz | nwc10++ # rakudo on raspberry pi | 08:40 | |
08:43
IamContagious joined
|
|||
nwc10 | but I might be -- for distracting jnthn further | 08:43 | |
what I forgot to say - I've no access to other ARM systems to try to rule out different things | 08:44 | ||
as all the ARM boxes on the GCC compile farm are offline and have been for a while | |||
moritz | nwc10: do you know how to detect ARM in perl 5 code_ | ||
s/_/?/ | |||
(for nqp's Configure.pl) | |||
nwc10 | you can't get that fixed upstream? | 08:45 | |
moritz | that would be the better approach :-) | ||
nwc10 | something like this would probably bodge it: | 08:47 | |
$ perl -MConfig -le 'print $Config{archname} =~ /^arm[a-z0-9]*-/ ? "Y" : "n"' | |||
Y | |||
But it might trip up on armbe | |||
moritz | maybe just /^arm/ ? | ||
nwc10 | would still trip up on armbe, but not sure how many people are using the big endian "port", or how finished it even is | 08:48 | |
masak | good antenoon, #perl6 | ||
08:49
benabik_ joined
|
|||
jnthn | nwc10++ # just saw the post on perl6-compiler \o/ | 08:51 | |
08:51
benabik left,
benabik_ is now known as benabik
08:56
Tedd1 joined
08:58
crab2313 left
|
|||
dalek | volaj: 46d9cce | (Arne Skjærholt)++ | / (3 files): Functionality and tests for callbacks. |
08:58 | |
volaj: dc43e90 | (Arne Skjærholt)++ | lib/NativeCall.pm6: Change to right Parameter accessor for signatures. |
|||
volaj: 2680acd | (Arne Skjærholt)++ | lib/NativeCall.pm6: Unbreak everything. |
|||
volaj: 79429d9 | (Arne Skjærholt)++ | / (3 files): Return values from callbacks seem to work now as well. Tests and some small tweaks to the code. |
|||
08:59
cognominal left,
daxim joined,
cognominal joined
|
|||
arnsholt | Hmm... | 08:59 | |
r: sub foo(--> Int) returns Str { say "hi" } | |||
p6eval | rakudo c1bfbb: ( no output ) | ||
nwc10 | at what level of parrot's toolchain does PIRT interact? | ||
nwc10 is curious | |||
jnthn | nwc10: PIRT produces PIR which is then fed to Parrot to get bytecode. | 09:01 | |
nwc10 | POST also produces PIR etc? | ||
jnthn | Yes | ||
PIRT is a replacement of POSt | |||
*POST | |||
nwc10 | direct replacement | 09:02 | |
GlitchMr | perl6: sub foo(--> Int) returns Str { say "hi" }; foo | ||
p6eval | rakudo c1bfbb: OUTPUT«hiType check failed for return value; expected 'Str' but got 'Bool' in sub foo at /tmp/cRqLY1iFF9:1 in block at /tmp/cRqLY1iFF9:1» | ||
..niecza v19-15-g051783d: OUTPUT«hi» | |||
jnthn | Fairly direct | ||
GlitchMr | perl6: sub foo(--> Int) returns Str { "hi" }; foo | ||
p6eval | rakudo c1bfbb, niecza v19-15-g051783d: ( no output ) | ||
jnthn | The API it exposes is basically the same. | ||
The way it does stuff on the inside is quite different. | |||
And it's written in NQP, not PIR. :) | |||
nwc10 | it benefits from several years more experience, and 6model can lay things out more tightly in memory? | 09:03 | |
jnthn | Also it collapses the tree more often. | ||
arnsholt | r: sub foo of Str { ... }; say &foo.signature.returns; | 09:04 | |
p6eval | rakudo c1bfbb: OUTPUT«Str()» | ||
arnsholt | r: sub foo of Str returns Int { ... }; say &foo.signature.returns; | 09:05 | |
p6eval | rakudo c1bfbb: OUTPUT«Int()» | ||
jnthn | With POST we built the whole tree up and turned it into PIR. PIRT can be told "this bit of the tree won't change any more", and then immediately turns that bit into PIR and throws away the more memory-intensive data structures it held onto before. | ||
GlitchMr | duckduckgo.com/?q=say+perl | ||
Actually, I might attempt to make version of this for Perl 6 :P | 09:06 | ||
daxim | please do, then blog about it | 09:08 | |
GlitchMr | I like DuckDuckGo and I would like it to help in Perl 6 programming too | ||
Possibly search.cpan.org/~dconway/Perl6-Perl.../Parser.pm will work | 09:09 | ||
daxim | ddg have a dev kit somewhere so you can easily integrate this specialised search | ||
GlitchMr | I know :P | ||
daxim | U+1F44D | 09:10 | |
arnsholt | jnthn: Would throwing an exception in trait_mod:<of>/trait_mod:<is> be the best solution to handle setting the return type of something that already has one? | ||
GlitchMr | Except that parser fails tests | ||
so no | |||
jnthn | arnsholt: Yes, and moritz++ would probably like it if it were a typed exception ;-) | ||
GlitchMr | Or this: search.cpan.org/dist/Perl6-Pod/lib/Perl6/Pod.pm | 09:12 | |
... possibly this will work | 09:13 | ||
tadzik | GlitchMr: or just doc.perl6.org, maybe | ||
we have our own Pod renderer and a doc infrastructure built around it | |||
GlitchMr | Hmm... ok :) | ||
But parsing doc.perl6.org could be problematic | 09:14 | ||
It's HTML file | |||
jnthn | But it's produced from Pod, no? | 09:16 | |
GlitchMr | Hmmm... parsing it would be possible | 09:17 | |
09:18
nwc10 left
|
|||
tadzik | I don't think that reparsing formatted Pod is the right way to do it:) | 09:18 | |
09:18
cognominal_ joined
|
|||
moritz | GlitchMr: htmlify.pl in the perl6/doc repo is what generates the HTML files on doc.perl6.org | 09:19 | |
GlitchMr | It's Perl 5 script? | ||
... oh, Perl 6 | |||
Well, it probably will be Fathead, just like Perl 5 documentation :) | 09:20 | ||
09:21
cognominal left
|
|||
moritz | the Pod in perl6/doc is pretty basic | 09:22 | |
I guess existing p5 based parsers for it can easily work for it too | 09:23 | ||
arnsholt | Hmm. Can I throw exceptions and such from methods added in BOOTSTRAP.pm? | 09:25 | |
jnthn | Not easily | ||
Not typed ones at least | 09:26 | ||
arnsholt | Right. Problem is that Signature.set_returns, which the trait_mods use to set the return type is defined there | ||
09:27
brrt joined
|
|||
arnsholt | I suppose I could just diddle the object directly with nqp:: stuff in traits.pm | 09:28 | |
09:29
MayDaniel joined
|
|||
jnthn | What exactly do you need to do? | 09:29 | |
arnsholt | I need to check whether the $!returns attribute of the Signature is set (current idea is nqp::defined(nqp::getattr(...))) and throw an exception if it is set | 09:30 | |
moritz | uhm | ||
$!returns will hold a type, yes? | |||
09:31
kaleem left
|
|||
moritz | if so, it's not defined | 09:31 | |
arnsholt | Yes. I was hoping nqp::defined was on the level below that | ||
=) | |||
09:31
kaleem joined
|
|||
moritz | r: nqp::say nqp::defined :(--> Int).returns | 09:31 | |
p6eval | rakudo c1bfbb: OUTPUT«0» | ||
arnsholt | But yeah, that's another problem | ||
moritz | r: nqp::say nqp::isnull :(--> Int).returns | ||
p6eval | rakudo c1bfbb: OUTPUT«0» | ||
moritz | r: nqp::say nqp::isnull :().returns | ||
p6eval | rakudo c1bfbb: OUTPUT«0» | ||
arnsholt | Well darn | ||
moritz | I guess whatever comes from .returns (which is a p6 level method) can never be null | ||
r: nqp::say nqp::isnull nqp::getattr(:(), Signature, '$!returns') | 09:32 | ||
p6eval | rakudo c1bfbb: OUTPUT«1» | ||
moritz | r: nqp::say nqp::isnull nqp::getattr(:(--> Int), Signature, '$!returns') | ||
p6eval | rakudo c1bfbb: OUTPUT«0» | ||
arnsholt | There we go | ||
moritz | ok, nqp::isnull works for you | ||
arnsholt | Indeed. Testing with just die and a string now | 09:35 | |
Then I'll go looking for a nice typed exception I can use =) | |||
moritz | you could abuse X::Redeclaration for that | 09:36 | |
arnsholt | Yeah. Sounds good | ||
moritz | X::Redeclaration.new(what => 'return type for', symbol => &theroutine, postfix => " (previous return type was {$prevtype.^name}").throw | 09:37 | |
or so | |||
arnsholt | Buh, "Can not get non-existent attribute '$!returns' on class 'Signature'"? | ||
moritz | did you decontainerize? | ||
and is Signature fully set up already? | |||
arnsholt | Oh, that's it perhaps | 09:38 | |
traits.pm is before Signature.pm in the list, so it might not be set up properly? | |||
moritz | the funs of bootstrapping | ||
isn't Signature set up in BOOTSTRAP.pm? | 09:39 | ||
if so, that shouldn't be the problem | |||
jnthn | That error is pretty much always a failure to decontainerize | ||
arnsholt | Hmm. Troo | ||
jnthn | Or you're passing an object of the wrong type in | ||
arnsholt | Oh, durr. I didn't decontainerize the string | ||
09:39
SamuraiJack left
09:41
MayDaniel left
|
|||
arnsholt | Although from other nqp::getattrs that doesn't seem to be required? | 09:41 | |
moritz | it always depends what you work on | ||
arnsholt | Aha | 09:42 | |
moritz | if you work on a variable to which you have bound an object (and not another variable, and not assigned), you don't need to decontainerize | ||
erm, to to rephrase, you only need to decont if there's actually a container | 09:43 | ||
09:43
GlitchMr left,
bbkr joined
|
|||
arnsholt | It's just nqp::getattr(decont($obj), Signature, '$!returns') which should be ok, no? | 09:43 | |
moritz | yes | ||
nqp::decont | 09:44 | ||
nqp::p6decont akshually | |||
09:46
SamuraiJack joined
|
|||
arnsholt | Not pir::perl6_decontainerize? Looks like that's what most of the rest of the code uses | 09:49 | |
jnthn | That wants updating (and probably can be now). | 09:50 | |
Oh, unless you mean in BOOTSTRAP.pm | |||
arnsholt | No, this is traits.pm | ||
jnthn | Then nqp::p6decont is preferable | 09:51 | |
arnsholt | I'll have a whack at that after lunch then | ||
noms & | |||
10:08
scott___ left
10:10
vinian left
|
|||
dalek | kudo/nom: 3a20b76 | moritz++ | / (2 files): remove some deprecated subs and methods |
10:10 | |
10:12
mucker joined
10:23
colomon joined
10:28
GlitchMr joined
10:29
cognominal_ left,
cognominal_ joined
10:33
gongyiliao left
|
|||
arnsholt | Hmm. Still can't get non-existent attribute, even when I p6decont all the things | 10:45 | |
jnthn | What's the code look like? | ||
arnsholt | my $returns := nqp::getattr(nqp::p6decont($target), nqp::p6decont(Signature), nqp::p6decont('$!returns')); # decont all the things | 10:46 | |
From similar code elsewhere, it looks like only decont($target) should be necessary | |||
10:47
cognominal_ left
|
|||
jnthn | What is $target? | 10:47 | |
arnsholt | Routine:D $target | ||
jnthn | Right, so you need $target.signature, no? | ||
arnsholt | Durr. That might be it >.< | 10:48 | |
Of course =) | |||
10:48
cognominal_ joined
|
|||
tadzik | "What is $target?" -- Routine :D | 10:48 | |
10:49
spider-mario joined
|
|||
arnsholt | Yeah, I like that particular bit of syntax =) | 10:49 | |
tadzik | r: sub a(LoL:D) { }; say &a.signature.perl | ||
p6eval | rakudo c1bfbb: OUTPUT«:(LoL:D )» | ||
tadzik | p6eval: what's so funny? | ||
jnthn | Lunch & | 10:51 | |
flussence | does Cat operate non-recursively? if so, would that make a recursive one a LoLCat? | 10:53 | |
tadzik | /o\ | 10:55 | |
r: class Cat {}; sub a(Lol:D, Cat:D) {}; say &a.signature.perl | 10:56 | ||
p6eval | rakudo c1bfbb: OUTPUT«===SORRY!===Invalid typename in parameter declaration at line 2, near ", Cat:D) {"» | ||
tadzik | r: class Cat {}; sub a(Lol:D, Cat) {}; say &a.signature.perl | ||
p6eval | rakudo c1bfbb: OUTPUT«===SORRY!===Invalid typename in parameter declaration at line 2, near ", Cat) {};"» | ||
tadzik | r: class Cat {}; sub a(Lol:D $a, Cat $b) {}; say &a.signature.perl | ||
p6eval | rakudo c1bfbb: OUTPUT«===SORRY!===Invalid typename in parameter declaration at line 2, near " $a, Cat $"» | ||
tadzik | oh | 10:57 | |
r: class Cat {}; sub a(LoL:D $a, Cat $b) {}; say &a.signature.perl | |||
p6eval | rakudo c1bfbb: OUTPUT«:(LoL:D $a, Cat $b)» | ||
tadzik | r: class Cat {}; sub a(LoL:D, Cat) {}; say &a.signature.perl | ||
p6eval | rakudo c1bfbb: OUTPUT«:(LoL:D , Cat )» | ||
10:58
adu left
|
|||
flussence | oh nice, nqp/master just built without needing -G on the stage1 bit. Just needs the stage2 to work now... | 10:58 | |
11:08
JimmyZ_ joined
|
|||
arnsholt | moritz: With your exception snippet, I get "Redeclaration of return type for (previous return type was Str)". Should :symbol be &target.name or something like that instead? | 11:13 | |
masak | .u 😶 | 11:15 | |
phenny | U+1F636 (No name found) | ||
arnsholt | Oh, never mind. I think I just typoed it | ||
jnthn++ # Spotting my brainos | 11:16 | ||
WTF? My code works for of, but if I add it to returns compiling the setting segfaults. | 11:20 | ||
jnthn: Segfault is in container.c, so I'm guessing it's a rakudobug? | 11:24 | ||
Oooh, fun. STABLE(var) (container.c:20) is 0x1 | 11:26 | ||
jnthn | arnsholt: Only if you can reproduce it when you ain't using nqp:: ops and stuff :) | 11:28 | |
arnsholt: What is var? | |||
Does it claim to be a 6model object? | |||
(look at the v-table) | |||
11:30
colomon left
|
|||
arnsholt | Looks like it isn't a sixmodel object, yeah. Vtable looks like it's all Parrot_default_* | 11:32 | |
Although shouldn't my variable be a sixmodel thing when it's multi trait_mod:<returns>(Routine:D $target, Mu:U $type) { ... }? | 11:33 | ||
jnthn | Looks like it sneaked in somewhere that we don't have a check that it really is one | ||
Should be | 11:34 | ||
moritz | arnsholt: ah, yes, &sym.name | ||
arnsholt | moritz: Actually that wasn't necessary. The problem was that I had &target where it should've been $target | 11:35 | |
jnthn: Any ideas for the best way to track down the error? | 11:39 | ||
masak | r: say [] ... [] | 11:41 | |
p6eval | rakudo c1bfbb: OUTPUT«(timeout)» | ||
masak submits rakudobug | |||
<TimToady> why is rakudo not smartmatching the [] and stopping immediately? | |||
moritz | wait | 11:42 | |
masak | n: say [] ... [] | ||
p6eval | niecza v19-15-g051783d: OUTPUT«» | ||
moritz | it doesn't even generate list elements | ||
it's in sink context | |||
so it must loop in the detection stage somewhere | |||
masak | ...still a bug... | ||
moritz | yes | ||
11:45
birdwindupbird left
|
|||
moritz | r: say [] ~~ [] | 11:48 | |
p6eval | rakudo c1bfbb: OUTPUT«True» | ||
11:53
colomon joined
|
|||
colomon | o/ | 11:59 | |
colomon is back from the great white north | |||
moritz | r: [] ... [] | ||
p6eval | rakudo c1bfbb: ( no output ) | ||
moritz | ok, I was wrong, just missed to see the say | 12:00 | |
wb colomon | |||
colomon | moritz: thanks! | ||
did qast go live in rakudo master while I was gone? | |||
moritz | colomon: yes | 12:01 | |
colomon | I see someone beat me to building rakudo on Raspberry Pi... (mine arrived while I was gone) | ||
moritz | PIRT (a replacement for POST written in NQP) also landed | ||
now compiling the setting just takes ~1GB virtual memory | |||
masak | hm, Doug Crockford uses 'closure' (in the CS sense) as a mass noun. | 12:02 | |
12:02
mtk joined
|
|||
arnsholt | masak: Wuh? That's a bit odd, innit? | 12:03 | |
12:03
cotto left,
cotto joined
|
|||
masak | it's a little intriguing. | 12:05 | |
it makes it an *effect*, not a *thing*. | |||
he does it very consistently at www.youtube.com/watch?v=ya4UHuXNygM | |||
12:10
skids left
|
|||
masak | I have never encountered this usage before. I wonder where he got it from. I know he's very history-savvy. | 12:11 | |
GlitchMr | function foo() {} expands to var foo = undefined; foo = function foo() { }; | 12:12 | |
sure... | |||
moritz | GlitchMr: anything wrong with that statement? | ||
cognominal_ | what the T stands for in PIRT? | 12:13 | |
translation? | |||
moritz | cognominal_: tree | ||
cognominal_ | ha! moritz++ | ||
GlitchMr | moritz: jsfiddle.net/JZqUN/ | 12:14 | |
It's more complex than Crockford has said | |||
cognominal_ | I forgot where the nqp:: are translated into their PIR equivalent | ||
jnthn | src/QAST/Operations.nqp | 12:15 | |
GlitchMr | var foo = function foo() {} is not function foo() {} | 12:16 | |
cognominal_ | jnthn++ | ||
GlitchMr | In case of function statement, its moved to top as whole (with function itself). | 12:17 | |
But with var, only declaration itself is moved to top | |||
cognominal_ | that's add_core_pirop_mapping? | 12:18 | |
jnthn | cognominal_: That declares the translation, yes. | 12:19 | |
cognominal_ | sounds like a nice cleaning of stuff that was elsewhere | ||
nice to see the decoupling from PIR get cleaner | 12:20 | ||
masak | GlitchMr: but that's exactly what Crockford says in that talk. | 12:24 | |
moritz has trouble not to understand "pseudo" as "sudo", his "p" is so soft :-) | 12:26 | ||
r: say try die "foo" | |||
p6eval | rakudo c1bfbb: OUTPUT«foo in block at /tmp/8E2QgHAkB0:1» | 12:27 | |
timotimo | strange. i was sure pseudo was supposed to sound just like sudo | 12:29 | |
hoelzro | some people pronounce it 'soo-doo' | 12:30 | |
arnsholt | Depends I think. The French pronounce it (and Greek words in ps- in general) with clear p and s | ||
hoelzro | sudo, that is | ||
moritz | jnthn: I'm curious, why do print, say etc. get a :pure(1) mark in QAST::Operations? | 12:33 | |
they don't look very pure to me | |||
jnthn | moritz: This is why I didn't really like the name "pure" | 12:34 | |
moritz: It really means "can inline without it causing problems" | |||
moritz | what are examples of non-"pure" ops in that sense? | 12:35 | |
jnthn | call | ||
Calls involve a lexical lookup of the thing we wish to dispatch to. | |||
And thus transplanting it into the caller's scope could yield very different results. | 12:36 | ||
moritz | but currently the :pure thing isn't even stored, right? | ||
jnthn | No | ||
That's the next step. :) | |||
arnsholt | jnthn: Is there a Perl6-accesible way to figure out if what I have in a variable actually is a sixmodely thing? | 12:37 | |
moritz | try $thing.WHAT; if $! { say "no 6model" } | 12:38 | |
jnthn | That kind of introspection is rather discouraged. | ||
nqp::p6type(...) will make the thing you have safe. | 12:39 | ||
Or at least, should. | |||
arnsholt | Well yeah, but since my problem is that I get a non-sixmodely thing the easiest way to figure out where it comes from I'm thinking is to check in Perl 6 and die if it isn't | ||
[Coke] | nwc10++ | ||
jnthn | arnsholt: Ah, if it's just for debugging then try what moritz++ said then. | 12:40 | |
moritz | arnsholt: if you want to die anyway, just do $thing.WHAT | ||
r: say pir::set__Ps('foo').WHAT | |||
p6eval | rakudo c1bfbb: OUTPUT«Null PMC access in set_string_native() in block at /tmp/YguO1tSq4t:1» | ||
arnsholt | Cool. Trying that now | 12:41 | |
moritz | r: my $x := pir::new__Ps('String'); $x.WHAT | ||
p6eval | rakudo c1bfbb: OUTPUT«Can only use get_what on a SixModelObject in block at /tmp/qcqWMeMeql:1» | ||
arnsholt | Bah. Still segfaults if I add $target.signature.WHAT before the call | 12:48 | |
moritz | r: QAST::Operations.add_core_pirop_mapping('exit', 'exit', '0i', :pure(1)); | 12:50 | |
p6eval | rakudo c1bfbb: OUTPUT«Could not find symbol '&Operations' in method <anon> at src/gen/CORE.setting:9629 in <anon> at src/gen/Metamodel.pm:2304 in any find_method_fallback at src/gen/Metamodel.pm:2302 in any find_method at src/gen/Metamodel.pm:843 in <anon> at src/gen/BOOTSTRAP… | ||
moritz | sorry, miss-copy | ||
r: say Date.new('2012-12-24').truncated-to(:week) | |||
p6eval | rakudo c1bfbb: OUTPUT«2012-12-24» | ||
moritz | r: say Date.new('2012-12-24').day-of-week | 12:51 | |
p6eval | rakudo c1bfbb: OUTPUT«1» | ||
dalek | c: ea27baf | moritz++ | lib/Date.pod: [Date] document truncated-to |
12:52 | |
12:53
MayDaniel joined
|
|||
felher | Anyone here to review and maybe even apply the following rakudo patch: gist.github.com/3206000 . I attached a spectest log and the output of the two failing tests. I don't think the failing tests have anything todo with my patch. | 12:53 | |
moritz | r: BEGIN { @*ARGS.push: '--foo' }; sub MAIN() { } | 12:56 | |
p6eval | rakudo c1bfbb: OUTPUT«Unexpected named parameter 'foo' passed in sub MAIN at /tmp/yfkqRKz8X5:1 in block at /tmp/yfkqRKz8X5:1» | ||
12:57
PacoAir joined
|
|||
moritz | felher: and the patch changes that to instead print the usage message? | 12:57 | |
moritz compiles it | |||
felher | moritz: yeah. It works on my machine. | ||
daxim | the rakudo deatch star has TWO lazzz0rs? impressive. | 12:59 | |
dalek | kudo/nom: f4b83df | moritz++ | tools/build/NQP_REVISION: bump NQP revision to get dyncall callbacks, arnsholt++ |
13:05 | |
kudo/nom: 705fabb | (Felix Herrmann)++ | src/core/Main.pm: make Main.pm output a usage message on an unexpected named argument instead of bind failing Signed-off-by: Moritz Lenz [email@hidden.address] |
|||
felher | \o/ | ||
moritz++: thnx | |||
dalek | ast: 9ca79dd | moritz++ | S06-other/main-usage.t: test that MAIN + unexpected named args trigger USAGE message |
13:06 | |
13:06
IamContagious left
13:10
kaleem left
13:15
atrodo joined
13:26
bluescreen10 joined
|
|||
cognominal_ | what is a "local variable" in QAST? | 13:26 | |
13:27
PacoAir left,
benabik left,
PacoAir joined,
benabik joined,
drbean left
|
|||
cognominal_ | local versus lexical does not say much about what is local | 13:27 | |
13:28
thou joined
13:29
drbean joined
|
|||
diakopter | cognominal_: afaik, local translates to a PIR local register; lexical transates to a PIR find_lex from lexical to register, store_lex from register to lexical | 13:34 | |
I assume you're talking about :scope on QAST::Var | 13:35 | ||
cognominal_ | ok. so I should see the PIR doc. thx. diakopter++ | 13:37 | |
diakopter | well, if you want the variable to be able to be used in closures taken from the block you're in, use a lexical.. otherwise, local. | ||
13:39
kaleem joined
13:40
brrt left
|
|||
cognominal_ | "The C<.local> directive indicates that the named register is only needed inside the current subroutine (that is, between C<.sub> and C<.end>)." | 13:40 | |
diakopter | what about it? :) | 13:42 | |
cognominal_ | well, I just cite the doc. | ||
which confirms what you just said | 13:43 | ||
13:43
skids joined
|
|||
pmichaud | good morning, #perl6 | 13:47 | |
colomon | \o | ||
hoelzro | morning pmichaud | 13:48 | |
[Coke] | pmichaud: hio | 13:49 | |
moritz | good am, pm | ||
[Coke] wonders what the perl6 folks attending yapc::eu are going to do. Take over the cafeteria or something? | 13:50 | ||
Just have a week long hackathon? | |||
moritz | I might not attend (though not because of the talks, but rather because of timing issues) | 13:51 | |
it's not decided yet | |||
[Coke]: in Pisa (2010) we had an inofficial p6 hallway track :-) | |||
13:52
fhelmberger left
|
|||
pmichaud | [Coke]: I have no idea. I'm guessing we'll figure something out. | 13:53 | |
moritz | nr: say (a => 42)<a> | 14:02 | |
p6eval | rakudo c1bfbb: OUTPUT«42» | ||
..niecza v19-15-g051783d: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Pair at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 354 (Any.at_key @ 9)  at <unknown> line 0 (ExitRunloop @ 0)  at /tmp/wwCIi9OKlQ line 1 (mainli… | |||
dalek | c: 5a88982 | moritz++ | lib/Associative.pod: document Associative |
14:05 | |
c: 8ea8a99 | moritz++ | lib/X/Comp.pod: X::Comp (needs more work) |
|||
14:10
cognominal_ left
|
|||
jnthn | o/ pmichaud | 14:10 | |
pmichaud | o/ jnthn | 14:11 | |
14:11
cognominal joined
|
|||
pmichaud works outdoors in the 30degC weather | 14:11 | ||
today's forecast is 40degC, though :-( | 14:13 | ||
jnthn | ouch :/ | ||
Today we finally got some rain, which has made things less stuffy. | |||
jnthn focuses on $dayjob stuff again for a bit | |||
moritz | nrp: say ?all() | 14:15 | |
p6eval | pugs: OUTPUT«all()» | ||
..rakudo c1bfbb, niecza v19-15-g051783d: OUTPUT«True» | |||
moritz | nrp: say ?none() | 14:16 | |
p6eval | pugs: OUTPUT«none()» | ||
..rakudo c1bfbb, niecza v19-15-g051783d: OUTPUT«True» | |||
14:17
MayDaniel left
14:28
MayDaniel joined
14:34
fr0g joined
|
|||
dalek | c: 4296057 | moritz++ | TODO: update TODO |
14:35 | |
14:37
wtw left
14:38
dudz left
14:42
jerome left
14:43
jerome joined
14:44
cognominal left,
cognominal joined
|
|||
dalek | c: dbc6f4e | moritz++ | / (2 files): Junction |
14:49 | |
c: 7ef8834 | moritz++ | / (2 files): remove TODO instead add a script which shows missing types, using type-graph.txt as reference |
|||
pmichaud | moritz++ # docs | 14:52 | |
moritz | has anybody check if p6doc works with star? | 14:53 | |
*checked | |||
pmichaud | not me | 14:54 | |
moritz | fascinating. It seems that Num has no methods except those provided by roles or superclasses | 14:56 | |
dalek | c: beb5d73 | moritz++ | lib/Num.pod: Num |
14:57 | |
14:58
birdwindupbird joined
|
|||
dalek | c: e951297 | moritz++ | lib/Int.pod: [Int] method/sub chr |
15:00 | |
moritz | I find that I don't live under the constant fear that the majority of the docs will be obsolete soon | 15:01 | |
(though I also avoid documenting stuff of which I suspect that it'll go away) | |||
[Coke] | r: say .chr() | 15:04 | |
p6eval | rakudo c1bfbb: OUTPUT«No such method 'chr' for invocant of type 'Any' in block at /tmp/Ljf5v_vjEL:1» | ||
[Coke] | r: say Int.chr() | ||
p6eval | rakudo c1bfbb: OUTPUT«Parameter '' requires an instance, but a type object was passed in method chr at src/gen/CORE.setting:2764 in block at /tmp/JJWAox2GHx:1» | ||
moritz | r: say v1.0.* | 15:10 | |
p6eval | rakudo c1bfbb: OUTPUT«v1.0.*» | ||
moritz | r: say v1.0.*+ | ||
p6eval | rakudo c1bfbb: OUTPUT«v1.0.*+» | ||
moritz | r: say v1.alpha.*+ | 15:11 | |
p6eval | rakudo c1bfbb: OUTPUT«===SORRY!===Confusedat /tmp/kcCtr07_Y1:1» | ||
moritz | r: say v | 15:12 | |
p6eval | rakudo c1bfbb: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&v' called (line 1)» | ||
15:17
kaleem left
|
|||
masak | why is v1.0.*+ allowed? | 15:18 | |
I mean, what does it add on v1.0.0+ ? | |||
moritz | just no reason to forbid it | 15:19 | |
dalek | c: 7a00159 | moritz++ | lib/Version.pod: document Version (missing: method new) |
15:20 | |
pmichaud | ...versions can contain alphas | 15:21 | |
ah, it says "version literals". never mind. | |||
moritz | which is why it would be important to document method new | 15:22 | |
because it's currently the only way to create versions with alphas | |||
pmichaud | yup | ||
.new just takes a string and makes a version out of it :-) | |||
I can work on that one. | |||
moritz thinks that the docs for Whatever will be fun to write | 15:25 | ||
in general, I've tried to include language features that relate to a type in the documentation for that type | 15:26 | ||
ie autothreading is documented in Junction.pod | |||
so Whatever.pod would explain Whatever-currying | |||
but I wouldn't go so far to document grammars in Grammar.pod :-) | 15:27 | ||
15:31
p6eval left
|
|||
dalek | c: 1e8e00f | pmichaud++ | lib/Version.pod: Add draft of method 'new'. |
15:31 | |
15:33
dalek left,
Juerd left
15:35
pmichaud left
15:37
tadzik left
15:38
dalek joined,
ChanServ sets mode: +v dalek,
Juerd joined,
Util left,
Util joined
|
|||
GlitchMr | Is version like v1.*.2 pointless? | 15:39 | |
15:41
pmichaud joined
|
|||
masak | std: v1.*.2 | 15:43 | |
oh, p6eval is on holiday since 17:32. | |||
jnthn | Well, it is summer. | 15:44 | |
geekosaur | brb watching olympic evalthlon? | 15:45 | |
TimToady | std sez ok | 15:46 | |
but pragmatically, it's likely to be pointless, unless community standards require .2 to mean something in every case | 15:47 | ||
which they ain't gonna | |||
otoh, we're talking about versions in general, so it's not just Perl community standards | 15:48 | ||
geekosaur | it occurred to me that while v1.*.2 /per se/ is dubious, v1.*.0 is potentially useful | ||
TimToady | a nd 1.*.0 might make more sense | ||
you beat me :) | |||
15:52
p6eval joined,
ChanServ sets mode: +v p6eval
15:53
cognominal left
15:56
raiph joined
16:00
JimmyZ_ left
16:01
SamuraiJack left
16:02
zamolxes joined
|
|||
moritz | 1.*.alpha | 16:02 | |
geekosaur | right, same idea | 16:03 | |
there are some milestone-like things that are useful, but 1.*.2 isn't really a meaningful milestone that is at all coordinated over values for the whatever | 16:04 | ||
16:04
SamuraiJack joined
|
|||
moritz | unless you create a piece of software where it is | 16:05 | |
or somebody else does | |||
16:06
xinming_ joined
|
|||
GlitchMr | gist.github.com/3208055 | 16:07 | |
:) | |||
So, I think I parse Perl 6 documentation :) | 16:08 | ||
(order doesn't matter0 | |||
) | |||
moritz | \o/ | ||
GlitchMr | Now to convert it to DuckDuckGo's output.txt format | ||
16:09
cognominal joined
|
|||
crazedpsyc | GlitchMr++ :) | 16:09 | |
moritz has received two duckduckgo t-shirts today :-) | 16:10 | ||
16:10
xinming left
|
|||
flussence | .oO( v1.(* %% 2).* would be useful, but that's overcomplicating things. ) |
16:10 | |
moritz | (wrong size, but still close enough to wear them) | ||
GlitchMr | Well, they wanted to give me DuckDuckGo's T-Shirts | ||
But why I would take them :P | |||
16:10
bbkr left
|
|||
GlitchMr | For "contributions" | 16:11 | |
moritz | why wouldn't you? | ||
GlitchMr | Why I would | ||
moritz has lots of geek t-shirts at home, and isn't shy about wearing them | |||
jnthn | Most of my t-shirts come from conferences :) | 16:12 | |
masak 's too | |||
GlitchMr | Now, only my problem is colon thing | ||
"Takes a format string, and returns a string the key and value parts of the Pair formatted. Here's an example:" | |||
"Adds the @new elements to the hash with the same semantics as hash assignment, but with three exceptions:" | |||
Well, I guess that example thing could be removed... simply as that | 16:13 | ||
16:13
sergot left
|
|||
moritz | GlitchMr: what is the problem with the excerpts you cited? | 16:13 | |
GlitchMr | Here's an example: | 16:14 | |
16:17
tadzik joined
|
|||
GlitchMr | It currently looks like paste.uk.to/ada2216b | 16:19 | |
moritz | ah, it requires more effort to parse | 16:22 | |
elsif ( $tags[-1] eq 'pre' && !$fields{prototype}) # might help | |||
GlitchMr | oh thanks | 16:23 | |
I haven't noticed | |||
== Numeric.succ == | 16:24 | ||
'12.34'.succ # 13.34 | |||
'img001.png'.succ # img002.png | |||
something went wrong... weird | |||
oh, I see | |||
16:25
shinobicl joined
|
|||
shinobicl | hello! | 16:25 | |
i'm having troubel compiling perl6 | |||
"invoke() not implemented in class '$post'" | |||
GlitchMr | $fields{prototype} ||= $dtext; would work too, I guess? | 16:26 | |
moritz | shinobicl: is that while compiling nqp? | ||
masak | shinobicl: in which part of the build? | ||
moritz | GlitchMr: but then you'd skip the examples | ||
GlitchMr: which might be weird if text before or after the examples talks about them | 16:27 | ||
GlitchMr | No space | ||
shinobicl | make: *** [src/stage1/NQPCORE.setting.pbc] Error 1 | ||
yep, NQPCORE | |||
GlitchMr | I will try to remove examples instead | ||
masak | shinobicl: hm. :/ | ||
moritz | shinobicl: that's a known bug | ||
shinobicl: as a workaround, you can try to add the -G flag to the command that failed | 16:28 | ||
GlitchMr | All I want is function prototype and short description | ||
Just like with duckduckgo.com/?q=perl+split | |||
moritz | GlitchMr: then you should probably only ever use the first paragraph | ||
GlitchMr | Yes, I only use first paragraph | 16:29 | |
shinobicl | this is my script for updating rakudo: pastebin.ca/2175902 | ||
16:29
sergot joined
|
|||
tadzik | shinobicl: git clean -fdx may save you some bandwidth :) | 16:29 | |
GlitchMr | Unless I've done something wrongly? | 16:30 | |
moritz | (but needs to be repeated in rakudo/parrot/ and rakudo/nqp/) | ||
tadzik | hm, true | ||
shinobicl | ahh i have lots of bandwidth :) i use that machine mostly for playing with perl6 and i update like once a week | ||
so, i should add -G in the like with MAKE then | |||
like=line | |||
moritz | shinobicl: no | ||
shinobicl: you have to add that to the last command that the build process ran before it encountered that error | 16:31 | ||
GlitchMr | doc.perl6.org/routine/new#EnumMap | ||
moritz | (as I said, it's a workaround) | ||
GlitchMr | It seems that lack of information confused my script | ||
shinobicl | thanks moritz, i'll look into that | 16:32 | |
moritz | GlitchMr: oops, that shouldn't be like that | ||
dalek | c: 19335e2 | moritz++ | lib/EnumMap.pod: elaborate on EnumMap.new, GlitchMr++ |
16:34 | |
c: a3cad24 | moritz++ | lib/X/AdHoc.pod: harmonize markup |
16:35 | ||
masak | moritz++ # untiring work on perl6/doc | ||
dalek | c: c5af24c | moritz++ | .gitignore: [gitignore] ignore html dir |
16:36 | |
GlitchMr | doc.perl6.org/routine/Str#Match | 16:37 | |
No prototype | |||
multi method Str(Match:D:) returns Str:D? | |||
Actually, whole Match lacks prototypes | 16:41 | ||
I should make it ignore lack of prototypes | |||
16:43
hoelzro is now known as hoelzro|away
16:44
birdwindupbird left
|
|||
TimToady | moritz: re 'say [] ... []' I fail to see how the ... is in sink context, since 'say' is looser than ... | 16:46 | |
moritz | TimToady: yes, I noticed that too (later in the backlog) | 16:47 | |
GlitchMr: there are actually many methods without prototypes :( | 16:48 | ||
16:52
thelazydeveloper joined
16:53
dakkar left
17:01
shinobicl left
17:05
pyrimidine joined
17:08
mtk left
17:09
mtk joined
|
|||
arnsholt | moritz: Could you have a look at gist.github.com/3206774 (my patch for not having several return types) when you get a chance? | 17:10 | |
Two weird things: 1) Doing X::Redeclaration.throw nets me two "use of uninitialized value of type Any in string context in any apply_trait at src/Perl6/World.pm:1301", but just doing die works fine | 17:11 | ||
2) The segfault thing if you don't comment out the code in trait_mod:<is> | 17:12 | ||
masak | arnsholt: that double "use of uninitialized..." behavior has hit some of us previously. it's mysterious. | ||
arnsholt | Good to know, I suppose | 17:13 | |
The second one seems mysterious as well :/ | |||
masak | arnsholt: ...um, which trait_mod:<is>? | 17:16 | |
arnsholt | Bah. <returns> | 17:17 | |
I keep thinking it's sub foo is returns, not sub foo returns | |||
masak | arnsholt: what about commenting out a subset of those lines of code? | 17:18 | |
moritz | arnsholt: I think I know where the warnings come from | 17:20 | |
arnsholt: X::Redeclaration is X::Comp, which carries around file name and line number of the error | |||
flussence | Q: is there a way to get at a module's pod? Something like "use Foo::Bar; Foo::Bar::$=pod;"? | 17:21 | |
moritz | flussence: not yet :( | ||
flussence | aww :( | ||
moritz | flussence: p6doc helps itself with eval slurp($file) ~ "\n\$=pod" | ||
17:21
mtk left
|
|||
moritz | which MTA (More Than Aweful) | 17:22 | |
17:22
mtk joined
|
|||
moritz | arnsholt: so if you don't provide file name and line number, you get uninit warnings for both (more) | 17:22 | |
masak | flussence: it would probably be $=Foo::Bar::pod, because of how sigils/twigils and package names nest. | ||
17:23
shinobicl joined,
am0c left
|
|||
moritz | arnsholt: the correct way to supply those is to wrap the location where the trait handler is called in $*W.rethrow($/, { codeblock that calls the trait handler}); | 17:23 | |
which catches the exception, adds file and line number, and rethrows | 17:24 | ||
masak | moritz++ | ||
17:24
am0c joined
|
|||
dalek | c: 1c0e7f4 | raiph++ | lib/Junction.pod: typos |
17:24 | |
moritz | wow, people actually read what I write :-) | 17:25 | |
arnsholt | moritz: Aha! That explans the the undefs. Thanks! | 17:26 | |
17:26
seldon joined
17:27
fr0g left
|
|||
moritz | moritz.faui2k3.org/tmp/p6doc # crude visitor stats for doc.perl6.org. About 75 per day so far | 17:29 | |
17:31
Raimiss joined
|
|||
dalek | c: 448d5cf | raiph++ | lib/List.pod: typos |
17:38 | |
17:42
[particle] left
|
|||
moritz | Failed to copy 'html-files/favicon.ico' to 'html': Is a directory | 17:47 | |
of course, 'html' is a directory | |||
that's the whole point, stupid | |||
17:48
cognominal_ joined
|
|||
dalek | c: d5477a8 | moritz++ | html (2 files): [htmlify] add copying of static files; add favicon |
17:49 | |
17:51
cognominal left
17:52
[particle] joined
18:06
ilogger2 joined,
ChanServ sets mode: +v ilogger2,
birdwindupbird joined
18:09
Raimiss joined
|
|||
arnsholt | Progress! The segfault isn't triggered by the attribute get part | 18:10 | |
moritz: When I wrap the trait application in $*W.ex-handle(...) I get "Can not bind non-existent attribute '$!filename' on class 'X::Comp::AdHoc'" instead of what I expected. Familiar? | 18:12 | ||
18:13
Raimiss left
|
|||
moritz | arnsholt: not expected, but I might know how to fix that | 18:14 | |
18:15
Raimiss joined
|
|||
moritz | arnsholt: basically World.rethrow doesn't handle that case yet | 18:21 | |
arnsholt: currently it assumes an untyped exception, and turns that into X::Comp::AdHoc | |||
arnsholt: but of course it shouldn't do that with something that is already X::Comp | |||
I need to refactor that routine a bit :( | 18:22 | ||
arnsholt | Right | ||
I'll leave it for now, then | |||
moritz | arnsholt: gist.github.com/3208907 totally untested shot-in-the-dark patch | 18:23 | |
it compiles :-9 | |||
jnthn: halp. In Perl6::World, I need to find out into which class (of potentially several superclassses) a role was applied to | 18:25 | ||
hm | 18:26 | ||
maybe I simply provide a setter method | |||
18:30
birdwindupbird left
|
|||
moritz | r: role A { has $.x; method set { $!x = 5 } }; class B does A { }; given B.new { .set; say .x } | 18:31 | |
p6eval | rakudo c1bfbb: OUTPUT«5» | ||
arnsholt | jnthn: While we're on the subject (ish), I'm starting to suspect the segfault is triggered somewhere in the callgraph above the returns trait application when an exception is thrown | 18:32 | |
moritz | arnsholt: gist.github.com/3208907 updated with less ad-hoc patch | 18:39 | |
arnsholt | Cool. I'll play with it tomorrow | 18:41 | |
Right now I'm trying to squash that annoying segfault bug >.< | 18:42 | ||
jnthn | r: role R { }; class A { }; class B is A does R { }; class C is B { }; say C.^mro.grep(*.^roles(:local).grep(R).elems) | 18:46 | |
p6eval | rakudo c1bfbb: OUTPUT«use of uninitialized value of type B in string context in block at /tmp/jsuL8j85KO:1» | ||
jnthn | er | ||
r: role R { }; class A { }; class B is A does R { }; class C is B { }; say C.^mro.first(*.^roles(:local).grep(R).elems) | |||
p6eval | rakudo c1bfbb: OUTPUT«B()» | ||
jnthn | moritz: Like ^ | ||
? | |||
18:46
MayDaniel joined
|
|||
jnthn | Oh, but in world...but the approach works :) | 18:46 | |
moritz | I'm just going with an all-caps setter method now | 18:47 | |
jnthn | arnsholt: Did you add something on the code-path that leads to the segfault to validate that we really have a 6model object there? | ||
18:48
[particle] joined
|
|||
arnsholt | Yeah, I think I've tried $thing.WHAT on all the relevant things before the exception throwing, so I'm not sure what it is | 18:48 | |
Also, commenting out the exception throwing fixes it, so it's not the nqp::getattr. It's not the nqp::isnull($returns) either, since putting just that it doesn't break it either | 18:50 | ||
jnthn | arnsholt: No, I meant a check like github.com/rakudo/rakudo/blob/nom/...iner.c#L65 | ||
moritz | sometimes exception + segfault is an infinite loop of exceptions + catching + rethrowing, which leads to stack overflow or so | ||
jnthn | Could be that also I guess. | ||
arnsholt | Hmm. Is there a way to do that vtable thing from Perl 6? | 18:51 | |
jnthn | No | ||
arnsholt | Hmm | ||
jnthn | But the segfault is in container.c somewhere, no? | 18:52 | |
So look down the stacktrace to see where the object entered C land. | |||
arnsholt | runops_fast_core > Parrot_perl6_enter_multi_dispatch_from_onlystar_block_p > Rakudo_md_dispatch > find_best_candidate > Rakudo_cont_decontainerize | 18:54 | |
With some more Parrot stuff above runops_fast_core, of course | |||
18:58
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
raiph | r: sub f(\$parcel, $non-parcel) { } | 18:58 | |
p6eval | rakudo c1bfbb: ( no output ) | ||
jnthn | arnsholt: eek, a non-Perl 6 value is getting passed into the multi-dispatcher. | 19:00 | |
That's gonna be ungood. | |||
arnsholt | Weird. Kinda odd that it didn't blow up already | 19:01 | |
jnthn | But it tells you what you're looking for: some place we do a multi-dispatch with the "wrong thing" | ||
arnsholt | Hmm | ||
19:02
fgomez joined
|
|||
arnsholt | jnthn: Is there a way to poke at things in gdb and find the name of the sub we're multidispatching for? | 19:08 | |
raiph | r: sub f(\$parcel, $non-parcel) { say $parcel.WHAT; say $non-parcel.WHAT }; f((), ()) | 19:16 | |
p6eval | rakudo c1bfbb: OUTPUT«Parcel()Parcel()» | ||
raiph | moritz: i'm looking at doc.perl6.org/type/Parameter | 19:17 | |
specifically doc.perl6.org/type/Parameter#parcel | 19:18 | ||
i don't understand why you've included the line of code i sent above to p6eval | |||
moritz | raiph: the terminology is a bit misleading... (more) | 19:19 | |
raiph: if a parameter is prefixed with \ it means that it doesn't decontainerize | |||
so if you pass a variable to it, you can assign to the parameter | |||
and if not, you cannot | |||
(which is in contrast to 'is rw', which (should) fail at bind time if a non-variable is bound to it) | 19:20 | ||
19:23
fridim_ joined
|
|||
moritz | r: class A is Real { } | 19:24 | |
p6eval | rakudo c1bfbb: ( no output ) | ||
moritz | r: module A { }; class B is A { } | ||
p6eval | rakudo c1bfbb: OUTPUT«===SORRY!===B cannot inherit from A because it is not inheritable» | ||
19:25
Raimiss left
|
|||
jnthn | arnsholt: Hmm...not easily, I fear. | 19:29 | |
arnsholt | Drat. Also, I have to admit I'm mystified by find_best_candidate | 19:31 | |
Or at least a bit | |||
I guess GETATTR_CallContext_positionals is a macro masquerading as a function | 19:32 | ||
19:32
birdwindupbird joined
|
|||
arnsholt | Nah. I'll try this again tomorrow. Brain full now | 19:38 | |
raiph | moritz: i'm still mulling what you wrote. i don't yet see a connection from what u just said to the code sample | ||
moritz | raiph: the code sample isn't too helpful :( | 19:39 | |
raiph | moritz: (and also the one for the .capture entry: sub f(\capture) { } ) | 19:40 | |
hmm. i'll just finish the typo check and come back to this another time. | 19:41 | ||
moritz | raiph: I'll try to improve the docs | 19:42 | |
dalek | c: b7e4919 | raiph++ | lib/Parameter.pod: typos |
19:43 | |
19:50
crab2313 joined
|
|||
dalek | c: 8666fe3 | moritz++ | lib/Parameter.pod: [Parameter] elaborate on parcel and capture params, raiph++ |
19:50 | |
kudo/trait-exceptions: afe141b | moritz++ | src/ (2 files): refactor World.rethrow a bit you can now throw typed exceptions without file/line information, and have World.ex-handle add them for you previously only untyped exceptions were supported, and wrapped into X::Comp::AdHoc. arnsholt++ for poking me |
19:54 | ||
kudo/trait-exceptions: de73915 | moritz++ | src/ (3 files): enable throwing of X::Comp exceptions from trait handlers |
|||
moritz | arnsholt: I'm spectesting that branch now. If it passes tests, that can serve as foundation for the exception stuff you want to do, instead of the crappy patches I pasted earlier :-) | 19:55 | |
and we'll finally get line numbers from failed traits | 19:56 | ||
(at least, some of them :-) | |||
nqp: my $_ := 3; ( -> { say $_ })() | 20:00 | ||
p6eval | nqp: OUTPUT«Missing block at line 2, near "-> { say $"current instr.: 'nqp;HLL;Grammar;panic' pc 22407 (src/stage2/gen/NQPHLL.pir:8523) (src/stage2/gen/NQPHLL.pm:326)» | ||
moritz | nqp: my $_ := 3; ({ say $_ })() | 20:01 | |
p6eval | nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 2, near "say $_ })("current instr.: 'nqp;HLL;Grammar;panic' pc 22407 (src/stage2/gen/NQPHLL.pir:8523) (src/stage2/gen/NQPHLL.pm:326)» | ||
moritz | nqp: my $_ := 3; ({ say($_) })() | 20:02 | |
p6eval | nqp: OUTPUT«3» | ||
dalek | kudo/trait-exceptions: 92b627f | moritz++ | src/Perl6/Actions.pm: ex-handle routine traits |
20:03 | |
kudo/trait-exceptions: 85800a0 | moritz++ | src/ (2 files): more exception fixes |
20:15 | ||
20:29
birdwindupbird left
20:30
birdwindupbird joined
|
|||
dalek | kudo/trait-exceptions: ff98fd1 | moritz++ | src/core/Exception.pm: X::Export::NameClash now also does X::Comp |
20:38 | |
20:40
birdwindupbird left
|
|||
dalek | kudo/trait-exceptions: fe675c9 | moritz++ | src/Perl6/ (2 files): fix pod |
20:44 | |
moritz | I hope that cleans up the spectest again | 20:46 | |
dalek | kudo/nom: afe141b | moritz++ | src/ (2 files): refactor World.rethrow a bit you can now throw typed exceptions without file/line information, and have World.ex-handle add them for you previously only untyped exceptions were supported, and wrapped into X::Comp::AdHoc. 96699c0 | jnthn++ | docs/ChangeLog: Be a little more precise/informative about magnitude of memory improvements. |
21:01 | |
21:02
dalek joined,
ChanServ sets mode: +v dalek
|
|||
lue | hello world o/ | 21:04 | |
masak | lue! \o/ | 21:05 | |
moritz | \o | ||
sorear | lue! \o/ | ||
masak | sorear! \o/ | 21:06 | |
moritz | masak! \o/ | 21:07 | |
masak does a little happy dance | |||
21:09
pnu joined
21:10
preflex joined
|
|||
moritz | jnthn: ChangeLog also doesn't mention PIRT yet | 21:10 | |
21:10
Exodist joined
|
|||
dalek | kudo/nom: 7b678c3 | jnthn++ | docs/ChangeLog: Mention PIRT. |
21:11 | |
21:13
DarthGandalf joined
|
|||
dalek | kudo/nom: 7c4c8b1 | moritz++ | docs/ChangeLog: mention trait exception improvements in ChangeLog |
21:13 | |
moritz | sleep time here | 21:14 | |
lue | goodnight moritz o/ | 21:15 | |
jnthn | 'night, moritz | ||
masak | good night, moritz. dream of wonderful ChangeLogs and squeaky-clean documentation. | ||
moritz | and informative exceptions! | 21:16 | |
masak | sssh! :P | 21:17 | |
21:22
benabik joined
|
|||
masak | > x right rod | 21:25 | |
It's a rod and it's on the right. It's made of liquorice. | |||
Nah, just kidding! It looks to be made of copper or something. | |||
:P | |||
PerlJam starts cranking his portable Van der Graaf generator and stands near the rod | 21:26 | ||
[Coke] | uhoh, we're in trouble. | ||
sorear | Does the description change if you move it to your left? | 21:27 | |
[Coke] | I just heard that the Hobbit is going to be /3/ movies. | ||
masak | sorear: the rod is fixed to the floor. | 21:28 | |
PerlJam | "Van der Graaf"? or "Van de Graaf"? | ||
sorear | masak: you can use your feet to move the floor in your reference frame, though. | ||
unless the floor is also fixed to you? | |||
benabik | [Coke]: It should not take the same amount of film for the Hobbit as the entire Lord of the Rings. | 21:29 | |
2 was stretching it, I thought | |||
sorear hands PerlJam a Wimshurst Machine. | 21:30 | ||
dalek | p: 127288f | jnthn++ | src/QAST/Operations.nqp: Using 'pure' is gonna confuse everyone as to what it means, so just call it inlinable. |
21:31 | |
p: d94369f | jnthn++ | src/QAST/Operations.nqp: Collect op inlinability information and allow it to be queried. |
|||
masak | sorear: you can use your feet to move the floor in your reference frame, but only at the granularity of rooms. (in my game) | 21:32 | |
[Coke] | benabik: they're pulling in some of the other source material. | 21:36 | |
masak doesn't know whether to like that or not | 21:37 | ||
lue | masak: safe to say it's probably going to anger a few fans :) .oO(Ooh, there's this part in The Lion, the Witch, and the Wardrobe that'll work perfectly for this scene!) | 21:39 | |
21:39
fridim_ left
21:43
benabik left
21:44
benabik joined
|
|||
masak | lue: I just pushed today's crypt work. | 21:45 | |
lue: you can now 'put the tiny disk on the right rod'. | |||
masak blogs | |||
lue | \o/ | ||
huf | i wonder what ties in with the hobbit so strongly that you can include it... | 21:47 | |
lotr is written to be much "wider", so i'd think it'd be easier to add things to it | |||
masak too | |||
huf | were it not already too goddam long for a movie | ||
i can't really imagine bits of the silmarillion in the mittle of the hobbit, and what else is there? | 21:48 | ||
cutting to the story of celebrimbor in the middle of the movie to explain the origin of the ring is ... doesnt sound very fortunate | |||
they shouldda picked the story of turin. also has a dragon in it AND is sad enough to make stone weep | 21:50 | ||
21:52
MayDaniel left
|
|||
lue | masak: finally beat the game! (also, I half-expected > x camelia to work :P) | 21:55 | |
masak | lue: I also beat the game on the CLI for the first time tonight ;) | ||
lue: how should I make 'x camelia' work? I don't have noun synonyms... | 21:56 | ||
lue looks at how other synonyms work in crypt before making an answer | |||
masak | do we have an ASCII art Camelia? | ||
huf | "Camelia" is fairly distinctive... | 21:57 | |
sorear | masak: yes. | ||
masak: well, latin1 art | |||
lue | »ö« | 21:58 | |
TimToady | it's only, like, in the topic | ||
21:58
crab2313 left
|
|||
masak | I know about that one ;) | 21:59 | |
I meant a bigger one, like 15x20. | |||
TimToady | ah | ||
we could probably do one in braille dots... | |||
masak | :P | 22:01 | |
lue | maybe a .make_synonym or .make_alias method? .oO(make_ln) | 22:02 | |
masak | could work. not a half-bad idea, actually. | 22:05 | |
I haven't needed it for crypt, but I could see how other games might need it. | |||
and we only do that for directions. | |||
lue++ | |||
s/only/already/ | |||
lue | you have a %exit_aliases hash in Adventure::Engine, so I don't think %object_aliases should be too difficult :) | 22:06 | |
22:06
tanzdebil joined
|
|||
tanzdebil | evening | 22:06 | |
masak | ooh -- got an email with bug reports! | ||
jnthn | evening, tanzdebil | 22:07 | |
tanzdebil | was wondering if anyone was up on the state of KeyBag & friends in rakudo | ||
masak | lue: %thing_aliases, keeping with the naming scheme, but yes :) | ||
r: KeyBag; say "well, we have KeyBag" | |||
p6eval | rakudo c1bfbb: OUTPUT«well, we have KeyBag» | ||
masak | lol, I blogggggggggged! \o/ strangelyconsistent.org/blog/july-3...loose-ends | ||
(only one day to go! *pant* *pant*) | 22:08 | ||
jnthn | Looking at the test list, we certainly run a bunch of tests for KeyBag and KeySet. | ||
masak reads the email | |||
tanzdebil | as in, looks like the nice little set operators are in the spec but not yet impl - yes? | 22:10 | |
ingy | where is the p6 cpan and what is it called? | ||
tanzdebil | r: my $x = KeyBag.new({a => 1}); my $y = KeyBag.new({a => 2}); my $z = $x ⊍ $y; say "z = ", $z; | 22:11 | |
p6eval | rakudo c1bfbb: OUTPUT«===SORRY!===Confusedat /tmp/qfkI0fnNOu:1» | ||
masak | ingy: modules.perl6.org | ||
TimToady | n: my $x = KeyBag.new({a => 1}); my $y = KeyBag.new({a => 2}); my $z = $x ⊍ $y; say "z = ", $z; | 22:12 | |
p6eval | niecza v19-15-g051783d: OUTPUT«z = keybag("a" => 1)» | ||
TimToady | hmm | ||
colomon is suddenly paying attention... | |||
ingy | masak: does it have a common name? 6pan? | 22:13 | |
TimToady | looks like an entymological entity | ||
sorear | colomon! \o/ | 22:14 | |
masak | ingy: no, nothing like that. it's generally considered a temporary solution, because we have a "real" CPAN. | ||
tanzdebil | TT: ok, double checking... | 22:15 | |
ingy | well I'll call it 6PAN in the talk proposal | ||
I think people will get it... | |||
masak | [Coke], lue: you just got completely ousted by the guy (Kevin Colyer) who just sent me an email about crypt. | ||
jnthn | tanzdebil: Right, we don't have the unicode forms of them in Rakudo at least. | ||
lue | masak: how so? | ||
masak | he sent me a transcript of things he tried! | ||
colomon | sorear: I started scheming on vastly improved case-routines while up north, but decided to fish more instead of actually trying to implement them. | ||
masak | with dozens of good suggestions! | 22:16 | |
jnthn | Hmm...or even the ascii ones it seems. | ||
tanzdebil | jnthn: ok cool, just making sure. | ||
sorear | colomon: what's a case routine? | 22:17 | |
jnthn | tanzdebil: I guess they're not terribly hard to implement, just nobody got to 'em yet. | ||
dalek | p: a8df907 | jnthn++ | / (12 files): Add a QAST::InlinePlaceholder to represent a place in the QAST where an argument needs to be filled in when inlining. Implement a first cut of producing a tree with the placeholders substituted in. |
||
lue | I thought the unicode set ops were NYI, and it seems still to be so (unless I'm awful at searching through perlcabal.org's google search) | ||
masak | lue: I added his email to gist.github.com/3034482 | 22:18 | |
the totality of all the things he unearthed makes him an easy winner of this month's contest. | 22:19 | ||
there's still time left, though :) | |||
tanzdebil | r: my $x = KeyBag.new({a => 1}); my $y = KeyBag.new({a => 2}); my $z = $x ⊍ $y; say "z = ", $z; | ||
p6eval | rakudo c1bfbb: OUTPUT«===SORRY!===Confusedat /tmp/zGS9ZlOYgp:1» | ||
masak | phenny: de en "tanz"? | ||
phenny | masak: "dance" (de to en, translate.google.com) | ||
masak | phenny: es en "debil"? | 22:20 | |
phenny | masak: "weak" (es to en, translate.google.com) | ||
jnthn | S03-operators/set.t has a bunch of tests. 280 of 'em. Tempting... :) | ||
tanzdebil | tanzdebil = made up german word | ||
masak | ah. | ||
tanzdebil | tho not made up by me:) | ||
OK, thx everyone who answered. am new to the source, and not entirely sure when to trust my own eyes. | 22:22 | ||
lue | masak: one nice thing, although you'd probably need NativeCall for it, would be "up arrow=go back in history" (also: the OOPS command, though I usually use the up arrow instead :) ) | ||
TimToady | n: my $x = KeyBag.new({a => 3}); my $y = KeyBag.new({a => 2}); my $z = $x ⊍ $y; say "z = ", $z; | 22:23 | |
p6eval | niecza v19-15-g051783d: OUTPUT«z = keybag("a" => 3)» | ||
masak | lue: yes, there should definitely be bindings for a readline with history. I think that's possible at this point, thanks to arnsholt++ | 22:24 | |
tanzdebil | n: my $x = KeyBag.new({a => 1}); my $y = KeyBag.new({a => 2}); my $z = $x ⊍ $y; say "z = ", $z; | ||
p6eval | niecza v19-15-g051783d: OUTPUT«z = keybag("a" => 1)» | ||
tanzdebil | n: my $x = KeyBag.new({a => 2}); my $y = KeyBag.new({a => 1}); my $z = $x ⊍ $y; say "z = ", $z; | ||
p6eval | niecza v19-15-g051783d: OUTPUT«z = keybag("a" => 2)» | ||
tanzdebil | hmm | ||
TimToady | n: my $x = KeyBag.new({a=> 2}); my $y = KeyBag.new({a => 3}); my $z = $x ⊍ $y; say "z = ", $z; | ||
p6eval | niecza v19-15-g051783d: OUTPUT«z = keybag("a" => 2)» | ||
masak | looks rong to me. | 22:25 | |
TimToady | seems to just take the first one | ||
tanzdebil | okay, so it's all up in the air then. | ||
masak | would make more sense if it took the max of the values. | ||
TimToady | precedence maybe? | ||
tanzdebil | masak: well there are two interpretations -- for union, max does seem more reasonable. | ||
TimToady | n: my $x = KeyBag.new({a => 3}); my $y = KeyBag.new({a => 2}); my $z = ($x ⊍ $y); say "z = ", $z; | 22:26 | |
p6eval | niecza v19-15-g051783d: OUTPUT«z = bag("a" => 6)» | ||
tanzdebil | for +, which I'm not sure is defined yet (because it's not in set.t) a sum of the weights may be more reasonable. | ||
TimToady | yes, listop looser than item assignment | ||
tanzdebil | that way people can use ⊍ for max, and + for sum of weights. | ||
n: my $x = KeyBag.new({a => 5}); my $y = KeyBag.new({a => 2}); my $z = $x - $y; say "z = ", $z; | 22:27 | ||
p6eval | niecza v19-15-g051783d: OUTPUT«z = 3» | ||
tanzdebil | and - functions just like we think it should. | ||
masak | tanzdebil: I'm not that comfortable with infix:<+> being anything other than scalar addition. | ||
we work pretty hard in Perl to keep it that way. | 22:28 | ||
tanzdebil | ok then | ||
TimToady | n: my $x = KeyBag.new({a => 3}); my $y = KeyBag.new({a => 2}); my $z = ($x ∪ $y); say "z = ", $z; | ||
p6eval | niecza v19-15-g051783d: OUTPUT«z = bag("a" => 3)» | ||
tanzdebil | but then - is not, symmetrically, scalar subtraction in this case | 22:29 | |
TimToady | n: my $x = KeyBag.new({a => 3}); my $y = KeyBag.new({a => 2}); my $z = ($x ⨄ $y); say "z = ", $z; | ||
p6eval | niecza v19-15-g051783d: OUTPUT«===SORRY!===Confused at /tmp/kr9ZFjCuP1 line 1:------> $y = KeyBag.new({a => 2}); my $z = ($x ⏏⨄ $y); say "z = ", $z;Parse failed» | ||
TimToady | there's plenty of unicode without overloading things that maybe shouldn't be | 22:30 | |
22:30
cognominal_ joined
|
|||
dalek | p/sigsp: 5c0a24b | pmichaud++ | src/ (2 files): Initial patches to ignore leading whitespace in rules. |
22:41 | |
tanzdebil | TT: cool | 22:48 | |
jnthn is happy to see pmichaud++ taking this on :) | |||
22:48
snearch joined
|
|||
pmichaud | nqp works with the new spacing requirements; now it's time to get rakudo to work :) | 22:50 | |
masak | \o/ | 22:51 | |
jnthn | TimToady: Are the set operators (some/all) in standard Perl 6? | 22:56 | |
TimToady: STD doesn't include them, nor does S03. | 22:57 | ||
lue | jnthn: I've never found them (although I'm not too trusting of perlcabal's google search) | ||
jnthn | No, though they are covered in spectest. | 22:58 | |
And I note that Niecza doesn't need a "use" statement to get at them at present. | |||
Dunno if that's intended for the long them though. | 22:59 | ||
23:00
kaare_ joined
23:01
whiteknight joined,
whiteknight is now known as Guest47300
|
|||
dalek | kudo/setops: f0c5c2d | jnthn++ | src/ (4 files): Initial stab at porting of set operations from Niecza's CORE.setting. Doesn't pass set.t yet, but worse somehow slows down CORE.setting parse quite a bit. Pushing this to allow @other to investigate either issue; need to resolve whether the ops even belong in core before this is merged also. |
23:06 | |
jnthn | Hm. Seems that raises more questions than answers, but it gives it a shove in some direction. :) | 23:07 | |
sorear | jnthn: it slows down CORE.setting parse quite a bit because you've just added characters >= 256 to the setting | 23:08 | |
pmichaud | actually, I think because they're in the grammar. | ||
The setting should be able to handle codepoints above 256 just fine. | |||
sorear | now the setting has to be encoded in UTF-8 becuase Parrot's support for UTF-32 sucks | ||
pmichaud | doesn't matter too much, we do ucs4 internally. | ||
jnthn | Apart from the regex engine does everything in ucs4 afaik. | ||
Which is why it's kinda surprising. | |||
pmichaud | not *everything* | ||
it encodes the target string as ucs4, yes. but source literals might not be. | 23:09 | ||
jnthn | Evidently. ;-) | ||
Ah, that's possible. | |||
sorear | pmichaud: oh, that finally got fixed? I thought you couldn't use ucs4 in the grammar because parrot's UCS4 required ICU | ||
pmichaud | there's also the possible problem that the regex method names aren't latin1 | ||
ucs4 requires ICU for a lot of operations, but not for basic string comparison. | |||
i.e., you can't upcase/downcase codepoints >= 256 in ucs4 without icu | |||
well.... actually larger than 256 iirc; we do some good cheating there when icu isn't present. | 23:10 | ||
jnthn | *nod* | ||
Well, a way to reproduce the slowdown is there for anyone who wants to have a dig. :) | |||
23:11
benabik left
|
|||
jnthn will be spending his tuits on the inlining stuff mostly in the next days, though. | 23:11 | ||
masak | good night, #perl6 | 23:14 | |
lue | goodnight, masak o/ | 23:15 | |
jnthn | hm, some rest sounds like a good idea... | 23:17 | |
'night o/ | |||
23:23
snearch left,
gongyiliao joined
23:26
benabik joined
23:35
Transformer joined
|
|||
tanzdebil | nitey ~~ all | 23:35 | |
23:36
Transformer left
23:44
kaare_ left
|
|||
dalek | c: 82c90c5 | (Geoffrey Broadwell)++ | lib/Perl6/TypeGraph.pm: Pre-sort types by name before doing topo sort |
23:51 | |
23:52
tanzdebil left,
japhb_ joined
|
|||
japhb_ | moritz, in doc commits c5af24c8af and d5477a86d, did you intend to move the JS/CSS out of html/ and into html-files/ (this would of course require the html-files copying to become recursive)? | 23:55 | |
moritz, or did you intend instead to only .gitignore the *generated* directories within html/ ? |