»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
Quom__ | m: say (^5).list | 00:00 | |
camelia | rakudo-moar 34d2b6: OUTPUT«(0 1 2 3 4)» | ||
00:02
lichtkind left
|
|||
Herby_ | Quom__, thanks | 00:04 | |
00:05
spider-mario left
00:13
atweiden left
00:21
perlawhirl joined
|
|||
perlawhirl | ^Hexit | 00:21 | |
yoleaux | 7 Jan 2016 15:27Z <bpetering> perlawhirl: NativeCall bindings for libssh is on my TODO in the next month | ||
8 Jan 2016 00:21Z <RabidGravy> perlawhirl: because you asked about it I made github.com/jonathanstowe/IO-Path-Mode :) any suggestions let me know | |||
perlawhirl | hi yoleaux! | ||
i saw it the day after, hah | 00:22 | ||
was looking at modules site and was like "oh there is a module" then saw it was added < 25 hours ago | |||
so thank you | |||
i've already started using it | |||
00:23
vividsnow left,
perlawhirl left
00:24
perlawhirl joined,
perlawhirl left
00:31
vendethiel joined
00:39
uruwi joined
00:45
grassass joined
00:46
pierre-vigier joined
00:51
pierrot left
00:52
vendethiel left
00:57
yurivish_ joined,
yurivish left
00:59
ggoebel7 joined
01:02
yeahnoob joined
01:03
vendethiel joined
01:06
joydo joined
|
|||
dalek | osystem: ad829c5 | thundergnat++ | META.list: Add Prime::Factor to ecosystem See github.com/thundergnat/Prime-Factor |
01:06 | |
01:09
nzkindest left
01:10
sortiz joined
|
|||
sortiz | Hi #perl6 | 01:11 | |
yoleaux | 10 Jan 2016 16:06Z <nine> sortiz: I doubt that Array.flat's behavior is one of the most asked questions in #perl6. I usually read _all_ of #perl6 and cannot remember it coming up all that often. | ||
Herby_ | hello Sortiz | 01:13 | |
theorb | Probably a stupid question, but ... I'm writing a simple grammar, or at least attempting to. When I run say StepFile.parsefile("slider.stp"), I simply get back "Nil" ... well, if I say StepFile.parsefile("slider.stp"), I get Nil. If I assign the result to a variable, and then say the variable, I get (Any). | 01:14 | |
In neither case, though, do I get an indication of what went wrong. Is there an easy way to find and display such a thing? | |||
gtodd | hello sortiz | ||
theorb | (I'm pretty sure it hit a rule I haven't defined yet, which I would have thought would be a fatal error, not just a non-match.) | ||
gtodd | what was the name given to the design "process" behind perl6 .. not iterative or agile or waterfall ... but something like that | 01:15 | |
whirtlpool ? | |||
errm whirlpool ... | 01:16 | ||
sortiz | .tell nine Somewhat exaggerated indeed, but should accept that its a fundamental question. | ||
yoleaux | sortiz: I'll pass your message to nine. | ||
sortiz | m: my @c[2;2] .= new(:shape(2, 2), [1, "a"], [2, "b"]); .say for @c, @c.flat; | 01:21 | |
camelia | rakudo-moar 34d2b6: OUTPUT«[[1 a] [2 b]](1 a 2 b)» | ||
sortiz | Array.flat isn't a nop for a shaped Arrray. | 01:23 | |
theorb | Warnock's dilemma hits again -- doc.perl6.org/language/grammars and doc.perl6.org/type/Grammar do not seem to answer my question. ...oh! | 01:26 | |
gtodd finds confirmation re: "whirlpool design" in infoworld.com article .. bit.ly/1QkfpYu ... | 01:28 | ||
theorb | The syntax for invoking a subrule isn't foo, it's <foo>. | ||
skids | theorb: IIRC there is a Grammar::Debugger module of some sort. Also, the reason why you get (Any) when you assign to a variable is just a property of Nil, which will set a variable to its default or failing that, its type object, when assigned to it. | 01:35 | |
sortiz | my @c[2;2] .= new(:shape(2, 2), [1, "a"], [2, "b"]); @c.List.flat eqv @c.flat; #When Array is shaped! | 01:41 | |
leont | «require $name orelse die "Couldn't load $name"» gives me a «Use of uninitialized value of type Mu in string context» ($name is a Str:D), I'm confused | ||
sortiz | M: my @c[2;2] .= new(:shape(2, 2), [1, "a"], [2, "b"]); @c.List.flat eqv @c.flat; #When Array is shaped! | ||
camelia | rakudo-MOAR 273e89: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QXXCTd2DvlShaped arrays not yet implemented. Sorry. at /tmp/QXXCTd2Dvl:1------> 3my @c[2;2]7⏏5 .= new(:shape(2, 2), [1, "a"], [2, "b"] expecting any of: constraint» | ||
sortiz | m: my @c[2;2] .= new(:shape(2, 2), [1, "a"], [2, "b"]); @c.List.flat eqv @c.flat; #When Array is shaped! | ||
camelia | rakudo-moar 34d2b6: OUTPUT«WARNINGS for /tmp/pIYgwtOmqe:Useless use of "eqv" in expression ".flat eqv @c.flat" in sink context (line 1)» | ||
sortiz | m: my @c[2;2] .= new(:shape(2, 2), [1, "a"], [2, "b"]); say @c.List.flat eqv @c.flat; #When Array is shaped! | 01:42 | |
camelia | rakudo-moar 34d2b6: OUTPUT«True» | ||
leont | m: my $foo = "Foo"; require $foo orelse die "$foo failed" | 01:43 | |
camelia | rakudo-moar 34d2b6: OUTPUT«Use of uninitialized value $foo of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in code at /tmp/DEaLgV4erw line 1===SORRY!=== failed» | ||
leont | m: my $foo = "Foo"; require $foo orelse die "{$foo.perl} failed" | 01:44 | |
camelia | rakudo-moar 34d2b6: OUTPUT«===SORRY!===Any failed» | ||
leont | WTF! | ||
m: my $foo = "Foo"; require $foo; die "{$foo.perl} failed" | |||
camelia | rakudo-moar 34d2b6: OUTPUT«Could not find Foo in: /home/camelia/.perl6/2015.12-170-g34d2b6f /home/camelia/rakudo-m-inst-2/share/perl6/site /home/camelia/rakudo-m-inst-2/share/perl6/vendor /home/camelia/rakudo-m-inst-2/share/perl6 CompUnit::Repository::A…» | ||
01:46
vendethiel left
01:50
pierre-vigier left
01:52
pierre-vigier joined
|
|||
autarch | my Test::Stream prototype (I really emphasize that word) is coming along pretty well - github.com/autarch/perl6-Test-Stream - it can generate TAP properly (I think) and it has the start of something that exports the same type of interface as the built-in Test.pm6 | 01:53 | |
I'd be interested in any feedback folks have on the design, the idiomacity of the code, and thoughts on how to make the whole "show failures from the right context" thing that I have not really implemented properly at all | |||
sortiz | m: my $foo = "Foo"; try { require $foo; CATCH { die "$foo failed" }} | 01:54 | |
camelia | rakudo-moar 34d2b6: OUTPUT«Foo failed in block at /tmp/BA_YShwZ0w line 1 in block <unit> at /tmp/BA_YShwZ0w line 1» | ||
awwaiid | nice autarch! someone at dc.pm was just teaching us about Test::Stream | ||
autarch | well, the p5 one is now called Test2, but that seemed like a silly name for p6 | ||
the thing in core is more like Test0 | |||
p6 core, that is | 01:55 | ||
sortiz | leont: try CATCH works. I suspect require is special cased in the grammar | ||
autarch | leont: please see above | ||
Exodist: you too | |||
leont | Yeah, the current Test.pm is … really a prototype | 01:56 | |
01:56
pierre-vigier left
|
|||
leont | autarch: TAP doesn't specify quoting of a few things well, but please backslash quote at least # and \ in test descriptions | 01:57 | |
autarch | leont: I'm pretty sure that's already done | ||
autarch checks | |||
01:57
xpen joined
|
|||
autarch | ah, just '#', not '\' | 01:57 | |
leont | Test.pm doesn't ATM, see github.com/Leont/rakudo/commit/3c4...bc005bc736 | ||
autarch | I meant it's done in my TAP formatter code ;) | 01:58 | |
yeah, neither TAP 12 nor 13 specify _anything_ about escapes at testanything.org/ | |||
leont | Yeah, p5's Test::More has a similar issue, resulting is parsing issues in the harness when they're adjacent | 01:59 | |
autarch | I think I need to add escaping of test _names_ as well | ||
autarch goes and does that ... | |||
oh wait, no, already did it, yay me | |||
but I didn't test it, boo me | |||
02:00
pierre-vigier joined
|
|||
leont | Checking what my harness things of your TAP would also be interesting | 02:00 | |
autarch | yeah, definitely | ||
02:01
espadrine left
02:04
pierre-vigier left
|
|||
leont | Got rid of the TAP producer that it carried, having it that tied to TAP was suboptimal (even if it was convenient for self-testing) | 02:06 | |
02:17
Ben_Goldberg joined
02:19
BenGoldberg left
02:21
xenu joined
02:34
kaare_ joined
02:35
pierre-vigier joined,
atweiden joined
02:37
Zoffix joined
|
|||
Zoffix | . | 02:38 | |
yoleaux | 10 Jan 2016 20:14Z <stmuk__> Zoffix: I added at('link[type="text/html"]') (which I now see you improved) | ||
Zoffix | Ah, I see. | 02:39 | |
02:39
muraiki joined
|
|||
autarch | leont: escaping done and tested - and I learned that emacs uncomment-region does not play nicely with bugs in perl6-mode along the way | 02:39 | |
02:39
muraiki left
|
|||
leont | :-) | 02:43 | |
02:43
pierre-vigier left,
pierre-vigier joined
02:44
Zoffix left,
Zoffix joined
02:45
pierre-vigier left
02:46
ilbot3 left
02:48
kid51 left,
ilbot3 joined
02:54
zwu joined
02:55
muraiki joined
02:56
leont left
02:57
kaare_ left
02:58
molaf__ joined
02:59
xpen left
03:02
molaf_ left
03:03
sno left,
xpen joined,
pierre-vigier joined
03:07
pierrot joined
03:11
yqt left
03:16
pierre-vigier left,
pierre-vigier joined
03:18
Actualeyes joined
03:20
pierre-vigier left
03:22
joydo left
03:26
pierre-vigier joined
03:29
uruwi left,
pierre-vigier left
03:32
leedo left
03:34
leedo joined
|
|||
dalek | osystem: c285433 | (Wenzel P. P. Peppmeyer)++ | META.list: add XHTML::Writer |
03:35 | |
gfldex | $modules++ | ||
03:43
jevin left
03:45
muraiki left
03:48
zwu_ joined,
pierre-vigier joined
03:50
Ben_Goldberg left
03:51
pierre-vigier left,
pierre-vigier joined
03:52
pierre-vigier left
03:58
Ben_Goldberg joined,
noganex_ joined,
pierre-vigier joined
04:01
noganex left
|
|||
sortiz | gfldex: I found that Array.flat was specially made for flatten shaped arrays, so its orthogonal to Iterable.flat, that fact should be documented in type/Array to avoid the recurring question. | 04:04 | |
04:08
vendethiel joined
|
|||
zwu_ | how can I call a sub defined in a package our scope, suppose there is A::foo sub, I have imported it, and I can it in lexical by A::foo();, but I call failed through my $n = 'A'; ::($A)::foo(); | 04:09 | |
04:09
pierre-vigier left,
user74747 left
|
|||
zwu_ | I mean ::($n)::foo(); | 04:09 | |
04:12
pjscott joined
04:13
pierre-vigier joined
04:16
Herby_ left
04:20
pierre-vigier left
04:21
pierre-vigier joined,
xpen left
04:22
pierre-vigier left
04:23
xpen joined
|
|||
pjscott | Synopsis 1: "A Perl 6 interpreter, if invoked as "perl", will assume that it is being fed Perl 5 code unless the code starts with a "class" or "module" keyword, or you specifically tell it you're running Perl 6 code in some other way" | 04:26 | |
But this code does not have 'use v6' and still runs perl6 not perl5: | |||
#!/usr/local/bin/perl6 | |||
say $*PERL; | |||
in a file with no extension. | 04:27 | ||
gfldex | pjscott: see en.wikipedia.org/wiki/Shebang_%28Unix%29 | 04:28 | |
pjscott | Yes, but synopsis 1 implies that you need a 'use v6' even if you have the #!/usr/local/bin/perl6 | 04:29 | |
gfldex | pjscott: what your operation systems kernel does when it find an executable that isn | ||
... isn't ELF, is beyond the scope of synopsis 1 | 04:30 | ||
geekosaur | no, it says if invoked as perl | 04:31 | |
it is invoked as perl6 | |||
unless there is another part you didn't quote | |||
04:32
vendethiel left
|
|||
pjscott | S1 says: or you specifically tell it you're running Perl 6 code in some other way, such as by: | 04:33 | |
#!/usr/bin/perl6 | |||
use v6.0; | |||
I interpret that as meaning that if you have a shebang referencing perl6 that you still need a use v6. | |||
04:33
skids left
|
|||
pjscott | Unless S1 is trying to say those lines are alternatives | 04:33 | |
geekosaur | "or" means something else? | ||
pjscott | But it doesn't read that way to me. | ||
I think perl6 is doing the right thing and S1 is at best confusing, but I am not sure what the actual intent is. | 04:35 | ||
04:36
khw left
|
|||
sortiz | pjscott: Imagine a future unified "perl" interpreter that implement both of perl5 and perl6. | 04:39 | |
04:39
ghost_ left
|
|||
geekosaur | actually that is the context in which it was written; the original plan was that perl6 would be installed as perl and change itself into perl5 without some early evidence that it was looking at perl6 code. That got dropped | 04:40 | |
pjscott | sortiz: Got it. | ||
geekosaur | (in part because perl5 is scary polymorphic at times...) | ||
pjscott | I wonder whether this is still a good idea. | ||
Exodist | autarch, I do recomment looking at Test2::API::context(), and the Test2::API::Context.pm which is the object it creates. | 04:42 | |
*recommend | |||
specially now that I have de-magiced it. | |||
autarch | Exodist: yeah, I started looking at that - it seemed a bit complex, and I wasn't sure whether the complexity was from a) Perl 5 limitations; b) backwards compat issues; c) inherent complexity in the problem being solved; d) some combo of a-c | 04:43 | |
Exodist | at is a bit of all of the above, but fact is the problem space is hard, let me see if I can summarize the design. | 04:44 | |
autarch | pjscott: I don't think the "assume it is being fed Perl 5 code" thing actually works based on a quick test | 04:45 | |
Exodist | In general a tool (called in a test file) asks for a context. the context finds the place hwere stuff should be reported using caller. It then returns the object. Any nested tool (tool called inside the first) that then asks for a context, MUST get the one the outer tool already got. | ||
autarch | hmm, or maybe it does? i symlinked ./perl to perl6, but perl6 is really rakudobrew in my case | ||
Exodist | that way you don't need to search for the root caller, it is locked into place from the start | 04:46 | |
pjscott | autarch: agreed. I didn't know whether it was S1 that was out of date or Rakudo that hadn't caught up. | ||
autarch | Exodist: and the idea is that you can set up and destroy (called release?) a new context along the way? | ||
Exodist | and since everything needs the context it made sense to also make it serve double-duty as the primary event generator, all events need info from it anyway | ||
release may not be needed in perl | |||
*perl6 | |||
autarch | pjscott: actually, rakudobrew is a p5 script, so I have no idea what's supposed to happen | ||
Exodist | it is there to get around the problem that you cannot throw exceptions or do similar things in a DESTROY in perl5 | 04:47 | |
autarch | but given that AFAIK rakudo can't parse p5 I can't see how S1 makes much sense | ||
Exodist | I do not know for sure in perl6, but you can probably just use a destructor | ||
pjscott | autarch: I installed plain rakudo instead. Although now I do not have panda. | ||
autarch | Exodist: yeah, that might make it easier | ||
Exodist | also, when the context is created it gathers info other than caller, such as what the current hub is, etc. | 04:48 | |
pjscott | And a 'use v5' results in "Could not find Perl5 in:..." | ||
Exodist | a context also knows what pid/tid it has, which may be even mor eimportant in perl6 | ||
the problem of having all the right info gathered, and then shared to nested tools is suprisingly complex, specially once threads and IPC come into play | 04:49 | ||
autarch | Exodist: yeah, I've been thinking about the parallel case a lot and I'm not sure exactly how it should work in p6 - I'm not even sure the code I'm writing should care about it | ||
Exodist | but once you get the logic right, and can rely on it, so many other problems just go away, or become trivial to solve | ||
I don't know much about perl6, but I am fairly sure you would regret not considering multi-process and threading from the start | |||
it is very hard to bolt on after the fact | 04:50 | ||
hobbs | pjscott: "if invoked as 'perl'" isn't true in your context so the rest doesn't matter :) | ||
Exodist | Including those considerations from day 1 was really crucial in my work | ||
specially since Test::Builde rhad really crappy thread support, and no multi-process support | |||
04:51
xpen left,
mdih joined
|
|||
autarch | pjscott: ok, did a better test - invoking my _actual_ perl6 moar shell wrapper (which captures $0) and running some p6 code via -e works just fine | 04:51 | |
04:52
zwu_ left
|
|||
autarch | and running some p5 code in a file with that "./perl" symlink just blows up because it can't load warnings.pm | 04:52 | |
Exodist: actually, the way threading works in p6 should mean that _I_ don't have to think about it much ;) | 04:54 | ||
I am currently capturing pid/tid for each event's source - so if you had a listener receiving events across multiple pids or tids it could de-interleave them | |||
hobbs | yeah, clearly it's not implemented. But I read it as saying that if it were, any of "use v6", "perl6" in first word of shebang, "perl6" in argv[0], or .p6 extension would be sufficient :) | ||
Exodist | ah, well, that would be nice, what about multi-process? | ||
autarch | or you could make a hub that delivered each pid/tid to its own listener | ||
Exodist: the question there is how easy it will be to serialize test events, I think | 04:55 | ||
Exodist | autarch, one huge benefit of multi-process in perl5 is that you can fork to have isolated states. That way some parts of a test do not contaminate others. | ||
autarch | Exodist: yep, I had exactly that though too - even if p6 makes threading easy people may want to parallel tests with forks anyway | ||
Exodist | autarch, thats mostly what the perl5 version does | ||
it does it with an IPC driver though since there is no obvious/easy way | |||
and the main driver writes file sinto a shared temp dir, where the filename has info about which process/thread should read the file. | 04:56 | ||
which works, but is no exactly speedy. | |||
autarch | my current thinking in p6-land is that the child process would attach a listener to the hub that serializes events down a pipe and the parent process would listen on that pipe and deserialize events back to the central hub | ||
Exodist | though suprisingly my IPC utperforms the shared variable system Test::Builder used. | ||
autarch | I guess a file would work fine too | ||
04:57
pjscott left
|
|||
Exodist | autarch, I tried something similar with Test2, the problem was that if you fork a couple times, or if a child forks, the shared pipe gets a lot of cross-talk and things get scrambled. | 04:57 | |
autarch | I think in theory it's possible to make things really easy to serialize by calling "$thing.perl" on them and then EVALing them to deserialize | ||
Exodist | if 2 children try to write to the pipe at the same time, the input could get mixed. | ||
autarch | ah, yeah, that would be bad | ||
04:57
pjscott joined
|
|||
Exodist | thats why I went with files. | 04:58 | |
autarch | yeah, maybe I'll skip the whole pipe thing then | ||
Exodist | I also the other day added a single shared memory system to notify that events are pending to avoid reading the entire dir every time the system thinks it should poll | ||
autarch | the other thing I'm trying to figure out is what goes in the Test::Stream distro and what goes in a harness | ||
Exodist | in fact, I would LOVE it if I could get some eyes ont he commit for the shm stuff. | 04:59 | |
at the very least I want someone to read my commit message and tell me if I am making a mistake in my logic, even if the code is not read | |||
autarch | also, currently it seems like p5 harness code is TAP-specific, but maybe you want a harness that is about events and not TAP | ||
Exodist | autarch, I have too much on ym plate right now, but I am considering eventually writing a new harness | ||
autarch, github.com/Test-More/Test2/commit/...5b0e87c3e7 I would be very appreciative if you would glance at this and provide feedback, even if just the commit message | 05:00 | ||
autarch | I'd really like to divert p6 from the "TAP is all there is" path that p5 went down - TAP is really not that great | ||
Exodist | if you do take my file based apporach then it will probably be just as important to you | ||
autarch | especially since it hasn't evolved much since the original spec and nothing seems to even implement TAP13 | ||
Exodist | autarch, agreed, I have TAP as a starting point, but it is trivial to make a new formatter and arbitrary even types | ||
*event types | |||
autarch | the API I have now won't work so well with arbitrary events | 05:01 | |
actually, I could make it really easy to have a catchall method that received any unknown events | |||
but there's also a bunch of code around tracking state of the suite as a whole (like you can't end a suite before it starts, etc) that wouldn't know what to do with new events | |||
Exodist | you have to start somewhere, and to get anything going you have to code to assumptions, but fyi, I think that assumption will actually have to go in the future ;-) | 05:03 | |
I laugh remembering how I thought all this would look when I took it on, what 2 years ago? wow. | 05:04 | ||
05:04
pjscott left
|
|||
autarch | yeah, as I said earlier, this is very much a prototype | 05:04 | |
Exodist | :-) | 05:06 | |
05:07
lsm-desktop left
|
|||
hobbs | TAP is full of wacky, but there isn't enough other stuff out there that's machine-readable and not-XML. | 05:08 | |
Exodist | the important thing is to NOT couple the output format to the system itself | ||
that is one of Test::Builders biggest limitations | |||
in Test2 there is a TAP formatter that turns events into tap, it is a small file, and nothing else in the system cares about it. IT is also trivial to write alternative formatters | 05:09 | ||
autarch | hobbs: yeah, I'm all for human readable | ||
TAP would be decent if there was a TAP14 that spec'd out subtests | |||
Exodist | autarch, if it didn't also account for concurrent subtests I would find the spec useless | 05:10 | |
autarch | Exodist: yeah, that's exactly how I did this, there are event producers, which send events to a hub, which passes them on to 1+ listeners, and presumably one of the listeners is a formatter | ||
hobbs | yeah, the whole standardization thing just ran out of leadership | ||
autarch | Exodist: what's a concurrent subtest? | ||
Exodist | because the way Test::Builder does it, concurrent subtests are a no-go, everything gets mixed | ||
autarch, when you run 2 subtests at the same time, and both are generating events at the same time | |||
which requires threeading or forking | |||
autarch | see, that's not up to _TAP_ to solve | 05:11 | |
your formatter should buffer the events it needs to produce sane TAP | |||
Exodist | mine does :-) | ||
you can do buffere dsubtests, or streamed ones (or one of each...) | |||
(subtest_buffered name => sub { ... }; or subtest_streamed name => sub { ... } | 05:12 | ||
autarch | I honestly don't think TAP could handle that sort of concurrency and still retain human-readability cause the only way I can think of to do that would be to to tag every line with a unique id or something - which works fine for something intended to be parsed by a machine | 05:13 | |
but the resulting jumble would be incomprehensible if seen raw from the CLI | |||
05:14
Ben_Goldberg left
|
|||
autarch | although I note that the TeamCity format, which is all about machine-readability, does not bother with this at all, which is kind of annoying | 05:14 | |
if everything is going to look like ##[teamcity key="value" foo="bar"] then why not throw in a UUID there too? | 05:15 | ||
05:15
molaf__ left,
zwu left
|
|||
Exodist | I think the solution for tap is simply to specify that subtest output should be buffered in a concurrent environment. | 05:15 | |
autarch | Exodist: btw, I read through the commit you linked and I don't really follow it, but I think I'd need to understand the whole IPC mechanism better | ||
Exodist | not require it in a non-concurrent test, no point. | ||
autarch | Exodist: yeah, that's what I said in the first place ;) | ||
Exodist | autarch, ok, thanks for trying :-) | ||
autarch | the commit seems to do what you describe in the commit message, but I'm not sure _why_ this is helpful - is it just so that the parent process can read things more quickly? | 05:16 | |
but what's wrong with just tailing a file (or using inotify/kqueue/etc)? | |||
Exodist | ah, let me explain the problem | 05:17 | |
the IPC driver works by writing events as files in a shared temp dir. This is called a 'cull' where it opens the dir, reads all file listing, then opens and reads any events intended for it. | 05:18 | ||
every process.thread has to cull to get events sent to it (it is not just the parent that has to cull) | |||
So to make event show up in realtime the cull has to happen regularly | 05:19 | ||
this is called polling | |||
autarch | oh, so is each event a separate file? | ||
Exodist | polling happens every time a tool obtains a context, cause it is a good place to hook it | ||
yes | |||
autarch | now this makes a bit more sense | ||
Exodist | but, every time something wants to make an event it needs a context, so this happens a lot | ||
so opening, reading, and then closing the dir handle every time is a huge expense | 05:20 | ||
and most of the time there is nothing to read | |||
autarch | ok, so the shm bit is a flag to indicate whether to bother culling | ||
Exodist | however, this system alters the shm value whenever an event is written. The shm has no useful information, it just means 'a change has happened' whcih tells all threads/procs to do a cull | ||
if the shm has not changed they skip the cull | |||
this took my 100k-ok test from 6 seconds to 2 seconds | |||
autarch | I do note that with a single file you could "just" tail the file - this is super-efficient with kqueue and inotify, and probably much less efficient if you have to do it in pure Perl | 05:21 | |
Exodist | which is a huge performance gain | ||
autarch | I mean, I'm assuming that every process gets its own file to write to | ||
Exodist | autarch, but remember, multiple threads/procs are generating events, they would have to lock the file. | ||
autarch | hmm | 05:22 | |
Exodist | ok, at which point the other procs need to poll for new thread/proc specific files to read | ||
any proc/thread can send events to any proc/thread | |||
though typically it is more of a tree where each one sends to its parent whcih propogrates them down | |||
autarch | why would two sibling procs be communicating? | ||
yeah, I was assuming a tree | |||
Exodist | autarch, they won't normally | ||
with 1 exception: | |||
bail-out | |||
a bail-out event is a "global" event | 05:23 | ||
it gets written such that all procs/threwads see it and know to stop everything | |||
autarch | it seems like bail-out should propogate up to the top and then back out to the rest of the tree | ||
Exodist | thats one way to do it | ||
but the style I have allows for a broadcast. | |||
send a global event that all threads are sure to get | |||
autarch | I'll have to really dig into the guts of Test2 at some point I'm sure | 05:24 | |
Exodist | it is also used to solve another problem perl6 probably does not have | ||
autarch | which is? | ||
Exodist | and that is waiting on child threads/procs. In perl5 this is actually hard, if the main thread exists with child threads running the exit code can still be 0, and the TAP might not sya there has been a problem | ||
*exists/exits | |||
NO PLAN + the root thread/proc exiting 0 before children are finished... not good | 05:25 | ||
but with Test2 I have it wait on children and poison the TAP output if it detects real problems | |||
Test::SharedFork and Test::Builde rusing threads both have this. I was able to write test scripts where child procs/threads had failures, but the parent exited early enough that the harness never saw them and let it pass. | 05:27 | ||
05:27
uruwi joined
|
|||
autarch | hmm, that might be possible in p6 too ... | 05:27 | |
m: for 1..10 { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) }; exit 0 | |||
camelia | ( no output ) | ||
autarch | m: for 1..10 { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) }; | 05:28 | |
camelia | rakudo-moar 34d2b6: OUTPUT«32567841910» | ||
uruwi | Sleep shuffle? | ||
autarch | so you can definitely exit before threads fire | ||
Exodist | and if you use done_tersting, it can do a final plan with he count so-far and then the failures come too late | ||
autarch | s/fire/finish/ | ||
Exodist | or the children might not ever give their utput at all | ||
in perl5 if you exit before a thread finishes it just kills it | |||
it wanrs about it, but not in a way that TAP will care about | |||
*that a TAP harness will care | |||
05:29
Upasaka left
|
|||
autarch | yeah, I have no idea what happens in the p6 internals in the first example I have up there | 05:29 | |
Exodist | github.com/Test-More/Test2/blob/ma...ce.pm#L308 may interest you, it is my solutin to that problem, this gets called in an END { ... } block | ||
yikes. (to your example) | 05:30 | ||
autarch | I suspect I could do the same thing in an END block ... let's see | ||
05:31
Cabanossi left
|
|||
autarch | m: my @threads = (^10).map: { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) }; exit 0; END { .finish for @threads } | 05:31 | |
camelia | rakudo-moar 34d2b6: OUTPUT«0213479685» | ||
autarch | good job camelia | 05:32 | |
05:32
oftl left,
Upasaka joined,
sjohnson left
05:33
oftl joined
|
|||
autarch | m: my @threads = class C { has @.threads; method foo { @!threads = (^10).map: { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) }; submethod DESTROY{ .finish for @!threads } }; exit 0; | 05:33 | |
camelia | rakudo-moar 34d2b6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4hzPsryfEpMissing blockat /tmp/4hzPsryfEp:1------> 3TROY{ .finish for @!threads } }; exit 0;7⏏5<EOL>» | ||
05:34
Cabanossi joined,
sjohnson joined
05:35
sjohnson left,
sjohnson` joined
|
|||
autarch | m: class C { | 05:35 | |
has @.threads; | |||
method foo { | |||
@!threads = (^10).map: { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) } | |||
say @!threads; | |||
camelia | rakudo-moar 34d2b6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zhDpiz5wNmMissing blockat /tmp/zhDpiz5wNm:1------> 3class C {7⏏5<EOL>» | ||
autarch | }; | ||
submethod DESTROY { say 'bye'; .finish for @!threads } | |||
}; | |||
C.new.foo; | |||
argh | |||
m: class C { has @.threads; method foo { @!threads = (^10).map: { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) }; say @!threads; }; submethod DESTROY { say 'bye'; .finish for @!threads }; }; C.new.foo; | 05:36 | ||
camelia | rakudo-moar 34d2b6: OUTPUT«[Thread #3 (0) Thread #4 (1) Thread #5 (2) Thread #6 (3) Thread #7 (4) Thread #8 (5) Thread #9 (6) Thread #10 (7) Thread #11 (8) Thread #12 (9)]0324156789» | ||
autarch | m: class C { has @.threads; method foo { @!threads = (^10).map: { Thread.start( name => $_, sub { sleep 1; say $*THREAD.name } ) }; say @!threads; }; submethod DESTROY { say 'bye'; .finish for @!threads }; }; C.new.foo; exit 0 | ||
camelia | rakudo-moar 34d2b6: OUTPUT«[Thread #3 (0) Thread #4 (1) Thread #5 (2) Thread #6 (3) Thread #7 (4) Thread #8 (5) Thread #9 (6) Thread #10 (7) Thread #11 (8) Thread #12 (9)]» | ||
autarch | doh, doesn't work, I wonder if that's a bug | ||
hmm, DESTROY doesn't seem to get called at program exit time at all | 05:37 | ||
or it just doesn't get called ever? | 05:38 | ||
m: class D { submethod DESTROY { say self } }; D.new | |||
camelia | ( no output ) | ||
autarch | m: class D { submethod DESTROY { say self } }; sub foo { my $d = D.new }; foo() for 1..3; | 05:39 | |
camelia | ( no output ) | ||
autarch | ok, bed time | ||
05:43
pierre-vigier joined
05:51
xpen joined
05:57
xpen left
|
|||
pierre-vigier | Hi | 05:58 | |
Is there any way in Perl6 to "imitate" the behaviour of is => 'lazy' of perl5 Moo ? | |||
scratiching my head on that, and did not find anything yet | 05:59 | ||
06:02
yeahnoob left
06:07
yeahnoob joined
06:08
mdih left
06:10
Fleurety left
06:16
sno joined
06:20
xpen joined
06:24
BB joined
|
|||
BB | hi everyone, I'm new to learn Perl6. | 06:25 | |
just browse the manual and found many interesting features. | 06:26 | ||
but some of them seems different than Perl5. for example the context. | |||
anyone know if the contest concept is still the key concept in Perl6? | 06:27 | ||
ex: $a[1]; or @a[1]; | |||
06:28
xinming_ is now known as xinming
|
|||
BB | p6: say 3; | 06:30 | |
camelia | rakudo-moar 34d2b6: OUTPUT«3» | ||
06:35
pjscott joined
|
|||
dalek | ast: f884279 | (Dan Kogai)++ | S32-num/power.t: fix 455353534536453534563454353<[34]> |
06:36 | |
ast: 5624d6c | (Aleks-Daniel Jakimenko-Aleksejev)++ | S32-num/power.t: Merge pull request #95 from dankogai/master fix 455353534536453534563454353<[34]> |
|||
06:36
telex left
06:37
AlexDaniel joined
|
|||
AlexDaniel | I hope that people don't mind that I review&merge some PRs :) | 06:37 | |
06:38
telex joined
06:39
average left
06:40
BB left
06:41
pjscott left
06:45
andreoss joined
06:46
geraud left
06:51
Actualeyes left
06:54
Todd_ joined
|
|||
Todd_ | This is my first time on this kind of chat. Do I just start blabbling? | 06:55 | |
yoleaux | 9 Jan 2016 12:29Z <nine> Todd_: panda will now fall back to curl and then to wget if downloading meta data failed. This should fix the proxy issues. | ||
06:55
sjoshi joined
06:57
AlexDaniel left
|
|||
Todd_ | Anyone heard any rumors as to when perl 6 will be available for Red hat Eterprise Linux 7? | 06:57 | |
andreoss | perl6 has been available for a long time for fedora for sure | 06:58 | |
Todd_ | I posted | 06:59 | |
bugzilla.redhat.com/show_bug.cgi?id=1297077 | |||
bugzilla.redhat.com/show_bug.cgi?id=1296363 | |||
but no response back | 07:00 | ||
07:03
BB joined,
BB left
|
|||
andreoss | are you sure there's no perl6 in EPEL? | 07:04 | |
07:04
_nadim joined
|
|||
andreoss | i'm sure there was rakudo-star in that repo | 07:06 | |
07:07
_nadim left,
_nadim joined
07:08
pierre-vigier left
|
|||
andreoss | dl.fedoraproject.org/pub/epel/6/i3...-star.html | 07:10 | |
it's still there. 2011.04 with parrot | |||
xenu | imho package like perl6 should be included in base rhel8 repo, just like other languages | 07:12 | |
andreoss | i wonder why did they let it in the first place | ||
07:12
_nadim left
|
|||
Todd_ | when is rhel 8 due out? 2020? | 07:16 | |
xenu | when it's ready ;) | ||
07:16
pierre-vigier joined
|
|||
xenu | also, the real question is when centos 8 will be released | 07:17 | |
Todd_ | I am on Scientific Linux 7.1, which is slightly behind CentOS | ||
xenu | i remember how long it took to release centos 6 | ||
Todd_ | CentOS has made a bunch of changes over that embarrasment. now they are really quick | 07:18 | |
dalek | osystem: 3c66df7 | (Helmut Wollmersdorfer)++ | META.list: Add LCS::All to ecosystem See github.com/wollmers/P6-LCS-All |
07:19 | |
geekosaur was under the impression that epel7 was pretty useless and copr was the new way... | 07:20 | ||
("it only took us over a decade but we finally invented PPAs") | 07:21 | ||
dalek | osystem: c653f5c | (Helmut Wollmersdorfer)++ | META.list: Add LCS::BV to ecosystem See github.com/wollmers/P6-LCS-BV |
||
Todd_ | epel does not seem very responsive as of late | 07:25 | |
07:25
firstdayonthejob joined
|
|||
Todd_ | I can try coding in 6 on a Fedora Virtual Mahcine, but that really does me no good in SL7 | 07:26 | |
xenu | you always can compile your own | ||
sortiz | Right now Fedora 23 ships rakudo-star 2015.11 | 07:29 | |
Todd_ | I saw that. I wonder what effect that would have on the perl 5 that is already there and in the RPM database. WOuld they be two separatea programs? | ||
El_Che | yes | 07:30 | |
Todd_ | not see or interact with each other? | ||
El_Che | they have nothing in common | 07:31 | |
with rpm: rakudo builds from source | |||
with perl5: rakudo provides a different language and binary (perl6) | |||
Todd_ | so I would have both a functioning 5 and a functioning 6? | 07:32 | |
El_Che | yes | ||
Todd_ | very cool! | ||
El_Che | you can even go the "brew" road with perl5 to have more up to date perl with the same logic | ||
perlbrew -> perl5 from source on a automated way | |||
rakudobrew -> perl6 from source on a automated way | 07:33 | ||
Todd_ | Have you built from source? How long did it take? (Wine-staging-patched takes about a half hour) | ||
07:33
CIAvash joined
|
|||
El_Che | building perl6 is very fast | 07:33 | |
sortiz | A few minutes. | ||
Todd_ | perl 5 has all these libraries from cpan. does 6 have something similar? | 07:34 | |
would I have to rewrite all my old regex's? | |||
I am looking forward to the new sub declarations! | 07:36 | ||
sortiz | modules.perl6.org | ||
About regexes, mainly yes. | |||
07:36
pierre-vigier left
|
|||
xenu | (note that proper cpan is work in progress) | 07:37 | |
El_Che | Todd_: perl6 regex have a perl5 compatible mode | 07:40 | |
07:40
CQ joined
|
|||
Todd_ | Mailily yes I have to rewrite or maily yes they will mostly migrate over? Sorry for the densness | 07:41 | |
El_Che | Todd_: however, regex are vastly improved imho | ||
sortiz | You have to rewrite. | 07:42 | |
A | |||
El_Che | Todd_: doc.perl6.org/language/5to6-nutshel...rl5_adverb | ||
there is a perl5 adverb that let you use perl5 regexes | 07:43 | ||
07:44
FROGGS joined
|
|||
FROGGS | o/ | 07:45 | |
yoleaux | 9 Jan 2016 13:45Z <orbus> FROGGS: I'll work on getting you test output when I have some free time - hopefully later today | ||
9 Jan 2016 23:33Z <orbus> FROGGS: failing tests on arm you asked about paste.scsys.co.uk/504181 | |||
10 Jan 2016 20:10Z <mst> FROGGS: github.com/andk/pause/issues/198 may be relevant to your interests | |||
Todd_ | so I can use "m:P5/[aeiou]/" ubntill I figure it all out. Thank you! | 07:46 | |
FROGGS | mst: thanks, will follow the thread | 07:47 | |
Todd_ | bye bye | ||
quit | 07:48 | ||
07:48
Todd_ left,
domidumont joined
|
|||
FROGGS | note that not all of P5 regexes are imlemented or are working correctly | 07:49 | |
07:53
domidumont left,
sno left
07:54
domidumont joined
|
|||
yurivish_ | The Signatures documentation talks about how Nil is always allowed to be returned, even when a function is constrained to return e.g. an Int. Is the reasoning behind this documented somewhere? I'm currently writing a lot of Swift and enjoying the way it deals with nullable values (nil is not allowed without explicitly saying so). | 07:58 | |
here's the section of the docs about this: doc.perl6.org/type/Signature#Constr...turn_Types | |||
07:59
Actualeyes joined
08:00
g4 joined,
g4 left,
g4 joined
08:01
atweiden left
08:02
zakharyas joined
|
|||
[Tux] | csv-ip5xs 50000 18.365 12.615 | 08:02 | |
test 50000 23.649 23.001 | |||
test-t 50000 12.985 12.093 | |||
csv-parser 50000 51.273 0.555 | |||
08:06
eyck left
08:07
eyck joined
|
|||
gfldex | yurivish_: think of Nil as a Failure without overhead, see doc.perl6.org/type/Failure | 08:10 | |
m: say Failure.^mro | 08:11 | ||
camelia | rakudo-moar 34d2b6: OUTPUT«((Failure) Nil (Cool) (Any) (Mu))» | ||
nine | .tell autarch Have you thought about using network connections to communicate the results of test subprocesses to the master? I guess that could be easier than trying to get concurrent writing to files performant cross platform. And it would also make it trivial to run high level clusterwide tests :) | 08:12 | |
yoleaux | 01:16Z <sortiz> nine: Somewhat exaggerated indeed, but should accept that its a fundamental question. | ||
nine: I'll pass your message to autarch. | |||
yurivish_ | gfldex: Sorry, I don't know enough Perl 6 to understand what you mean :) | 08:15 | |
08:16
darutoko joined
|
|||
yurivish_ | m: my Int $x = Nil; dd $x; my Int $y = Int; dd $y; | 08:16 | |
camelia | rakudo-moar 34d2b6: OUTPUT«Int $x = IntInt $y = Int» | ||
yurivish_ | This seems related and also something I'm not sure I understand | ||
gfldex | threading and exceptions don't play well together. So instead of throwing an exception you can return a value, that will throw the exception when the value is assigned to another container | ||
08:16
eyck left
|
|||
yurivish_ | Right, and you can use Nil to signal a failure too. I guess my question is – why is this the default behavior when you specify a function returns an Int? | 08:17 | |
08:17
eyck joined
|
|||
yurivish_ | An alternative would be to explicitly specify when a return value can potentially be Nil since (unlike Failures?) Nil would just silently be propagated along in your computation. I think. | 08:18 | |
gfldex | also, it's quite easy to have bindings for some C-lib and many functions can return a null pointer. You have to represent that in some way on the Perl 6 side | ||
masak | morning, #perl6 | ||
I haven't kept up -- is there a R* 2015.12 yet? | |||
gfldex | m: my Int|Nil $a; # <-- NYI | 08:19 | |
camelia | rakudo-moar 34d2b6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/NFvVkvPrKhMalformed myat /tmp/NFvVkvPrKh:1------> 3my Int7⏏5|Nil $a; # <-- NYI» | ||
gfldex | ^^^ yurivish_ that's what you want but is NYI | ||
yurivish_ | Oh, interesting. So "nullable" values are default but there's a way to do something like :D that disallows Nil. | 08:20 | |
gfldex | masak: no | ||
yurivish_ | Could you also do my Int|6 = 5? :P | ||
though I guess that starts to be something you'd use where clauses for | 08:21 | ||
gfldex | m: class C {}; sub bad_object_factory(--> C){ Nil }; for bad_object_factory() -> C $c { .say } | 08:23 | |
camelia | rakudo-moar 34d2b6: OUTPUT«Type check failed in binding $c; expected C but got Nil in block <unit> at /tmp/UIR6smPni2 line 1» | ||
gfldex | yurivish_: Nil is useful if some constructor can return a new object because of bad DB connection or somesuch. The alternative would have been to throw an exception from a constructor, what would have required constructors to be special. | 08:25 | |
s/can/can't/ | |||
08:26
firstdayonthejob left,
sammers left
|
|||
masak | gfldex: "would have required constructors to be special" -- in what way would it require that? | 08:27 | |
08:28
xpen left
|
|||
gfldex | constructors would need to know that they are constructors as they would be required to throw the exception, that indicates that object creation has failed. | 08:29 | |
yurivish_: also see: doc.perl6.org/type/Nil | |||
yurivish_ | thanks. will read tomorrow! | 08:31 | |
08:32
marmay joined,
rodarmor joined
|
|||
rodarmor | Ayo! Can perl6 be extended with perl6 grammars without modifying the compiler? | 08:33 | |
08:34
Ch0c0late left
|
|||
dalek | c: dbd4765 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod: add links to class Nil and class Failure (yurivish_++) |
08:36 | |
c: fea4938 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod: Merge pull request #339 from gfldex/master add links to class Nil and class Failure (yurivish_++) |
|||
FROGGS | rodarmor: yes | 08:38 | |
gfldex | rodarmor: that will be possible with Slangs. Technically you could modify the compiler already because it's implemented in Perl 6 and as such very dynamic. | ||
rodarmor | FROGGS: Sweet! Is there an example or docs for slangs up? Is it ready now or not yet? | ||
FROGGS | rodarmor: that's one example: github.com/FROGGS/p6-Slang-Piersing/ | ||
rodarmor: the usage of nqp:: functions is a cheat and will go away at some point | 08:39 | ||
08:39
CQ left
|
|||
rodarmor | FROGGS: This is so cool ^_^ | 08:39 | |
FROGGS | rodarmor: though if you just want to create ops (prefix, postfix, infix, circumfix, postcircumfix), you dont need a slang | ||
rodarmor | I see that it gets access to exiting perl6 tokens. | 08:40 | |
*existing | |||
FROGGS | yes | ||
tokens and action methods | |||
rodarmor | This is, like, an infinite amount of rope with which to hang myself. I'm looking forward to it. | ||
FROGGS | *g* | 08:41 | |
an extendable rope, so to say :o) | |||
gfldex | It's an infinite way to invent new kinds of rope. | ||
rodarmor | Maybe, just before it breaks my neck, I can make more rope, and get to the ground safely. | 08:42 | |
DrForr | rodarmor: I just put up github.com/drforr/perl6-slang-roman that adds Roman numerals last night. | ||
pdcawley | rodarmor: And break your neck on landing? | ||
rodarmor | pdcawley: I'm sure that I can come up with a huge pile of, you know, like, soft, pillowy rope, that will cushion my landing. | 08:43 | |
pdcawley | if you're going fast enough, it doesn't matter what breaks your fall. | ||
rodarmor | DrForr: sweet | ||
gfldex | DrForr: does it support unicode roman numerals? | ||
DrForr | "It's not a question of where it is, it's a question of how fast you hit it." (mangling that quotation, I know.) | ||
gfldex: Glad you asked, why yes it does. | 08:44 | ||
08:44
abraxxa joined
|
|||
gfldex | DrForr: is it in the ecosystem already? | 08:44 | |
DrForr | Yep, even in the modules list, put it there myself. | ||
gfldex | cool | ||
DrForr | Search for 'roman' in the module list. | 08:45 | |
gfldex | got it | ||
FROGGS | m: say unival("\c[0x216f]") | 08:48 | |
camelia | rakudo-moar 34d2b6: OUTPUT«1000» | ||
FROGGS | wow, that indentation style is as weird as [Tux]++'s # :o) | 08:50 | |
gfldex | DrForr: would you mind to add the following to the README.md? [![Build Status](travis-ci.org/drforr/perl6-slang.r...ang-roman) | ||
FROGGS | and DrForr++ # that's awesome | 08:51 | |
gfldex | how do I tell the ecosystem where to find travis results for my modules? | 08:52 | |
moritz | it knows automagically, I think | 08:54 | |
gfldex | doesnt work for XHTML::Writer | ||
github.com/gfldex/perl6-xhtml-writer | |||
the little image in the README.md works, so travis is setup correctly | 08:55 | ||
moritz | gfldex: btw the heading in the README.md is wrong, iirc | ||
gfldex | it is, thanks | 08:56 | |
08:56
pierre-vigier joined
|
|||
moritz | gfldex: when did you add the travis? | 08:56 | |
gfldex | add travis | 08:57 | |
gfldex authored 3 days ago | |||
moritz | hrmpf | 08:58 | |
gfldex | and i think i pushed it to github right after that | ||
maybe it needs a travis run after the module was added | |||
moritz | gfldex: another point regarding the readme: div( id="uniq", | ||
should that be => instead of = ? | |||
gfldex | indeed, sadly there is no test driven development for markdown yet | ||
moritz | sorry, I can't seem to help with your actual problem :-) | 08:59 | |
same with class= in the next line | |||
08:59
vendethiel joined
|
|||
gfldex | travis is running right now and the modules site is updates every 10 minutes. So we will know soon enought. | 08:59 | |
09:00
pierre-vigier left,
Peter_WR left
09:13
xpen joined
|
|||
gfldex | travis check has changed now from | 09:20 | |
'not set up' to 'unknown' | |||
09:22
vendethiel left
|
|||
DrForr | I'm not going to check in from work but I'll add the Travis blurb tonight when I get home. | 09:23 | |
09:23
pierre-vigier joined
09:25
pierre-vigier left
09:29
gregf___ joined
09:30
gregf___ left
09:31
sno joined
09:32
gregf_ joined
09:33
RabidGravy joined
09:34
_Vi joined,
xdoctor left
09:35
virtualsue joined
|
|||
RabidGravy | morning | 09:37 | |
09:40
dakkar joined
09:44
confundus joined
09:47
brrt joined
09:51
vendethiel joined
09:52
rindolf joined
09:53
xpen left
|
|||
nine | masak: R* will be based on 2016.01 | 09:57 | |
09:58
darutoko- joined,
pierre-vigier joined
10:00
funrep left
10:01
darutoko left
10:02
scoopio joined,
funrep joined,
kubrat left,
grondilu left,
daxim left,
grondilu joined,
gregf_ left
10:05
gregf_ joined
|
|||
abraxxa want 127001 fixed for 2016.01 | 10:08 | ||
10:09
pierre-vigier left,
pierre-vigier joined,
Fleurety joined
10:10
pjscott joined,
lnrdo joined
10:12
xpen joined,
xpen left
10:13
xpen joined
10:14
vendethiel left,
vytas left
10:15
pierre-vigier left
10:16
pierre-vigier joined
10:19
vytas joined
10:23
vytas left
10:26
vytas joined,
Peter_WR joined
10:29
daxim joined
|
|||
brrt | good * #perl6 | 10:29 | |
yoleaux | 7 Jan 2016 18:49Z <masukomi> brrt: is it currently possible to create a stand-alone executable for *nix system ? | ||
10:30
pierre-vigier left
|
|||
RabidGravy | marnin | 10:31 | |
brrt | .tell masukomi: i'm sorry for not responding earlier; do you mean of perl6? if so, the answer (unfortunately) is no, not yet; the other answer is, with a special compunitrepo, this should be entirely feasible (e.g. the zip-archive-starting-with-an-executable trick) | ||
yoleaux | brrt: What kind of a name is "masukomi:"?! | ||
brrt | .tell masukomi i'm sorry for not responding earlier; do you mean of perl6? if so, the answer (unfortunately) is no, not yet; the other answer is, with a special compunitrepo, this should be entirely feasible (e.g. the zip-archive-starting-with-an-executable trick) | ||
yoleaux | brrt: I'll pass your message to masukomi. | ||
El_Che | brrt: that would be awsome | 10:34 | |
10:34
yeahnoob left
10:36
vendethiel joined
|
|||
brrt | aye, it would be | 10:37 | |
note that bulding moar 'statically' is currently already possible | |||
but that doesn't really help that much | |||
note, also, that while i *think* you can build a self-contained perl5, using any of the core modules also requires a full filesystem installation, so the state of the art is already not ideal | 10:39 | ||
10:39
scoopio is now known as kubrat
|
|||
El_Che | brrt: isn't cava perl not something like that? | 10:39 | |
brrt | no idea, actually | 10:40 | |
anybody planning to go to FOSDEM this year? | |||
El_Che | you, I hope :) | 10:41 | |
brrt | well, yes, i kind of promised :-) | ||
El_Che | I will send more info soon | ||
brrt | :-) | 10:43 | |
10:43
espadrine joined
|
|||
DrForr | brrt: Yes, kinda have to :) | 10:47 | |
10:48
miquelruiz_ left
|
|||
xenu | search.cpan.org/~mlehmann/App-Stati...icperl.pod | 10:48 | |
i meant | 10:49 | ||
metacpan.org/pod/distribution/App-...icperl.pod | |||
El_Che | brrt, xenu: www.cavapackager.com/ | ||
sadly not FOSS | |||
brrt | interesti9ng | 10:50 | |
let's also be very honest about this, a standalone binary of perl6 is the top priority of (afaik) the following set of developers: {} | 10:51 | ||
nice-to-have, but not as nice as linux-distro-packages, bsd ports, macports, homebrew, windows etc. | 10:52 | ||
moarvm currently doesn't even build correctly on solaris/illumos, and that's bad enough | 10:53 | ||
RabidGravy | I was going to look at solaris but I couldn't get it to run in a VM so abandoned the plan | ||
10:55
sjoshi left
10:56
vendethiel left
10:57
sjoshi joined
|
|||
El_Che | brrt: don't understimate the attractiveness of go due to the single binary feature | 10:58 | |
10:58
pmurias joined
|
|||
El_Che | I had a go at Solaris + moarvm | 10:58 | |
Solaris 10: libuv misses interfaces so it doesn't compile | 10:59 | ||
Solaris 11: libuv compiles, but has failing tests | |||
10:59
vendethiel joined
11:00
CIAvash left
|
|||
brrt | yeah, it is a sucky state of affairs | 11:00 | |
El_Che | RabidGravy: do you mean moarvm did not work in your vm or that you coudn't get a running solaris vm? | ||
RabidGravy | I couldn't get a working version of solaris in a VM | ||
brrt | hmmm... if anybody wants to have a stab at it, i'm sure there are plenty of people who can help out | ||
brrt brb | 11:01 | ||
RabidGravy | I wasn't sufficiently motivated to chase it down | ||
El_Che | RabidGravy: I have two options in case you find the motivation: | ||
- help you with virtualbox + the solaris 11 oracle virtualbox image (it works) | |||
- give you access to solaris hw through OpenCSW | 11:02 | ||
11:03
brrt_ joined
11:04
bpmedley left
|
|||
RabidGravy | in the past I've had it working on qemu-kvm but I can't actually remember which version of solaris it was | 11:04 | |
11:05
brrt left
|
|||
El_Che | the virtualbox (being oracle's) is surprisingly easy to get running | 11:05 | |
brrt_ | solaris / illumos don't work well with gnome boxes, probably because gnome-boxes sends signals that are not understood somehow | ||
11:05
wamba joined,
TEttinger left
|
|||
brrt_ | or the keyboard driver doesn't work together or something like that | 11:05 | |
11:06
bpmedley joined
|
|||
El_Che | brrt_: the default desktop on solaris is gnome | 11:06 | |
brrt_ | virtualbox works much better, yes, but virtualbox doesn't use kvm, and i dislike loading dozens of overlapping-functionality in the already much-too-large linux kernel | ||
or to put it in other words.... now that we're widely building virtualized systems, *not* having a microkernel is quite sucky | 11:07 | ||
11:07
virtualsue left
11:08
pmurias left,
pierre-vigier joined
11:09
virtualsue joined
11:10
pmurias joined
11:12
pjscott left,
virtualsue left
|
|||
RabidGravy | what? not CDE any more ? ;-) | 11:13 | |
El_Che | RabidGravy: it was still an option in solaris 10, gone from 11 | ||
brrt_ | El_Che: I mean the default easy-to-use qemu-based virtualization package in gnome3 | ||
which works well as long as all the world is linux, or even windows | 11:14 | ||
RabidGravy | FreeBSD works quite well in "gnome-boxes" as well | 11:15 | |
pierre-vigier | One OOP question, is there a way to replicate the Moo/Moose lazy behavior on perl6 object system? | 11:16 | |
El_Che | pierre-vigier: a builder sub? | 11:17 | |
pierre-vigier | yes | ||
11:17
virtualsue joined
|
|||
RabidGravy | depends how encapsulated you want it | 11:18 | |
pierre-vigier | the idea would be to have some property that are complex to calculate | ||
RabidGravy | yeah | ||
pierre-vigier | so delay them until neede | ||
so delay them until needed | |||
then it would be public attribute | 11:19 | ||
but read only | |||
11:19
Skarsnik joined
|
|||
pierre-vigier | i'm pretty sure there's an easy way, just did not find it :( | 11:19 | |
RabidGravy | m: class F { has $.foo; method foo() { if not $!foo.defined { $!foo = "blather" }; $!foo } }; say F.new.foo; | 11:20 | |
camelia | rakudo-moar 34d2b6: OUTPUT«blather» | ||
andreoss | .seen masak | 11:21 | |
yoleaux | I saw masak 08:27Z in #perl6: <masak> gfldex: "would have required constructors to be special" -- in what way would it require that? | ||
pierre-vigier | indeed, i can do it myself, or even creating a trait | ||
RabidGravy | there is no built in way, but the tools to make it are there | 11:22 | |
brrt_ | pierre-vigier: do you know about the trait is-cached? | ||
pierre-vigier | yes, it would allow me not to compute twice, might be enough | 11:23 | |
private attribue that is not defined | |||
brrt_ | doc.perl6.org/type/Routine#trait_is_cached | ||
pierre-vigier | then built it and add is-cached | ||
11:23
pmurias left
|
|||
brrt_ | well, a public attribute is really a method that provides (by default) read-only access to a private variable | 11:23 | |
class Foo { has $.foo; } is equivalent to class Foo { has $!foo; method foo { $!foo; } } | 11:24 | ||
pierre-vigier | indeed | ||
11:25
pmurias joined
|
|||
brrt_ | well, you can say class Foo { method foo is cached { expensive-calculation(); } } | 11:25 | |
and it would... do what you mean? | |||
11:28
pierre-vigier left
|
|||
dalek | c: 150795b | lizmat++ | doc/Type/DateTime.pod: Indicate positional candidate to be for 6.d |
11:29 | |
11:32
pierre-vigier joined
11:34
pierre-vigier left
11:36
pierre-vigier joined,
pmurias left
|
|||
pierre-vigier | yep, it would work also to cache | 11:36 | |
just need to check if it is per instance | |||
i mean is cached | 11:37 | ||
awwaiid | doc.perl6.org/language/variables#Sigils <- This has a nice table with "flattens?"; should I delete that column post-GLR? | ||
pierre-vigier | i never tried | ||
11:39
xpen left
11:41
pierre-vigier left
11:43
lnrdo left,
vendethiel left,
lnrdo joined
11:45
lnrdo left,
lnrdo joined
11:46
confundus left
11:47
pierre-vigier joined
11:51
pierre-vigier left
|
|||
sortiz | awwaiid, I think so. But more important Array.flat should be documented to avoid the confusion with Iterator.flat | 11:55 | |
11:56
pierre-vigier joined
|
|||
awwaiid | sortiz: yeah, but not here I think | 11:58 | |
sortiz | awwaiid, nop, in types/Array I suppose. | 11:59 | |
12:01
bpmedley left
12:02
pmurias joined
12:04
integral is now known as exponential,
virtualsue left
12:07
wamba left
12:08
virtualsue joined
|
|||
dalek | osystem: 1c2ca86 | (Peter Pentchev)++ | META.list: Add Serialize::Naive to the ecosystem. See github.com/ppentchev/Serialize-Naive |
12:09 | |
osystem: f658e61 | (Zoffix Znet)++ | META.list: Merge pull request #119 from ppentchev/ppentchev-add-serialize-naive Add Serialize::Naive to the ecosystem. |
|||
12:09
exponential is now known as zero-almost-ever
|
|||
dalek | kudo/nom: 308c469 | lizmat++ | src/core/ (3 files): Move REMOVE-ROOT to Rakudo::Internals and streamline with new gained knowledge :-) |
12:09 | |
12:10
pierre-vigier left
12:11
_Gustaf_ joined,
zero-almost-ever is now known as integral
12:12
kaare_ joined
|
|||
Zoffix | .tell jdv79 How is work on the P6 variant of PAUSE/CPAN/MetaCPAN going? Maybe the repo should be moved under the perl6 GitHub organization, so it'd be easier for potential volunteers to finds and contribute to? | 12:15 | |
yoleaux | Zoffix: I'll pass your message to jdv79. | ||
12:18
cuonglm joined
|
|||
Zoffix | .tell jdv79 we also now have #perl6-toolchain you may be interested in joining. | 12:18 | |
yoleaux | Zoffix: I'll pass your message to jdv79. | ||
cuonglm | Is there any package for completion Perl6 code in emacs now? | 12:19 | |
Zoffix | I'm unaware of such a package for any editor | ||
moritz | blogs.perl.org/users/dmitri/2015/08...erl-6.html if there's general ctags completion support for emacs, that should work with Perl 6 as well | 12:20 | |
pmurias | To send the "JavaScript backend for Rakudo" grant application, I need to suggest a grant manager. Who should I suggest? | 12:21 | |
12:21
pierre-vigier joined
|
|||
DrForr | I've been working with Tom Hukins so far, seemed decent. | 12:22 | |
12:23
joydo joined
|
|||
cuonglm | @Zoffix: I don't think it work with builtin | 12:23 | |
@moritz: I don't think it work with builtin | |||
moritz | cuonglm: unless you run ctags over the setting too | 12:24 | |
RabidGravy | DrForr, Tom's a nice guy worked with IRL for a few years but known him for ever | 12:25 | |
12:25
_Gustaf__ joined
|
|||
DrForr | I keep missing him whenever our paths cross :/ | 12:26 | |
12:27
vendethiel joined,
_Gustaf_ left
|
|||
dalek | kudo/nom: 14b73ac | lizmat++ | src/core/ (3 files): Remove FILETEST-E to Rakudo::Internals Also, no longer booleanify for internal usage. |
12:28 | |
cuonglm | moritz: Can you clarify it? Sorry for my mis-understand | 12:29 | |
12:30
virtualsue left
12:36
cuonglm left
|
|||
moritz | ... not if you leave the channel :/ | 12:38 | |
12:38
virtualsue joined,
wamba joined
|
|||
RabidGravy | oh well, I understood FWIW | 12:38 | |
12:40
leont joined
|
|||
moritz | but you know what the setting is | 12:40 | |
RabidGravy | this is true | 12:41 | |
12:42
vendethiel- joined
|
|||
dalek | kudo/nom: b870ed5 | lizmat++ | src/core/IO/Path.pm: Remove undocumented, untested and unspecced method |
12:42 | |
12:42
vendethiel left
12:43
pierre-vigier left
|
|||
ugexe | is that the .all from s16? `if $io.all(<f r w x s>) -> $size {` | 12:46 | |
lizmat | it seems so, yes, where you using that ? | 12:47 | |
there are no tests for it, there is no further documentation for it | |||
timotimo | it's not the regular .all that builds a junction | ||
ugexe | no, i just remembered seeing it recently | 12:48 | |
in the spec itself, not in code | |||
lizmat | ok | ||
well, it proved to be a very bad optimizing target | |||
12:48
pierre-vigier joined
|
|||
lizmat | anyways, it can be easily reinstated if necessary, I just thought I'd clean it up since there were no tests nor doc for it | 12:49 | |
12:49
vendethiel- left
|
|||
FROGGS | [Coke], moritz, lizmat, TimToady, timotimo: I'd like to open a #perl6-release channel... any thoughts? | 12:50 | |
lizmat | FROGGS: +1 for me | ||
timotimo | easier to ask for forgiveness than permission :) | ||
FROGGS | [Coke], moritz, lizmat, TimToady, timotimo: I like to discuss stuff like relying on a feature that pops up in the next weeks/months | 12:51 | |
moritz | FROGGS: +1 | ||
FROGGS | moritz: can you irclog it? :o) | ||
moritz | FROGGS: sure; did you freenode-register it? | 12:52 | |
FROGGS | moritz: no idea how to do that | ||
but I can google it | |||
12:52
ilbot3 left
12:53
ilbot3 joined,
LordDrako joined
|
|||
LordDrako | hi guys | 12:53 | |
moritz | FROGGS: /msg ChanServ register #perl6-release | ||
LordDrako | I am fiddling around a bit with perl 6's native call feature and windows api | ||
it appears there is no way to do callbacks | 12:54 | ||
timotimo | LordDrako: you can look into rakudo's t/nativecall/ folder for examples for callbacks | ||
t/04-nativecall/ | 12:55 | ||
RabidGravy | someone also did an advent post about it I think | 12:57 | |
'ang on | |||
FROGGS | moritz: done so, thank you | ||
LordDrako | timotimo, are these installed with the rakudostar windows installer? | ||
hm, does not seem so | 12:58 | ||
RabidGravy | perl6advent.wordpress.com/2015/12/...-beyond-c/ | ||
timotimo | maybe not; i'll give you the link to github | ||
LordDrako | RabidGravy, that's nice | ||
timotimo | github.com/rakudo/rakudo/tree/nom/...nativecall - the files with "callbacks" in their names | ||
12:59
uruwi left
|
|||
dalek | kudo-star-daily: 7839420 | coke++ | log/ (5 files): today (automated commit) |
13:00 | |
rl6-roast-data: 17adeb2 | coke++ | / (6 files): today (automated commit) |
|||
LordDrako | hm, how is it that nativecall seems to magically work with __stdcall as well? does it detect the calling convention by examining the symbol mangling? | 13:01 | |
13:02
pierre-vigier left
|
|||
LordDrako | e.g. windows api functions are stdcall which differs from cdecl in that the called function cleans up the stack, not the calling function | 13:03 | |
Skarsnik | ? | ||
13:03
wamba left
|
|||
brrt_ | LordDrako: I think C name mangling is limited and not related to calling convention; i wouldn't know how it works automagically | 13:03 | |
that's the domain of dyncall and friends | |||
or libffi | |||
LordDrako | in case of mangling in stdcall there is simply an @ and a number at the end of the symbol (e.g. Foo@8) which means it gets 8 bytes of parameters (maybe 2 ints or something) | 13:04 | |
timotimo | i didn't know it does any name mangling at all | ||
Skarsnik | Look at the source | ||
It's probably in Moar | 13:05 | ||
LordDrako | the point is, calling a stdcall function using cdecl on the caller side should result in cleaning up the stack twice | ||
13:05
lnrdo left
13:06
lnrdo joined
|
|||
LordDrako | then again I am thinking too much as x86_64 does a lot of things differently | 13:06 | |
arnsholt | brrt_: C does absolutely no name mangling. That's the reason it's possible to call into without going insane | ||
Skarsnik | Well if you seems to know this stuff, look at the code source to do if it does the right thing :) | ||
arnsholt | Calling convention is completely orthogonal | ||
[Coke] wonders where his coffee got to. | 13:07 | ||
yoleaux | 9 Jan 2016 12:28Z <nine> [Coke]: panda will now fall back to curl and then to wget if downloading meta data failed. This should fix the proxy issues. | ||
[Coke] | nine++ thanks! | ||
I am behind the great firewall right now, will give it a shot this morning. | |||
(lowercase gf, not the real GF) | |||
13:08
vendethiel joined
|
|||
dalek | kudo/nom: 8fb2088 | lizmat++ | src/core/Distro.pm: Don't make an .IO unless we need it |
13:09 | |
brrt_ | x86_64 has a single calling convention for windows-x64 LordDrako | ||
also another single calling convention for POSIX | |||
the latter is followed by pretty much all platforms that are not windows on x64 | 13:10 | ||
LordDrako | brrt_, I know | ||
brrt_ | well, then, there is probably your answer | ||
:-) | |||
also, the posix version is better | |||
LordDrako | my initial question was focused on 32 bit windows | ||
brrt_ | ah, that wasn't obvious to me | ||
maybe it is in the linker table? | |||
(one of my main theses is: 32 bit x86 is insane. forget about it) | 13:11 | ||
LordDrako | arnsholt, en.wikipedia.org/wiki/Name_manglin...ft_Windows | ||
[Coke] | I see that Slang::Roman is using nqp opcodes; is that the only way to get it to work ? (and is that a bug?) | ||
LordDrako | you will see that in fact some C symbols are mangled in DLLs | ||
DrForr | [Coke]: No idea, I just know it worked. | 13:12 | |
arnsholt | Oh, wow. I had no idea they did that on Windows | ||
In that case, it may very well be that some kind of introspection is going on | |||
brrt_ | that is some terrible stuff | 13:13 | |
haha | |||
DrForr | FWIW that's what the other Slangs did. | ||
RabidGravy | it's possibly that the dynaloader is abstracting that away | ||
arnsholt | Or -ldl, yeah | ||
Given that most of this likely happens in terms of dlopen/dlsym, that may be more likely | |||
Anyways, none of that is implemented in NQP/Moar. All of that would be implemented in dyncall/libffi | 13:14 | ||
DrForr | [Coke]: Also, if you've got a higher-level alternative that doesn't involve writing raw pir (which is what that looks like to me) I'm all ears. | ||
brrt_ | indeed. the JIT contains an impl of generating c call interfaces, but that's only for amd64 | ||
13:15
lnrdo_ joined
13:18
pierre-vigier joined,
lnrdo left
|
|||
LordDrako | on windows it'll be more like LoadLibrary/GetProcAddress/FreeLibrary (more or less equivalent to dlopen/dlsym/dlclose), yet GetProcAddress would still expect a mangled name to find the address of the target function | 13:19 | |
13:19
wamba joined,
talexb__ left
|
|||
timotimo | FROGGS: github.com/FROGGS/p6-Slang-Piersin...iersing.pm - wouldn't this need "use nqp;" at the beginning to continue working? | 13:20 | |
arnsholt | Huh. In that case I have no better suggestion than looking at the implementation in the FFI library =) | ||
FROGGS | timotimo: probably yes | 13:21 | |
13:25
pierre-vigier left
|
|||
dalek | kudo/nom: 7054a2c | lizmat++ | src/core/ (4 files): Move FILETEST-D to Rakudo::Internals Also, no longer booleanify for internal usage. |
13:25 | |
lizmat | timotimo: or MONKEY-GUTS ? | 13:26 | |
brrt_ | or the dyncall library, for that matter | ||
timotimo | or that, yes | ||
13:30
virtualsue left
13:32
vendethiel left
|
|||
LordDrako | timotimo, okay, the callback example is nice, though one thing is not demonstrated: having a struct that contains a pointer to a callback; and as I see it CStruct doesn't even support code refs | 13:38 | |
FROGGS | LordDrako: true, that's not yet implemented | 13:39 | |
lizmat | cycling& | ||
LordDrako | FROGGS, okay :-) | ||
FROGGS | LordDrako: we've got an open issue in the old zavolaj repository, musing about the way to implement it | ||
13:39
pierre-vigier joined,
asdf12z_ joined
|
|||
LordDrako | basically I was trying something like this (not sure if syntax would be like that in the future) pastebin.com/BVUPraUy | 13:39 | |
13:39
_Vi left
|
|||
FROGGS | one way would be to allow to cast a function pointer to something callable | 13:40 | |
[Coke] | I am tempted to skip 2016.01; we need a really good plan for backwards compatibility, and I think it'll take us a little longer to have the infrastructure in place for that. | ||
LordDrako | I'd think when putting a coderef into a CStruct the same marshalling should apply as if it was used as a parameter to a native function directly | 13:41 | |
FROGGS | [Coke]: please join #perl6-release | ||
[Coke] | (in which ase, we should think about what this means for R*: perhaps we will need a very minimal 2015.12.1 that has some precomp or installer fixes that we agree our safe - whatever is blocking R* at the moment.) | ||
FROGGS | LordDrako: I like your example | ||
LordDrako | FROGGS, also the Pointer[int16] is there because perl6 also complained about Str is encoded('utf16') in the CStruct | 13:43 | |
so in general I think CStruct, CUnion and native function calls should in most cases use the same rules, that would only seem logical | |||
Skarsnik | You need a release that fix precomp error and other bug (like the loop bug) soon. I think | ||
FROGGS | LordDrako: aye | 13:44 | |
Skarsnik | Pointer[int16] look weird x) | 13:45 | |
FROGGS, why not do perl6/NativeCall repo to group NC relatif stuff like test/issue tracker? | 13:46 | ||
13:47
bpmedley_ joined
|
|||
FROGGS | Skarsnik: we use RT today and that works well enough I'd say | 13:47 | |
Skarsnik | I think RT is not a good 'visible' place to discuss stuff outside: This is a bug, that should do X and not Y | 13:48 | |
FROGGS | LordDrako: yes, weird, that trait is not implemented for Attributes | ||
Skarsnik: I've seen very nice discussions on RT | |||
13:48
siriu5b_ is now known as siriu5b
|
|||
FROGGS | LordDrako: can you rakudobug the trait issue? | 13:49 | |
llfourn | from my perspective the main downside of RT is the person that creates the issue can't close it (or at least I don't know how) | ||
Skarsnik | RT ui sucks x) | 13:50 | |
and you can't edit | |||
LordDrako | FROGGS, :O RT has detected a possible cross-site request forgery for this request, because the Referrer header supplied by your browser (rakudo.org:80) is not allowed by RT's configured hostname | ||
llfourn | ^^ I've seen that one before :\ | ||
moritz | RT being paranoid | ||
LordDrako | appeared when clicking the "List of all new and open tickets" link here: rakudo.org/tickets/ | ||
xD | 13:51 | ||
FROGGS | wfm: rt.perl.org/ | ||
13:52
Actualeyes left
|
|||
FROGGS | Skarsnik: I know about its UI and the missing edit functionality... but I'd rather like less tickets systems than more | 13:52 | |
13:53
pmurias left
|
|||
Skarsnik | Not really true | 13:55 | |
I probably use more github issue tracker since modules are on github than RT | |||
[Coke] | "let's have more channels for <excellent reason>" ... crap, now I have even more stuff to backlog and potentially discuss! (at least the even moar stuff is better organized. :) | 13:56 | |
LordDrako | FROGGS, also I am not sure the encoding is the issue in the CStruct: when only using Str I get "CStruct representation only handles int, num, CArray, CPointer, CStruct, CPPStruct and CUnion" | ||
Skarsnik | Oh | ||
dalek | kudo/nom: aefe2c2 | coke++ | docs/release_guide.pod: note possibility of delay |
13:57 | |
Skarsnik | Probably because it look for shortname eq 'Str' | ||
and is became Str+{NCencoded} | |||
timotimo | no | ||
it checks for reprs, they are orthogonal to class names | |||
13:57
pmurias joined
13:58
vendethiel joined
|
|||
Skarsnik | Str should not pass if it was only that | 13:58 | |
LordDrako | when using "has Str $.lpszMenuName is encoded('utf16');" in the struct I get "Can't use unknown trait 'is encoded' in an attribute declaration." so there are actually two problems here | ||
Skarsnik | m: say Str.REPR | ||
camelia | rakudo-moar 7054a2: OUTPUT«P6opaque» | ||
timotimo | m: say str.REPR | ||
camelia | rakudo-moar 7054a2: OUTPUT«P6str» | ||
Skarsnik | and str in struct is... I had segfault with it x) | 13:59 | |
RabidGravy | m: use NativeCall; class Foo is repr('CStruct') { has Str $.foo }; | ||
camelia | ( no output ) | ||
LordDrako | hm | ||
Skarsnik | adding the trait to attribute should not be hard | 14:00 | |
LordDrako | m: use NativeCall; class WindowClass is repr('CStruct') { has Str $.lpszMenuName; } | ||
camelia | ( no output ) | ||
LordDrako | m: use NativeCall; class WindowClass is repr('CStruct') { has Str $.lpszMenuName is encoded('utf16'); } | 14:01 | |
camelia | rakudo-moar 7054a2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xraVU4WnjECan't use unknown trait 'is encoded' in an attribute declaration.at /tmp/xraVU4WnjE:1 expecting any of: rw readonly box_target leading_docs …» | ||
timotimo | ah, so it's just the trait doesn't exist for attributes yet | ||
andreoss | m: my @x = 1..*; sub foo([]) { say "matches []" } | ||
camelia | ( no output ) | ||
andreoss | m: my @x = 1..*; sub foo([]) { say "matches []" }; foo(@x) | ||
camelia | rakudo-moar 7054a2: OUTPUT«matches []» | ||
14:01
cdg joined
|
|||
LordDrako | ha okay wait | 14:01 | |
the first error was because of the unsupported coderef | 14:02 | ||
so yeah, it is only the missing trait | |||
Skarsnik | m: use NativeCall; my Str $a; explicitly-manage($a); say $a.^name; | ||
camelia | rakudo-moar 7054a2: OUTPUT«Cannot use 'does' operator with a type object. in sub explicitly-manage at /home/camelia/rakudo-m-inst-1/share/perl6/sources/075EFE4B4CDAAF73190194EA876F81A1F128D1A2 line 344 in block <unit> at /tmp/ObLegJxB6Q line 1» | ||
Skarsnik | m: use NativeCall; my Str $a ="foo"; explicitly-manage($a); say $a.^name; | ||
camelia | rakudo-moar 7054a2: OUTPUT«Str+{NativeCall::ExplicitlyManagedString}» | ||
14:03
dj_goku left
|
|||
Skarsnik | m: use NativeCall; my Str $a is encoded('utf8') ="foo"; explicitly-manage($a); say $a.^name; | 14:03 | |
camelia | rakudo-moar 7054a2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0ygo8cQtm3Can't use unknown trait 'is encoded' in a variable declaration.at /tmp/0ygo8cQtm3:1------> 3NativeCall; my Str $a is encoded('utf8')7⏏5 ="foo"; explicitly-manage($a); say $a.^ exp…» | ||
nine | [Coke]: FWIW the #perl6-toolchain channel did wonders for installer discussions | ||
14:03
pmurias left
14:04
nowan left
|
|||
andreoss | i thought it was resolved | 14:04 | |
Skarsnik | I think adding multi trait_mod:<is>(Attribute $p, :$encoded!) is export(:DEFAULT, :traits) { | ||
$p does NativeCallEncoded[$encoded]; | |||
} | |||
should do the trick | |||
RabidGravy | is there some .rotor() incantation where given <a b c d> I can get <a b> <b c> <c d> ? | 14:05 | |
Skarsnik | but you have to ensure the Attribute is in a CPPStruct or CStruct REPR | ||
andreoss | m: (my @a = 1..*).Capture.perl.say | ||
camelia | rakudo-moar 7054a2: OUTPUT«Failure.new(exception => X::Cannot::Lazy.new(action => "create a Capture from", what => Any), backtrace => Backtrace.new)» | ||
14:06
Actualeyes joined
|
|||
PerlJam | m: <a b c d>.rotor(2 => -1); # RabidGravy | 14:06 | |
camelia | ( no output ) | ||
PerlJam | m: <a b c d>.rotor(2 => -1).say; # RabidGravy | ||
camelia | rakudo-moar 7054a2: OUTPUT«((a b) (b c) (c d))» | ||
RabidGravy | PerlJam++ # nice one | ||
LordDrako | rt.perl.org/Ticket/Display.html?id=127237 not sure if I did something wrong, it's my first ticket here :p | ||
14:07
nowan joined
|
|||
timotimo | looks good to me | 14:08 | |
andreoss | jnthn: should it match or throw an exception for 1..*? | ||
regarding #123581 | 14:09 | ||
m: sub foo([]) { say "[]" }; foo(1..*); | |||
camelia | rakudo-moar 7054a2: OUTPUT«2 unexpected named arguments passed (min,max) in sub-signature in sub foo at /tmp/p7BXWqz3xe line 1 in block <unit> at /tmp/p7BXWqz3xe line 1» | ||
andreoss | m: sub foo([]) { say "[]" }; foo(my @x = 1..*); | ||
camelia | rakudo-moar 7054a2: OUTPUT«[]» | ||
14:09
pmurias joined
|
|||
Skarsnik | I think the encoded name for Attribute is not a good idea | 14:11 | |
timotimo | you mean a [] subsignature should always .list? | ||
andreoss | m: multi foo([]) { say "[]" }; foo(my @x = 1..*); | ||
camelia | rakudo-moar aefe2c: OUTPUT«[]» | ||
LordDrako | I totally love perl 6 xD | 14:12 | |
m: my $foo = 23 but role { method Str() { '42' } }; say $foo; say $foo + 1; | |||
camelia | rakudo-moar aefe2c: OUTPUT«4224» | ||
andreoss | timotimo: i would expect something like `Cannot .elems a lazy list` | ||
timotimo | hmm | ||
what nick does Lloyd Fournier have here? | 14:14 | ||
PerlJam | llfourn I believe | ||
timotimo | that makes sense | 14:15 | |
llfourn: why'd you expect the attribute of a role to have a package other than $?CLASS? or rather: what would you expect it to be? | |||
FROGGS | LordDrako++ # RT #127237 | 14:16 | |
14:16
nowan left
|
|||
andreoss | m: my @x = 1..*; say @x ~~ [] | 14:17 | |
camelia | rakudo-moar aefe2c: OUTPUT«Cannot .elems a lazy list in block <unit> at /tmp/83j8ivCRYw line 1Actually thrown at: in block <unit> at /tmp/83j8ivCRYw line 1» | ||
LordDrako | FROGGS, ? | 14:18 | |
14:18
Ch0c0late joined
|
|||
FROGGS | LordDrako: are you wondering about the ++? | 14:18 | |
14:19
nowan joined
|
|||
llfourn | timotimo: i'd expect it to be the package it was declared in. | 14:19 | |
LordDrako | this and why you wrote that the ticket number, because I could not find any change, but now I could, so its only the ++ | ||
xD | |||
FROGGS | LordDrako: design.perl6.org/S99.html#karma :o) | ||
llfourn | m: role Foo { has $.foo; }; Foo.^attributes[0].package.^name.say | 14:20 | |
camelia | rakudo-moar aefe2c: OUTPUT«$?CLASS» | ||
14:20
lnrdo_ left
|
|||
llfourn | class Foo { has $.foo; }; Foo.^attributes[0].package.^name.say | 14:20 | |
m: class Foo { has $.foo; }; Foo.^attributes[0].package.^name.say | |||
camelia | rakudo-moar aefe2c: OUTPUT«Foo» | ||
14:20
vendethiel left
|
|||
llfourn | ^^ | 14:20 | |
Skarsnik | hm | ||
LordDrako | FROGGS, is this tracked somehow or is it just an immediate sign of appreciation? | 14:21 | |
PerlJam | LordDrako: we have no bot tracking karma last time I checked. | 14:22 | |
moritz | but we have logs | 14:23 | |
RabidGravy | and immediate warm fuzzies | ||
moritz | so we could retroactively extract karma from the logs | ||
Juerd | I can think of more interesting and useful way to spend time :) | ||
Grepping logs is no fun | |||
LordDrako | well I guess it's better without... this might just result in bot orgies ++ing each other | ||
moritz | Juerd: indeed | 14:24 | |
in 6 minutes, I have a meeting where we try to track down why (fancy-)grepping logs gives wrong results | |||
14:25
sftf joined
|
|||
llfourn | timotimo: I am looking at it closer since apparently it's not obvious. Perhaps I am missing something? | 14:26 | |
14:27
Roamer` joined
|
|||
llfourn | Althought I understand that roles are not the same as other packages I would have thought that for MOP introspection purposes attributes would masquerade as if their were part of a package. | 14:27 | |
nine | I for one welcome our new journald overloards! | 14:28 | |
llfourn | timotimo: I will give you an example on the ticket as to why I think this should work | ||
moritz | MOP and masquerade usually don't mix well | ||
llfourn | moritz: do you think that an Attribute.package should not return the role it wass declared in? | ||
pierre-vigier | Small question | 14:29 | |
llfourn | if it was Attribute.class I would understand it giving a $?CLASS or something | ||
pierre-vigier | i see my travis badge in github | ||
14:29
Actualeyes left
|
|||
pierre-vigier | how to do to have it displayed on modules.perl6.com | 14:29 | |
how to do to have it displayed on modules.perl6.org | 14:30 | ||
? | |||
Skarsnik | It should be on m.p6.org | 14:31 | |
blame Zoffix if not | |||
pierre-vigier | i guess i did have a syntax error somewhere | 14:32 | |
Juerd | pierre-vigier: On the page, it says "If you want to contribute your own module, please read this guide." | ||
pierre-vigier | do we need a particular travis file? | ||
Juerd | pierre-vigier: "this guide" is a link... | ||
Skarsnik | What is your modules name? | ||
pierre-vigier | i'll check ahain | ||
i did read it when doing a module | |||
Juerd | pierre-vigier: Oh, sorry, I think I may have read what you said wrong. Your module is already in the list, but you want it updated? | 14:33 | |
pierre-vigier | nope, it's up to date | ||
but the badge | |||
green when test are ok | |||
Juerd | pierre-vigier: Do you have a .travis.yml in your repository? | 14:34 | |
pierre-vigier | yes | ||
gfldex | the travis code on modules.perl6.org is buggy | ||
pierre-vigier | and it's working on github side | ||
14:34
xpen joined
|
|||
pierre-vigier | github.com/pierre-vigier/Perl6-Math-Matrix | 14:35 | |
Juerd | pierre-vigier: Then I'm assuming modules.perl6.org will pick it up eventually | ||
pierre-vigier | one diff i can see with other module is blank line in .travis.yml | 14:36 | |
14:36
virtualsue joined,
brrt_ left
|
|||
pierre-vigier | i'll check if removing them solve that | 14:36 | |
14:38
xpen left,
xpen joined
14:40
_Vi joined
|
|||
RabidGravy | I *think* there may be an open issue on perl6/modules regarding the non-displaying of travis results sometimes | 14:42 | |
mspo | wow, grammar's are slow or it's easy to make mistakes | ||
14:43
Actualeyes joined
|
|||
mspo | I'm parsing a 195 bytes string and am running at 96MB + 90% cpu | 14:43 | |
14:44
sjoshi left
|
|||
gfldex | do I understand the following line corretly, when I say it tests for the Content-Type of the response? github.com/perl6/modules.perl6.org...sCI.pm#L36 | 14:45 | |
14:45
xpen_ joined,
pjscott joined
|
|||
pmurias | mspo: running for how long? | 14:45 | |
mspo | pmurias: doesn't seem to stop | ||
gfldex | the content type returned by api.travis-ci.org is 'application/json;charset=utf-8' | 14:46 | |
Zoffix: see ^^^ please | |||
14:46
vendethiel joined
|
|||
pmurias | mspo: seems like a bug (could be in your code), they should be that slow | 14:47 | |
* they shouldn't | |||
14:47
xpen left
|
|||
mspo | pmurias: I think it's [<this>*||<that>*||<something>*]* | 14:48 | |
let me see | |||
mre | gfldex: No It just sets the Accept header to 'Application/vnd.travis-ci.2+json' and thus expects (but desn't test it) to receive a response in that Content-type. It then decodes the response as json (expected as a hash) and gets the key called builds and derefs the array value | ||
14:49
skids joined,
pjscott left
14:50
pjscott joined
|
|||
pmurias | mspo: that seems to be an infinite loop | 14:50 | |
as you are matching a zero amount of <this> over and over again | 14:51 | ||
mre | gfldex: it seems that the Travis CI Api knows what it means but it probably just be 'application/json' | ||
gfldex | it then checks ->{state} to be something that is not q{"state":"finished"}, what is returned by the api | ||
here a api response: api.travis-ci.org/repos/gfldex/per...ter/builds | |||
"result":1 seams to indicate build failure and "result":1 success | 14:53 | ||
mspo | pmurias: indeed | ||
pierre-vigier | Strange, it's the only unknown of the page | ||
mspo | gist.github.com/msporleder/e40b5feac1c9eb83383e | ||
14:54
lnrdo_ joined
|
|||
mspo | pmurias: I thought tokens would help since they don't backtrack | 14:54 | |
pierre-vigier | api.travis-ci.org/repos/pierre-vig...rix/builds | ||
FROGGS | mspo: you can match an empty string quite often without backtracking for example | 14:55 | |
mre | gfldex: I can't see anything that checks the state (other than to set the $dist->{travis_status}) | ||
pierre-vigier | also, XHTML::Writer on your module | 14:56 | |
i see the badge as "not set" | |||
but you have a travis file, really strange | |||
gfldex | mre: i will read up on the travis api and file a ticket if there is a mistake | ||
pierre-vigier | i | ||
i'll check more tomorrow, late for me here | |||
thanks and bye | 14:57 | ||
Skarsnik | I think Zoffix just fix something reletad to tracking master branch and not other | ||
gfldex | " If you do not set the Accept header, you might retrieve our old API formats. These are deprecated and will be removed soon. " | ||
dalek | p: 3baf0b6 | (Pawel Murias)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Map the nqp::lstat_time op. |
14:58 | |
p: a40c4c5 | (Pawel Murias)++ | src/vm/js/ (2 files): [js] Implement (or fix) nqp::stat, nqp::stat_time, nqp::lstat_time, nqp::lstat. |
|||
mre | gfldex: does it say what the Accept header should be? | ||
14:58
pierre-vigier left
|
|||
gfldex | the accept header is correct but they may have changed the API already, dosn't say any dates | 14:59 | |
14:59
lnrdo_ left
|
|||
El_Che | I have a mthod signature (Array $matches). If I want to check the type of the array, is the way to go subsets? subset MatchesArray of Array where *.WHAT == Match; | 14:59 | |
something likes List<String> in java | |||
14:59
lnrdo joined
|
|||
mre | gfldex: if it matches the docs and it works then I would leave it alone | 15:00 | |
gfldex | mre: it doesn't work for quite a few modules | 15:01 | |
15:02
joydo left
|
|||
llfourn | .tell timotimo I put a rather long explanation on the ticket re why I expect $attr.package to return the role it was declared in. Enjoy! | 15:02 | |
yoleaux | llfourn: I'll pass your message to timotimo. | ||
15:03
pjscott left
|
|||
geekosaur | perhaps there should be .source or something that points to the entity that defined it, so .package can be the package | 15:04 | |
dalek | href="https://modules.perl6.org:">modules.perl6.org: 6ff87ce | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/Source/GitHub.pm: [REBUILD] Fix cached dist builds breaking travis statuses The check for whether .travis.yml file exists happens only when dist has new commits. Lacking those, the site thinks .travis.yml file was removed and the dist is not setup on travis, so it tosses the cached travis status too. (Closes #50) |
15:06 | |
15:06
molaf joined
|
|||
llfourn | m: class Foo { method meth { } }; class Bar is Foo { }; Bar.^find_method("meth").line.say | 15:07 | |
camelia | rakudo-moar aefe2c: OUTPUT«1» | ||
llfourn | m: class Foo { method meth { } }; class Bar is Foo { }; Bar.^find_method("meth").package.say | ||
camelia | rakudo-moar aefe2c: OUTPUT«(Foo)» | ||
15:07
vendethiel left
|
|||
llfourn | geekosaur: to me if it works for classes it should work for roles | 15:07 | |
we already have .line .package etc | 15:08 | ||
I just think that they shouldn't break for roles -- roles are valid packages they are not valid calsses | |||
m: role Foo { method meth { } }; class Bar does Foo { }; Bar.^find_method("meth").package.say | 15:09 | ||
camelia | rakudo-moar aefe2c: OUTPUT«(Foo)» | ||
15:09
lnrdo_ joined
|
|||
llfourn | and it works for methods so why not attributes... | 15:09 | |
dalek | href="https://modules.perl6.org:">modules.perl6.org: 15d1a08 | (Wenzel P. P. Peppmeyer)++ | lib/ModulesPerl6/DbBuilder/Dist/PostProcessor/TravisCI.pm: _get_travis_status does test for 'finished' now |
15:10 | |
href="https://modules.perl6.org:">modules.perl6.org: 73a921f | (Wenzel P. P. Peppmeyer)++ | lib/ModulesPerl6/DbBuilder/Dist/Source/GitHub.pm: Merge branch 'master' of github.com/perl6/modules.perl6.org |
|||
FROGGS | llfourn: roles get punned into classes or get consumed by classes | ||
dalek | c/sigil-noflat: 47424d8 | (Brock Wilcox)++ | doc/Language/variables.pod: Remove the reference to auto flattening based on sigils |
||
FROGGS | llfourn: and the methods are added to the class | ||
ohh wait | |||
llfourn: nvm | |||
dalek | c: 47424d8 | (Brock Wilcox)++ | doc/Language/variables.pod: Remove the reference to auto flattening based on sigils |
||
c: 273ffa8 | (Brock Wilcox)++ | doc/Language/variables.pod: Merge pull request #340 from perl6/sigil-noflat Remove the reference to auto flattening based on sigils |
|||
gfldex | Zoffix: i just pushed to modules.perl6.org a trivial fix that should help with travis updates | 15:11 | |
llfourn | FROGGS: yes I think I have the .gist of it. Not 100% sure I get all of the edge cases. | 15:12 | |
m: role Foo { method foo { } }; Foo.^find_method("foo").package.say | |||
camelia | rakudo-moar aefe2c: OUTPUT«Method 'package' not found for invocant of class 'ForeignCode' in block <unit> at /tmp/nLNfg81Lry line 1» | ||
15:12
_Gustaf__ left
|
|||
llfourn | also interesting to note that it *doesn't* work if you do it directly | 15:12 | |
15:13
lnrdo left
|
|||
awwaiid | gfldex: I noticed that you do a PR for your changes that you then merge -- I was doing a few direct commits before, but I think I'll do a PR/merge even if I'm going to merge it myself going forward. I think it makes it easier to see what has changed and allow for post-facto comments | 15:13 | |
geekosaur | roles kinda don't exist unless something forces them to be reified as a mixin. MOP lookups wouldn't | ||
FROGGS | llfourn: .^ is implemented to not pun the role | ||
geekosaur | (mixin with an anonymous class) | 15:14 | |
llfourn | FROGGS: but it works it just doesn't make the method into a Method, it's still a ForiegnCode | ||
let's try punning it | 15:15 | ||
FROGGS | llfourn: yes, the transition from ForeignCode to Method happens at compose time | ||
gfldex | awwaiid: i'm doing the PR because _technically_ there is a travis that would catch bad things before they go live. However, I'm not willing to wait for 1h to wait for the build to finish, so I just hit that button right away. | ||
llfourn | m: role Foo { method foo { } }; Foo.new.WHAT.^find_method('foo').package.say | ||
camelia | rakudo-moar aefe2c: OUTPUT«(Foo)» | ||
15:15
khw joined
|
|||
llfourn | FROGGS: ahh yep that makes sense | 15:16 | |
FROGGS | m: role Foo { method foo { } }; Foo.^pun.^find_method('foo').package.say | ||
camelia | rakudo-moar aefe2c: OUTPUT«(Foo)» | ||
15:16
lnrdo_ left,
marmay left
15:17
lnrdo joined
15:18
ZoffixW joined,
marmay joined
|
|||
ZoffixW | gfldex, are you sure your commit makes sense? The api.travis-ci.org/repos/gfldex/per...ter/builds is an old API | 15:19 | |
gfldex | ZoffixW: i am not sure | 15:20 | |
ZoffixW: however i am sure that there is a problem | 15:21 | ||
ZoffixW | gfldex, with what? | ||
15:21
g4 left
|
|||
gfldex | ZoffixW: travis status for XHTML::Writer is not set up, if you click that you go to the travis site that states a passed build | 15:22 | |
ZoffixW: and there are a few other modules with the same problem | |||
ZoffixW | gfldex, that was a caching issue that I just fixed with github.com/perl6/modules.perl6.org...205b0219f6 | 15:23 | |
gfldex | ZoffixW: you can drop my commit then | ||
ZoffixW | This is the new Travis API and I see only 'passed'/'errored'/'failed' for the `status` key. It's a shame Travis doesn't bother to document all possible values -_- perl -MData::Dumper -MMojo::UserAgent -wlE 'say Dumper(Mojo::UserAgent->new( max_redirects => 5)->get("api.travis-ci.org/repos/gfldex/per...r/builds", { Accept => "application/vnd.travis-ci.2+json" })->res->json)' | grep 'state' | ||
mspo | is there an end of string match in regex? | ||
ZoffixW | OK, I'll revert your commit then. | 15:24 | |
mspo, $ | |||
mspo, $$ for end of line | |||
m: say so 'foo bar' ~~ /bar$/; say so 'foo bar' ~~ /foo$/; say so "foo bar\nber" ~~ /bar$/; say so "foo bar\nber" ~~ /bar$$/; | |||
camelia | rakudo-moar aefe2c: OUTPUT«TrueFalseFalseTrue» | ||
mspo | ZoffixW: $ isn't documented | 15:25 | |
ZoffixW | Yeah. Probably should be somewhere in docs.perl6.org/language/regexes#Anchors | 15:26 | |
15:26
lnrdo left
|
|||
mspo | m: say so 'foo bar\nber' ~~ /ber$/; | 15:26 | |
camelia | rakudo-moar aefe2c: OUTPUT«True» | ||
15:27
lnrdo joined
15:28
muraiki joined
|
|||
mspo | I can't seem to match the end ($) as a token | 15:29 | |
gfldex | m: class C is Str { method Str(){'abc'} }; put C.new; | ||
camelia | rakudo-moar aefe2c: OUTPUT«» | ||
gfldex | should it do that? ^^^ | ||
Skarsnik | not sure what put force to | ||
15:30
pmurias left
|
|||
gfldex | put calls .Str | 15:30 | |
leedo | gfldex: if i do C is Stringy, it works | 15:31 | |
15:31
lnrdo left
|
|||
dalek | href="https://modules.perl6.org:">modules.perl6.org: 93d4c48 | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/Source/GitHub.pm: Fix failing test |
15:32 | |
15:32
cuonglm joined
|
|||
mspo | is this valid? token theend { $ } | 15:33 | |
dalek | href="https://modules.perl6.org:">modules.perl6.org: 97d346d | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/PostProcessor/TravisCI.pm: [REBUILD] Revert 15d1a08d1d3fefddec0d19dd9429923927c8460a The `finished` status is an old Travis API. The new one does not appear to have such a value for `status` key |
||
15:35
travis-ci joined
|
|||
travis-ci | Doc build passed. Brock Wilcox 'Remove the reference to auto flattening based on sigils' | 15:35 | |
travis-ci.org/perl6/doc/builds/101605017 github.com/perl6/doc/commit/47424d8765c1 | |||
15:35
travis-ci left
|
|||
ZoffixW | mspo, you may need to redefine ws token | 15:37 | |
15:37
pmurias joined
15:39
cuonglm left
|
|||
mspo | or is there another way to say "I'm done parsing this string" in my action class | 15:39 | |
15:39
lnrdo joined
|
|||
ZoffixW | m: grammar Foo { token TOP { 'foo' <end> }; token end { $ }; }; say Foo.parse: "foo" | 15:40 | |
camelia | rakudo-moar aefe2c: OUTPUT«「foo」 end => 「」» | ||
ZoffixW | No idea. Grammars are still voodoo to me :) | ||
mspo | I'm starting to grok them a little | 15:41 | |
but this is a silly learning program and I really want to get it working ;) | |||
15:43
virtualsue left,
AndyDee joined
15:45
kst` is now known as kst
|
|||
awwaiid | since when does travis-ci post here on doc builds? | 15:45 | |
15:45
dj_goku joined
|
|||
FROGGS | awwaiid: since half a year or so | 15:46 | |
awwaiid | I must've just missed it before or maybe none of mine passed :) | ||
FROGGS | awwaiid: it is configured to be silent... only build errors and recoveries are posted | 15:47 | |
15:47
Ven joined
15:49
lnrdo_ joined
|
|||
Ven | o/ | 15:50 | |
15:50
vendethiel joined
15:51
sjoshi joined,
lnrdo left
15:54
sjoshi left
|
|||
Ven | timotimo: do you think SDL2 is stable enough to be used by my students in one of their projects? | 15:55 | |
FROGGS | Ven: I guess so | ||
Skarsnik | maybe missing some stuff? | ||
FROGGS | Ven: they know how to do stable stuff at least | ||
15:56
daotoad joined
|
|||
mspo | fyi github.com/perl6/doc/pull/341 | 15:57 | |
pmurias | Ven: \o | ||
dalek | c: 7cb83fb | (Zoffix Znet)++ | doc/Language/regexes.pod: Document $ regex anchor |
15:58 | |
ZoffixW | ehh | ||
mspo, great minds think alike I guess :P | |||
mspo | ZoffixW: I think it's important to put a multi line string in there | 15:59 | |
imho | |||
ZoffixW: to show the distinction of $$ | |||
16:00
daotoad left
|
|||
dalek | p: 59bb032 | (Pawel Murias)++ | src/vm/js/nqp-runtime/io.js: [js] Follow moar semantics on nqp::stat and ISLNK |
16:01 | |
p: 9eae708 | (Pawel Murias)++ | t/nqp/19-file-ops.t: Test nqp::stat_* ops more. |
|||
16:02
sjoshi joined,
sjoshi left
|
|||
[Coke] | travis-ci posts here on doc builds since less than a week ago. | 16:02 | |
dalek | c: 5b939ec | (Zoffix Znet)++ | doc/Language/regexes.pod: Explicilty mention ^ and $ anchor to string and not line. mspo++ |
16:03 | |
[Coke] | github.com/perl6/doc/commit/68ae004 | ||
16:05
psy_ joined
16:07
ZoffixW left,
Dee22 joined
16:08
AndyDee left
|
|||
llfourn | m: $_ .^= name # should set $_ to 'Any' but doesn't work :( | 16:09 | |
camelia | rakudo-moar aefe2c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UMkqVfsglmMalformed postfix call (only alphabetic methods may be detached)at /tmp/UMkqVfsglm:1------> 3$_ .7⏏5^= name # should set $_ to 'Any' but doe» | ||
FROGGS | .^= seems to by NYI | 16:10 | |
16:10
vendethiel left
|
|||
FROGGS | and might not be hard to implement | 16:11 | |
andreoss | m: multi foo([]) { say "[]" }; foo(my @x = 1..*); | 16:12 | |
camelia | rakudo-moar aefe2c: OUTPUT«[]» | ||
andreoss | is it a desirible behaviour? I see the ticket is resolved | 16:13 | |
16:14
sjohnson` is now known as sjohnson
|
|||
moritz | m: say (my @x = 1..*) ~~ {} | 16:14 | |
m: say (my @x = 1..*) ~~ [] | 16:15 | ||
camelia | rakudo-moar aefe2c: OUTPUT«Memory allocation failed; could not allocate 285920 bytes» | ||
rakudo-moar aefe2c: OUTPUT«Cannot .elems a lazy list in block <unit> at /tmp/1uRhG8ZUzN line 1Actually thrown at: in block <unit> at /tmp/1uRhG8ZUzN line 1» | |||
andreoss | m: (1..*).Capture.perl.say | ||
camelia | rakudo-moar aefe2c: OUTPUT«\(:max(Inf), :min(1))» | ||
andreoss | m: (my @x = 1..*).Capture.perl.say | 16:16 | |
camelia | rakudo-moar aefe2c: OUTPUT«Failure.new(exception => X::Cannot::Lazy.new(action => "create a Capture from", what => Any), backtrace => Backtrace.new)» | ||
mspo | okay I figure it out | 16:17 | |
16:19
xinming_ joined
|
|||
mspo | gist.github.com/msporleder/ae031c2829d58f5d7267 | 16:20 | |
16:20
itaipu joined
|
|||
llfourn | FROGGS: ah ok at least it's a thing :) | 16:20 | |
pmurias | how should nqp::stat + ISLNK work? should it follow the symlink and check if the target is a symlink? | 16:21 | |
16:22
xinming left
16:23
Sqirrel left
16:28
andreoss left
16:31
vendethiel joined
16:32
_nadim joined,
dwarring joined
16:34
virtualsue joined
16:37
Actualeyes left
16:43
xpen_ left
16:46
pmurias left
16:48
domidumont left
16:50
abraxxa left
16:52
vendethiel left,
LordDrako left,
FROGGS left,
pmurias joined
16:54
vendethiel joined,
lnrdo_ left,
Sqirrel joined
|
|||
gfldex | pmurias: it should not follow or it will get complicated quickly, symlinks can loop and there may be other pitfalls | 16:54 | |
16:54
lnrdo joined
16:55
lnrdo left,
lnrdo joined
16:56
zakharyas left
16:58
itaipu left
17:05
lnrdo left,
anand_ joined
|
|||
anand_ | hi | 17:05 | |
17:05
lnrdo joined
17:06
kjs_ joined
|
|||
anand_ | hi | 17:06 | |
17:06
rurban joined,
anand_ left
17:11
ZoffixW joined
|
|||
ZoffixW | Is it possible to extend the language by adding a method to say, Mu, and have it show up in all the things that inherit from Mu? | 17:11 | |
m: use MONKEY-TYPING; augment class Mu { method foo { say 42 }; }; my $x = 42; $x.foo | |||
camelia | rakudo-moar aefe2c: OUTPUT«Method 'foo' not found for invocant of class 'Int' in block <unit> at /tmp/FEX_JP3JL1 line 1» | ||
mspo | thanks for taking my patch, btw | ||
nine | ZoffixW: AFAIK subclasses do not notice changes to their base classes. | 17:12 | |
ZoffixW | aw :( | 17:13 | |
nine | ZoffixW: it's basically a cache invalidation problem | ||
ZoffixW | So much for my plan to take over the world. | ||
m: use MONKEY-TYPING; augment class Any { method foo { say 43 }; }; Int.^compose; my $x = 42; $x.foo | |||
camelia | rakudo-moar aefe2c: OUTPUT«43» | ||
ZoffixW | \o/ | 17:14 | |
stmuk_ wonders if the coming R* should warn JVM is broken | |||
17:14
Ven left
17:15
Dee22 left
|
|||
pmurias | how hard would it be to unbreak JVM? | 17:15 | |
17:16
vendethiel left
17:17
lnrdo left,
lnrdo_ joined,
kjs_ left
17:18
aigan left,
kjs_ joined,
aigan joined
17:19
vendethiel joined
|
|||
ilmari | r: say $*PERL.compiler.build-date | 17:20 | |
camelia | rakudo-moar aefe2c: OUTPUT«2016-01-11T14:29:31Z» | ||
..rakudo-jvm 6c0f93: OUTPUT«2015-11-02T17:18:59Z» | |||
17:22
rurban left
|
|||
[Coke] | pmurias: if we knew how hard it would it be, it would probably be done already. | 17:24 | |
but it hasn't been on par with moar since well before Christmas. | |||
so even if it we got it passing all the spec tests, it's still not 100%. | |||
(because the fudges vary) | |||
17:26
rurban joined
|
|||
TimToady | .botsnack | 17:31 | |
yoleaux | :D | ||
17:33
kjs_ left
|
|||
nine | TimToady: there's a new #perl6-release channel | 17:34 | |
TimToady | cool | ||
nine | irclog.perlgeek.de/perl6-release/2016-01-11 | ||
Juerd | I thought it was already released :) | 17:35 | |
[Coke] | Now we're trying to figure out how not to break stuff. | 17:36 | |
nine | The second release is actually the hardest one as we have to figure out how to handle versioning :) | ||
[Coke] | mmm | 17:37 | |
Juerd | Ah :) | ||
17:40
vendethiel left
17:41
lnrdo_ left,
lnrdo joined
|
|||
Skarsnik | My main question is what is the version if I say nothing? I really don't want that to be 6.c | 17:43 | |
PerlJam | Skarsnik: what would you like it to be? | 17:44 | |
Skarsnik: and why don't you want it to be 6.c? | |||
timotimo | .tell ven SDL2 is stable enough to be used by students. the SDL2::Raw module ... not necessarily :P | ||
yoleaux | 15:02Z <llfourn> timotimo: I put a rather long explanation on the ticket re why I expect $attr.package to return the role it was declared in. Enjoy! | ||
timotimo: I'll pass your message to ven. | |||
timotimo | .tell ven also, only an SDL2 package isn't enough to make great stuff; you'd ideally also have OpenGL bindings | 17:45 | |
yoleaux | timotimo: I'll pass your message to ven. | ||
Skarsnik | I mean that depend if 6.c include bugs of the chrismas release (even buggy roasty test) and especially since 6.c is still not complete for me (I think not everything is tested/documented) | 17:46 | |
17:47
captain-adequate joined
17:48
kjs_ joined
|
|||
nine | Skarsnik: those are certainly good thoughts for #perl6-release | 17:48 | |
17:49
Calibellus joined
|
|||
leont | m: say $^T | 17:50 | |
camelia | rakudo-moar aefe2c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nS5muYIOYNUnsupported use of $^T variable; in Perl 6 please use $*BASETIMEat /tmp/nS5muYIOYN:1------> 3say $^T7⏏5<EOL>» | ||
leont | m: say $*BASETIME | ||
camelia | rakudo-moar aefe2c: OUTPUT«Dynamic variable $*BASETIME not found in block <unit> at /tmp/Ld6DfGh5vL line 1Actually thrown at: in block <unit> at /tmp/Ld6DfGh5vL line 1» | ||
leont | Less helpful than imagined | ||
I guess I'll have to use BEGIN { now } or some such | |||
dalek | kudo/nom: 98ee2da | (David Warring)++ | src/core/CompUnit/PrecompilationRepository.pm: Ensure uniqueness of precomp dependences. Some background: I noticed duplicate entries appearing in some of the `lib/.precomp/*.rev-deps` when doing the following: ``` $ panda installdeps PDF $ panda look PDF .panda-work/1452532671_1$ time perl6 -I lib -e'use PDF::DAO::Doc' ``` With this patch, duplicates are removed from `*.rev-deps` and the second `use PDF::DAO::Doc` only takes about half the time. |
17:52 | |
kudo/nom: 42a5832 | niner++ | src/core/CompUnit/PrecompilationRepository.pm: Merge pull request #681 from dwarring/patch-2 Ensure uniqueness of precomp dependencies. |
|||
17:53
patrickz joined
17:54
dakkar left
|
|||
pmurias | [Coke]: do a lot of users use the JVM backend? I could try to fix some things if people are depending on it? | 17:56 | |
ZoffixW | Rakudobugged the $*BASETIME thing: rt.perl.org/Ticket/Display.html?id=127241 | 17:57 | |
17:59
pierre-vigier joined
18:01
espadrine left,
rindolf left
|
|||
ZoffixW | m: =begin Footesting things=end Foo say $=Foo | 18:01 | |
camelia | rakudo-moar aefe2c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WYDNe0BFeJPod variable $=Foo not yet implemented. Sorry. at /tmp/WYDNe0BFeJ:4------> 3 say $=Foo7⏏5<EOL>» | ||
ZoffixW | :( | ||
nine | Seems like nqp-jvm doesn't build | 18:02 | |
18:04
pmurias left,
pierre-vigier left
|
|||
dalek | p: b12d795 | (Dagfinn Ilmari Mannsåker)++ | / (2 files): Use skip() instead of ok(1, …) in t/nqp/19-file-ops.t The conversion from say("ok $_ # Skipped: …") for (…) to ok() left the test number in what is now the test description, which rapidly went out of sync with the real test numbers. Instead, add an optional count parameter to skip() and use that. |
18:04 | |
p: ab366b6 | jnthn++ | / (2 files): Merge pull request #272 from ilmari/fix-file-ops-skip Use skip() instead of ok(1, …) in t/nqp/19-file-ops.t |
|||
ilmari | jnthn++ # quick merge | 18:05 | |
2 minutes! | |||
18:06
_nadim left
18:07
vendethiel joined
|
|||
jnthn | ilmari: I even read it! ;) | 18:07 | |
yoleaux | 31 Dec 2015 07:54Z <TimToady> jnthn: We now do value loops using your Seq.from-loop routines, after some drama over doing block transforms outside of where @!BLOCKS is a valid way to look things up | ||
31 Dec 2015 09:37Z <lizmat> jnthn: feels to me that Supply.Promise should really be a promise on the Supplier to be kept in Supplier.done, so we wouldn't need a tap for it | |||
9 Jan 2016 07:02Z <DrForr> jnthn: Inconistency that probably is out of scope for Grammar::{Debugger,Tracer} - once the TOP rule has matched, if there is more text to be matched by the parse('foo') method it's not reported, so Grammar::Tracer could conceivably report a MATCH when the parse() still fails. | |||
jnthn | Wow, only 3 messages after 2-3 weeks away \o/ | ||
ilmari | jnthn: welcome back :) | 18:08 | |
18:08
itaipu joined
|
|||
El_Che | jnthn++ is back :) | 18:08 | |
jnthn | lizmat: No, .Promise should be callable on any Supply, not just those that come from a Supplier. We could mebbe add one to Supplier as a fast-path if it's actually common | ||
El_Che | jnthn: those 3 people are your mortal enemies don't letting you take the rest you needed :) | 18:09 | |
TimToady | mwahaha | ||
jnthn | .tell DrForr It's a common enough trap it's worth trying to help folks with; please file a github issue on the module for that if you didn't already :) | 18:10 | |
yoleaux | jnthn: I'll pass your message to DrForr. | ||
TimToady | actually, mine was just a report of something he doesn't have to worry about anymore :) | ||
DrForr | Will do. | ||
yoleaux | 18:10Z <jnthn> DrForr: It's a common enough trap it's worth trying to help folks with; please file a github issue on the module for that if you didn't already :) | ||
TimToady | well, except insofar as we need to unify the lexical lookups into one mechanism rather than two at some point | ||
jnthn | Geez, when I went for break it was all hugs and stuff here, and now it's all mortal enemies? :) | ||
El_Che | :) | 18:11 | |
awwaiid | jnthn: *hug* | ||
DrForr | It's there as #24. | ||
timotimo | Mortal Hugbat | ||
Juerd | jnthn: Deadly hugs :| | ||
timotimo | FINISH HUG ... hugtality! | ||
TimToady | huggable, help | ||
huggable | TimToady, I'm a factoid bot. See me my source at github.com/zoffixznet/perl6-IRC-Cl...in-Factoid | ||
awwaiid | hug you... TO DEATH | ||
gtodd | jnthn: you mean mortal sibling rivarly ? | ||
DrForr | Hugs not bugs. | 18:12 | |
El_Che | DrForr: keep submitting bugs until you get to #42. Those get always fixed :) | ||
jnthn | Oh no, I wrote a module with 24 bugs?! :P | ||
Juerd | DrForr: [email@hidden.address] :) | ||
18:12
bpmedley_ left
|
|||
DrForr | No, github. | 18:12 | |
jnthn | Damn, that means it has a userbase :P | ||
Juerd | githug | ||
TimToady | my thing has more bugs than yours :P | ||
well, except insofar as my thing is also your thing... | 18:13 | ||
El_Che | there is the love again | 18:14 | |
jnthn | Was gonna say, did I get fired... :) | ||
18:14
sftf left
|
|||
TimToady | yes, and the glaze came out pretty good this time :) | 18:14 | |
awwaiid | shiney | 18:15 | |
jnthn | Mmmm... | ||
jnthn is waiting for nom to be delivered | |||
18:15
FatalNIX joined
|
|||
FatalNIX | Hey guys | 18:15 | |
geekosaur | (there must be an internet law somewhere that says that if you want people to use your program, plant bugs in it) | 18:16 | |
FatalNIX | congratulations on the great news from november? :) | ||
TimToady | jnthn: for your future reference, there's now two new channels, #perl6-toolchain and #perl6-release, but they're logged, so no need to join in a hurry | ||
jnthn | What's #perl6-release for, ooc? | 18:17 | |
18:17
xinming_ is now known as xinming
|
|||
TimToady | figuring out the details of how to allow for progress and bug fixes without breaking anything :) | 18:17 | |
jnthn | Toolchain I can guess. I'm also awful at toolchain things, so I'm not sure if my joining would be a net positive/negative. :) | ||
Ah, #perl6-release I should probably join then :) | |||
FatalNIX | How is Perl6 on the JVM progressing? | 18:18 | |
TimToady | likelier to be interesting to you | ||
jnthn | We didn't spawn a compiler dev one yet? | ||
TimToady | not yet | ||
that I know of | |||
jnthn | (For the guts stuff that's not so guts as #moarvm...) | ||
OK | |||
TimToady | mabye it's a sekrit | ||
jnthn | ;) | ||
FatalNIX: It got less attention in to rush to get the Christmas release out the door. Now I expect it'll get a bit more attention again... | 18:19 | ||
FatalNIX | jnthn, I'm getting a bit eager to try some Mincraft modding with it at some point :) | 18:20 | |
ZoffixW | :o | ||
TimToady | FatalNIX: the JVM folk are starting to come back online after holidays, and surveying the damage :) | ||
FatalNIX | Minecraft* | ||
El_Che | TimToady: I hope you're now making a cheap pun on the slow startup of the jvm! | ||
:) | |||
18:22
patrickz left
|
|||
ZoffixW | m: say $*SPEC.catfile: 42, "\0" | 18:22 | |
camelia | rakudo-moar 42a583: OUTPUT«42/␀» | ||
18:23
patrickz joined
|
|||
dalek | kudo/language_versions: 793258e | (Stefan Seifert)++ | / (8 files): First attempt at adding a CORE.d setting |
18:24 | |
kudo/language_versions: aafd117 | (Stefan Seifert)++ | / (7 files): Bring back IO::CatPath and IO::CatHandle in 6.d nine@sphinx:~> perl6 -e 'IO::ArgFiles.new;' nine@sphinx:~> perl6 -e 'use v6.d; IO::ArgFiles.new;' Could not find symbol '&ArgFiles' |
|||
18:24
rindolf joined
|
|||
nine | now with JVM support (untested due to nqp-j breakage) | 18:24 | |
FatalNIX | I think that will be a nice little test today | 18:26 | |
to see if I can make an example hellow world mod with Perl6 for Minecraft. It looks like there is just enough support for it to work with maytbe a tiny bit of java glue | 18:27 | ||
18:27
kjs_ left,
lnrdo left
|
|||
FatalNIX | for the annotations | 18:27 | |
18:27
lnrdo joined
|
|||
FatalNIX | I wonder if the way jvm library functions are called have been syntatically improved though | 18:28 | |
ZoffixW | m: my ($x, $y) = $*SPEC.basename($*SPEC.catfile: 42, "foo.txt/"), $*SPEC.basename: "/foo/foo.txt/"; say [ ($x,), ($y,) ] | ||
camelia | rakudo-moar 42a583: OUTPUT«[(foo.txt) ()]» | ||
18:29
vendethiel left
|
|||
FatalNIX | in a sense that you don't need to deal with method descriptors | 18:29 | |
ZoffixW | m: class Foo {}; GLOBAL::.keys.say | ||
camelia | rakudo-moar 42a583: OUTPUT«(Foo)» | ||
ZoffixW | Is there a similar thing to get a list of all the built-in classes? | ||
18:30
bpmedley joined
|
|||
nine | m: CORE::.keys.say | 18:30 | |
camelia | rakudo-moar 42a583: OUTPUT«(SIGSEGV WhateverCode &FILETEST-X Slip &callframe Pair SIGHUP &flat PromiseStatus CurrentThreadScheduler &RETURN-LIST utf8 &MAKE-DIR-LIST &infix:<∖> StringyEnumeration Distribution &splice &postcircumfix:<{ }> &callsame &GATHER Backtrace PF_INET6 &sinh &…» | ||
ZoffixW | Thanks | ||
TimToady | m: SETTING::.keys.say | 18:31 | |
camelia | rakudo-moar 42a583: OUTPUT«(&pipe $=pod RESTRICTED-CLASS &symlink !UNIT_MARKER &UNLINK-PATH &SYMLINK-PATH &MAKE-DIR &rmdir EXPORT $_ $! PIO &CHANGE-DIRECTORY &chmod Proc NativeCall ©-FILE &rename &link ::?PACKAGE GLOBALish $¢ &shell $=finish &RENAME-PATH &REMOVE-DIR &CHMOD-PATH…» | ||
ZoffixW | m: .say for SETTING::.keys.sort.map: *.WHAT; | 18:35 | |
camelia | rakudo-moar 42a583: OUTPUT«Cannot call map(List: Whatever); none of these signatures match: ($: Hash \h, *%_) (\SELF: █; :$label, :$item, *%_) (HyperIterable:D $: █; :$label, *%_) in block <unit> at /tmp/uJTLb6mzoG line 1» | ||
18:35
yurivish_ left
|
|||
ZoffixW | m: .say for SETTING::.keys.sort.map: { $_.WHAT }; | 18:35 | |
camelia | rakudo-moar 42a583: OUTPUT«(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)(Str)…» | ||
nine | TimToady: SETTING:: will be somewhat reduced in a 6.d nested setting: > perl6 -e 'use v6.d; say ::SETTING.WHO.keys' | ||
ZoffixW | Hm. Is that a bug? | ||
nine | ($=pod !UNIT_MARKER EXPORT $_ $! &slurp ::?PACKAGE GLOBALish $¢ $=finish $/ $?PACKAGE) | ||
ZoffixW: I dare say a bug in your code ;) | 18:36 | ||
ZoffixW: that is: if you expect the keys to be something other than Str | |||
ZoffixW | nine, I mean why doesn't this work: m: .say for SETTING::.keys.sort.map: *.WHAT; | ||
nine | ZoffixW: you mean .values, not .keys | ||
ZoffixW | m: .say for SETTING::.values.sort.map: *.WHAT; | 18:37 | |
camelia | rakudo-moar 42a583: OUTPUT«Sub object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/ZWk3rrXIdf line 1Cannot call infix:<cmp>(RESTRICTED-CLASS, Sub); none of these signatures match: (\a, \b) (Real \a, Real \b) (Int:D \a, Int:D …» | ||
ZoffixW is confused | |||
nine | m: .say for SETTING::.values.sort.map: *.^name; | ||
camelia | rakudo-moar 42a583: OUTPUT«Sub object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/jcz24kLsUG line 1Cannot call infix:<cmp>(RESTRICTED-CLASS, Sub); none of these signatures match: (\a, \b) (Real \a, Real \b) (Int:D \a, Int:D …» | ||
ZoffixW | I figured { .map: *.WHAT } was equivalent to { .map: { $_.WHAT } } | ||
timotimo | i imagine .values.sort doesn't make much sense | ||
nine | m: .say for CORE::.values.map(*.^name).sort; | 18:38 | |
camelia | rakudo-moar 42a583: OUTPUT«AnyBacktraceBlob[uint8]BlockBlockBoolCompUnitComplexCurrentThreadSchedulerCursorDateDistributionDurationFileChangeEventFileChangeEventGrammarHyperSeqIOInstantIntAttrRefIntLexRefJSONPrettyAction…» | ||
nine | ZoffixW: github.com/rakudo/rakudo/blob/nom/...n.pm#L2408 for some real world code | 18:39 | |
ZoffixW | Thanks | 18:40 | |
I still think this is a bug and it should Just Work(tm): | |||
m: say (1, 2, 3).map: {$_} | |||
camelia | rakudo-moar 42a583: OUTPUT«(1 2 3)» | ||
ZoffixW | m: say (1, 2, 3).map: * | ||
camelia | rakudo-moar 42a583: OUTPUT«Cannot call map(List: Whatever); none of these signatures match: ($: Hash \h, *%_) (\SELF: █; :$label, :$item, *%_) (HyperIterable:D $: █; :$label, *%_) in block <unit> at /tmp/olYyRtIC58 line 1» | ||
timotimo | ZoffixW: we accept Whatever as a parameter in many cases already to do "special casing" | ||
maybe we should do that in this case, too | |||
FatalNIX | so much unicode | 18:41 | |
nine | But what's the point of map(*)? | ||
FatalNIX | so many squares and boxes on my screen | ||
ZoffixW | nine, that was just a short example. The real-world code would be: *.method-call | ||
PerlJam | FatalNIX: welcome to the future :) | ||
ZoffixW | *<hash-key> | ||
nine | ZoffixW: *.method-call does work | 18:42 | |
ZoffixW | m: say (1, 2, 3).map: *.Int | ||
camelia | rakudo-moar 42a583: OUTPUT«(1 2 3)» | ||
nine | m: say (1, 2, 3).map: *.Str | ||
camelia | rakudo-moar 42a583: OUTPUT«(1 2 3)» | ||
ZoffixW | :o | ||
m: say (1, 2, 3).map: *.WHAT | |||
camelia | rakudo-moar 42a583: OUTPUT«Cannot call map(List: Whatever); none of these signatures match: ($: Hash \h, *%_) (\SELF: █; :$label, :$item, *%_) (HyperIterable:D $: █; :$label, *%_) in block <unit> at /tmp/tjyUWBxZDr line 1» | ||
ZoffixW | Why doesn't this one work? | ||
timotimo | because .WHAT isn't a method call | ||
ZoffixW | Ah. What is it? | ||
timotimo | it's macro-ish and doesn't autocurry with * | ||
TimToady | a postfix pretending to be a method | 18:43 | |
ZoffixW | I see. Then nevermind. | ||
timotimo | m: say (1, 2, 3).map: *.DEFINITE | 18:44 | |
camelia | rakudo-moar 42a583: OUTPUT«Cannot call map(List: Bool); none of these signatures match: ($: Hash \h, *%_) (\SELF: █; :$label, :$item, *%_) (HyperIterable:D $: █; :$label, *%_) in block <unit> at /tmp/6UecYyjBQF line 1» | ||
timotimo | same in this case apparently | ||
TimToady | they tend to be in CAPS for that reason | ||
timotimo | yeah | ||
TimToady | some of them might be currently implemented as methods, but we don't promise that they will continue to be | 18:45 | |
18:47
TimToady left
|
|||
Hotkeys | Why are strange things not allowed as var names? | 18:47 | |
m: my 🐶 = 3; say 🐶 | 18:48 | ||
camelia | rakudo-moar 42a583: OUTPUT«5===SORRY!5=== Error while compiling /tmp/B7hoMynQU4Malformed myat /tmp/B7hoMynQU4:1------> 3my7⏏5 🐶 = 3; say 🐶» | ||
ZoffixW | .u 🐶 | ||
yoleaux | U+1F436 DOG FACE [So] (🐶) | ||
ZoffixW | .u Δ | ||
yoleaux | U+0394 GREEK CAPITAL LETTER DELTA [Lu] (Δ) | ||
ZoffixW | .u 9 | ||
yoleaux | U+0039 DIGIT NINE [Nd] (9) | ||
Hotkeys | It was the first strange thing j could find on my Android keyboard | ||
timotimo | Hotkeys: has to be a term | 18:49 | |
m: sub term:< > { state $ }; | |||
camelia | rakudo-moar 42a583: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MOnEGDGJSYNull operator is not allowedat /tmp/MOnEGDGJSY:1------> 3sub term:< >7⏏5 { state $ };» | ||
ZoffixW | As far as Strange Things go, they have to consist of "L" "N" unicode "types" (and maybe a few others I missed). "S" are symbols I think | ||
timotimo | did i put the dog face correctly? | ||
i can't see it :( | |||
ZoffixW | No | ||
m: sub term:<🐶> { state $ }; | 18:50 | ||
camelia | ( no output ) | ||
ZoffixW | m: sub term:<🐶> { state $ }; say 🐶 | ||
camelia | rakudo-moar 42a583: OUTPUT«(Any)» | ||
timotimo | would \dogface work? | 18:51 | |
as in: my \dogface? | |||
ZoffixW | Yes, it will | 18:52 | |
Hotkeys | How would I assign a value to the term | ||
I've not used terms | |||
18:53
firstdayonthejob joined
|
|||
Hotkeys | Not that I'll use dogface a lot | 18:53 | |
But I like to know :p | |||
ZoffixW | m: sub term:<🐶> is rw { state $ }; 🐶 = 42; say 🐶 | ||
camelia | rakudo-moar 42a583: OUTPUT«42» | ||
Hotkeys | Ah | ||
timotimo | in that case, there's no need for the term sub at all | ||
just have my \dogface := my $; or something like that | 18:54 | ||
ZoffixW | timotimo, Oh, I thought you meant literal "dogface". It'll work with the word, but not the char | ||
m: my \🐶 = 42; | |||
camelia | rakudo-moar 42a583: OUTPUT«5===SORRY!5=== Error while compiling /tmp/EpbFJdPahCMalformed myat /tmp/EpbFJdPahC:1------> 3my7⏏5 \🐶 = 42;» | ||
timotimo | ... | ||
ZoffixW | ? | ||
timotimo | i thought you'd have noticed i can't get that thing on my end by copy-pasting :P | ||
18:54
kjs_ joined
|
|||
ZoffixW | I'm not that smart :P | 18:54 | |
18:55
TimToady joined
|
|||
ZoffixW | m: sub term:<🐶🐶🐶🐶🐶🐶> { say "{&?ROUTINE.name.chars-7} puppies" }; 🐶🐶🐶🐶🐶🐶 | 18:56 | |
camelia | rakudo-moar 42a583: OUTPUT«6 puppies» | ||
Hotkeys | Lol | ||
Can that be done with an arbitrary number of puppies | 18:57 | ||
ZoffixW tries | |||
Hotkeys | :D | ||
I'm on the bus right now on my phone | |||
Otherwise I'd try | 18:58 | ||
timotimo | what is the name of that term? i only see blank space between the < > | ||
TimToady | try the log? should be 6 puppies | ||
18:58
gfldex left,
gfldex joined
|
|||
ZoffixW | m: sub term:<🐶> { 1 }; sub postfix:<🐶> { $^a+1 }; say "{🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶} puppies" | 18:59 | |
timotimo | ah, of course! | ||
camelia | rakudo-moar 42a583: OUTPUT«10 puppies» | ||
ZoffixW | m: sub term:<🐶> { 1 }; sub postfix:<🐶> { $^a+1 }; say "{🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶} puppies" | ||
camelia | rakudo-moar 42a583: OUTPUT«14 puppies» | ||
ZoffixW | :D | ||
Hotkeys | Yay | ||
timotimo | i don't really understand why it'd need the -7 in there | ||
TimToady | we need a milder term for mojibake that are the correct characters but overlapping | ||
ZoffixW | timotimo, 'term:<>' is 7 chars | ||
timotimo | oh, duh | ||
TimToady: maybe something involving subway trains? | 19:00 | ||
TimToady | .oO(mojigroping?) |
||
Hotkeys | mojitrain | ||
mojiplane | |||
mojiautomobile | |||
TimToady | mojisardines | ||
Hotkeys | mojimojo | 19:01 | |
19:01
vendethiel joined
|
|||
mspo | mojibake is google-able | 19:01 | |
TimToady | mojbiake | ||
Hotkeys | Lol | ||
mojibate | |||
:) | |||
19:02
lichtkind joined
|
|||
TimToady | mojijiji | 19:02 | |
mojjjji | 19:03 | ||
19:03
lnrdo left
19:05
domidumont joined
|
|||
ZoffixW | m: sub term:<🐶> {class C is Int {my $x = 1; method gist { "$x puppies" }; method boop {$x++; self}}}; sub postfix:<🐶> { $^a.boop }; say 🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶 | 19:05 | |
camelia | rakudo-moar 42a583: OUTPUT«11 puppies» | ||
ZoffixW | m: sub term:<🐶> {class C is Int {my $x = 1; method gist { "$x puppies" }; method boop {$x++; self}}}; sub postfix:<🐶> { $^a.boop }; say 🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶🐶 | ||
camelia | rakudo-moar 42a583: OUTPUT«22 puppies» | ||
ZoffixW | ^_^ completely encapsulated now :D | ||
TimToady | boop is not what puppies make | 19:06 | |
timotimo | you can still boop a puppy on the nose | ||
that counts as boop, doesn't it? | |||
TimToady only knows how to bap | |||
19:07
rurban left
|
|||
ZoffixW | m: class Foo{} | 19:07 | |
camelia | ( no output ) | ||
ZoffixW | m: class Foo is Int{} | ||
camelia | rakudo-moar 42a583: OUTPUT«5===SORRY!5=== Error while compiling /tmp/poMXu0zSBDCannot call trait_mod:<is>(Foo, Int, Hash); none of these signatures match: (Mu:U $child, Mu:U $parent) (Mu:U $child, :$DEPRECATED!) (Mu:U $type, :$rw!) (Mu:U $type, :$nativ…» | ||
19:07
lostinfog joined
|
|||
timotimo | didn't we have a helpful error about that at one point? | 19:07 | |
TimToady | I believe so | 19:08 | |
timotimo | maybe only for traits with names | ||
rather than objects named as traits | |||
m: class Foo is export{ } | |||
camelia | rakudo-moar 42a583: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4iiYrPelnJUnable to parse class definitionat /tmp/4iiYrPelnJ:1------> 3class Foo is export{ }7⏏5<EOL>» | ||
timotimo | :\ | ||
m: class Foo is export{} | |||
camelia | rakudo-moar 42a583: OUTPUT«5===SORRY!5=== Error while compiling /tmp/e4kgTlg1kbUnable to parse class definitionat /tmp/e4kgTlg1kb:1------> 3class Foo is export{}7⏏5<EOL>» | ||
ZoffixW | m: sub foo is export{} | 19:09 | |
camelia | rakudo-moar 42a583: OUTPUT«5===SORRY!5===Trait 'is export' needs whitespace before blockat /tmp/5tO_UVrVAD:1------> 3sub foo is export{}7⏏5<EOL>Missing block (apparently claimed by 'is export')at /tmp/5tO_UVrVAD:1------> 3sub foo is export{}7⏏5<EOL>…» | ||
TimToady | maybe that's what we're thinking of | 19:10 | |
could usefully be extended to packagey defs | |||
19:11
alpha123 joined
19:12
itaipu left
|
|||
[Coke] | .tell pmurias we have no stats on that sort of thing, but we've never had a java-based christmas. | 19:12 | |
yoleaux | [Coke]: I'll pass your message to pmurias. | ||
ZoffixW | Rakudobugged: rt.perl.org/Ticket/Display.html?id=127242 | 19:13 | |
19:14
itaipu joined
|
|||
TimToady | ZoffixW++ | 19:16 | |
bartolin_ | btw, it's only nqp commit 4b1236e535 which prevents building rakudo-j (as of 12 hours ago) | 19:19 | |
cmp irclog.perlgeek.de/perl6/2016-01-09#i_11857477 (and a few lines below) | |||
patrickz | Has Rakudo* Zef included? | 19:21 | |
Latest released R*. | 19:22 | ||
timotimo | i don't think so | ||
maybe the next one will | |||
19:22
adhoc left
19:23
_Vi left
19:24
ZoffixW left
19:26
kjs_ left
|
|||
leont | If I want to pass the equivalent of an arrayref through an API, how do I do that? Use a capture? | 19:28 | |
[Coke] | leont: we don't really have arrayrefs, per se, and ... what kind of API? | 19:29 | |
leont | pass it as an argument to a function, that calls a function(named arguments, doesn't look at it), etcetera until it arrives at the right callback | 19:30 | |
[Coke] | are you implying Nativecall in there somewhere? | 19:31 | |
leont | No | ||
[Coke] | m: my $a = 1,2,3; sub stuff ($arg) { say $arg.perl }; stuff($a); | 19:32 | |
camelia | rakudo-moar 42a583: OUTPUT«WARNINGS for /tmp/90005_FEhY:Useless use of constant integer 2 in sink context (lines 1, 1)Useless use of constant integer 3 in sink context (lines 1, 1)1» | ||
[Coke] | m: my $a = 1,2,3; sub stuff ($arg) { $arg.perl }; say stuff($a); | ||
camelia | rakudo-moar 42a583: OUTPUT«WARNINGS for /tmp/7dEh125jdr:Useless use of constant integer 2 in sink context (lines 1, 1)Useless use of constant integer 3 in sink context (lines 1, 1)1» | ||
[Coke] | arglebargle. | ||
19:32
cdg left
19:33
cdg joined
|
|||
[Coke] | my $a = <1 2 3>; sub stuff ($arg) { $arg.perl }; say stuff($a); # that's passing an arrayrefish thing. | 19:33 | |
so you want to be able from inside stuff to call some other function and pass $arg ? | |||
leont | I need to be able to change the array while at a distance | 19:34 | |
I could wrap it up in an object, but it feels like there should be an easier way | |||
Skarsnik | is rw? | 19:35 | |
leont | Skarsnik: it's not one level of functions, and some functions just blindly pass on *%args | ||
[Coke] | if you want to ignore the signatures of things being passed around, perhaps a $*DYNVAR is closer to what you need. | 19:36 | |
if you can work with signatures, this works: | 19:37 | ||
m: my @a = <1 2 3>; sub stuff (@arg) { @arg[2]="EEK" }; stuff(@a); say @a; | |||
camelia | rakudo-moar 42a583: OUTPUT«[1 2 EEK]» | ||
leont | Hmmm, a dynamic variable actually sounds like a good idea | ||
[Coke]: thanks! | |||
19:37
cdg left
|
|||
[Coke] | but that doesn't work with $a, because by default that's a List, not an Array | 19:37 | |
excellent. :) | 19:38 | ||
Skarsnik | duh, why did it let you write on the array? | 19:39 | |
timotimo | only the "outer" reference is read-only | ||
we don't have something smart for deep read-only-ness yet | |||
[Coke] | lizmat: saw your note on 127215 - we shoud write up a "how to report a bug" off perl6.org that includes things like --ll-exception | 19:40 | |
Skarsnik | That an issue for class probably x) | ||
19:41
kaare_ left
|
|||
Skarsnik | I had a question, is not supporting circular dependancy a bug? | 19:42 | |
19:42
kaare_ joined
|
|||
[Coke] | I believe that it was ruled notabug. | 19:42 | |
you can do it with stubs. | |||
Skarsnik | No | 19:43 | |
not accross two files | |||
if you have A.pm6 and B.pm6 that need each other you are screwed | |||
19:44
spider-mario joined
|
|||
Skarsnik | I had this issue with Discord, where Users have channels and Channels have a owner that are an user. and I don't even talk about Guild that an user is in and the Guild holding channel lists x) | 19:44 | |
19:45
zwu joined
|
|||
Skarsnik | I had to remove the type constraint of these attribute | 19:45 | |
[Coke] | right, everything with circular refs has to be in the same file. I thought that was not going to be relaxed, but I don't know if there was an RT about it. | 19:47 | |
You could keep the source separate, but combine them for building like we do in core. | 19:48 | ||
19:49
kjs_ joined,
skingsbu joined
|
|||
Skarsnik | I am not sure how it's compiled but having a stub should be enought? (that how it work in c++) | 19:49 | |
19:50
kaare_ left
|
|||
[Coke] | I just tried stubbing B in A and then using B; you get an error: | 19:50 | |
===SORRY!=== | |||
P6M Merging GLOBAL symbols failed: duplicate definition of symbol B | 19:51 | ||
but this works: | |||
m: class B { ... } ; class A { has B $b} ; class B { has A $a} | |||
camelia | ( no output ) | ||
19:51
kaare_ joined
|
|||
[Coke] | so you could have class A and B in separat files, but create a build.pm that cats them together. | 19:51 | |
(but with a better name) | 19:52 | ||
there might be a ticket in RT for this already, haven't checked. (for making it work with 2 files) | |||
Skarsnik | I should retry if having circular definition accross 3 file make rakudo go in a loop again x) | ||
skingsbu | do you think DBD::Oracle will be released for version 6? | ||
Skarsnik | 6.c is already out x) | 19:53 | |
dalek | p/flattenropes: 3af6e6f | (Jimmy Zhuo)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp: remove flattenropes |
||
skingsbu | killer | ||
Skarsnik | You can try the DBIish from abraxxa fork if you want to have Oracle | ||
TimToady | I thought DBIish already supported oracle? | ||
Skarsnik | He has a weird Rakudo bug before x-mas to finish (something with CArray[CArray[int8]]) | 19:54 | |
skingsbu | thanks for the info | 19:55 | |
19:59
Cabanossi left
20:00
kaare_ left
20:01
Cabanossi joined,
kaare_ joined,
yqt joined
|
|||
Skarsnik | [Coke], I think my question was more, should I RT this and it will not be discarded as "It's the spec/a choice so no a bug" | 20:02 | |
dalek | p: a161dbd | (Jimmy Zhuo)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp: remove graphs_s op |
20:05 | |
20:07
darutoko- left
|
|||
dalek | href="https://perl6.org:">perl6.org: b952596 | (Patrick Sebastian Zimmermann)++ | / (4 files): Give Zef some more prominence. |
20:08 | |
href="https://perl6.org:">perl6.org: 651721f | (Patrick Sebastian Zimmermann)++ | source/getting-started/index.html: Don't lie about Zef in R*. |
|||
href="https://perl6.org:">perl6.org: 86c5f74 | moritz++ | / (3 files): Merge pull request #45 from patzim/master Give Zef some more prominence |
|||
20:08
quester joined
|
|||
dalek | kudo/nom: 15b4a8f | lizmat++ | src/core/Exception.pm: Fix for RT #127241 |
20:10 | |
20:14
kjs_ left
|
|||
[Coke] | Skarsnik: ok. the question has come up before, I think it was not going to be fixed, but I have no data to back this up. can't hurt to open a ticket. | 20:18 | |
the person who might reject it first is basically still on hiatus, but will likely review it when he returns. | 20:19 | ||
20:19
_Vi joined
|
|||
Skarsnik | Ok, thx, I will do it tomorrow when I can start my perl6 env x) | 20:21 | |
20:23
quester left,
domidumont left
20:24
dha joined
|
|||
timotimo | nqp-m: say 1 ~~ Int | 20:24 | |
camelia | nqp-moarvm: OUTPUT«Confused at line 2, near "say 1 ~~ I" at gen/moar/stage2/NQPHLL.nqp:521 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:panic:105) from gen/moar/stage2/NQP.nqp:921 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/nqp.moarvm:comp_unit:872) from …» | 20:25 | |
timotimo | why didn't my code b0rk ... | ||
when i accidentally used ~~ | |||
20:28
adhoc joined
20:30
ELBeavers left
20:33
lnrdo joined
|
|||
moritz | nqp-m: say(1 ~~ Int) | 20:34 | |
camelia | nqp-moarvm: OUTPUT«0» | ||
moritz | timotimo: nqp actually implements ~~ (though I think mostly for regexes) | 20:35 | |
20:35
ELBeavers joined
|
|||
timotimo | righto | 20:35 | |
nine | Who is Patrick Sebastian Zimmermann? | 20:36 | |
bartolin_ guesses patrickz | 20:39 | ||
patrickz | that's me | ||
20:40
jameslenz left
|
|||
nine | patrickz: are you sure zef is ready for prime time? | 20:41 | |
[DEBUG] Installing Inline::Perl5:/home/nine/.zef/store/Inline-Perl5.git to inst#/home/nine/rakudo/install/share/perl6/site | |||
nine@sphinx:~> perl6 -e 'use Inline::Perl5;' | |||
===SORRY!=== Could not find Inline::Perl5 in: | |||
patrickz | I checked back with ugexe. | ||
20:46
_nadim joined
20:47
patrickz left
20:49
patrickz joined
20:54
lnrdo left,
sena_kun joined
|
|||
RabidGravy | ooh that's annoying creating an accessor with a Proxy shags up setting from the constructor :( | 20:54 | |
20:55
cdg_ joined
20:58
hankache joined
|
|||
hankache | hola #perl6 | 21:00 | |
Skarsnik | hello | ||
21:00
zwu left
21:02
wollmers joined
|
|||
dalek | kudo/nom: f90282b | lizmat++ | src/core/ (4 files): Move FILETEST-F to Rakudo::Internals Also, no longer booleanify for internal usage. |
21:03 | |
wollmers | Where does Panda install modules and how can I set the lib path in P6? | 21:04 | |
Under rakudobrew. | 21:05 | ||
21:06
AK___ joined
|
|||
nine | m: say CompUnit::RepositoryRegistry.repository-for-name("site"); | 21:06 | |
camelia | rakudo-moar 15b4a8: OUTPUT«inst#/home/camelia/rakudo-m-inst-1/share/perl6/site» | ||
nine | wollmers: ^^^ | ||
with fallback to "home" if the user doesn't have write permission on "site" | |||
21:07
AndyDee joined
|
|||
wollmers | nine: I didn't find the module name in the file tree. Using UUIDs is not diagnostic friendly. | 21:08 | |
leont has serialized a regex using .perl, how can I turn it into a regex again? | 21:11 | ||
21:12
petercommand left
|
|||
mspo | leont: what does it look like? | 21:12 | |
leont | "/.*\\.foo/" | 21:13 | |
patrickz | nine: Tried Inline::Perl5 here as well, fails. Might just as well revert that commit to perl6.org until this is solved. Do you have a commit bit? | ||
mspo | leont: how is it different from the original? | 21:14 | |
moritz | leont: EVAL | 21:15 | |
[Coke] wonders how much one could abuse IP5 and p6's concurrency to get concurrency around p5 cpan modules. (I'm guessing not far) | |||
er, s/far/much/ | |||
leont | Eval? :-/ | 21:16 | |
patrickz | ugexe: paste.scsys.co.uk/504257 | ||
leont | Given only one interpreter, not very far | ||
But if you'd start multiple (no idea if that's possible) you'd be doing something similar to ithreads | |||
dalek | href="https://perl6.org:">perl6.org: dcb768c | (Stefan Seifert)++ | / (3 files): Revert "Give Zef some more prominence." This reverts commit b9525960a23835b69e6230b8fbcf171a7fac6923. zef doesn't properly install Inline::Perl5 and probably other dists that compile native libraries during their build. So pull back on the publicity until this is fixed. |
21:17 | |
patrickz | nine++ | ||
wollmers | nine: say CompUnit::RepositoryRegistry.repository-for-name("site"); inst#/Users/helmut/.rakudobrew/moar-v6.c/install/share/perl6/site | ||
nine: use LCS::All; Could not find LCS::All in: /Users/helmut/.perl6/2015.12 /Users/helmut/.rakudobrew/moar-v6.c/install/share/perl6/site | |||
nine: ==> Installing LCS::All LCS::All:ver<0.1.0>:auth<Helmut Wollmersdorfer>:api<> already installed | 21:18 | ||
dalek | kudo/nom: 6803444 | lizmat++ | src/core/ (4 files): Move FILETEST-S to Rakudo::Internals Also, no longer box the returned native int |
||
21:19
petercommand joined
|
|||
RabidGravy | does LCS::All have a proper provides in the META.info? | 21:19 | |
nine | wollmers: both rakudo 2015.12 and panda at that time had a couple of issues. I suggest upgrading to current git versions of both until we get a release out with the fixes. | ||
Oh and LCS::All is indeed broken! | 21:20 | ||
wollmers: does "use LCS::BV;" work? | |||
wollmers | RabidGravy: Oh, copy & paste typo. | ||
RabidGravy: Yes, use LCS::BV works, but is another module. | 21:22 | ||
21:24
kaare_ left,
rurban joined,
Psyche^_ left
21:27
hankache left,
Psyche^ joined
21:30
virtualsue left
|
|||
dalek | kudo/nom: 18e981c | lizmat++ | src/core/ (4 files): Move FILETEST-L to Rakudo::Internals Also, no longer booleanify for internal usage. |
21:35 | |
21:36
espadrine joined
21:40
AndyDee left
21:43
AK___ left
21:45
linuxuser9000 joined
|
|||
wollmers | So panda cannot update or remove a broken module, even --force doesn't work. | 21:47 | |
21:48
skingsbu left
|
|||
mspo | I'm not groking the zef/panda situation | 21:48 | |
dalek | kudo/nom: 42191ca | lizmat++ | src/core/ (4 files): Move FILETEST-R to Rakudo::Internals Also, no longer booleanify for internal usage. |
||
21:50
sno left
21:53
jervo left,
jervo joined
21:54
_nadim left,
rurban left
|
|||
wollmers | reinstalling from scratch:-( | 21:56 | |
nine | wollmers: panda update | ||
otherwise panda will use outdated meta data | |||
wollmers | nine: I did panda update | 21:57 | |
nine | What makes you say that it cannot update the module? | 21:58 | |
21:58
skids left
|
|||
wollmers | nine: got already installed. panda info showed old version and wrong provides, even after --force. | 21:59 | |
dalek | kudo/query_repos: be32628 | (Stefan Seifert)++ | src/core/CompUnit/Repository (3 files): CompUnit::Repository::resolve New method to ask the repository chain if a module matching the given DependencySpecification is available. This could for example be used by panda to avoid trying to install an already installed module. |
22:01 | |
kudo/query_repos: 9932802 | (Stefan Seifert)++ | src/core/CompUnit/ (3 files): Centralize more precompilation code |
|||
kudo/query_repos: f794ad8 | (Stefan Seifert)++ | src/core/CompUnit/Repository/Installation.pm: CompUnit::Repository::Installation::uninstall |
|||
wollmers | nine: BTW, the need of update is inconvenient, not usual in cpan or cpanm. | ||
nine | wollmers: panda info shows the meta data it downloaded from the ecosystem, not what's installed | 22:02 | |
wollmers: also the ecosystem takes a while to pick up changes pushed to a dist's git repository | |||
That may be why panda update did not help | |||
Also if you think that sucks, please just fix it :) Panda's code is not that complicated. | 22:03 | ||
dalek | kudo/nom: fe726c0 | lizmat++ | src/core/ (4 files): Move FILETEST-W to Rakudo::Internals Also, no longer booleanify for internal usage. |
||
wollmers | nine: Then, what's the way to use a local module? Should panda-install work with sane meta? | 22:05 | |
sena_kun | Hi, guys. I wrote a module with direct bindings to bzip2 library. Since it's needed to write nicer high-level API I would like to add it to ecosystem. Is anyone can help me with this? | ||
wollmers | nine: What's "a while"? Minutes, hours? | ||
nine | Don't know the exact timing. | 22:06 | |
panda install . should do the right thing | |||
hoelzro | sena_kun: you can fork the ecosystem project, and add the raw URL for your META6.json to META.list | ||
then submit a PR against upstream, and one of us will happily merge it =) | |||
sena_kun | hoelzro, and just send PR? Okay, thank you. | 22:07 | |
hoelzro | I think it would be interesting if panda were installing a dist and detected if that dist's META6.json were newer than its local projects.json | ||
if so, fetch a new projects.json | |||
22:08
TEttinger joined
|
|||
nine | hoelzro: absolutely! | 22:08 | |
hoelzro | granted, you probably can't rely on the filesystem mtime for the change time of META6.json, because panda just fetched it =/ | ||
*but* | |||
nine | And also _always_ use the dist's META.info during installation instead of the possibly outdated ecosystem data | ||
hoelzro | you could ask Git, since a vast majority of modules are installed through git repos | ||
mhmm | |||
El_Che | sena_kun: a nice small detail: enable travis support on github for the distribution | 22:09 | |
nine | I almost started doing that on Saturday but ended up fixing two other issues instead | ||
hoelzro | nine: I could possibly handle that | 22:10 | |
sena_kun | El_Che, thanks, I'll add it then. | ||
22:12
rindolf left
22:13
donaldh joined,
LordDrako joined
|
|||
LordDrako | hi guys | 22:13 | |
what is the nicest way to get a normal perl array into a typed CArray[...]? | |||
I tried my $foo = CArray[Str].new(@orig); but this does not work (constructor does not support that parameter) | 22:14 | ||
sena_kun | LordDrako, you should manually copy each element. | ||
LordDrako | :O | ||
sena_kun | Give me a secund... | ||
*second | |||
$myarray[$_] = $blob_string[$_] for ^$blob_string.elems; | 22:15 | ||
As a one-liner. | 22:16 | ||
dha | Ew. That's really the best way to do that? | ||
sena_kun | You also should encode string into blog firstly. Like "my Blob $blob = $text.encode". It isn't? | ||
Skarsnik | For now, yes | ||
PerlJam | I don't think there's a better way yet | ||
timotimo | we sadly can't just $my-c-array.list, because it doesn't know about its elem count | ||
sena_kun | s/blog/blob | 22:17 | |
dalek | kudo/nom: 43b5642 | lizmat++ | src/core/ (4 files): Move FILETEST-RW to Rakudo::Internals |
||
Skarsnik | But I think a CArray.copy or something should be that hard to have | ||
timotimo | aye | 22:18 | |
it'll end up running a loop a little bit like that internalyl | |||
but optimized | |||
and at some point it'll be able to memcpy | |||
Zoffix | m: say $*BASETIME | 22:21 | |
camelia | rakudo-moar fe726c: OUTPUT«Dynamic variable $*BASETIME not found in block <unit> at /tmp/spXfKoM07I line 1Actually thrown at: in block <unit> at /tmp/spXfKoM07I line 1» | ||
Zoffix | m: say $*INITTIME | 22:22 | |
camelia | rakudo-moar fe726c: OUTPUT«Instant:1452550988.047196» | ||
Zoffix | lizmat++ | ||
donaldh | does perl6-debug work for anyone? | ||
timotimo | i don't think so :( | 22:23 | |
donaldh | When I run perl6-debug-m it spawns many moar processes for precompilation and then hangs | ||
timotimo | oh | 22:24 | |
*oh* | |||
that's not the failure mode i've expected | |||
awwaiid | Is there an existing equivalent to the elixir |> operator? I think it requires a macro and some design to implement | ||
22:24
dha left
|
|||
donaldh | precomp seems to break most things for me | 22:24 | |
timotimo | awwaiid: i have no idea what that does | ||
awwaiid | left |> right(arg1, arg2) ---> right(left, arg2, arg2); it takes the result of the left side and feeds it in as the first param on the right side, they call it the "pipe" operator and use it to build pipelines of functions passing along and transforming a data blob | 22:26 | |
a very functional-programming pattern that | |||
you could kinda do it by hand: sub infix:«|>»($result, &f) { &f($result) }; "5" |> say.assuming("hello") | 22:27 | ||
(though it would go at the end, but that's probably ok since map and grep and other pipeline thingies tend to take their data input on the end) | 22:28 | ||
I feel like there was a pipeline operator in p6, but I can't remember it now and don't see it on doc | |||
nine | donaldh: what other things does precomp break? | 22:29 | |
leont | ===> | ||
donaldh | nine: using a module from a module | ||
nine | donaldh: can you be more specific? That is very well known to work. Otherwise e.g. panda could not do anything. | 22:30 | |
donaldh | nine: using Grammar::Debugger (probably for that reason) | ||
nine | I think the debugger's problem is that it tries to precompile a module using $*EXECUTABLE which is perl6-debug-m which then tries to precompile a modules using $*EXECUTABLE... | 22:31 | |
donaldh: that was fixed on Friday | |||
timotimo | it's actually ==> and ==>> | ||
m: (1, 2, 3, 4) ==> map { $_ + 1 } ==> say | |||
camelia | rakudo-moar 43b564: OUTPUT«5===SORRY!5===Argument to "say" seems to be malformedat /tmp/2K8UP7MlZe:1------> 3(1, 2, 3, 4) ==> map { $_ + 1 } ==> say7⏏5<EOL>Other potential difficulties: Unsupported use of bare "say"; in Perl 6 please use .say if you meant…» | ||
dalek | kudo/nom: 4e78adc | lizmat++ | src/core/ (4 files): Move FILETEST-X to Rakudo::Internals Also, no longer booleanify for internal usage. |
||
timotimo | i don't actually know how to feed. | ||
donaldh | nine: does precomp work with JVM ? | 22:32 | |
nine | donaldh: rakudo JVM doesn't work at all at the moment, so I couldn't tell. | ||
leont | timotimo: the end needs to be something listy, AFAIK | ||
timotimo | hmm | 22:33 | |
m: (1, 2, 3, 4) ==> map { $_ + 1 } | |||
camelia | ( no output ) | ||
timotimo | that also works apparently | ||
m: (1, 2, 3, 4) ==> map { $_ + 1 } ==> say() | |||
awwaiid | fancy | ||
camelia | rakudo-moar 43b564: OUTPUT«(2 3 4 5)» | ||
timotimo | there we go | ||
awwaiid | awesome! | ||
22:34
muraiki left
|
|||
masak | 'night, #perl6 | 22:34 | |
lizmat | gnight masak | ||
nine | donaldh: the debugger could work if you do perl6 -e 'use Debugger::UI::CommandLine' once before using it | 22:35 | |
donaldh | nine: I installed Debugger::UI::CommandLine so so why does precomp need to run ? | 22:36 | |
timotimo | donaldh: i don't think installation directly causes precompilation at the moment? | ||
donaldh | WAT? | 22:37 | |
But panda compiles everything in the install location | |||
nine | We precompile but cannot use those precompiled files in most situations | 22:38 | |
Discussions on how to fix that are ongoing in #perl6-toolchain | |||
I have a trivial patch fixing the debugger issue | |||
dalek | kudo/nom: 00431fb | (Stefan Seifert)++ | src/core/CompUnit/PrecompilationRepository.pm: Fix perl6-debug running into a precompilation endless loop perl6-debug tries to load Debugger::UI::CommandLine which will be precompiled on first use with $*EXECUTABLE which is perl6-debug which tries to load ... Fixed by detecting that we're using the perl6-debug executable and using perl6 instead. |
22:40 | |
nine | Good night | ||
22:40
LordDrako left
22:41
sena_kun left
|
|||
wollmers | panda install . works, but isn't documented. | 22:41 | |
donaldh | it's called perl6-debug-m | ||
oh well | |||
lizmat | good night, nine++ | ||
Zoffix | wollmers, would you please open an Issue on github.com/tadzik/panda ? | ||
wollmers | Zoffix: still done. | 22:42 | |
Zoffix | Thanks | ||
22:43
pmurias joined
22:46
sena_kun joined
|
|||
dalek | kudo/nom: a9c8fe4 | lizmat++ | src/core/ (4 files): Move FILETEST-RWX to Rakudo::Internals |
22:49 | |
22:59
cpage_ joined
23:00
kid51 joined,
lnrdo joined
23:05
lnrdo left
|
|||
dalek | p: a3dadfc | (Pawel Murias)++ | t/nqp/19-file-ops.t: Correct the amount of skipped tests. |
23:07 | |
23:07
sno joined
|
|||
dalek | kudo/nom: 0c4db8d | lizmat++ | src/core/ (4 files): Move FILETEST-Z to Rakudo::Internals |
23:08 | |
lizmat | good night, #perl6! | 23:09 | |
23:09
RabidGravy left,
vendethiel left
23:15
skids joined
23:19
pmurias left
23:22
AndyDee joined
23:27
pmurias joined
23:29
linuxuser9000 left
23:33
geraud joined
23:43
lichtkind left
23:47
ribasushi left
|
|||
dalek | osystem: a791bd5 | Altai-man++ | META.list: Add Compress::Bzip2::Raw. |
23:47 | |
osystem: e464858 | (Zoffix Znet)++ | META.list: Merge pull request #120 from Altai-man/master Add Compress::Bzip2::Raw: github.com/Altai-man/perl6-Compress-Bzip2-Raw |
|||
23:48
wollmers left
|
|||
Zoffix | DrForr, you got a PR on Readline: github.com/drforr/perl6-readline/pull/6 | 23:50 | |
sena_kun | Thanks for approving. Good night to everyone. | ||
Zoffix | nigh | ||
23:50
sena_kun left
23:51
patrickz left
|
|||
Zoffix | Oh boy. I was just about to be grumpy about all the modules in ecosystem with broken JSON in META.... when I realize one of 'em is mine! :D | 23:54 |