»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
ren1us | anyone feel like helping me golf down a segfault? i found the line that pitches a fit, but it just makes no sense that it would be causing a problem (line: $.age++;) | 00:01 | |
segfault in parrot* | 00:02 | ||
00:09
hoverboard left,
hoverboard joined
|
|||
timotimo | ren1us: can you try --optimize=off? | 00:12 | |
00:17
atroxaper joined
|
|||
carlin | m: use Test;loop {my @a=1;@a=?(@a.pick eq any 1);my $x=().pick;my @b=@a;@b.pick(2);@b.pick(4);@a.pick(*).sort.Str;@a=1..9;my @v;push @v,@a.pick(*) for ^9;@a xx 9;ok ?(~[1].pick eq any(*));ok ?(~[9].pick eq '1'|'4');@a=1..100;@b=pick(*,@a);is @b.elems,100;is ~@b.sort, ~(1..100);is ~@b.grep(Int).elems,100;sub w($f){my %s;%s{$_}=1 for (1..$f*100).pick(50);is %s.keys.elems,50,$f;ok (so 1 <= all(%s.keys) <= 100),'';};w(1);w(3);w(1);w(1000)} | 00:18 | |
camelia | rakudo-moar 41574a: OUTPUT«(signal )not ok 1 - not ok 2 - ok 3 - ok 4 - ok 5 - ok 6 - 1ok 7 - ok 8 - 3not ok 9 - ok 10 - 1ok 11 - ok 12 - 1000not ok 13 - » | ||
carlin | that's a golf of the S32-list/pick.t explosion | 00:19 | |
Mouq | carlin++ | ||
ren1us | timotimo: still segfaults | 00:20 | |
00:21
atroxaper left
|
|||
timotimo | i'm not to blame in that case :3 | 00:22 | |
ren1us | lol. | ||
i want to report it but i feel like i need something a little more specific than a project a few hundred lines long that takes 3 minutes just to get to the segfault | 00:23 | ||
timotimo | golfing is a high art :( | 00:24 | |
ren1us | and i'm no tiger woods | ||
nor have i had as much success with girls as tiger woods, but that's a different problem | |||
00:26
BenGoldberg joined
|
|||
Mouq | lue: github.com/perl6/Pod-To-HTML/commit/e6549f616 | 00:27 | |
ren1us: Success with girls is a higher art :P | 00:28 | ||
depending on how you go about it.. | 00:29 | ||
..or rather, one's definition of 'success' :P | 00:30 | ||
00:30
jack_rabbit joined
00:31
carlin left
|
|||
ren1us | Mouq: I define success as falling for someone who doesn't look at me as 'just friends' | 00:32 | |
at this point i'd be thrilled to fall for one who hates me, the whole 'just friends' thing is getting kinda boring | |||
and any pointers on golfing? i actually keep bumping into things that i try to pinpoint the problem in, but can't. memory leaks in moar, segfaults in parrot, etc etc | 00:33 | ||
Mouq | ren1us: I'm sorry, been there many times :/ | 00:36 | |
hugme hug ren1us | |||
hugme hugs ren1us | |||
ren1us | ._. thanks hugme. not gonna question it. | 00:37 | |
Mouq | .oO( Actually, every time except twice, and one she said she just wated to be friends but stopped talking to me once she got back with her ex 9_9 ) |
00:38 | |
Aaanyway, I'm going to try torturing my Pod::To::HTML refactor until it works | 00:40 | ||
00:41
dayangkun joined
00:43
SevenWolf left
00:45
_slade joined
|
|||
ren1us | actually, someone tell me i'm not crazy: for %.hash.keys { # stuff # }; <--- once this loop completes an iteration, assuming no variables outside the loop are changed, all objects defined inside the loop should be garbage collected, right? | 00:45 | |
gtodd | "completes an iteration" or "completes" ... | 00:50 | |
ren1us | completes an iteration | 00:51 | |
so if i did something like for 0..9 { my $a = A.new; doSomething(); }; where doSomething defines a gazillion objects and such, it's not going to wait until the entire loop is finished before garbage collecting $a and everything created by doSomething() | 00:54 | ||
00:54
Akagi201 joined
00:59
Akagi201 left
01:05
jnap1 left,
ren1us left
|
|||
Mouq | std: class :: { has $.foo }.new | 01:12 | |
camelia | std 0f2049c: OUTPUT«ok 00:01 124m» | ||
Mouq | m: class :: { has $.foo }.new | ||
camelia | rakudo-moar 41574a: OUTPUT«===SORRY!=== Error while compiling /tmp/VE6vnpQXbWTwo terms in a rowat /tmp/VE6vnpQXbW:1------> class :: { has $.foo }⏏.new expecting any of: scoped declarator constraint p…» | ||
Mouq | Hmm | ||
01:19
grondilu left
01:20
BenGoldberg is now known as Botje--
01:21
Botje-- is now known as BenGoldberg
01:27
wamiks left
01:45
klapperl joined,
FROGGS left
01:48
klapperl_ left
01:49
_slade left
01:50
kurahaupo left
01:52
chenryn joined
01:55
Akagi201 joined,
Akagi201 left,
Akagi201 joined
01:56
Akagi201 left
01:58
FROGGS joined
02:01
Akagi201 joined
|
|||
dalek | ast/S26-WHY: 1a417fe | (Rob Hoelz)++ | S26-documentation/why- (2 files): Stop skipping test that now no longer segfaults |
02:05 | |
ast/S26-WHY: 87aa7e3 | (Rob Hoelz)++ | S26-TODO: More things TODO for S26... |
|||
lue | Mouq: cool, just know that instead of "does Pod::Walker", it should really be "is Walker::Callees" :) | 02:12 | |
lue decides to finally add Pod::Walker to ecosystem | 02:15 | ||
02:15
noganex_ joined
|
|||
dalek | osystem: 8a01b34 | lue++ | META.list: Add Pod::Walker |
02:17 | |
02:18
noganex left
|
|||
Mouq | lue: github.com/Mouq/pod-walker/commit/...4b06f4b112 | 02:18 | |
lue: I wouldn't be surprised if that's the completely wrong approach | 02:20 | ||
lue: But I'm close to having a copy of Pod::To::HTML that runs locally with that, even if incorrectly in many places | |||
s/runs/compiles :P | 02:21 | ||
lue | Any particular reason you want to stuff the subs in the role too, ooc? | 02:22 | |
Mouq | Mmm, no reason in particular, though I want to be able to add a multi-candidate to pw-recurse in PTH and I guess putting them in the role made me feel that it was more likely to work :P | 02:23 | |
lue | Are classes a necessity for a Pod::To:: module anyway, or would your role-based solution suddenly force its user to make a class? :) | 02:24 | |
Mouq | They're not necessary but it sure cleans things up. Right now my hackity solution is to have method render (PTH :U: |a) call self.new.render(|a) | 02:26 | |
Which means that leakage between documents shouldn't be the problem it has been in the past | 02:27 | ||
But perhaps a class is needed for the documents, and PTH should really just be a collection of subs | 02:28 | ||
Or maybe it'll just die with "Bytecode validation error at offset 136, instruction 23: truncated stream" | 02:30 | ||
lue | My idea is that you'd have an object to hold all of your functions in, and then a collection of multi subs in the module to help you use it. Still feels more classy than roley to me, but I can't say I know for sure what's best :) | 02:31 | |
Mouq | lue: Classy would work too :) The main issue I'm haven't gotten around to addressing is that P2H switches between an 'html', 'inline', and 'raw or html-escaped text' mode | 02:33 | |
The only difference I can see about inline, though, is that Paras aren't rendered with <p>s | 02:34 | ||
(Note that this is an issue regardless or sub/role/class structure of Pod::Walker) | 02:35 | ||
*of | |||
lue wonders if he should put everything under module Pod::Walker; so Pod::Walker::Callees.new(), Pod::Walker::pod-walk() ... | 02:36 | ||
02:36
BenGoldberg left
|
|||
lue | Mouq: yeah, that sounds like you need a ~slightly~ more structured object than a plain string; something like class PodString { Str $.text; EnumTypeThing $.txtstate }, where $.txtstate lets you know whether its "html" or "inline" or... | 02:37 | |
Mouq | lue: The issue is that the things that need to be processed as 'inline' are processed before they're known to need to be processed as inline. And sometimes a single function needs to process them as 'inline' or 'rawtext' | 02:39 | |
02:40
xenoterracide__ joined
|
|||
lue | How's that able to work at all? O_o | 02:40 | |
Mouq | lue: Well, that's what'll need to be resolved once I get it running. The way it used to work was because you manually called node2inline or whatever, but here the preprocessed text is handed to you. Which I still think is a good idea | 02:41 | |
02:43
ren1us joined
|
|||
lue | Mouq++ for working on it (and make sure to "lose" the enforced stylesheet while you're in there, eh? :P) | 02:43 | |
02:44
isBEKaml joined
|
|||
Mouq | lue: Haha, what stylesheet? I have no clue what you're talking about | 02:44 | |
02:44
xenoterracide__ left
|
|||
lue | Yeah, sorry. Don't know what I was thinking there. :) | 02:44 | |
02:46
xenoterracide__ joined
|
|||
Mouq | I really hate that the 'Cannot call X, none of these signatures match:' doesn't show the capture its matching against | 02:48 | |
At the same time, a .perl of an arbitrary call can be crazy verbose, so.. | 02:49 | ||
lue | I also don't like how warning messages won't show a backtrace on -j and -m like it does on -p, meaning every UVOTA just stands to infuriate you. I looked at it earlier, and I don't immediately see how to change that, though :/ | ||
Mouq | That too :| | ||
02:50
cooper left,
cooper_ left
|
|||
Mouq | Ahh, I see | 02:52 | |
02:52
cooper joined,
cooper left,
cooper joined
|
|||
Mouq | The problem is that my multi sub pw-recurse isn't getting called. Which is kind of expected | 02:52 | |
02:53
Akagi201_ joined
|
|||
hoelzro | so I'm working on getting S26 working correctly with Rakudo, and I came across this: | 02:53 | |
github.com/rakudo/rakudo/blob/nom/....nqp#L2302 | |||
does anyone know why var traits are NYI? | |||
02:53
rGeoffrey joined
02:56
Akagi201 left
|
|||
Mouq | m: my $x is docs("abcd"); | 02:56 | |
camelia | rakudo-moar 41574a: OUTPUT«===SORRY!=== Error while compiling /tmp/llQmo5kGXqCan't use unknown trait 'is docs' in a variable declaration.at /tmp/llQmo5kGXq:1------> my $x is docs("abcd")⏏; expecting any of: TypeObject…» | ||
02:56
Akagi201 joined,
Akagi201_ left
|
|||
lue | hoelzro: what do you mean by "getting S26 working correctly"? Just making the parsing more correct, I assume? | 02:57 | |
Mouq | m: my $x; trait_mod:<is>($x, :docs<xyz>) | ||
camelia | rakudo-moar 41574a: OUTPUT«No such method 'set_docee' for invocant of type 'Str' in sub trait_mod:<is> at src/gen/m-CORE.setting:275 in block at /tmp/TUc9ZSHTei:1» | ||
hoelzro | well, for example, the current impl uses #= for leading comments, rather than the correct #| | ||
lue | hoelzro: aren't they both valid forms though? | 02:58 | |
hoelzro | trailing comments are NYI | ||
they are | |||
but #| is leading | |||
and #= is trailing | |||
Mouq | hoelzro++ | ||
hoelzro | #= is currently treated as leading | ||
lue | Oh, didn't know there was a distinction. Glad to hear that some better sense has been made there then :) | ||
Mouq | Should we deprecation cycle that? I know there's a lot of code that wrongly uses #= | 02:59 | |
.oO( Does a deprecation cycle even make sense here? ) |
|||
02:59
btyler joined
|
|||
lue could see #^ for leading and #$ for trailing instead of the current ones :P | 02:59 | ||
isBEKaml | hoelzro: maybe I'm missing something here. What's the distinction between leading and trailing comments? | ||
02:59
btyler left
|
|||
isBEKaml | Are they separated by where they are placed? That is, above or below a sub/method? | 03:00 | |
hoelzro | someone thought of #< and #> | ||
isBEKaml: correct | |||
hang on | |||
03:00
Akagi201 left
|
|||
hoelzro | isBEKaml: github.com/perl6/roast/blob/S26-WH...why-both.t | 03:00 | |
03:01
Akagi201 joined
|
|||
hoelzro | I wish it would be #< and #>, or even #↑ and #↓ | 03:02 | |
I've been working on this for nearly a week and I still get them mixed up =/ | |||
lue | hoelzro: #^ and #$ would offer some correlation with regexes :) | ||
hoelzro | lue: oh, true | ||
Mouq: I would be happy to start filing PRs against "broken" modules | |||
at least this change shouldn't alter behavior (unless someone's depending on WHY) | 03:03 | ||
lue | hoelzro: different symbols would make "deprecating" sooo much easier too. How do you know when #= is being deprecatingly used as a leading comment, anyway? | ||
isBEKaml | hoelzro: I can understand #| as a leading comment. Other languages such as Scala and Haskell use it for setting fixed spacing in doc strings. | ||
hoelzro | interesting, I didn't know that | ||
isBEKaml | hoelzro: I believe it's similar to python's """ | ||
03:04
Akagi201 left
|
|||
lue | r: my $a = #`"""testing embedded""" 5; say $a; | 03:04 | |
camelia | rakudo-jvm 41574a: OUTPUT«(timeout)» | ||
..rakudo-{parrot,moar} 41574a: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileMalformed initializerat /tmp/tmpfile:1------> $a = #`"""testing embedded""" 5; say $a;⏏<EOL> expecting any of: scoped declarator …» | |||
03:04
Akagi201 joined
|
|||
lue | boo. | 03:04 | |
isBEKaml | hoelzro: though not the exact #|, the | is used for setting fixed spacing. Haskell uses "--|", scala "/**" and pipes in every subsequent line. | 03:05 | |
Mouq | It ran! Woo! | ||
lue | I personally think we're but a few steps away from a "comment" sublanguage by this point :P | ||
03:06
cooper_ joined
|
|||
hoelzro | lue: isn't that POD? =P | 03:06 | |
isBEKaml: I never knew about --| | |||
isBEKaml | lue: too bad we can't turn into .lp6. :D | ||
hoelzro | that's not new, is it? | ||
isBEKaml: hmm...a custom grammar for literate Perl 6? | 03:07 | ||
lue | hoelzro: no silly, that's the Pod sublanguage, not the comment sublanguage :) | ||
hoelzro | interesting idea | ||
lue: heh | |||
isBEKaml | hoelzro: yep, haddock does it. | ||
hoelzro: I'm not sure how far we can push .lp6. With separate comment formats like this one, I don't think we can see any literate forms - like lue said, at best it's a comment sublanguage. :D | 03:09 | ||
hoelzro | I suppose | ||
still, it's an interesting idea | 03:10 | ||
lue | isBEKaml: not that you couldn't write a Literate slang to do that (once we know what it would look like to work in that realm of madness, that is ☺) | ||
isBEKaml | Currently, comments are read in tandem with code. With these forms, it'll feel like reading two books at once. :P | 03:11 | |
03:11
_slade joined
|
|||
isBEKaml | lue: exactly - let's see where that descends into madness. :-) | 03:11 | |
Frankly speaking, a lot of ideas in Perl6 spec feel like moonshots. | 03:12 | ||
lue | I think it's called "extensible programming", though I don't much like that name, particularly considering how much of P6 you can extend already. The ultimate goal is to change what the compiler is doing. Perhaps "cooperative programming"? :P | ||
isBEKaml | lue: hmm, isn't that what "extensible" stands for? | 03:15 | |
isBEKaml doesn't like to see it in non-lisp languages *ducks* | |||
lue | Yeah, though I really think manipulating the grammar and ASTs and whatnot of the language is far different from the *other* extensible aspects of Perl 6 that are implemented already, hence the desire for a distinct name :) | 03:16 | |
isBEKaml: the nice thing about a non-Lisp language is that it should be easier to tell what stuff is modifying the compiler's behavior :) | 03:18 | ||
Mouq | lue: Lookie what I made gist.github.com/Mouq/b04e9408cd0e83cf62bc | 03:19 | |
lue | Lisp's macros and such have a nasty habit of not looking different, which on the one hand is the point of Lisp's syntax, and on the other hand makes it bleeding impossible to know what the distinction of a macro is. | ||
Mouq | (some obvious bugs) | ||
Mouq really likes Rust's macros | |||
lue | Mouq++ | ||
isBEKaml | lue: Right, it stands out in non-lisp languages. But if you read through a wide swath, it's easy to pick macros in lisp too. I just count defmacros, progns and some quirky naming conventions for macros in lisp. | 03:20 | |
lue | Mouq: yes, I remember finding a (I think) Rust doc on macros that was quite interesting. Need to look at them more, 'cos they are quite possibly the only non-lisp language to have done Proper Macros™ thus far. | ||
isBEKaml: my point is that it's kinda hard to tell what a (defmacro) does different from a (defun), because the code tends to look really similar. I remember reading some elisp documentation on it once, and although it did explain the difference, it was hard to believe that it's a necessary one. | 03:21 | ||
Mouq | doc.rust-lang.org/guide-macros.html | ||
isBEKaml | lue: I should have added this: Otherwise, I agree. :D | 03:22 | |
03:22
atroxaper joined
03:27
rurban1 left
|
|||
lue | Mouq: looks nice, makes me think our macros should really be some sort of grammar/action rule pair that gets injected into the current language. Still needs some sort of ast manipulation thing though. | 03:30 | |
03:31
kaleem joined
03:40
xenoterracide__ left
|
|||
zengargoyle | hrm, #| comments the thing below and #= comments the thing the left made perfect sense to me... | 03:44 | |
#^ seems like it should comment the thing above. | |||
03:45
ggoebel111117 left
|
|||
zengargoyle | what i'm not sure i get is how documents like MyModule::Cookbook.pod would work out | 03:46 | |
is there supposed to be an empty CompilationUnit holding nothing but doc? | 03:47 | ||
Mouq | zengargoyle: p6doc is currently just searches through @*INC. It's not particularly sophisticated | 03:53 | |
zengargoyle: github.com/perl6/doc/blob/master/bin/p6doc | |||
zengargoyle | maybe it's changed by now. i thought @*INC was moving to using CompUnitRepoLocal things. | 03:55 | |
Mouq | zengargoyle: It is, but it can (apparently) still be used the old fashioned way | ||
03:56
Akagi201_ joined
|
|||
zengargoyle | which does more of looking up and loading modules rather than just a list of paths things. (at least last i looked CURL didn't have a .path type method.) | 03:56 | |
Mouq | m: say @*INC[0].WHAT | 03:57 | |
camelia | rakudo-moar 41574a: OUTPUT«CompUnitRepo::Local::File» | ||
Mouq | m: say @*INC[0].WHAT.Str | ||
camelia | rakudo-moar 41574a: OUTPUT«Nil» | ||
Mouq | m: use lib <abcd>; say @*INC[0].WHAT.Str | ||
camelia | rakudo-moar 41574a: OUTPUT«Nil» | ||
Mouq | Huh | ||
zengargoyle | with the idea that maybe eventually the modules would be stored in a db or zip or such rather than files on the filesytem | ||
Mouq | m: say @*INC.WHAT | 03:58 | |
camelia | rakudo-moar 41574a: OUTPUT«(Array)» | ||
zengargoyle | due to all of the use Module:ver<x.y.z>:author<zengargoyle> type of capabilities | ||
Mouq | zengargoyle: I no very little about this :) | ||
*know | |||
03:59
hoverboard left
|
|||
Mouq | .oO( I also no vary litle abot speling ) |
03:59 | |
03:59
Akagi201 left
|
|||
zengargoyle | me neither. just remembering when CURL came about and made p6doc not work for a while because @*INC entries no longer strinified to paths... | 04:00 | |
04:01
anaeem1 joined
|
|||
zengargoyle | and if there's a MyModule:ver<1> and MyModule:ver<2> then the cookbook type pod needs the same sort of versioning info.. MyModule::Cookbook:ver<1> MyModuleCookbook:ver<2> | 04:04 | |
and i'm all fuzzy on how that's eventually supposed to work. :) | |||
R0b0t1 | Are there any plans for perl6 to support sentience? | ||
Mouq | R0b0t1: There's no date set but I believe it's in the spec somewhere | 04:05 | |
04:05
anaeem1 left
|
|||
zengargoyle | probably NYI like all the other good parts. | 04:06 | |
R0b0t1 | :D | 04:07 | |
hoelzro | the amount of Perl 6 that's NYI is getting pretty low | ||
at least for the stuff I care about | |||
= | |||
=) | |||
isBEKaml | Funny, the guy was looking for himself in asking for sentient support in Perl6. :-) | 04:09 | |
04:12
kaare_ joined
04:14
Akagi201_ left
04:15
Akagi201 joined
|
|||
hoelzro | bed time for me | 04:20 | |
'night #perl6 | 04:21 | ||
04:25
xenoterracide__ joined
04:28
chenryn left
04:32
robinsmidsrod left
04:33
robinsmidsrod joined,
thou left
04:34
xenoterracide__ left
04:37
thou joined
|
|||
dalek | ast/S26-WHY: 202f49a | (Rob Hoelz)++ | S26-documentation/why-preceding.t: Fix attribute lookup test |
04:39 | |
04:43
isBEKaml left
04:48
gfldex joined
04:59
chenryn joined
05:04
chenryn left
05:10
_slade left
05:18
hoverboard joined
05:34
hoverboard left
05:36
chenryn joined
05:41
dayangkun left,
dayangkun joined
05:42
sqirrel joined
05:43
sqirrel left
05:55
uniejo joined
05:56
ivanshmakov left
05:58
uniejo left
05:59
dayangkun_ joined
06:00
kaleem left
06:02
dayangkun left
06:07
ivanshmakov joined
06:09
bcode_ joined,
bcode is now known as Guest98957,
Guest98957 left,
bcode_ is now known as bcode
06:10
flussence left,
flussence joined
06:13
[Sno] left
06:18
dayangkun joined
06:19
FROGGS left
06:21
dayangkun_ left
06:29
ivanshmakov left,
ivanshmakov joined
|
|||
sergot | morning o/ | 06:31 | |
06:33
rurban1 joined
06:37
rurban1 left
06:41
Bucciarati left,
mtj_ left
06:42
ilogger2 joined,
ChanServ sets mode: +v ilogger2
|
|||
atroxaper | sergot: morning o/ | 06:48 | |
yoleaux | 8 Jul 2014 19:23Z <lue> atroxaper: just so you know, I've already followed that hint in Pod::To::HTML (here it is: github.com/lue/pod-walker), and AFAIK Mouq is using it to reimplement Pod::To::HTML too. I'll be interested in seeing what your solution to that hint is! :) | ||
06:48
nhayashi joined,
mtj_ joined
06:49
anaeem1 joined
06:50
mtj joined,
telex joined
06:51
anaeem1 left
06:56
dayangkun joined
06:57
anaeem1 joined,
anaeem1 left
06:58
anaeem1 joined,
anaeem1 left
06:59
anaeem1_ joined
07:05
igorsutton joined
07:07
darutoko joined
07:10
[particle] joined
07:11
SamuraiJack_ joined
07:14
kaleem joined
07:22
vinian joined,
vinian left
07:23
vinian joined
07:25
Alina-malina joined
07:28
FROGGS joined
07:32
chenryn joined,
chenryn left
07:33
dmol joined
07:34
rurban1 joined
07:36
chenryn_ joined
07:38
rurban1 left
07:44
Akagi201 joined
07:50
Akagi201_ joined,
Akagi201 left
07:53
dayangkun_ joined
07:55
Akagi201_ left
07:56
Akagi201 joined
07:57
dayangkun left
08:00
Akagi201 left
|
|||
atroxaper | lue: ping | 08:02 | |
How can I live a message for lue? I mean witch command for yoleaux? | 08:03 | ||
moritz | .tell atroxaper like this | ||
yoleaux | moritz: I'll pass your message to atroxaper. | ||
atroxaper | moritz: Thanks! | ||
yoleaux | 08:03Z <moritz> atroxaper: like this | 08:04 | |
atroxaper | Works)) | ||
.tell lue hello, my not finished yet solution is github.com/atroxaper/Pod-SAX. You can see Pod::SAX::Reformer class and its test. Main feature that my Callees makes a calls for start of Pod object, end of Pod object, and 'in' Pod object that trigger if .content has not Pod object like String. And for each Pod type we can make many callbacks for many cases. Like only for L<> but not for C<>, I think it is more flexible and maintenanc[fu | |||
l] :) And you can share some storage with data between callbacks. And when we have start, in, and stop calls then we have something like Automata (en.wikipedia.org/wiki/Automata_theory) with states. And one more think. System of Anchors (i'm not sure with name yet) that objects contains a code that should be executed after all work and push its result to result represenation (like HTML). It can be used for crossrefs of many other things | |||
. | |||
yoleaux | atroxaper: I'll pass your message to lue. | ||
jack_rabbit | I have my $arr = (1,2,3,4). How do I get that interpreted as an array rather than a scalar, say, in for $arr -> $x { say "hello, ", $x; } | 08:05 | |
Obviously I could just declare my @arr = ..., but that's not the point. | |||
atroxaper | r: my @arr = (1,2,3,4); say $_ for $arr.list | 08:06 | |
camelia | rakudo-{parrot,jvm,moar} 41574a: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileVariable '$arr' is not declared. Did you mean '@arr'?at /tmp/tmpfile:1------> y @arr = (1,2,3,4); say $_ for $arr.list⏏<EOL> expecting any of:…» | 08:07 | |
atroxaper | r: my $arr = (1,2,3,4); say $_ for $arr.list | ||
camelia | rakudo-{parrot,jvm,moar} 41574a: OUTPUT«1234» | ||
jack_rabbit | r: my $arr = (1,2,3,4); for $arr.list -> $x { say "hello, ", $x; }; | ||
camelia | rakudo-{parrot,jvm,moar} 41574a: OUTPUT«hello, 1hello, 2hello, 3hello, 4» | 08:08 | |
jack_rabbit | thanks. | ||
08:08
chenryn_ left
|
|||
atroxaper | Wow, it is my first contributed answer on #perl6 ! | 08:08 | |
jack_rabbit: wellcome! | 08:09 | ||
jack_rabbit | $atroxaper++; | ||
moritz | also | ||
m: my $arr = [1..4]; .say for @$arr | |||
camelia | rakudo-moar 41574a: OUTPUT«1234» | ||
jack_rabbit | ooh, very nice. | 08:10 | |
atroxaper | moritz: because [1..4] is Array and (,) is a Parcel? | 08:11 | |
r: my $arr = (1,2,3,4); say $_ for @$arr # it works to... | 08:12 | ||
08:12
chenryn_ joined
|
|||
camelia | rakudo-{parrot,jvm,moar} 41574a: OUTPUT«1234» | 08:12 | |
Timbus | @$ would work on both, it's just @() is shorthand for .list | ||
the sigils provide context | 08:13 | ||
atroxaper | Timbus: yes. I see already :) | ||
08:13
chenryn_ left
08:14
brrt joined
|
|||
jack_rabbit | I'm reading docs that say parcels are immutable, but can contain mutable containers, so my $x = 1; my $parc = (0, $x, 2); $parc[1] = 3; works, but $parc[0] is immutable. | 08:17 | |
How can I put the *value* of $x into the parcel to make the second element immutable, rather than putting the container itself? | 08:18 | ||
moritz | jack_rabbit: with binding | ||
wait | 08:19 | ||
uhm | |||
08:19
chenryn_ joined
|
|||
moritz | m: my $x = 42; my $p = (0, $x, 2); $p[1] := $x; $p[1] = 23; say $p | 08:19 | |
camelia | rakudo-moar 41574a: OUTPUT«No such method 'bind_pos' for invocant of type 'Parcel' in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2469 in block at /tmp/5bNDxercIn:1» | ||
FROGGS | m: my $arr = [1..4]; .say for $arr[] | 08:20 | |
moritz | m: my $x = 42; my $p = (0, nqp::decont($x), 42); $p[1] = 23; say $p | ||
camelia | rakudo-moar 41574a: OUTPUT«1234» | ||
rakudo-moar 41574a: OUTPUT«Cannot modify an immutable Int in method assign_pos at src/gen/m-CORE.setting:1772 in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2465 in block at /tmp/wTj7zUmDLI:1» | |||
moritz | jack_rabbit: I don't think there's a perl 6 level primitive for decontainering :( | ||
jack_rabbit | :/ disappointing. | 08:21 | |
my first disappointment. Perl 6 has otherwise been pretty impressive. | |||
moritz | well | ||
FROGGS | m: my $x = 42; my $p = (0, $x.VAR, 42); $p[1] = 23; say $p | 08:22 | |
camelia | rakudo-moar 41574a: OUTPUT«Cannot assign to a readonly variable or a value in method assign_pos at src/gen/m-CORE.setting:1772 in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2465 in block at /tmp/cX4zKEfCmw:1» | ||
FROGGS | m: my $x = 42; say $x.VAR | ||
camelia | rakudo-moar 41574a: OUTPUT«42» | ||
FROGGS | is that what I think it is? | ||
moritz | m: my $x := 42; my $p = (0, $x); $p[0] = 42 | ||
camelia | rakudo-moar 41574a: OUTPUT«Cannot modify an immutable Int in method assign_pos at src/gen/m-CORE.setting:1772 in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2465 in block at /tmp/05_lBSdIVu:1» | ||
moritz | m: my $x = 42; say $x.VAR.^name | ||
jack_rabbit | r: my $x = 42; my $p = (0, $x.VAR, 43); say $p; | ||
camelia | rakudo-moar 41574a: OUTPUT«Int» | ||
rakudo-{parrot,jvm,moar} 41574a: OUTPUT«0 42 43» | |||
jack_rabbit | Cool, that seems to work. | 08:23 | |
moritz | FROGGS: if it is, it's totally uninituitive | ||
m: my $x = 42; say $x.VAR.name | |||
camelia | rakudo-moar 41574a: OUTPUT«$x» | ||
moritz | because .VAR returns the variable object :-) | ||
m: my $x = 42; say $x.VAR.^name | |||
camelia | rakudo-moar 41574a: OUTPUT«Int» | ||
moritz | eeks | ||
sergot | m: class A { method new(Int $sth?, Bool :$a = False) { say $a; self.bless } }; A.new(:a); | ||
camelia | rakudo-moar 41574a: OUTPUT«True» | ||
jack_rabbit | So what exactly is the variable object? | 08:24 | |
similar to .HOW? | |||
08:25
[Sno] joined
|
|||
moritz | jack_rabbit: it's an object that lets you introspect the variable; but it also behaves transparently in most cases, and acts as if it were the value inside the variable | 08:25 | |
jack_rabbit | well that sounds like exactly what I want. It looks like it's immutable, though, right? | ||
r: my $x = 2; my $y = $x.VAR; say $x, " ", $y; | 08:26 | ||
camelia | rakudo-{parrot,jvm,moar} 41574a: OUTPUT«2 2» | ||
jack_rabbit | r: my $x = 2; $x.VAR = 4; say $x; | ||
camelia | rakudo-{parrot,jvm,moar} 41574a: OUTPUT«Cannot assign to a readonly variable or a value in block at /tmp/tmpfile:1» | ||
FROGGS | I grepped in rakudo/src... the is nothing Perl 6ish that provides nqp::decont | 08:27 | |
jack_rabbit | bummer. I would think that'll be added eventually? | 08:28 | |
moritz | maybe we need an unitem() function | 08:32 | |
oh | |||
m: my $x = 42; my $p = (0, $x.list, 43); say $p; $p[1] = 23; | |||
camelia | rakudo-moar 41574a: OUTPUT«0 42 43Cannot modify an immutable Int in method assign_pos at src/gen/m-CORE.setting:1772 in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2465 in block at /tmp/BOT6rxSe97:1» | ||
moritz | jack_rabbit: .list is what you want | ||
jack_rabbit: a bit unintuitive at first, but it does remove scalar containers | 08:33 | ||
jack_rabbit | interesting. | ||
would .VAR be bad practice? Are there implications of using that method? | |||
08:34
rurban1 joined
|
|||
moritz | IMHO .VAR is just wrong for that use case | 08:34 | |
I don't understand why it works, so I wouldn't use it | 08:35 | ||
jack_rabbit | sure. | ||
08:35
chenryn_ left
|
|||
jack_rabbit | m: my $x = 2; say $x.VAR.^name; | 08:36 | |
camelia | rakudo-moar 41574a: OUTPUT«Int» | ||
jack_rabbit | m: my $x = 2; say $x.VAR.^mro; | ||
camelia | rakudo-moar 41574a: OUTPUT«(Int) (Cool) (Any) (Mu)» | ||
08:39
rurban1 left
08:42
Alina-malina left
08:43
Alina-malina joined
08:44
[Sno] left
08:47
chenryn_ joined
08:49
rindolf joined
|
|||
jack_rabbit | Also, what is this thing:  | 08:49 | |
I think it might not be showing right (probably bad encoding on my end) | 08:50 | ||
atroxaper | new line. | ||
jack_rabbit | ahh | ||
atroxaper | Is I understand it is for better visibility for irc | 08:51 | |
jack_rabbit | makes sense. | ||
FROGGS | perl6-m -e 'say uniname("")' | 08:52 | |
SYMBOL FOR NEWLINE | |||
08:52
dakkar joined
|
|||
FROGGS | and the perl6 bot here converts it to proper newlines | 08:52 | |
08:52
mr-foobar joined
|
|||
FROGGS | so you can feed it multi line code in a single line :o) | 08:52 | |
m: say uniname("") | |||
camelia | rakudo-moar 41574a: OUTPUT«LINE FEED (LF)» | ||
jack_rabbit | ho ho! fancy. | 08:53 | |
FROGGS | m: my %a = a => 1; my %b = b => 2; %a<b> = %b; %b = %a<b> | 08:55 | |
camelia | rakudo-moar 41574a: OUTPUT«Saw 1 call to deprecated code during execution.================================================================================%b = { ... } called at: /tmp/MhDSfkwxKc, line 1Please use %b = ... instead.--------------------------------------…» | ||
atroxaper | FROGGS: btw, I read some first Perl6 Advent and saw >> operator by in one symbol. And author said that it better for him. How can i write that symbols as fast as just >> ? :) | ||
FROGGS | .tell lizmat that feels weird: m: my %a = a => 1; my %b = b => 2; %a<b> = %b; %b = %a<b> | ||
yoleaux | FROGGS: I'll pass your message to lizmat. | ||
FROGGS | it is right alt + y on my keyboard | 08:56 | |
atroxaper | FROGGS: is it comfortable?)) | 08:57 | |
FROGGS | atroxaper: maybe it is equally comfortable, but » looks nicer :o) | ||
atroxaper | FROGGS: I've tried to find exactly that sybbol, but there are about 5 >> with different names. Which of that versions is >> | 08:58 | |
FROGGS | m: say uniname('»') | ||
camelia | rakudo-moar 41574a: OUTPUT«RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK» | ||
FROGGS | m: say '»'.ord | 08:59 | |
camelia | rakudo-moar 41574a: OUTPUT«187» | ||
FROGGS | m: say '»'.ord.fmt('%#x') | ||
camelia | rakudo-moar 41574a: OUTPUT«0xbb» | ||
atroxaper | FROGGS: nice! | ||
FROGGS | :o) | ||
atroxaper | FROGGS: my wife likes runes. I'm going to write some program for her mostly consisting of Runes :-) | 09:01 | |
FROGGS | atroxaper: ohh, that sounds very nice indeed :o) | 09:02 | |
09:02
[Sno] joined
|
|||
FROGGS | I dunno why but that makes me think of rosettacode.org/wiki/Draw_a_clock#Perl_6 | 09:02 | |
nwc10 | .tell jnthn I made you a test case (slightly smaller): paste.scsys.co.uk/407345 | 09:03 | |
yoleaux | nwc10: I'll pass your message to jnthn. | ||
atroxaper | FROGGS: Cool! Nice clock! | 09:04 | |
FROGGS | TimToady++ for that | ||
09:08
PotatoGim joined
|
|||
lizmat | good *, #perl6 | 09:19 | |
yoleaux | 08:55Z <FROGGS> lizmat: that feels weird: m: my %a = a => 1; my %b = b => 2; %a<b> = %b; %b = %a<b> | ||
lizmat | FROGGS: weird because it generates a deprecated warning? | 09:20 | |
the alternative would be fail (as we decided to not allow %h = {} | |||
) | |||
09:23
denis_boyun_ joined
09:25
denis_boyun_ left
09:27
denis_boyun_ joined
|
|||
jack_rabbit | What is the function of 'X-' here: my @x = DateTime.now.Str.substr(11,8).ords X- ord('0'); | 09:28 | |
09:31
broquaint joined
|
|||
atroxaper | jack_rabbit: I think perlcabal.org/syn/S03.html#List_infix_precedence infix:<X> | 09:35 | |
09:35
rurban1 joined
|
|||
jack_rabbit | weird. That looks like what it's doing. | 09:37 | |
r: my @x = DateTime.now.Str.substr(11,8).ords X- ord('0'); | 09:38 | ||
camelia | ( no output ) | ||
jack_rabbit | m: my @x = map { $_ - ord('0') }, DateTime.now.Str.substr(11,8).ords; say $x; | 09:39 | |
camelia | rakudo-moar 41574a: OUTPUT«===SORRY!=== Error while compiling /tmp/R_XHeIxnAfVariable '$x' is not declared. Did you mean '@x'?at /tmp/R_XHeIxnAf:1------> teTime.now.Str.substr(11,8).ords; say $x⏏; expecting any of: post…» | ||
09:39
spider-mario joined
|
|||
jack_rabbit | m: my @x = map { $_ - ord('0') }, DateTime.now.Str.substr(11,8).ords; say @x; | 09:39 | |
camelia | rakudo-moar 41574a: OUTPUT«0 9 10 3 9 10 2 5» | ||
09:39
rurban1 left
|
|||
FROGGS | lizmat: yes, feels weird because of that message, but I guess one must get used to it | 09:40 | |
and I guess this behaviour was the reason to explicitly allow %h = {} | 09:41 | ||
lizmat | I'm open to suggestions to improve the message :-) | ||
you could argue that %a<b> = %b should also be disallowed | 09:42 | ||
it should be %a<b> = $%b | |||
it's the automatic itemizing that's making it a unclear | 09:43 | ||
jnthn | It's not surprising if you stop to think for a moment | ||
yoleaux | 09:03Z <nwc10> jnthn: I made you a test case (slightly smaller): paste.scsys.co.uk/407345 | ||
jnthn | %h<a> is clearly a scalar | ||
And so provided you know what $s = %h does, %h<a> = %h2 follows fairly natural | 09:44 | ||
lizmat | ok, so from wider to narrower, we will allow transparently ($ = %), but narrower to wider is / will be an error (% = $) | 09:45 | |
is that something we can put in the spec ? | |||
jnthn | Doesn't hold up for @a = $b though | 09:46 | |
lizmat | indeed | ||
:-( | |||
jnthn | I think this particular case just has to be understood in terms of hashes | ||
lizmat | yup, indeed | 09:47 | |
regarding a shortcut / sugar for nqp::decont, I was playing with: | 09:48 | ||
m: sub prefix:<=>(\x) { x.VAR }; my $x = 42; =$x = 43 | |||
camelia | rakudo-moar 41574a: OUTPUT«Cannot assign to a readonly variable or a value in block at /tmp/MK6ifdXLUe:1» | ||
jnthn | x.VAR doesn't decont, it returns a Scalar... | ||
m: my $a; say $a.VAR.WHAT | 09:49 | ||
camelia | rakudo-moar 41574a: OUTPUT«(Scalar)» | ||
lizmat | m: sub prefix:<=>(\x) { nqp::decont(x) }; my $x = 42; (1,2,=$x,4).say # improved? | ||
camelia | rakudo-moar 41574a: OUTPUT«Cannot modify an immutable Int in block at src/gen/m-CORE.setting:17319 in block at /tmp/wG4gcS070I:1» | ||
lizmat | but with using decont this way, why doesn't this work? | 09:50 | |
jnthn | ,= is a longer token? | 09:51 | |
lizmat | std: sub prefix:<=>(\x) { nqp::decont(x) }; my $x = 42; (1,2,=$x,4).say # improved? | ||
camelia | std 0f2049c: OUTPUT«===SORRY!===Undeclared routine: 'nqp::decont' used at line 1Check failedFAILED 00:01 138m» | ||
lizmat | yup, that's it | ||
m: sub prefix:<=>(\x) { nqp::decont(x) }; my $x = 42; (1,2, =$x,4).say # improved? | |||
camelia | rakudo-moar 41574a: OUTPUT«1 2 42 4» | ||
jnthn | We had a prefix:<=> for something else entirely once. I was in the meeting where we killed it. :) | 09:52 | |
masak | good noon, #perl6 | 09:53 | |
09:53
fhelmberger joined
|
|||
lizmat | r: 'sub prefix:<±>(\x) { nqp::decont(x) }; my $x = 42;my $p = (1,2,±$x,4); say $p; $p[2] = 23 | 09:54 | |
camelia | rakudo-{parrot,jvm,moar} 41574a: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUnable to parse expression in single quotes; couldn't find final "'" at /tmp/tmpfile:1------> ;my $p = (1,2,±$x,4); say $p; $p[2] = 23⏏<EOL> …» | ||
lizmat | r: sub prefix:<±>(\x) { nqp::decont(x) }; my $x = 42;my $p = (1,2,±$x,4); say $p; $p[2] = 23 | ||
camelia | rakudo-jvm 41574a: OUTPUT«1 2 42 4Cannot modify an immutable value in method assign_pos at gen/jvm/CORE.setting:1772 in sub postcircumfix:<[ ]> at gen/jvm/CORE.setting:2465 in block at /tmp/tmpfile:1» | ||
..rakudo-moar 41574a: OUTPUT«1 2 42 4Cannot modify an immutable Int in method assign_pos at src/gen/m-CORE.setting:1772 in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2465 in block at /tmp/tmpfile:1» | |||
..rakudo-parrot 41574a: OUTPUT«1 2 42 4Cannot modify an immutable value in method assign_pos at gen/parrot/CORE.setting:1776 in method assign_pos at gen/parrot/CORE.setting:1774 in sub postcircumfix:<[ ]> at gen/parrot/CORE.setting:2469 in sub postcircumfix:<[ ]> at…» | |||
jnthn | Also, I think a method or sub would fit better than an operator | 09:56 | |
Dunno what to call it, though :) | |||
lizmat | im() ? | 09:57 | |
short for immutable? | |||
or maybe Parcel creation should decont automatically ? | 09:58 | ||
I guess not: S07:56 | 09:59 | ||
synopsebot | Link: perlcabal.org/syn/S07.html#line_56 | ||
jnthn | oh, no, then you could never write a list assignment :P | ||
lizmat | indeed.. | 10:00 | |
lizmat headdesks | |||
jnthn | What was the actual use case? | 10:01 | |
lizmat | well, making sure that a Parcel only contained immutables | ||
while initializing it from variables | |||
10:03
brrt left,
donghongbo joined
10:04
cognominal joined
|
|||
lizmat | re deprecation message for %h = {}: | 10:08 | |
FROGGS, jnthn: is this better: | |||
$ 6 'my %h = {}' | |||
Saw 1 call to deprecated code during execution. | |||
================================================================================ | |||
%h = itemized hash called at: | |||
-e, line 1 | |||
Please use %h = %(itemized hash) instead. | |||
10:09
xinming_ joined
10:10
sjn_ joined
|
|||
timotimo | whoa, so much backscroll | 10:11 | |
jnthn | lizmat: Seems OK | 10:12 | |
dalek | kudo/nom: 9a8470c | (Elizabeth Mattijsen)++ | src/core/Hash.pm: Alter %h = {} deprecation message |
10:13 | |
ast: 32730f7 | (Elizabeth Mattijsen)++ | S02-types/deprecations.t: Adapt test for %h = {} deprecation message |
10:17 | ||
10:19
sjn_ left,
sjn_ joined
10:24
sjn_ is now known as sjn_roadie
|
|||
atroxaper | How can I describe a regex 'any but not a something' ? like any but not ':' I need to get scheme of url :) | 10:25 | |
jnthn | <-[:]> | 10:26 | |
lizmat | re: immutability in parcels: | ||
jnthn | <-[:]>+ for many | ||
lizmat | m: my $x = 42; my $p = (1,2,+"$x",4); say $p; say $p[2].WHAT; $p[2] = 43 | ||
camelia | rakudo-moar 41574a: OUTPUT«1 2 42 4(Int)Cannot modify an immutable Int in method assign_pos at src/gen/m-CORE.setting:1772 in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2465 in block at /tmp/7njPnv8eJ3:1» | ||
lizmat | so +"$x" | ||
if it is a Num, just "$x" if it is a Str | |||
atroxaper | jnthn: yes! Thanks. I forgot about it again :-) | 10:27 | |
timotimo | FROGGS: are you here right now? | 10:31 | |
what's the status regarding NativeCast and function pointers? | |||
is it in our reach now or can it actually already be done? | |||
atroxaper | timotimo: there is like weekly scram :) | ||
timotimo: btw many Thanks for your weekly post about current status of Perl 6. I read it every time. | 10:32 | ||
timotimo | thank you! :) | 10:33 | |
10:34
kurahaupo joined
10:36
rurban1 joined
10:40
sjn_ joined,
rurban1 left
10:41
kurahaupo left
10:42
sjn_roadie left
10:44
sjn_ left
10:45
sjn_ joined,
donghongbo left
|
|||
FROGGS | timotimo: I am | 10:46 | |
timotimo | hey :) | ||
FROGGS | timotimo: NativeCall exports a sub nativecast which works on all backends | 10:47 | |
timotimo | Mouq, atroxaper: which of you is working on which part of the Pod::Walker and Pod::To::HTML based on the walker? | ||
10:47
teodozjan joined
|
|||
timotimo | FROGGS: i got that much | 10:47 | |
FROGGS | and also OpaquePointer is extended to let you do math | ||
timotimo | i've got that, too | ||
FROGGS | okay | ||
timotimo | i'm only missing information about the state of function pointers | ||
FROGGS | ahh, sorry | ||
10:48
sjn_ left,
sjn_ joined,
sjn_ left
|
|||
FROGGS | we need to fix 'has &.bar:(Int)' in Perl 6 actions, it already is parsed correctly | 10:48 | |
then we can hook it up | |||
timotimo | ah, good | ||
FROGGS | but I guess it will take like three weeks or more until we have i | ||
t | |||
timotimo | will the return type be put inside the (..) with a -->? | 10:49 | |
FROGGS | I think so | 10:50 | |
timotimo | OK | ||
FROGGS | errm, we could also allow trait 'returns' on methods without much fuzz I guess | ||
err attributes | |||
timotimo | all right | 10:51 | |
10:57
rGeoffrey_ joined
10:58
rGeoffrey_ is now known as rGeoffrey
10:59
chenryn_ left
|
|||
atroxaper | timotimo: Mouq works on Pod::Walker and Pod::To::HTML as I understand. | 10:59 | |
timotimo | OK | 11:00 | |
raiph wrote that you're working on the walker, that's probably just read from the wrong row in the irclog or something? | |||
atroxaper | timotimo: yes, I think so. I'm working on 'another' walker for Pod. [Coke] proposed Pod::SAX name :) | 11:02 | |
11:02
chenryn_ joined,
chenryn_ left
|
|||
timotimo | ah! | 11:03 | |
thanks | |||
atroxaper | timotimo: ;) | ||
11:07
atroxaper joined
11:12
atroxaper left
|
|||
timotimo | wp.me/p4kqoE-35 | 11:13 | |
lizmat | timotimo: I actually reverted the method is cached | 11:15 | |
because it was unclear what semantics to be used for self | |||
otherwise timotimo++ | 11:17 | ||
FROGGS | timotimo: perhaps you can state that rakudo@parrot is finally in a good shape again (due to jnthn and me), it failed 1800 spectests until recently | 11:18 | |
jnthn | "jnthn has started working on making MoarVM’s bytecode specializer throw away guards" - it actually does this by now :) | 11:19 | |
FROGGS | wow, how time flies :P | 11:22 | |
m: say DateTime:FormatMySQL("2014-07-09T13:24:00") # sport the error | 11:24 | ||
camelia | rakudo-moar 41574a: OUTPUT«(DateTime)» | ||
FROGGS | that's horrible | 11:25 | |
lizmat | :++ ? | ||
FROGGS | sergot had that also (he found it already), here: github.com/sergot/openssl/blob/mas...SL.pm6#L43 | ||
lizmat: yeah | |||
hard to spot | 11:26 | ||
lizmat | I think this is one more reason not to be silent about eating named params that we don't know what to do with | ||
FROGGS | good that this only can be caused by our scoped subs | ||
lizmat: +1 | |||
at least a type object should not eat them | 11:27 | ||
lizmat | hmmm.... isn't it the say that eats them? | ||
FROGGS | m: Int:blarg(1) | ||
camelia | ( no output ) | ||
FROGGS | I dunno | 11:28 | |
m: sub foo(*@p, *%h) { say %h }; foo Int:blarg(1) | 11:29 | ||
camelia | rakudo-moar 41574a: OUTPUT«().hash» | ||
FROGGS | so the type gets it | 11:30 | |
11:30
Ven joined
|
|||
FROGGS | m: sub foo(*@p, *%h) { say @p }; foo Int:blarg(1) | 11:30 | |
camelia | rakudo-moar 41574a: OUTPUT«(Int)» | ||
FROGGS | yeah | ||
Ven | gist.github.com/Nami-Doc/f45190f52fcbbb183fd6 < C++ is the next Perl 6, y'know | 11:31 | |
11:31
donghongbo joined
|
|||
FROGGS | Ven: :P | 11:31 | |
Ven | (text macros :'(.) | 11:32 | |
lizmat | m: class A { has $.a = "a"; method b { "aaa".subst(/$!a/,"b") }}; say A.new.a; say A.new.b # why isn't the .subst working ? | 11:33 | |
camelia | rakudo-moar 41574a: OUTPUT«aaaa» | ||
lizmat | m: class A { has $.a = "a"; method b { my $x = $!a; "aaa".subst(/$x/,"b") }}; say A.new.b # putting it into a lexical first works | 11:34 | |
camelia | rakudo-moar 41574a: OUTPUT«baa» | ||
lizmat | rakudobug? | ||
11:35
donghongbo left
|
|||
lizmat | FROGGS, jnthn: ^^^ | 11:35 | |
jnthn | m: /$!foo/ | 11:36 | |
camelia | rakudo-moar 41574a: OUTPUT«===SORRY!=== Error while compiling /tmp/GrGGxT5ir_Variable $!foo used where no 'self' is availableat /tmp/GrGGxT5ir_:1------> /$!foo⏏/» | ||
FROGGS | m: class A { has $.a = "a"; method b { "aaa".subst(/"$!a"/,"b") }}; say A.new.a; say A.new.b | ||
camelia | rakudo-moar 41574a: OUTPUT«ause of uninitialized value of type Any in string contextbaaa» | ||
FROGGS | that seems to be the runtime lexpad problem thingy masak++ had described in his blög | 11:37 | |
jnthn | Um | ||
Ven | class variables are in lexpads ? | ||
jnthn | Wait...a regex is method-ish, and has its own self... | ||
11:37
rurban1 joined
|
|||
FROGGS | eww | 11:37 | |
m: class A { has $.a = "a"; method b { "aaa".subst($!a,"b") }}; say A.new.a; say A.new.b | 11:38 | ||
lizmat | aha... the plot thickens... rakudobug it ? | ||
camelia | rakudo-moar 41574a: OUTPUT«abaa» | ||
FROGGS | yeah | ||
jnthn: is right | |||
jnthn | lizmat: Um, at this point all we have is "it looks odd" rather than "it should do X" | ||
FROGGS | m: class A { has $.a = "a"; method b { "aaa".subst(/{say self}/,"b") }}; say A.new.a; say A.new.b | ||
camelia | rakudo-moar 41574a: OUTPUT«aA.new(a => "a")baaa» | 11:39 | |
FROGGS | I have no idea | ||
m: class A { has $.a = "a"; method b { "aaa".subst(/"{say self}"/,"b") }}; say A.new.a; say A.new.b | |||
camelia | rakudo-moar 41574a: OUTPUT«aA.new(a => "a")A.new(a => "a")A.new(a => "a")A.new(a => "a")aaa» | ||
jnthn | m: class A { has $.a = "a"; method b { "aaa".subst(/:my $ = say $!a; ./, b') } }; A.new.b | 11:40 | |
camelia | rakudo-moar 41574a: OUTPUT«===SORRY!=== Error while compiling /tmp/TCkwyckpg_Unable to parse expression in argument list; couldn't find final ')' at /tmp/TCkwyckpg_:1------> b { "aaa".subst(/:my $ = say $!a; ./, b⏏') } }; A.new.b …» | ||
jnthn | m: class A { has $.a = "a"; method b { "aaa".subst(/:my $ = say $!a; ./, 'b') } }; A.new.b | ||
camelia | rakudo-moar 41574a: OUTPUT«(Any)» | ||
lizmat | m: say "aaa".subst(/a$/,"b") # the reason I ran into this | ||
camelia | rakudo-moar 41574a: OUTPUT«aab» | ||
jnthn | m: class A { has $.a = "a"; method b { "aaa".subst(/:my $ = say self.WHICH; ./, 'b') } }; A.new.b | ||
camelia | rakudo-moar 41574a: OUTPUT«Cursor|139834212483800» | ||
11:41
rurban1 left
|
|||
jnthn | m: class A { has $.a = "a"; method b { "aaa".subst(/:my $ = say self.WHICH, $!a; ./, 'b') } }; A.new.b | 11:42 | |
camelia | rakudo-moar 41574a: OUTPUT«Cursor|139900812459976(Any)» | ||
jnthn | m: class A { has $.a = "a"; method b { "aaa".subst(/:my $ = say self.WHICH, $!pos; ./, 'b') } }; A.new.b | ||
camelia | rakudo-moar 41574a: OUTPUT«===SORRY!=== Error while compiling /tmp/DBWEyB7Zo2Attribute $!pos not declared in class Aat /tmp/DBWEyB7Zo2:1------> $ = say self.WHICH, $!pos; ./, 'b') } }⏏; A.new.b expecting any of: postfi…» | ||
11:42
molaf joined
|
|||
jnthn | m: class A { has $!dummy; has $.a = "a"; method b { "aaa".subst(/:my $ = say self.WHICH, $!a; ./, 'b') } }; A.new.b | 11:42 | |
camelia | rakudo-moar 41574a: OUTPUT«Cursor|140307760568368Cursor|140307760671904No such method 'gist' for invocant of type 'ParseShared' in sub say at src/gen/m-CORE.setting:13805 in method match at src/gen/m-CORE.setting:6280 in method subst at src/gen/m-CORE.setting:6355 in…» | ||
jnthn | Wow. | ||
Yes, that's quite a mis-compile. | 11:43 | ||
I know what it's doing. | |||
11:43
donghongbo joined
|
|||
jnthn | I don't know we can make it DWLM though... | 11:43 | |
Because self in a /.../ thing really is Cursor | |||
FROGGS | L is for lizmat? :o) | 11:44 | |
jnthn | Yes. | ||
FROGGS | true... and in a code somebody might really want the Cursor | ||
jnthn | Right | ||
lizmat | ok | ||
jnthn | Well, it's clearer with tokens and so forth. | ||
All the same, we shouldn't compile it to stuff that looks up a random attribute on the wrong object. :) | |||
lizmat | I guess it should at least complain about it being an attribute that doesn't exist on the Regex ? | 11:45 | |
jnthn | lizmat: Yeah. | ||
lizmat | so rakudobug it ? | ||
jnthn | Should just not compile | ||
Yes, now we know the expected behavior, it's a resolvable ticket :) | 11:46 | ||
So go for it :) | |||
lizmat | m: class A { has $.a = "a"; method b { "aaa".subst(/$.a/,"b") }}; say A.new.b # using the $.a form is much clearer | 11:49 | |
camelia | rakudo-moar 41574a: OUTPUT«No such method 'a' for invocant of type 'Cursor' in method match at src/gen/m-CORE.setting:6280 in method subst at src/gen/m-CORE.setting:6355 in method subst at src/gen/m-CORE.setting:3713 in method b at /tmp/NMYRHZsulC:1 in block at …» | ||
hoelzro | morning #perl6 | ||
lizmat | hoelzro o/ | ||
anyway: #122253 | |||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122253 | ||
lizmat | still it feels wrong: I mean, you can interpolate attributes in strings, and those are Str objects | 11:51 | |
(yes, I know it works differently underneath, but from a language point of view it feels weird) | 11:52 | ||
I guess it is just another way of finding out that regexen are code, and not strings | |||
hoelzro | I've been working on improving declarator docs, so I've been doing some digging around in src/core/traits.pm. It made me wonder: why are docs implemented by applying an anonymous role against the object? | 11:54 | |
Not trying to be critical, just curious =) | |||
also I want to know if I should preserve that or if I can change it if I feel I have a better solution | 11:55 | ||
11:55
anaeem1_ left
11:56
igorsutton_ joined
11:58
igorsutton left
12:00
cognominal left
|
|||
lizmat | hoelzro: I see what you mean: especially since the mixing roles for Routine and Mu are the same ? | 12:01 | |
hoelzro | right, that's part of it | ||
the other part is with what I'm working on, where a docee can have either leading or trailing docs, or both | |||
also, a docee can have *multiple* leading/trailing docs, which should be concatenated | 12:02 | ||
timotimo | jnthn: does throwing away guards cause great improvements yet? :) | ||
lizmat | well, git blame points to me for the Routine version, but I'm pretty sure that I didn't think up that :-) | ||
seems like tadzik and jnthn are the other suspects for this code | 12:03 | ||
12:03
dmol left,
igorsutton_ left
|
|||
lizmat | heolzro: I have no particular opinion: if you think you can make it better, I would say: go for it | 12:04 | |
hoelzro rather :-) ^^^ | |||
jnthn | timotimo: It was another meassurable bit off a benchmark I tried... | ||
timotimo | \o/ | ||
12:04
igorsutton_ joined,
atroxaper joined
|
|||
hoelzro | lizmat: well, I'll certainly try =) | 12:04 | |
12:07
R0b0t1 joined
12:08
igorsutton_ left,
atroxaper left
12:11
cognominal joined
12:15
vinian left
|
|||
rGeoffrey | The OSCON lightning talks are going to be with the State of the Onion on Wednesday night. If you will be there, do you want to speak about something? Any chance someone here is in a position to offer up the State of Perl6 (from a more hands on view than Larry's)? | 12:18 | |
lizmat | well, I'll be at the OSCON, and willing to give a lightning talk | 12:20 | |
but to give a handson State of Perl6 ... wow, I would have to think about that (a lot) | 12:21 | ||
12:22
jnap joined
12:23
cognominal left
12:24
lelf joined
12:27
Ven left
|
|||
rGeoffrey | lizmat, thanks. If you want to focus a bit, remember what Larry spoke of at YAPC. So some updates on where the project is from a "can I use it yet" point of view would be good. And I expect it will be hard to hold woolfy back from giving one. | 12:29 | |
lizmat | jnthn: is it possible to obtain the original extension from a precompiled module? | ||
12:30
SamuraiJack joined
|
|||
lizmat | fwiw, woolfy thinks lightning talks at OSCON should be about Perl, not about marketing or finding jobs | 12:30 | |
12:31
sqirrel joined
|
|||
lizmat | jnthn: in other words: if I load a precompiled module, can I find out the original path of the module? | 12:31 | |
12:32
atroxaper joined
|
|||
rGeoffrey | I have to work with what I have. Last year there was only 3 days from when OSCON said we would to the lightning talks and them happening. This year they gave me 3 weeks notice. Some year they will actually accept them on time and I will have 3 months to twist arms. | 12:32 | |
12:34
brrt joined
12:35
SamuraiJack left
|
|||
dalek | ast/S26-WHY: adf0914 | (Rob Hoelz)++ | S26-documentation/why-following.t: Fix why-following attribute comment test |
12:38 | |
12:38
rurban1 joined
|
|||
dalek | kudo/nom: 9044339 | (Elizabeth Mattijsen)++ | src/core/CompUnit.pm: Add crappy CompUnit.compile And some assorted support methods |
12:38 | |
12:41
[particle] left
|
|||
woolfy | I really would like to see TimToady or jnthn give a talk about the state of Perl 6. But Larry is already doing the state of Perl in general... And I am afraid jnthn has other plans. | 12:42 | |
12:43
SamuraiJack joined
|
|||
woolfy | lizmat would be a good choice too, but she is hesitant, since she thinks she does not know enough... :-) | 12:43 | |
(hiding now) | |||
lizmat wonders where woolfy went | |||
woolfy | :-) | 12:44 | |
nwc10 | have you checked behind the sofa? | ||
12:44
rurban1 left
|
|||
woolfy | o0O(sitting next to lizmat, in plain sight, so she does not see me)... | 12:45 | |
lizmat looks under the desk | |||
rGeoffrey | There are two weeks to the big event, and 209 people 'reading' this. It may take a whole village, but I am sure enough words can be put onto someone's slides, even if the speaker thinks she does not know enough. | ||
12:45
cognominal joined
|
|||
woolfy | Ehm, I am afraid my 200x "Perl 6 is awesome and can be used already for many things" would not help much. | 12:46 | |
lizmat | signal(SIGINT).tap( {die} ); { LEAVE "say left"; END say "ENDed"; 1 while 1 } # press Ctrl-C to exit | 12:48 | |
will say "ENDed", but not "left" | |||
dalek | kudo-star-daily: 8b178b8 | coke++ | log/ (14 files): today (automated commit) |
||
lizmat | jnthn: I would have thought it would also need to say "left"., or am I wong? | 12:49 | |
signal(SIGINT).tap( {die} ); { LEAVE say "left"; END say "ENDed"; 1 while 1 } # fixed "" oops | 12:50 | ||
FROGGS | :o) | 12:51 | |
12:51
SamuraiJack left
|
|||
lizmat | still not working though :-( | 12:51 | |
12:52
SamuraiJack joined,
anaeem1 joined
|
|||
lelf | Is Str.graphs not implemented anywhere or is it no longer here? | 12:52 | |
[Coke] | r: say "barf".graphs | 12:53 | |
camelia | rakudo-jvm 9a8470: OUTPUT«(timeout)» | ||
..rakudo-{parrot,moar} 9a8470: OUTPUT«No such method 'graphs' for invocant of type 'Str' in block at /tmp/tmpfile:1» | |||
[Coke] | can't really tell between removed and NYI, but I think NYI. | 12:54 | |
12:54
ggoebel111117 joined
|
|||
FROGGS | lelf: NYI | 12:54 | |
since we do not yet grapheme level strings | 12:55 | ||
have* | |||
jnthn | lizmat: I can't think of a way to do that off hand. | 12:56 | |
lizmat: Unless UNIT already gets a $?FILE installed | 12:57 | ||
lizmat: And making it do so is probably the right solution | 12:58 | ||
m: say $?FILE | |||
camelia | rakudo-moar 9a8470: OUTPUT«/tmp/GdqDYdE0nl» | ||
jnthn | m: say UNIT::.keys | ||
camelia | rakudo-moar 9a8470: OUTPUT«$! $/ $_ GLOBALish EXPORT $?PACKAGE ::?PACKAGE $=pod !UNIT_MARKER» | ||
jnthn | Hm, wonder where $?FILE comes from :) | ||
12:58
SamuraiJack left
|
|||
dalek | ast/S26-WHY: 934073d | (Rob Hoelz)++ | S26-TODO: Document more edge cases for S26 |
12:59 | |
jnthn | lizmat: Anyway, does that give you enough hints how to make it available? | 13:00 | |
13:01
guru joined
13:02
guru is now known as Guest69063,
Guest69063 is now known as ajr_
13:04
SamuraiJack joined
|
|||
sergot | timotimo++ # new p6weekly post | 13:07 | |
13:08
cognominal left
13:11
brrt left
13:15
rurban1 joined
|
|||
[Coke] | m: say EVAL("'møp'".encode('UTF-8')) | 13:16 | |
camelia | rakudo-moar 9a8470: OUTPUT«Cannot call 'EVAL'; none of these signatures match::(Str $code, Any :lang($lang) = { ... }, PseudoStash :context($context)) in block at /tmp/BnX2LIfssT:1» | ||
[Coke] finds that spec where EVAL is defined as taking a Str|Buf. Ah well. | 13:18 | ||
lizmat | [Coke]: LHF ? | 13:19 | |
[Coke] | maybe? " If $code is of type Buf, the same decoding techniques are applied as a compiler for $lang would usually do to input files." | ||
That seems like the tricky bit. | 13:20 | ||
13:20
[particle] joined
|
|||
jnthn | [Coke]: Well, we try to treat them as utf-8, I think... :) | 13:20 | |
[Coke] | test is in S29-context/eval.t if that's LHF for ya. | 13:21 | |
lizmat | m: say EVAL("'møp'".encode('UTF-8').Str) # could be as simple as this ? | 13:22 | |
camelia | rakudo-moar 9a8470: OUTPUT«møp» | ||
[Coke] | oh, even easier, it's defined as a multi sub (spec says it's a macro) | 13:23 | |
can we remove 'eval' now, also? it's been a while. | |||
13:25
bluescreen10 joined
|
|||
timotimo | sergot++ # gsoc work :) | 13:25 | |
[Coke] | -> meetings | 13:26 | |
13:28
raiph joined
13:39
Grrrr joined,
d4l3k_ joined
13:40
nebuchad` joined,
kst` joined
|
|||
atroxaper | If i have a grammar match object and $match<token-name><part-name> is optional (with ?) then <part-name> will be defined in any way. How can i recognize that <part-name> has data? Just check start and end indexes? | 13:40 | |
13:41
donghongbo left,
firnsy_ joined,
firnsy_ left,
firnsy_ joined,
sqirrel left
|
|||
timotimo | isn't it supposed to be nil? | 13:41 | |
13:41
simcop2387_ joined,
simcop2387_ left,
simcop2387_ joined,
simcop2387_ left
|
|||
raiph | timotimo: I'm pretty sure s/nativecast/nativecallcast/ | 13:41 | |
13:41
mattp_ joined
|
|||
atroxaper | timotimo: no. it's defined. | 13:41 | |
13:42
simcop2387_ joined
|
|||
timotimo | raiph: it's a sub called "nativecast" | 13:42 | |
13:43
sunnavy_ joined,
ponbiki joined,
Tene_ joined,
clkao_ joined
|
|||
raiph | timotimo: k. i got the impression FROGGS renamed it | 13:43 | |
13:43
obra_ joined,
ponbiki is now known as Guest41171,
rhr_ joined
13:44
haroldwu_ joined
|
|||
jnthn | In Rakudo's grammer, we have: | 13:44 | |
token infix:sym<(|)> { <!before <sym> <infixish> > <sym> <O('%junctive_or')> } | |||
This is what is thwarting (|)= from working. | |||
Does anybody know why we have taht !before in there? | |||
13:46
dylanwh_ joined
13:47
eternaleye_ joined
13:48
[Sno] left,
FROGGS left,
nhayashi left,
dylanwh_ is now known as dylanwh,
eternaleye_ is now known as eternaleye,
d4l3k_ is now known as dalek,
simcop2387_ is now known as simcop2387
13:49
brrt joined
|
|||
atroxaper | Apocalypse? | 13:49 | |
13:50
nhayashi joined
|
|||
lizmat | no, just a net split | 13:50 | |
13:54
[Sno] joined
|
|||
lizmat | oddly enough, none of this is visible on irclog | 13:54 | |
13:54
rurban1 left,
slavik joined
13:55
dmol joined
13:56
treehug88 joined
|
|||
raiph | timotimo++ # p6weekly (only just realized the link wasn't to a draft) | 13:56 | |
timotimo | :) | 13:57 | |
13:57
breinbaas joined,
kshannon joined
13:58
smash joined,
atta joined,
retupmoca joined,
betterworld joined,
masak joined,
Maddingue joined,
sivoais joined,
Gothmog_ joined,
[Coke] joined,
masak is now known as Guest26828
|
|||
atroxaper | lizmat: indeed | 13:59 | |
lizmat | moritz: you still here ? | ||
14:00
Timbus joined,
Guest26828 is now known as masak_grr
14:01
Guest41171 is now known as ponpon
|
|||
moritz | lizmat: yes-ish | 14:01 | |
14:01
vike joined,
ponpon is now known as Guest18750
14:02
Guest18750 is now known as p0nb1k1,
brrt left,
yeltzooo joined
14:03
sergot joined
|
|||
lizmat | moritz: is it correct that irclog.perlgeek.de is not logging any of this ? | 14:06 | |
jnthn guesses it's on the other side of a netsplit... | 14:07 | ||
14:08
felher joined
|
|||
moritz | lizmat: well, the only thing I could do is kill the bot and restart it, and hope that it ends up on "our" side of the netsplit | 14:08 | |
(CAP: IRC favors A over C) | 14:09 | ||
timotimo | "new ticket: remove eval from Will Coleda" reads very weird :) | ||
14:09
ingy joined,
FROGGS joined
|
|||
moritz | :-) | 14:10 | |
14:10
avuserow joined,
lelf` joined,
rurban1 joined
|
|||
jnthn | haha :) | 14:11 | |
14:11
woosley joined
|
|||
FROGGS | moritz: the logger does not log | 14:11 | |
14:11
ilbot3 joined
|
|||
moritz | FROGGS: see above :-) | 14:11 | |
FROGGS | moritz: confirmed :o) | 14:12 | |
14:12
lelf left
|
|||
[Coke] | m: say EVAL(88); | 14:13 | |
camelia | rakudo-moar 904433: OUTPUT«===SORRY!=== Error while compiling /tmp/liQsKGEJ5WCalling 'EVAL' will never work with argument types (int) Expected any of: :(Str $code, Any :lang($lang) = { ... }, PseudoStash :context($context))at /tmp/liQsKGEJ5W:1---…» | ||
[Coke] | Also in a spectest - Should EVAL be spec'd to take a Cool in that case? | ||
lizmat | maybe we need an EVAL(Any x) { EVAL x.Str } ? | 14:14 | |
[Coke] | Isn't that what Cool is for? | ||
so, s/Any/Cool/ in your example. | |||
lizmat | does Cool include Buffer ? | ||
14:15
synopsebot joined
|
|||
[Coke] | r: say Str ~~ Cool; | 14:15 | |
FROGGS | m: say Buf ~~ Cool | ||
camelia | rakudo-jvm 904433: OUTPUT«(timeout)» | 14:16 | |
..rakudo-{parrot,moar} 904433: OUTPUT«True» | |||
rakudo-moar 904433: OUTPUT«True» | |||
[Coke] | I suspect Buf shouldn't be in Cool these days. | ||
moritz | ilbot3 is back from the dead. | 14:17 | |
14:18
silug joined
|
|||
[Coke] | the EVAL(88) test was added by FROGGS++ 5 months ago. | 14:18 | |
FROGGS | O.o | 14:19 | |
are you sure? | |||
14:22
chenryn joined,
ajr_ left
|
|||
[Coke] | no. :) | 14:22 | |
5bab36fd (Tobias Leich 2014-01-01 22:37:33 +0100 69) is EVAL(88), 88, | |||
ah, no, just eval/EVAL | 14:23 | ||
14:23
guru joined,
guru left
|
|||
FROGGS | see :o) | 14:24 | |
masak_grr | there should be a version of git-blame which asks "who *added* this code" rather than "who last *changed* this code" | ||
also, grr! | |||
lizmat | [Coke]: so are you saying we should remove eval() ? | ||
is 6 months enough for a deprecation cycle ? | |||
dalek | kudo/nom: b764567 | jnthn++ | src/Perl6/Grammar.nqp: Restructure infixish to be more in line with STD. This just aids parsing; the now-enabled extra cases will need some AST generation improvements too. |
14:25 | |
14:26
brrt joined
|
|||
masak_grr | m: sub foo(&mystery) { &mystery q[say "OH HAI"] }; foo(&EVAL) | 14:26 | |
camelia | rakudo-moar 904433: OUTPUT«===SORRY!=== Error while compiling /tmp/juEAcZku3LTwo terms in a rowat /tmp/juEAcZku3L:1------> sub foo(&mystery) { &mystery ⏏q[say "OH HAI"] }; foo(&EVAL) expecting any of: postfix …» | ||
masak_grr | m: sub foo(&mystery) { &mystery(q[say "OH HAI"]) }; foo(&EVAL) | ||
camelia | rakudo-moar 904433: OUTPUT«OH HAI» | 14:27 | |
[Coke] | lizmat: (eval) yes, we need to remove it eventually. Doesn't have to be today, but needs to happen before 6.0 | ||
original "eval numbers should work" was added Tue Jul 21 17:33:37 2009 by kyle | |||
14:27
carlin joined
|
|||
[Coke] | Given current spec, I wouldn't expect it to work. | 14:28 | |
masak_grr | m: sub foo(&mystery) { my $x = 42; &mystery(q[$x = "escape analysis, pfah!"]); say $x }; foo(&EVAL) | 14:29 | |
camelia | rakudo-moar 904433: OUTPUT«escape analysis, pfah!» | ||
carlin | github.com/perl6/roast/commit/62f3b9305ece is where that test was first added | 14:30 | |
[Coke] | carlin: yes, that one. | 14:31 | |
carlin | github.com/perl6/roast/commit/ea4d...a30f5374R1 | ||
that's where it was changed | |||
masak_grr | I just read shop.oreilly.com/product/9780596101992.do a bit more carefully, and it says "eval() in JavaScript should have been a keyword -- that would have solved so many static analysis headaches" | 14:32 | |
[Coke] | masak_grr: any thoughts on EVAL being a macro as per spec? (right now it's a multi) | ||
masak_grr | [Coke]: EVAL being a macro sounds odd -- what compile-time effects is it trying to have? EVAL has *runtime* effects. | 14:34 | |
[Coke] | Iunno. Spec says macro, 'sall. | 14:35 | |
moritz | masak_grr: it has weird scoping | ||
jnthn | I think it's only macro in so far as the compiler is specially aware of it | ||
Already the optimizer looks for the name EVAL to show up | |||
masak_grr | moritz: so do attributes, and they're not macros. | ||
jnthn | And if it doesn't, goes optimizing. | ||
masak_grr | jnthn: did you see the evaluation I did above? any opinions on that? | 14:36 | |
jnthn | I think passing EVAL around is erroneous. | ||
Unless we make it a macro | 14:37 | ||
14:37
Alina-malina left
|
|||
masak_grr | I wonder if EVAL shouldn't be a statement prefix, then. | 14:37 | |
jnthn | In which case it *can* work, 'cus the macro can replace it with some primitive that is not first class, but still optimizer recognizable. :) | ||
But oh, it'd not know it was a macro | |||
So back to square one :) | |||
masak_grr | yep. | ||
jnthn | I'll stick with "erroneous, on your own head be it" :) | 14:38 | |
14:38
Alina-malina joined
|
|||
masak_grr | I can accept/agree with that. | 14:38 | |
I just wonder if instead of the useless capitalization, we should actually limit the power of EVAL somehow. | 14:39 | ||
for example by making it a keyword. | |||
then you *can't* assign it. | |||
jnthn | True :) | ||
14:39
locsmif joined
|
|||
jnthn | So far as escape analysis goes, anything in a lexical must be considered as escaping in absence of proof otherwise. | 14:40 | |
masak_grr | well, my point was that anything might go on inside of the EVAL, and we don't even know it's an EVAL. | 14:41 | |
I'd much rather the language have a "nope" attitude to bad stuff, than an "on your head be it" attitude. | |||
the *only* use case I can think of for assigning/rebinding &EVAL to other things, is to mess up static analysis. | 14:42 | ||
14:42
lelf` is now known as lelf
14:43
btyler joined
14:47
bowtie joined
|
|||
FROGGS | timotimo: what happened to that? irclog.perlgeek.de/moarvm/2014-05-11#i_8709334 | 14:47 | |
I get that right now :o( | |||
14:47
lelf left
14:48
lestrrat joined
|
|||
timotimo | that's with my spesh dump sorting thingie? | 14:48 | |
FROGGS | eww, shutting down my windows vm helps >.< | 14:49 | |
timotimo | yeesh :\ | 14:50 | |
FROGGS | this virtualbox tends to make trouble on my box... :/ | ||
timotimo | i'm afraid the current state of the spesh-diff script may not reflect the actual contents of the spesh output any more | ||
FROGGS | timotimo: I'm not using that script, I'm just using shell() | 14:52 | |
timotimo | oh, ok | ||
14:56
xinming_ is now known as xinming
14:58
bluescreen10 left
14:59
bluescreen10 joined
15:00
sqirrel joined
15:01
locsmif left
|
|||
atroxaper | I have a difficult question... If a have 'my $a = 1; sub b() {say $a;}; $a = 5; b()' than i will have '5'. What should i do to have '1'? I mean how can i customize a sub while its definition? | 15:03 | |
I know that in JavaScript I will get '1' in that case. | 15:04 | ||
nwc10 | I see "moar" in the filename of the failing thing t/spec/S06-advanced/wrap.rakudo.moar | ||
masak_grr | atroxaper: first off, no you won't. | 15:05 | |
nwc10 | is there an analagous JVM and Parrot failing thing? | ||
masak_grr | atroxaper: > var a = 1; function b() { console.log(a) }; a = 5; b() | 15:06 | |
atroxaper: 5 | |||
15:06
teodozjan left,
dayangkun_ left
|
|||
masak_grr | atroxaper: secondly, the way 5 comes out is pretty sane and the semantics you suggest doesn't make much sense at all. | 15:06 | |
atroxaper | masak_grr: ok. It's my mistake :) | ||
timotimo | m: my $a = 5; sub b($a = $a) { say $a }; $a = 1; b(); | 15:07 | |
camelia | rakudo-moar 904433: OUTPUT«Type check failed in binding $a; expected 'Any' but got 'Mu' in sub b at /tmp/zuz521jt7_:1 in block at /tmp/zuz521jt7_:1» | ||
timotimo | huh, what? | ||
m: my $a = 5; sub b($ia = $a) { say $ia }; $a = 1; b(); | |||
camelia | rakudo-moar 904433: OUTPUT«1» | ||
15:07
denis_boyun_ left
|
|||
timotimo | hm. | 15:07 | |
masak_grr | Perl 6 isn't Python. | 15:08 | |
timotimo | oh, you caught me! :) | ||
masak_grr | that is, that default param isn't evaluated once at function definition time. | ||
atroxaper | masak_grr: my example is bad i know. I want to pass a sub as argument to another sub. And i'm not sure will it works or not) | ||
masak_grr | atroxaper: oh, that bit works. | ||
atroxaper: but you didn't do that :0 | |||
m: sub twice(&action) { &action() for ^2 }; twice( sub { say "OH HAI" } ) | 15:09 | ||
camelia | rakudo-moar 904433: OUTPUT«OH HAIOH HAI» | ||
15:09
bluescreen10 left
|
|||
atroxaper | masak_grr: but what if "OH HAI' is some $var | 15:09 | |
masak_grr | atroxaper: talk about an XY problem! you want to pass a sub to another sub, and you end up asking about crazy lexical behaviors?! was there a missing step in the middle that you omitted? :P | 15:10 | |
atroxaper: then that var will be evaluated in the context of the passed sub. | |||
the anonymous one, in this case. | |||
m: my $greeting = "mblhf!"; sub twice(&action) { &action() for ^2 }; $greeting = "yo"; twice( sub { say $greeting } ) | 15:11 | ||
camelia | rakudo-moar 904433: OUTPUT«yoyo» | ||
masak_grr | m: my $greeting = "mblhf!"; sub twice(&action) { &action() for ^2 }; $greeting = "yo"; twice( sub { say $greeting; $greeting = "you rock, bot!" } ) | ||
camelia | rakudo-moar 904433: OUTPUT«yoyou rock, bot!» | ||
[Coke] | m: my $grt; say $grt; $grt = "hi"; | 15:12 | |
camelia | rakudo-moar 904433: OUTPUT«(Any)» | ||
[Coke] | so why does that say Any, but your two examples give the value that was set after the variable was used? | 15:13 | |
er, your -first- example. | |||
masak_grr | which example? could you re-run the one you mean? | ||
15:13
masak_grr is now known as masak
|
|||
[Coke] | ... nevermind. the set to "yo" happens outside the def of twice, so it's all fine. would be less confusing with newlines. :) | 15:14 | |
atroxaper | masak_grr: ok. Thank you. I'll try to review my code :) | ||
masak stopped being _grr :) | |||
atroxaper: no prob. lexical scoping and closures fascinate me. | 15:15 | ||
I find them very beautiful. | |||
15:15
pdcawley joined
|
|||
dalek | ast: fa5ded7 | coke++ | S29-context/eval.t: Refer to ticket. |
15:16 | |
atroxaper | masak: yes. If i'm not mistaken you wrote a post about that recently :) | ||
dalek | kudo/nom: 57d8f39 | jnthn++ | src/Perl6/Actions.nqp: Re-arrange infixish actions to support [[*]]= etc. |
15:17 | |
masak | atroxaper: maybe strangelyconsistent.org/blog/lexpad...eed-fixups ? | ||
atroxaper | masak: yes! | 15:18 | |
masak | atroxaper: I also wrote about closures as far back as 2008: strangelyconsistent.org/blog/ill-call-you-back | ||
[Coke] | j: eval "1" | ||
camelia | rakudo-jvm 904433: OUTPUT«Saw 1 call to deprecated code during execution.================================================================================Sub eval (from GLOBAL) called at: /tmp/elsrZKJenB, line 1Please use 'EVAL' instead.-------------------------------…» | ||
jnthn | masak: Aww, you didn't make it "call be back maybe"? :P | ||
masak | jnthn: too early? 2008? | 15:19 | |
jnthn | m: my @foo = [>>+<<] ([1..3],[1..3],[1..3]); say @foo | ||
camelia | rakudo-moar 904433: OUTPUT«Type check failed in binding op; expected 'Any' but got 'Mu' in sub METAOP_REDUCE_LEFT at src/gen/m-CORE.setting:17409 in block at /tmp/DK_JtE0jH_:1» | ||
jnthn | Neato, I accidentally fixed that too. :) | ||
[Coke] | ^^ that might mean it's safe to remove these skips: #?rakudo.jvm skip 'tracebacks in deprecations' | ||
15:20
SamuraiJack left,
SamuraiJack joined
|
|||
dalek | ast: a47a750 | jnthn++ | S03-metaops/reduce.t: Untodo a now-passing [>>+<<] test for Rakudo. |
15:20 | |
15:22
Rotwang joined,
hoverboard joined
|
|||
raiph | Does host07.perl6.com:8080/report use Rakudo / NQP / MoarVM HEADs ? | 15:24 | |
15:25
chenryn left,
shabble joined,
shabble left
15:26
[Sno] left
|
|||
dalek | ast: 11b5f96 | jnthn++ | S03-operators/assign.t: Add tests for [+]=, [[+]]=. |
15:26 | |
15:31
kst` is now known as kst
15:32
kaleem left
|
|||
jnthn | m: my $s = set(1,2); $s (|)= set(1, 3); say $s; | 15:33 | |
camelia | rakudo-moar 904433: OUTPUT«===SORRY!=== Error while compiling /tmp/UtwRbEaxBITwo terms in a rowat /tmp/UtwRbEaxBI:1------> my $s = set(1,2); $s ⏏(|)= set(1, 3); say $s; expecting any of: postfix infix stopper…» | ||
brrt | nqp revision is wrong | 15:35 | |
jnthn | ? | ||
brrt | that was cryptic, i'm sorry, i'll explain; i can't build nqp master on moar-jit, because moar-jit misses nativecallcast | 15:36 | |
but configure.pl thinks moarvm is recent enough | |||
jnthn | Uh, yeah | ||
That's the trouble with the incrementing number :) | |||
It's merging...it's merging time! | |||
brrt | oh, ok, this is expected :-) | ||
jnthn | > my $s = set(1,2); $s (|)= set(1, 3); say $s; | 15:37 | |
set(1, 2, 3) | |||
Well, that works if I just delete stuff... :) | |||
Now let's spectest and see if said stuff had a raisan d'etre... | 15:38 | ||
Uh, raison...but the mental image was pretty good as I had it... :) | |||
rurban | rakudo p+m spectests: gist.github.com/rurban/d05e77ae0369a53861d6 | 15:39 | |
15:39
anaeem1 left
15:40
anaeem1_ joined
|
|||
FROGGS | rurban: the passed todo's are due to RELEASE_6_5_0-12-gb1b4b87? | 15:44 | |
masak | by the way, this is what it was like programming on Rakudo in 2008: strangelyconsistent.org/blog/rakudo...ugly-weird | 15:45 | |
FROGGS | rurban: that seems to be a regression perhaps: gist.github.com/rurban/d05e77ae036...e1-txt-L28 | ||
15:45
anaeem1_ left
|
|||
FROGGS | rurban: at least when I compare to: github.com/coke/perl6-roast-data/b....out#L2905 | 15:45 | |
masak smiles at his younger self rejoicing at the 'given' keyword but sorrowfully wishing he could do list assignment | |||
you young'uns don't know how good you have it. | 15:46 | ||
FROGGS | A good deal of basic things that you as a Perl 5 user might expect to work, mostly do. This includes $_, my declarations, if/while/for, sub, scalars, arrays[...] | ||
that sounds a bit like my posts about v5 :o) | |||
masak: when I think about my first patches to rakudo/nqp it gets really funny :o) | 15:47 | ||
15:47
kaleem joined
|
|||
FROGGS | like that when you had a grammar and you matches something in an outer token, the inner tokens kept the captures :o) | 15:47 | |
stuff like that | |||
masak | oh ouch | ||
FROGGS | or that our scoped vars could not be initialized when you declare them | 15:48 | |
and, that was just about 1.5 years ago I think | |||
dalek | kudo/nom: 178c8e7 | jnthn++ | src/Perl6/Grammar.nqp: Remove hack that kept (|)= & co from working. It's not clear why these <!before ...>s were there; perhaps they were to work around a historical bug. Removing them causes no new spectest fails, and makes (|)=, (&)= and so forth work. |
15:49 | |
jnthn | Anybody wants to volunteer to find the RT about this and mark it testneeded, or better, turn it into a test or two? :) | 15:50 | |
masak | 15:51 | ||
er, I volunteer to the "find" part, because I'm good at that | |||
jnthn | Surely you can write two tests? :) | 15:52 | |
masak | (and because I wrote 50% of the subject lines of open tickets in RT) | ||
15:52
sqirrel left
|
|||
jnthn | my $s = set(1,2); $s (|)= set(1, 3); # there, that's half of one ;) | 15:52 | |
masak | I'll find the RT ticket for you, and then we'll see :) | 15:53 | |
knowing myself, I generally don't get as far as actually producing the tests. | |||
it's not so much "I don't wanna" and more "these are the things I do well" | 15:54 | ||
15:54
FROGGS[mobile] joined
|
|||
jnthn | Aye, I guess you're still learning testing, given how much time you spend in TDD courses... ;) | 15:55 | |
masak | :P | ||
15:55
fhelmberger left,
denis_boyun joined
|
|||
jnthn | r: class C { my $.x = 42; }; C.x.say | 15:57 | |
camelia | rakudo-{parrot,jvm} b76456: OUTPUT«42» | ||
..rakudo-moar b76456: OUTPUT«(Any)» | |||
masak | jnthn: rt.perl.org/Ticket/Display.html?id=117103 | 15:59 | |
masak marks it "testsneeded" | 16:00 | ||
16:00
denis_boyun___ joined,
FROGGS left
16:02
denis_boyun left
|
|||
masak | RT++ # in the end, I found it by searching for '(|)' in RT | 16:02 | |
16:02
atroxaper left
|
|||
timotimo | jnthn: way cool! | 16:03 | |
16:03
atroxaper joined,
raiph left
16:05
brrt left
16:07
atroxaper left
16:13
ajr joined,
ajr is now known as Guest3193,
Guest3193 is now known as ajr_,
FROGGS joined
16:16
denis_boyun joined
16:18
denis_boyun___ left
16:20
kaleem left
16:22
cognominal joined
|
|||
colomon_ | Has anyone heard more from TimToady? | 16:23 | |
dalek | kudo/nom: 95f540d | jnthn++ | src/Perl6/Actions.nqp: Fix class A { my $.x = 42 } scoping on MoarVM. |
||
kudo/nom: 7b27642 | jnthn++ | src/Perl6/Actions.nqp: Fix install_method to look at scope consistently. |
|||
timotimo | oh, huh? | 16:25 | |
how was that broken? | |||
dalek | ast: 030b17a | jnthn++ | S12-attributes/class.t: Add test for RT#122087. |
16:28 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122087 | ||
jnthn | cd .. | ||
tssk | |||
carlin | how many people actually run the full S32-temporal/local.t test? It looks like it might have been wrong for a while and few noticed it | 16:33 | |
because it unless your /etc/timezone is America/New_York most of the tests are skipped | |||
eg. coke's autoroasting skips them | 16:34 | ||
dalek | kudo/nom: 31404a4 | (Elizabeth Mattijsen)++ | src/core/CompUnit.pm: Default from is 'Perl6' nowadays |
16:37 | |
16:38
_slade joined
16:44
SamuraiJack left
|
|||
dalek | ast: 89c59e3 | (Elizabeth Mattijsen)++ | S22-package-format/localfile/NanooNanoo.pm: Create necessary source files while testing |
16:47 | |
ast: 16320f1 | (Elizabeth Mattijsen)++ | S (4 files): Merge branch 'master' of github.com/perl6/roast |
|||
ast: 62446ba | (Elizabeth Mattijsen)++ | S22-package-format/local.t: Some more CompUnit testing |
|||
16:55
dakkar left
17:03
guru joined,
ajr_ left,
guru is now known as Guest34386,
Guest34386 is now known as ajr_,
[particle] left
17:10
rurban1 left
17:14
lelf joined,
lelf left
17:15
lelf joined
|
|||
dalek | ast: 6429cf8 | (Elizabeth Mattijsen)++ | S06-advanced/wrap.t: De-tab and get indenting right |
17:15 | |
17:18
rurban1 joined
17:19
itz_ joined
|
|||
[Coke] | carlin: happy to take a mini patch for: github.com/coke/perl6-roast-data/b...rot.sh#L19 and friends to add env vars that are needed. | 17:23 | |
good catch. | |||
17:26
itz__ joined
|
|||
dalek | rl6-roast-data: d9915a5 | coke++ | / (6 files): today (automated commit) |
17:28 | |
17:29
nebuchad` is now known as nebuchadnezzar,
ajr_ left
17:34
brrt joined,
xusia joined,
atroxaper joined
17:38
atroxaper left,
xusia left
17:45
xusia joined
17:47
kaleem joined
|
|||
dalek | ast: d9f950a | (Elizabeth Mattijsen)++ | S06-advanced/wrap.t: Fudge tests for RT #122259 |
17:48 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122259 | ||
17:49
FROGGS[mobile] left
17:51
[Sno] joined
17:53
Sqirrel joined
17:56
guru joined
17:57
guru is now known as Guest75086,
Guest75086 is now known as ajr_
|
|||
carlin | m: $*TZ / 60 / 60 | 17:57 | |
camelia | ( no output ) | ||
carlin | m: say $*TZ / 60 / 60 | 17:58 | |
camelia | rakudo-moar 31404a: OUTPUT«0» | ||
carlin | m: say $*TZ | ||
camelia | rakudo-moar 31404a: OUTPUT«0» | ||
17:58
woolfy1 joined
|
|||
carlin | those tests in S32-temporal/local.t seem to rely on .local being able to convert to DST based on the date | 17:59 | |
17:59
kaleem left
|
|||
carlin | is that supposed to work? | 18:00 | |
dalek | kudo/nom: 3bd00dd | (Elizabeth Mattijsen)++ | src/core/control.pm: eval() is no more, long live EVAL() |
18:01 | |
flussence | > say $*TZ / 60 / 601 | ||
guess the p6eval server is in UTC. | |||
18:01
itz__ left
|
|||
carlin | yeah | 18:01 | |
18:02
treehug88 left,
SamuraiJack_ left
18:05
atroxaper joined
18:10
atroxaper left
18:12
Sqirrel left
18:22
darutoko left
|
|||
dalek | kudo/nom: 95e3ca4 | (Elizabeth Mattijsen)++ | src/core/ (2 files): Make EVAL() and .EVAL really Cool |
18:22 | |
carlin | if I do `DateTime.new("2014-02-01T10:00:00").local` is it really supposed to know I was in DST in February and adjust the timezone accordingly? | 18:23 | |
18:24
anaeem1 joined
|
|||
dalek | ast: 6e71b0b | (Elizabeth Mattijsen)++ | S (2 files): Track disappearence of Cool.eval and eval() |
18:24 | |
kudo/nom: e9fad62 | (Elizabeth Mattijsen)++ | docs/ChangeLog: Note that Cool.eval and eval() are now gone |
18:26 | ||
vendethiel | wow, that's a hell of a busy week ... | ||
jnthn | so progress... | 18:27 | |
timotimo | vendethiel: hm? | 18:28 | |
hm. it occurs to me that i didn't mention anything ven did in my weekly; what did i miss? | 18:29 | ||
vendethiel | "<masak_grr> Perl 6 isn't Python." <- oh, I must've misread the channel name :-P | 18:30 | |
jnthn | NO LOL | 18:31 | |
18:33
Tene_ is now known as Tene
|
|||
timotimo | NO EULOL | 18:33 | |
masak | NO PROJECT EULER | 18:34 | |
vendethiel | timotimo: I started working on my beginner tutorial and on a learnXinYminutes. | 18:35 | |
(sadly, I got caught up by time, as last week was <IRL> in full caps, and I have med appointments for the whole week, but I'll try to get stuff done :).) | |||
dalek | ast: 4af01d7 | (Elizabeth Mattijsen)++ | S29-context/eval.t: Unfudge now passing EVAL tests (and add .EVAL) |
18:36 | |
timotimo | oke | ||
looking forward to report on some nice stuff in the future :) | |||
vendethiel | I'll change the way I did the learnXinYminutes tho, because starting with the operators is ... hehe :P | ||
18:37
itz__ joined
|
|||
timotimo | well, perl is an operator-driven language or how did that quote go? | 18:37 | |
vendethiel | It is. That's why I should try and not show it directly ... | 18:40 | |
FROGGS | operator-rich is the right term I think | ||
lizmat | FROGGS: regarding 'perl6' and 'Perl6' | 18:41 | |
if I change the default language of EVAL to 'Perl6' | |||
I get: No compiler available for language 'Perl6' | |||
timotimo | lizmat: aye, it needs a corresponding nqp::regcomp call somewhere | ||
FROGGS | yeah, rakudo/nqp use 'perl6' internally | 18:42 | |
lizmat | having them differently, is asking for problems in the future, I would say | ||
FROGGS | true | ||
lizmat | so shall we try to standardize on 'perl6' or 'Perl6' ? | ||
FROGGS | I'd like to see Perl6 | ||
lizmat | jnthn: do you have an opinion? ^^^ | 18:43 | |
FROGGS | we talked about this when the JVM bindings were made | ||
18:44
itz__ left
|
|||
FROGGS | and IIRC I "won" that time | 18:44 | |
(writing that language name correctly, that is) | |||
because :from and friends are about a language, not about a compiler or interpreter | |||
jnthn | I think as far as regcomp goes it may be a bit of a hodge podge already | 18:45 | |
FROGGS | and c or jvm feels odd | ||
jnthn | I'm pretty srue it's QAST not qast :) | ||
lizmat | ok, I'll try to get it changed to Perl6 then ? | 18:46 | |
jnthn doesn't feel strongly on it | |||
I think let what you put in :from<...> drive it. | 18:47 | ||
FROGGS | exactly what I think, yes | ||
vendethiel | FROGGS: yeah, but I don't want the whole tutorial to be about nq, ff and friends :P | ||
FROGGS | vendethiel: yeah :o) | 18:48 | |
vendethiel | .oO( nq - "not quite" operator ) |
||
18:58
isBEKaml joined
|
|||
[Coke] | lizmat++ | 18:58 | |
as long as it isn't Perl<nonbreakingspace>6 | |||
jnthn | Uh, yes, don't do that. :) | 18:59 | |
vendethiel | which reminds me ... isn't [>>+<<] a hyper²-operator ? | ||
[Coke] | so, my strategy of "flip randomly to a skipped test in roast" seems to make other people quite effective. :) | 19:00 | |
I call it the Cartman operator. | |||
19:00
btyler_ joined
|
|||
vendethiel | should I explain operator categories early on ? (ie infix etc) | 19:02 | |
and right/left/non-associativity | |||
FROGGS | categories perhaps yes, associativity maybe not so | 19:03 | |
19:03
btyler left
19:05
hummeleB1 joined
|
|||
vendethiel | well, it's still learnXinYminutes, so ... but yeah | 19:05 | |
19:05
molaf left
|
|||
dalek | ast: 320794d | (Elizabeth Mattijsen)++ | S29-context/eval.t: Add test for Buf.EVAL |
19:13 | |
19:17
brrt left
|
|||
dalek | p: 346e6e9 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Use a fresh register for decont'd callee. |
19:17 | |
19:19
isBEKaml left
19:34
denis_boyun left
19:40
[particle] joined
19:42
itz__ joined
19:44
itz_ left
19:45
[particle] left
19:46
treehug88 joined
19:51
ren1us joined
19:52
[particle] joined
|
|||
ren1us | in keeping with my unfortunate tradition of being truly useless other than breaking everything, quick operator question: | 19:53 | |
masak | :) | 19:54 | |
FROGGS | hehe | ||
masak | ren1us++ # breaking everything | ||
vendethiel | (recognizing breaking stuff is good)++ | ||
ren1us | m: multi sub infix:<<|>>(Any $lhs, Any $rhs) { say $lhs; }; 5<|>2; | ||
timotimo | you cannot learn from nonfailure, can you? | ||
camelia | rakudo-moar e9fad6: OUTPUT«===SORRY!=== Error while compiling /tmp/qULQipLfXbTwo terms in a rowat /tmp/qULQipLfXb:1------> (Any $lhs, Any $rhs) { say $lhs; }; 5<|>⏏2; expecting any of: postfix infix stopper…» | ||
vendethiel | well, breaking what's broken but we don't know it's (yet) | ||
timotimo | m: multi sub infix:['<|>'](Any $lhs, Any $rhs) { say $lhs }; 5 <|> 2; | ||
camelia | rakudo-moar e9fad6: OUTPUT«===SORRY!===Cannot find method 'ast'» | ||
masak | ren1us: if you don't do whitespace after the 5, it's not an infix, it's a postfix. | 19:55 | |
timotimo | m: multi sub infix:<< <|> >>(Any $lhs, Any $rhs) { say $lhs }; 5 <|> 2; | ||
camelia | rakudo-moar e9fad6: OUTPUT«5» | ||
19:55
_slade left
|
|||
timotimo | i think infix:<<|>> still refers to only | | 19:55 | |
vendethiel | yea | ||
ren1us | timotimo: yeah, that's what i was fighting with | ||
vendethiel | it's just << and >> (interpolating <>) | ||
timotimo | infix:<< ... >> doesn't interpolate actually | ||
FROGGS | m: multi sub infix:('<|>')(Any $lhs, Any $rhs) { say $lhs; }; 5<|>2; | ||
camelia | rakudo-moar e9fad6: OUTPUT«===SORRY!=== Error while compiling /tmp/tkwb_4wMbeTwo terms in a rowat /tmp/tkwb_4wMbe:1------> (Any $lhs, Any $rhs) { say $lhs; }; 5<|>⏏2; expecting any of: postfix infix stopper…» | ||
FROGGS | m: multi sub infix:('<|>')(Any $lhs, Any $rhs) { say $lhs; }; 5 <|> 2; | 19:56 | |
camelia | rakudo-moar e9fad6: OUTPUT«===SORRY!=== Error while compiling /tmp/LHjAbEZgbNPreceding context expects a term, but found infix | insteadat /tmp/LHjAbEZgbN:1------> (Any $lhs, Any $rhs) { say $lhs; }; 5 <|⏏> 2;» | ||
timotimo | i'm not sure why infix:['...'] doesn't work at the moment | ||
i *think* it used to work at some point | |||
19:56
itz_ joined
|
|||
FROGGS | m: multi sub infix:«<|>»(Any $lhs, Any $rhs) { say $lhs; }; 5 <|> 2; | 19:56 | |
camelia | rakudo-moar e9fad6: OUTPUT«5» | ||
vendethiel | m: my %a = foo => 2; my $b = 'foo'; say %a<<$b>>; | ||
camelia | rakudo-moar e9fad6: OUTPUT«2» | ||
vendethiel | timotimo: ^ ? | ||
oh, you mean infix:<< stuff here >> to declare an op. | 19:57 | ||
19:57
kivutar joined
|
|||
timotimo | vendethiel: that's a different << >> | 19:57 | |
:) | |||
ren1us | so there's just a whole pile of symbols that can be used to enclose the actual operator, and it doesn't really matter which pair i use as long as it's not the same as the symbol in the actual op? | 19:58 | |
timotimo | well, the closer must'nt be part of the operator | 19:59 | |
xfix | Well, there is infix['[\'><«»]'] for declaring insane operators. | ||
Not that you will ever need it. | |||
(seriously, why anyone would want ['><«»] operator?) | 20:00 | ||
rn: sub infix:<perl 6 is best language ever, it allows defining new operators>($a, $b) { say "$a this works$b" }; "Well," perl 6 is best language ever, it allows defining new operators "..." | 20:03 | ||
camelia | rakudo-{parrot,jvm,moar} e9fad6, niecza v24-109-g48a8de3: OUTPUT«Well, this works...» | 20:04 | |
xfix | rn: sub infix:<perl 6 is best language ever, it allows defining new operators>($a, $b) { say "$a this works$b" }; "Well," perl 6 is best language ever, it allows defining new operators "..." | ||
camelia | rakudo-{parrot,jvm,moar} e9fad6: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileTwo terms in a rowat /tmp/tmpfile:1------> $b) { say "$a this works$b" }; "Well," ⏏perl 6 is best lang expecting any of:…» | ||
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===Confused at /tmp/tmpfile line 1:------> is works$b" }; "Well," perl 6 ⏏is best language ever, it Parse failed» | |||
xfix | I'm almost sure it once worked. | ||
Well, whatever. | |||
Also, perlcabal.org is lagging... | |||
Not anymore. | 20:05 | ||
Well, it seems there are multiple tests running using 100% of CPU total. They are all stuck on t/01-file-find.t. | 20:06 | ||
20:07
atroxaper joined
|
|||
xfix | gist.github.com/xfix/e39d7a8baf31f0ea45e5 | 20:07 | |
Sure something went wrong. | |||
20:08
araujo joined,
araujo left,
araujo joined
|
|||
ren1us | huh. pasting in « and » has a tendency to break the moar repl, it seems. hooray for utf-8. | 20:10 | |
FROGGS | :/ | 20:11 | |
20:11
atroxaper left
|
|||
ren1us | whatever, i'm just using the repl for fiddling anyway. | 20:12 | |
FROGGS | I never use it | 20:14 | |
vendethiel | unicode-- # unicode hater ! | 20:15 | |
ren1us | i like using it on the side as i write my actual code in another window, just because i often need to do some fiddling to get the syntax right | ||
vendethiel | unicode++ #it's cool, though | ||
20:16
rurban1 left
|
|||
ren1us | vendethiel: i like widescale unicode support as a concept, but i'd like it more if it didn't imply the need to memorize character codes | 20:16 | |
20:21
psch joined
|
|||
psch | evening #perl6 o/ | 20:23 | |
20:24
khisanth_ joined
|
|||
perigrin didn't realize that #perl6 was uneven ... should have though ... knowing how many people in here are odd. | 20:24 | ||
masak | ahoj psch | ||
psch successfully un-broke the "missing OUTER on jvm"-thingy in the debugger just now o/ | |||
now for "doing it properly"... :) | |||
lue | ren1us: it doesn't, there are codepoint-less input methods. I use compose keys, for example :) | 20:25 | |
yoleaux | 08:04Z <atroxaper> lue: hello, my not finished yet solution is github.com/atroxaper/Pod-SAX. You can see Pod::SAX::Reformer class and its test. Main feature that my Callees makes a calls for start of Pod object, end of Pod object, and 'in' Pod object that trigger if .content has not Pod object like String. And for each Pod type we can make many callbacks for many cases. Like only for L<> but not for C<>, I think it is more … | ||
flexible and maintenanc[fu | |||
psch | hey masak :) | ||
20:25
rurban1 joined
|
|||
FROGGS | psch++ # \o/ | 20:26 | |
ren1us | lue: ah, that works too. | 20:27 | |
lue | « is just <Multi> + < + < , and ☃ is just <Multi> + & + s + n + o + w, and... :) | 20:28 | |
(there's also the OSX-y solution of setting up third/fourth/etc. levels for your keyboard) | 20:29 | ||
ren1us | m: multi sub circumfix:<? ?>($in) { say $in; }; ?5?; # is this just breaking because there are prefix/postfix operators taking higher precedence? also lue++ | 20:31 | |
camelia | rakudo-moar e9fad6: OUTPUT«===SORRY!=== Error while compiling /tmp/tRLsq8dntmTwo terms in a rowat /tmp/tRLsq8dntm:1------> ub circumfix:<? ?>($in) { say $in; }; ?5⏏?; # is this just breaking because there expecting any of: …» | ||
lue | m: multi sub circumfix:<☃ ☄>($in) { say $in; }; ☃5☄; | ||
camelia | rakudo-moar e9fad6: OUTPUT«5» | ||
lue | ren1us: seems like it. | 20:32 | |
ren1us | i almost feel like circumfix should have the highest precedence, since it's the least likely to be triggered and most likely to trigger false positives on other prefix or postfix captures | 20:34 | |
jnthn | Yes, termish is prefix* term postfix*, roughly. | ||
And a circumfix is a kind of term | |||
It's not that they compete, it's that the circumfix doesn't even get a chance. | |||
20:35
khisanth_ is now known as Khisanth,
teodozjan joined
20:37
virtualsue joined
20:52
teodozjan left
20:55
mathw joined
20:59
Guest4485 joined,
Guest4485 left,
Guest4485 joined,
Guest4485 left
21:02
teodozjan joined
21:10
telex left
21:12
telex joined
21:13
virtualsue left,
kivutar left
21:17
teodozjan left
21:18
rindolf left
21:22
ivanshma` joined
21:31
SevenWolf joined
|
|||
Mouq | p: say await start { 1 + 1 } | 21:40 | |
camelia | rakudo-parrot e9fad6: OUTPUT«===SORRY!=== Error while compiling /tmp/uSyZHa_ZZuUndeclared routines: await used at line 1 start used at line 1. Did you mean 'spurt', 'sqrt', 'sort'?» | ||
PerlJam | q! | ||
Mouq | I kinda wish they were defined syncronously for Parrot, so you could write code for all three compilers | 21:41 | |
21:42
itz_ left
21:46
ren1us left
21:49
p0nb1k1 is now known as ponbiki,
rje_ joined
|
|||
rje_ | perl6: say "hello, world!" | 21:49 | |
camelia | rakudo-{parrot,jvm,moar} e9fad6, niecza v24-109-g48a8de3: OUTPUT«hello, world!» | ||
21:54
rje_ left
21:55
BenGoldberg joined
22:05
ajr_ left
22:08
atroxaper joined,
Rotwang left
22:12
atroxaper left
22:20
carlin left,
_slade joined
22:24
treehug88 left
22:25
anaeem1 left
22:30
jnap left
22:32
jnap joined
22:43
dmol left
22:45
btyler_ left
|
|||
[Coke] fixed feather. | 22:46 | ||
looks like I had the rakudo-star-daily process still running there, and the last few weeks it was hanging on that test file. probably been getting slower for a while. killed the cronjob, killed all procs running. | 22:50 | ||
dalek | kudo/lex2loc2: f4fc6d4 | jnthn++ | src/vm/moar/Perl6/Ops.nqp: Fix a .DEFINITE code-gen bug. Should not blindly re-use registers that may belong to locals. |
22:52 | |
22:52
dalek left
22:53
dalek joined,
ChanServ sets mode: +v dalek
22:54
mathw left
|
|||
lizmat | Mouq: well volunteered :-) | 22:58 | |
Mouq | lizmat: Would that be acceptable behavior though? | 23:02 | |
p: Channel.new | |||
camelia | rakudo-parrot e9fad6: OUTPUT«===SORRY!=== Error while compiling /tmp/M8sdlq9p_VUndeclared name: Channel used at line 1» | ||
Mouq | m: Channel.new | ||
camelia | ( no output ) | ||
lizmat | maybe the CurrentThreadScheduler could provide some inspiration? | 23:03 | |
well, that was disappointing :-( | 23:11 | ||
23:11
PZt joined
|
|||
lizmat | 4-2 :-( | 23:11 | |
jnthn | Yeah :/ | ||
lizmat | on the brighter side: more time for hacking now :-) | 23:12 | |
jnthn | yay :) | 23:17 | |
The lex2loc branch build agaisnt latest Moar master seems clean to me. Testing welcome. | 23:19 | ||
23:19
cooper_ joined
|
|||
jnthn | Will bump revisions and merge it tomorrow evening, if all looks good. | 23:19 | |
lizmat looks at s/perl6/Perl6/ and decides to sleep on it | 23:20 | ||
gnight, #perl6! | 23:21 | ||
Mouq | 'night lizmat! | ||
jnthn sleeps also | 23:22 | ||
'night all | |||
dalek | ast: af01013 | coke++ | integration/advent2013-day14.t: this test is marked as requiring concurrency ... so parrot won't even try to run it now. |
23:25 | |
kudo/nom: 4cad54f | coke++ | t/spectest.data: Mark this test as requiring concurrency |
|||
woolfy1 | lizmat does not fully realise that the Dutch team still has to play one more game, against Brazil, this Saturday. And if the Dutch lose that, they're real losers. Grr. | 23:28 | |
bedtime | |||
23:30
hoverboard left
23:32
rindolf joined
|
|||
Mouq | 'night jnthn, woolfy | 23:32 | |
dalek | ast: 58c8aea | coke++ | S17-channel/winner.t: this test is marked as requiring concurrency ... so parrot won't even try to run it now. |
23:33 | |
cognominal | woolfy1: the real loosers are the brazilians citizens. That circus costs a lot of money and any money made goes in already deep pockets. | 23:37 | |
23:46
ren1us joined
23:47
xragnar_ joined,
xragnar_ is now known as xragnar
|
|||
[Coke] | we have a uniname that takes an int, but it's not spec'd. | 23:48 | |
also: uninames is NYI, and that looks like LHF. | |||
dalek | ast: 3c9bf20 | coke++ | S (2 files): use standard "NYI" text |
23:52 | |
[Coke] | down to 906 rakudo fudges that aren't ticketed or marked NYI | 23:53 | |
.tell lizmat is S03-metaops/hyper.t:659:#?rakudo skip 'EVAL(Buf)' easily fixable? (I tried unskipping it, no love) | |||
yoleaux | [Coke]: I'll pass your message to lizmat. | ||
Mouq | [Coke]++ | 23:55 | |
retupmoca | m: my $s = Supply.new; my $m = $s.grep({ $_ == 1}).map({ say $_; (x => $_).hash }); $m.tap({say 'a'}); $m.tap({say 'b'}); $s.more(1) | 23:58 | |
camelia | rakudo-moar e9fad6: OUTPUT«1ab1ab1ab1ab» | ||
retupmoca | ^ if that is correct, then I really don't understand supplies |