»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by masak on 12 May 2015. |
|||
dha | All right, I'm probably going to run out of internet shortly. Time to take a break, methinks. | 00:06 | |
00:06
dha left
|
|||
[Coke] | dha++ | 00:07 | |
00:12
huf left
00:19
captain-adequate left
|
|||
TimToady | m: constant term:<½> = 1/2; say ½ | 00:21 | |
camelia | rakudo-moar 7b5256: OUTPUT«0.5» | ||
00:21
vendethiel left
|
|||
TimToady | AlexDaniel: ^^^ | 00:21 | |
TEttinger | nice! | 00:22 | |
TimToady | thing is, ½ is not alphanumeric | ||
m: say '½' ~~ /\w/ | |||
camelia | rakudo-moar 7b5256: OUTPUT«Nil» | ||
TimToady | and only alphanumerics get treated as identifier fodder | ||
so any other term has to use the term:<> notation, just as you'd use infix:<> and such | 00:23 | ||
timotimo | m: my ${a} = 5 | 00:27 | |
camelia | rakudo-moar 7b5256: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fXNPEaD97kUndeclared routine: a used at line 1» | ||
timotimo | TimToady: was it you who recently changed this? we have a test that expects that to throw X::Obsolete | 00:28 | |
for RT #112470 | |||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=112470 | ||
timotimo | std: my ${a} = 5 | 00:29 | |
camelia | std 28329a7: OUTPUT«5===SORRY!5===Undeclared routine: 'a' used at line 1Check failedFAILED 00:00 138m» | ||
timotimo | well, that ticket is "STD doesn't accept this, but rakudo does" | ||
and now STD accepts it and rakudo does as well; so maybe that ticket should be re-opened with the new intended behavior and the test removed from the spec test suite? | |||
AlexDaniel | TimToady: thanks | 00:38 | |
00:38
zxvcd joined
00:39
zxvcd left
|
|||
AlexDaniel | m: constant xxx = 1/2; say xxx; | 00:40 | |
camelia | rakudo-moar 7b5256: OUTPUT«0.5» | ||
AlexDaniel | m: constant term:<xxx> = 1/2; say xxx; | ||
camelia | rakudo-moar 7b5256: OUTPUT«0.5» | ||
AlexDaniel | any reason why second variant takes 0.5s more to run? | ||
00:40
lolisa left
|
|||
timotimo | how many runs have you tried? | 00:47 | |
to de-noise the measurement i mean | 00:48 | ||
TimToady | takes about .15 more seconds here | ||
it's probably the overhead of constructing a new lexer for the new language | |||
one of the many things that can probably be optimized some to make the parser faster | 00:50 | ||
timotimo | feel free to put such an optimization in ;) | 00:53 | |
timotimo is probably going to bed now | |||
AlexDaniel | timotimo: 0.3s vs 0.8s, I'm not sure that there is any need to denoise anything | 00:57 | |
one code is clearly slower than the other one... | |||
00:57
VinceDee joined
00:59
jack_rabbit joined
01:02
laouji joined
01:04
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:05
BenGoldberg joined
01:09
atroxaper joined
01:14
atroxaper left
|
|||
tony-o | AlexDaniel: how many iterations did you do to get those numbers? | 01:17 | |
AlexDaniel | tony-o: you want me to do a scientific reseach on that subject when the problem is so clearly present? | 01:21 | |
tony-o: or do you get the opposite result? | |||
tony-o | its not scientific research its basic benchmarking | 01:23 | |
and yes, i think testing something dealing with time more than n=1 is a good idea | 01:24 | ||
01:24
telex left
|
|||
AlexDaniel | I ran it a couple fo times, but ok, hold on a sec | 01:25 | |
ugexe | scientific method 187 mutha flukka | ||
tony-o | lol | ||
01:26
telex joined
01:34
dayangkun joined,
n0vacane joined,
n0vacane left
|
|||
AlexDaniel | tony-o: 0.7544 and 0.2947, average on 105 runs excluding 5 preliminary runs | 01:37 | |
yes, I have some background processes running, sorry | |||
01:38
vendethiel joined
|
|||
tony-o | what about jvm | 01:43 | |
AlexDaniel | good question | 01:44 | |
actually, I have never tried to run it on jvm ever | 01:45 | ||
by the way, I messed the second number a little bit, here is a true one: 0.281 | |||
ugexe | it only took 9 hours but i was able to finally dance around moarvm on windows problem printing "\r" | 01:46 | |
unfortunately i was unable to discover the root of the problem in moarvm itself :( | 01:47 | ||
AlexDaniel | tony-o: gist.github.com/AlexDaniel/7fce54c1e6d93b4d424d | 01:53 | |
AlexDaniel shrugs | |||
01:59
yeahnoob joined
|
|||
AlexDaniel | so unless somebody can understand what is being wrong with building jvm, I can't really measure it | 02:00 | |
02:00
vendethiel left
|
|||
AlexDaniel | actually, I'm pretty sure that I was able to use rakudo on top of jvm 6 months ago | 02:01 | |
so perhaps something is broken now | |||
02:02
huf joined
|
|||
AlexDaniel | Unhandled exception: java.lang.NoClassDefFoundError: Could not initialize class java.lang.Shutdown | 02:04 | |
does it even exist in java 8? | |||
02:05
noganex joined
|
|||
AlexDaniel | oh look: gist.github.com/tony-o/ca71572bc9fe0e25f28d | 02:06 | |
02:08
noganex_ left
02:20
[particle] left
02:26
govt joined
02:27
govt left,
govt joined,
govt left,
govt joined
02:29
tinyblak joined
02:38
rmgk_ joined,
rmgk is now known as Guest71609,
Guest71609 left,
rmgk_ is now known as rmgk
02:48
coffee` left
|
|||
kanl | gurus, would multi-threaded lock-free r/w access to a weakly mutable array, or parcel be safe, given that each thread only accesses one unique corresponding element in the array/parcel? i.e. if i were to have 5 processes running with Proc::Async, each stdout tap catenates to its own correponding string in an array. can i safely do so without race? | 02:50 | |
02:51
vendethiel joined
02:59
AlexDaniel left
03:00
[particle] joined,
JimmyZ_ joined
03:03
[particle]1 joined
03:04
[particle] left
|
|||
skids | kanl: the VM gurus all likely all asleep. | 03:13 | |
03:13
vendethiel left,
[particle] joined
|
|||
kanl | no worries, i can wait :) | 03:14 | |
skids | As a wild guess I would suspect that would be OK if the threads bound directly to the elements. | 03:15 | |
like: | |||
m: my $a = [1,2,3]; my $b := $a[0]; $b++; $a.say; | |||
camelia | rakudo-moar 7b5256: OUTPUT«2 2 3» | ||
03:15
[particle]1 left
03:16
bin_005 joined
|
|||
ugexe | why not use a channel | 03:18 | |
its made for that type of stuff afterall | |||
kanl | yes, i'd have to use channel(s) anyway, even for catentating the output. since stdout/stderr is not tapped in its entirety, like say for example if you run a 'ps' command, stdout tap breaks the output ad-hoc, i'd have to piece it together with a channel/supply inside the tap. | 03:20 | |
unfortunately, no documentation on this behavior. i found out through trial and error | 03:21 | ||
ugexe | ive not run into that. can you explain in more detail? | 03:22 | |
i generally just create a class with an attribute i write to for each process | 03:23 | ||
github.com/ugexe/zef/blob/master/l...lt.pm6#L28 | |||
kanl | i'm not saying it's a problem, it may be so by design, but that's the behavior i observed. | ||
ugexe | where i run 5-10 processes at a time | ||
03:24
[particle]1 joined
|
|||
ugexe | and get lots of stdout quickly | 03:24 | |
03:25
[particle] left
|
|||
ugexe | is it actually breaking the output, or is it just not printing it to the screen correctly? | 03:25 | |
kanl | looking at your code, i'd worry about interleafing output. | 03:26 | |
since tap does not guarantee order | |||
ugexe | order is always correct | 03:27 | |
kanl | the behavior i observed is that stdout.tap certainly does not break by newline | 03:28 | |
and stderr/stdout may be interleaved | |||
perhaps you've been lucky with the command you run. but not all commands guarantee stdout/stderr output in an ordered fashion. | 03:29 | ||
ugexe | well i run 10+ commands per test run, of which i do 20-50 a day | 03:30 | |
not that you are incorrect. but i would also need to be extremely lucky | |||
kanl | if tap does what documentation says it does, then your code doesn't look safe, just saying :) | 03:31 | |
ugexe | hopefully someone tells whoever merged it into panda | 03:32 | |
kanl | mind you though, i basically just fell off the proverbial turnip truck, in terms of p6 :) so i | 03:33 | |
i may not know what i'm saying :) | |||
03:33
[particle] joined
|
|||
kanl | from what i read in the docs, 'act' guarantees contention free, but tap does not. | 03:35 | |
03:35
[particle]1 left
|
|||
ugexe | there are some strange bugs with newlines which could have something to do with it | 03:35 | |
kanl | that perhaps is by design, since programs don't necessarily break up output by newline. | 03:36 | |
ugexe | its not by design | 03:37 | |
maybe its fixed now. i cant find the comment in the moar repo :) | 03:41 | ||
03:41
atroxaper joined
03:45
geekosaur left
03:47
geekosaur joined
03:48
tinyblak_ joined
03:51
tinyblak left,
bin_005 left
03:53
JimmyZ_ left
04:00
tinyblak_ left
04:01
tinyblak joined
04:05
tinyblak left
|
|||
kanl | ugexe: thanks much. encapsulation with class would indeed be a workaround for my problem. but i'd still like to know for sure :) | 04:05 | |
04:10
diakopter joined,
lsm-desktop joined
|
|||
diakopter | heya, t/04-nativecall/02-simple-args.t and t/04-nativecall/03-simple-returns.t fail on my USB Armory build | 04:10 | |
also t/04-nativecall/13-union.t | 04:12 | ||
summary report: gist.github.com/diakopter/a280c203bc1bbc871fd8 | 04:13 | ||
fyi, uname -a says Linux usbarmory 4.0.2 #2 PREEMPT Thu May 7 15:59:08 CEST 2015 armv7l GNU/Linux | 04:14 | ||
04:15
vendethiel joined
04:20
tinyblak joined
|
|||
atroxaper | Is there something like @list.contains('a'); ? | 04:28 | |
'a' ~~ any(@list) | 04:30 | ||
04:30
BenGoldberg left
04:32
raiph left
|
|||
dalek | Iish: b8260de | hoelzro++ | t/99-common.pl6: Verify that a query with no results has a falsy value |
04:33 | |
Iish: fbe5826 | hoelzro++ | lib/DBDish/Pg.pm6: Return an empty Parcel if we have no results in Pg Otherwise, fetchrow-hash ends up being a non-falsy value |
|||
Iish: 03738e3 | hoelzro++ | t/99-common.pl6: Make sure exhausted statements have falsy results |
|||
Iish: 2cfecb9 | moritz++ | / (2 files): Merge pull request #12 from hoelzro/master Fix bug where Pg driver would still have truthy results from fetchrow-hash |
|||
04:34
kaare_ joined
04:37
atroxaper left
04:42
khw left
04:48
jack_rabbit left
|
|||
FROGGS_ | diakopter: can you gist details of the test runs? | 05:03 | |
05:04
FROGGS_ left
05:05
tinyblak_ joined
05:08
tinyblak left
05:24
laouji left,
laouji joined
05:25
aborazmeh left,
laouji left
05:26
laouji joined
05:27
vendethiel left
05:30
vendethiel joined
05:33
skids left
05:46
Psyche^ joined
05:52
vendethiel left
|
|||
grondilu | more spaceships :-) grondilu.github.io/oolite/ships.html | 05:55 | |
I rewrote the Perl6 script for mesh conversion and it's much more robust apparently. | |||
05:56
rurban joined,
yeahnoob left
05:58
laouji left
06:02
aindilis left,
aindilis joined
06:06
yeahnoob joined
06:10
diana_olhovik_ joined
06:12
gfldex joined
06:25
atroxaper joined
06:28
govt left
06:29
RabidGravy joined
|
|||
RabidGravy | marnin | 06:31 | |
atroxaper | RabidGravy: o/ | ||
06:33
_mg_ joined
06:38
[particle] left
06:39
[particle] joined
06:41
gfldex left
06:46
domidumont joined
06:51
domidumont left,
domidumont joined
06:52
geekosaur left
06:53
laouji joined
06:54
geekosaur joined
06:56
amurf left
|
|||
dalek | ast: 305ca31 | usev6++ | S17-promise/basic.t: Add test for RT #125257 |
06:57 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125257 | ||
07:02
zakharyas joined
|
|||
cdc | Hello #perl6 | 07:11 | |
m: say "cdc".trans(:c<d>) | |||
camelia | rakudo-moar 7b5256: OUTPUT«cdc» | ||
cdc | say "cdc".trans('c' => 'd') | ||
m: say "cdc".trans('c' => 'd') | |||
camelia | rakudo-moar 7b5256: OUTPUT«ddd» | ||
07:12
espadrine joined
|
|||
cdc | is it expected ^ (it doesn't work when using adverbial form of Pair) ? | 07:13 | |
moritz | cdc: yes; with the adverbial form, it's passed as a named argument, with 'c' => 'd' it's passed a positional argument that happens to be pair | ||
and .trans expects the substitutions as positionals | 07:14 | ||
cdc | moritz: oops, my bad. Thanks! | ||
moritz | m: say "cdc".trans((:c<d>)) # another way to make it a positional | ||
camelia | rakudo-moar 7b5256: OUTPUT«ddd» | ||
masak | morning, #perl6 | 07:18 | |
...and "interface consistency" prevents us from showing a warning instead of silently swallowing the named... :) | 07:19 | ||
07:20
Ven joined
|
|||
moritz finds that ":(", not ":)" | 07:21 | ||
good morning, masak | 07:22 | ||
07:22
Ven left
|
|||
masak | I was trying to give it a positive spin... :) | 07:22 | |
I don't want to be seen mindlessly bashing interface consistency, because I see the point of it, and I don't have a better idea. | |||
moritz | well, I don't really see the point | 07:24 | |
one has to be mindful of the signatures of the methods one calls | |||
why should be that different for methods from superclasses? | 07:25 | ||
masak | because nameds are optional | ||
07:25
g4 joined,
g4 left,
g4 joined
|
|||
moritz | so what? | 07:25 | |
you still have to adhere to the API you use | |||
masak mumbles while he tries to construct a coherent argument | 07:26 | ||
by S12: "so that C<nextsame> semantics work consistently." | 07:27 | ||
m: class C {}; class D hides C {} | |||
camelia | ( no output ) | ||
masak | huh :) | ||
TIL. | |||
moritz | IMHO nextsame is a weak argument | 07:28 | |
masak | yes, possibly | ||
moritz | if you add an option you want to process, but don't pass on to the parent classes' method, you can just say method new(:$foo, *%rest) { process($foo); nexwith |%rest } | ||
ShimmerFairy | I have always said that the implicit *%_ is kinda dumb. Am I hearing people agree with me? :) | ||
masak | we could try it today. make a Rakudo branch and rip out the implicit *%_. see what happens. | 07:29 | |
suggested branch name: `interface-inconsistency` :P | |||
moritz | masak: I have to $dayjob, but if you do it, I'd be very happy :-) | ||
ShimmerFairy | masak: fwiw, I've ONLY ever seen people tripped up by implicit *%_ , and never thankful for it instead. | ||
masak | moritz: I'll try. | ||
ShimmerFairy: indeed. | |||
moritz | ShimmerFairy: but that's confirmation bias; you don't notice it when it saves your butt | 07:30 | |
masak | moritz++ # bias alert | ||
ShimmerFairy | moritz: I've never understood how it could save my butt in the first place. "nextsame" is a weak and vague argument. | ||
07:30
rurban left
|
|||
ShimmerFairy | moritz: I get the bias of course, but I've never seen a concrete example of how implicit *%_ is useful. | 07:30 | |
moritz | ShimmerFairy: well, one valid argument might be mutli inheritance; it saves you the hassle to figure out which adverbs to pass to which of the parent classes methods | 07:31 | |
masak | could also be something with multis spread across the inheritance hierarchy | ||
kanl | repeating a previous question, is it by design or a bug that Proc::Async stdout does not tap output in its entirety? ( i thought it's neither ) | ||
ShimmerFairy | If that's something you need to worry about, you can always specify your own *% var :) | 07:32 | |
moritz | kanl: sounds like a bug | ||
ShimmerFairy: well, the author of the parent classes would need to do that | |||
masak | kanl: please submit an issue on the project with pertinent details | ||
moritz | or maybe it should be the caller that decides that extra named args should be ignored | 07:33 | |
kanl | masak: do you mean opening a bug? just making sure. | ||
moritz | "I'm passing you a bunch of stuff, but I don't mind if you throw some of it away" | ||
masak | kanl: yes. | ||
kanl | thanks. will do. | ||
ShimmerFairy | masak: speaking of wrecking interface consistency, I still haven't gotten an explanation for the change in spelling of MONKEY_TYPING :) . (In case you didn't catch it, my brain basically considers _ an uppercase - in Perl6-land) | 07:34 | |
moritz | ShimmerFairy: well, I don't consider _ an uppercase - | 07:35 | |
and it's the first time I've heard that connection | |||
*about | |||
masak | I agree with ShimmerFairy | ||
ShimmerFairy | moritz: on my US keyboard, Shift+- leads to _ , so when I can use - in identifiers too, it's bound to happen :) | ||
masak | but I'm too tired to fight the tide of ridiculous renaming | ||
ShimmerFairy | masak: I know bikeshedding is a useless game, I just want to know why the shed is suddenly a different color, considering the last one wasn't bad to my eyes. :) | 07:36 | |
masak | ShimmerFairy: enough people seem to agree that FOO-BAR is preferable in Perl 6 core to FOO_BAR | 07:37 | |
that's it. | |||
ShimmerFairy | Enough people aren't bothered with changing the pressed state of their shift key mid-term, then :P | ||
masak | seems not | ||
ShimmerFairy | I personally think it's such a useless thing to change for allcaps names that I kinda want to fight just as strongly for the superior choice, despite the fact that it's a useless thing to change :P | 07:38 | |
masak | be my guest | ||
ShimmerFairy | Like I said last night, MONKEY-TYPING looks weird to me kinda like how something like SYSTeM would. | 07:39 | |
I think for now, the best course would be to keep asking people _why_ the hyphen is better in all-caps names :) | 07:40 | ||
RabidGravy | I think TimToady may have suggested last night that it was decided precisely because it is harder to type | ||
masak | I don't like that argument, even if it was TimToady who made it. | ||
RabidGravy | in that particular case | ||
masak | interesting. a bunch of methods in Temporal.pm explicitly declare *%_ | 07:41 | |
ShimmerFairy | Well, not only is it not harder (which is why it's such a paradoxically useless thing for me to keep arguing about), it's also not how you discourage usage | ||
masak | all of them are .new and .clone methods | ||
moritz | masak: those that pass them along to other methods | ||
ShimmerFairy | RabidGravy: I'd prefer use MONKEY_TYPING :yes-really; or something like that, for deterring usage. | ||
DrForr | Well, I prefer it because it makes it just that much clearer that you're using perl6 rather than perl5 and helps me to keep the two separated. | ||
masak | m: class C { method foo { say %_.perl } }; C.new.foo(:bar(42)) | 07:43 | |
camelia | rakudo-moar 7b5256: OUTPUT«{:bar(42)}<>» | ||
RabidGravy | I've never actually typed it so I don't really have any feelings about it all | ||
ShimmerFairy | .oO(The minorest changes require the majorest explanations, it seems.) |
07:44 | |
masak | I'm not sure I'm familiar enough with the compiler code to rip out *%_ | 07:45 | |
I'd be happy to have someone walk me through it | |||
07:46
telex left
|
|||
moritz | masak: seems to me Perl6::World method create_signature_and_params | 07:47 | |
unless @params[+@params - 1]<named_slurpy> || @params[+@params - 1]<is_capture> { | |||
unless nqp::can($*PACKAGE.HOW, 'hidden') && $*PACKAGE.HOW.hidden($*PACKAGE) { | |||
@params.push(hash( | |||
variable_name => '%_', | |||
nominal_type => self.find_symbol(['Mu']), | |||
named_slurpy => 1, | |||
is_multi_invocant => 1, | |||
sigil => '%' | |||
)); | |||
$lexpad[0].unshift(QAST::Var.new( :name('%_'), :scope('lexical'), :decl('var') )); | |||
$lexpad.symbol('%_', :scope('lexical')); | |||
} | |||
sorry, I underestimated the size of the paste | |||
masak | 's ok | ||
moritz++ | 07:48 | ||
yes, that seems to be the one. | |||
07:48
telex joined
|
|||
moritz grapped for %_ in src/Perl6/ and skimmed through the matches | 07:48 | ||
*grepped | |||
masak | I did too, but somehow missed that one | 07:49 | |
oh, there it is :) | |||
m: class C { method foo(*%_, *@_) { say "OH HAI" } }; C.new.foo | 07:50 | ||
camelia | rakudo-moar 7b5256: OUTPUT«===SORRY!===Lexical '%_' already declared» | ||
masak submits rakudobug | |||
the joys of reading source :> | |||
S06:1105: sub duplicate($n, *%flag, *@data) {...} | 07:52 | ||
synbot6 | Link: design.perl6.org/S06.html#line_1105 | ||
masak | so it's allowed. | ||
07:53
abraxxa joined
|
|||
ShimmerFairy | m: class C { method foo(*%a, *@b) { say "OH HAI" } }; C.new.foo | 07:53 | |
camelia | rakudo-moar 7b5256: OUTPUT«OH HAI» | ||
07:54
dayangkun left
|
|||
masak | m: class C { method foo(*%a, *@b) { say +%a; say +%_ } }; C.new.foo | 07:56 | |
camelia | rakudo-moar 7b5256: OUTPUT«00» | ||
masak | m: class C { method foo(*%a, *@b) { say +%a; say +%_ } }; C.new.foo(:bar) | ||
camelia | rakudo-moar 7b5256: OUTPUT«11» | ||
07:56
dayangkun joined
07:59
dakkar joined
|
|||
kanl | oops.. the [BUG] moniker is optional, apparently | 08:12 | |
sorry about the dup. | |||
08:12
atroxaper left
|
|||
masak | the [BUG] thing causes RT to add a tag to the ticket, IIRC. | 08:13 | |
08:13
darutoko joined
|
|||
kanl | i see. another question regarding Proc::Async | 08:14 | |
irclog.perlgeek.de/perl6/2015-06-30#i_10824513 | |||
masak is no expert on channels/taps, unfortunately | 08:15 | ||
kanl | anyone please? :) | ||
RabidGravy | I'm not sure what the question is | 08:17 | |
ShimmerFairy | masak: btw, one of my first (failed) attempts at multithreading was a DLX solver, because no way am I waiting two weeks to generate the number of hexslide boards. Too bad I didn't get to try hexslide boards with it | 08:18 | |
masak | RabidGravy: the link above, one step before the linked thing | ||
ShimmerFairy | (the solver worked, just not when you tried multithreading it :P) | ||
masak | ShimmerFairy: I can see how multithreading DLX would open a can of hurt, yes. | ||
kanl | RabidGravy: in ugexe++'s code example, should i be worried about output being interleaved? | ||
since .tap does not guarantee contention free | 08:19 | ||
ShimmerFairy | masak: funny enough, it still worked after making it fit with multithreading, but only so long as I told the thread manager to limit itself to one thread. | ||
kanl | RabidGravy: stdout and stderr both updating the same string could be a race , no? | ||
masak | ShimmerFairy: that means you didn't get the threading right :P | 08:21 | |
08:21
brrt joined,
espadrine left
|
|||
ShimmerFairy | it also means I didn't fundamentally break the solver part when reworking it for threads :P | 08:21 | |
masak | ShimmerFairy: part of the benefit of DLX is that you can do everything on a single data structure without allocating anything new during processing. I'm not sure that's true anymore for a multithreaded program. | ||
ShimmerFairy | but it's sooo sloooow for even moderately-sized inputs | 08:22 | |
masak | the Perl 6 version, maybe. | ||
the C version is blazingly fast. | |||
ShimmerFairy | masak: not for my C++ version (to be fair, my patience for stuff doesn't last the hour or so moderate inputs start reaching, it feels like I did something wrong with the code if it's gonna take that long) | 08:24 | |
masak | ShimmerFairy: combinatorial problems are like that. they get slow for quite small N. | ||
08:24
[TuxCM] joined
08:25
kerb joined
|
|||
masak | heh -- reading github.com/masak/dlx-simple I feel like getting back to the vision specified therein. | 08:25 | |
ShimmerFairy | masak: I remember Knuth's paper on DLX mentioning how more-specialized algorithms are always better, so that's made me want to know what the specialized algorithm for hexslide is :) | ||
RabidGravy | kanl, I don't think there is a race condition inasmuch as the capturing is done in a Lock.protect but I'm struggling to follow the code right now | 08:27 | |
kanl | with the current bug with stdout/stderr's tap, interleaving should definely occur. but that's another problem besides race. | 08:31 | |
(if there is a race at all) | |||
if the taps on stdout and stderr are on different supplies, and there's no lock between the two, then i'd worry about race, in said situation, where the same string is updated by both taps. | 08:35 | ||
08:36
abraxxa left,
abraxxa joined
|
|||
kanl | it may be extremely rare to run into, since most programs don't output stdout and stderr at the same time. but it could/should occur, if my conjecture is right.. | 08:37 | |
lizmat | have you tried using .act instead of .tap ? | ||
.act is guaranteed to only run in only one thread at a time | 08:38 | ||
kanl | i would use .act, but it's not my code :) | ||
lizmat | afk again& | 08:40 | |
kanl | lizmat: but yes, you answered my question/consider, thanks. | ||
*concern* even. | 08:43 | ||
08:45
amurf joined
|
|||
masak | lizmat++ | 08:45 | |
kanl | lizmat++ of course :) | 08:46 | |
08:48
Ven joined
|
|||
kanl | it would be nice for Proc::Async's documentation to advise on the use of act instead of tap in said situation. | 08:49 | |
08:49
amurf left
|
|||
kanl | doc.perl6.org/type/Proc::Async makes no mention of act :/ | 08:49 | |
08:51
atroxaper joined
|
|||
jnthn | morning, #perl6 | 08:51 | |
yoleaux | 29 Jun 2015 22:51Z <TimToady> jnthn: I'm fine with the default FAILGOAL backtracking | ||
jnthn | \o/ | ||
masak | jnthn! \o/ | ||
08:52
itz joined
|
|||
itz | morning | 08:52 | |
jnthn | On the "can I have a bunch of threads that each write to a different array element" in the backlog | ||
1) Only if it's a fixed size array ("implemented soon!") | |||
2) But don't do it anyway, because false sharing. | |||
08:53
Ven left
|
|||
kanl *nods*, jnthn++ | 08:53 | ||
nwc10 | good UGT jnthn | 08:58 | |
good UGT itz | |||
and everyone else I've missed | |||
jnthn: why is that particualrly \o/ ? | |||
jnthn | nwc10: Because it means I can fix the second-oldest RT ticket in the Perl 6 queue | 08:59 | |
09:00
espadrine joined,
atroxaper left
|
|||
nwc10 | ah OK | 09:01 | |
09:04
Ven joined
|
|||
bartolin | jnthn: you mentioned RT #81682 yesterday and tagged it 'testneeded'. ISTR looking at it earlier and wondering whether binding to a typed array with a container of a wrong type is really ok ... | 09:05 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...l?id=81682 | ||
bartolin | m: my Int @a = 1, 2, 3; my Str $x = "foo"; @a[0] := $x; say @a[0]; | ||
camelia | rakudo-moar 7b5256: OUTPUT«foo» | ||
bartolin | m: my Int @a = 1, 2, 3; @a[0] := "foo"; say @a[0]; | ||
camelia | rakudo-moar 7b5256: OUTPUT«foo» | ||
bartolin | there is also RT #123769 which states that the second evaluation should die with X::TypeCheck | ||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=123769 | ||
jnthn | bartolin: Then I'd leave that "should crash" case to the ticket covering it, and close this one by adding tests for the cases that shouldn't crash, but used to | 09:06 | |
bartolin | jnthn: sounds good, will do that. thanks for looking | 09:07 | |
09:07
atroxaper joined
09:12
bin_005 joined
|
|||
RabidGravy | I think the weather precludes making software today -> seaside | 09:18 | |
nwc10 | Whistable? | ||
09:18
Ven left
|
|||
RabidGravy | I think so, it would be rude not to | 09:18 | |
nwc10 | :-) | ||
have fun | |||
RabidGravy | :) | ||
itz | hmm I think there is some Proc::Async oddness on OS X only | 09:23 | |
kanl | itz: gist.github.com/anonymous/79a7e59cf3160f6ac09e | 09:24 | |
i run ubuntu | 09:25 | ||
observe line 58 on test output | |||
itz | ah I would have missed that | 09:26 | |
I'm seeing "Use of Nil in numeric context in block at lib/Panda/Builder.pm:125" on OS X and not debian stable | 09:28 | ||
09:29
RabidGravy left
09:32
AlexDaniel joined
09:40
yeahnoob left
09:42
JimmyZ_ joined
09:45
tinyblak_ left
09:46
JimmyZ_ left
|
|||
itz | I think my issue is different | 09:47 | |
09:48
kanl left
09:49
kanl joined
09:53
brrt left
09:54
uncleyear left,
uncleyear joined
|
|||
itz | #125516: "Use of Nil in numeric context" warning seen with Proc::Async exitcode on OS X Ony | 09:55 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125516 | ||
10:08
smls joined
|
|||
smls | Is is possible that HTTP::UserAgent sometimes gives back mangled | 10:08 | |
response content? | |||
tadzik | is it reproducible? | ||
smls | For example: gist.github.com/smls/00da52790c206c448a25 | 10:09 | |
tadzik: No, seems to only happen sometimes | |||
tadzik | :| | ||
smls | that example content is from rosettacode.org/wiki/Rosetta_Code/R...ng_the_API | ||
[add a spurt "rosetta-{(^1000).pick}.json", $response.content; line before the from-json line, and run it a few times] | 10:10 | ||
It wouldn't be Mediawiki *sending* that broken content, would it? | 10:12 | ||
10:12
dayangkun left
|
|||
smls | btw, timotimo: this^^ means I was probably wrong to think JSON::Fast had bugs, it was probably just a matter of broken inputs. | 10:15 | |
sjn sees a couple failing tests on Linux Jolla 3.4.106.20150416.1 #1 SMP PREEMPT Thu Apr 23 02:16:13 UTC 2015 armv7l armv7l armv7l GNU/Linux | 10:18 | ||
10:20
cognominal joined
|
|||
smls | tadzik: It doesn't happen in the majority of runs, but still frequently enough that you could call it sort-of-reprodicible... :P | 10:28 | |
10:28
TEttinger left
|
|||
tadzik | sjn: spectests? | 10:29 | |
sjn | no, regular make test | ||
I'm filing a rakudobug atm | 10:30 | ||
tadzik | oh, so you got rakudo to run, awesome :) | ||
10:31
brrt joined
|
|||
sjn | the bugs are all NativeCall related | 10:32 | |
10:34
amurf joined
10:39
amurf left
10:42
atroxaper left
10:46
tinyblak joined
10:47
atroxaper joined
10:50
itz left
10:51
tinyblak left
|
|||
dalek | ast: 8dd0ebb | usev6++ | S09-typed-arrays/arrays.t: Add test for RT #81682 |
10:52 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...l?id=81682 | ||
DrForr | sjn: Oh? I'm using it for readline, what have you encountered? | 11:06 | |
11:14
bin_005 left
|
|||
sjn | DrForr: not much, this was just something I encountered when building/installing rakudo on my phone | 11:16 | |
DrForr | "just" the man says :) | 11:17 | |
11:20
vendethiel joined
11:22
laouji left,
hoelzro_trying_w left
11:23
tinyblak joined,
hoelzro_trying_w joined
|
|||
masak | sjn++ # because who wouldn't want Perl 6 on their phone | 11:23 | |
timotimo | kanl, ugexe, we run Proc::Async on the event loop, the tapped code runs there as well | 11:24 | |
at least to my understanding | |||
jnthn | Nope | ||
timotimo | oh, okay | ||
that's good to know :) | |||
11:24
hoelzro joined
|
|||
jnthn | The event loop puts the code to run into the scheduler's queue | 11:24 | |
timotimo | er, i meant to say: the stdout/stderr reading | ||
jnthn | It is then executed. | 11:25 | |
timotimo | i think i don't know how exactly ".tap" "scopes" its exclusivity | ||
jnthn | .tap doesn't, it's .act that enforces "one at a time" | ||
timotimo | er, that's the one i meant | ||
jnthn | Though arguably we should enforce one-at-a-time semantics for I/O things by default | 11:26 | |
Certainly I'd prefer it be that way | |||
timotimo | so the stdout_bytes/stdout_chars/... would just do a .act( { $_ } ) appended to it before returning the supply users could tap? | 11:27 | |
would that be enough at all? | |||
probably not | |||
jnthn | Well, I'd like to take a leaf from RxJava and introduce some explicit serialize/parallelize operators, I think. | ||
But the I/O ones also need to care about the sequence number stuff | 11:28 | ||
jnthn should spend some time on this stuff, but wants to focus on multi-dim/fixed size array stuff more immediately. | 11:30 | ||
timotimo | right | ||
11:33
Sqirrel joined
11:37
kerb left
11:44
vendethiel left
11:47
vendethiel joined,
govt joined
11:52
atroxaper left
|
|||
masak | I am happy to report that the Perl 6 version of dlx-solver has not bitrotted. \o/ | 12:04 | |
timotimo | that's cool | ||
12:10
vendethiel left
|
|||
masak | I only needed to change one `is_deeply` to `is-deeply`. but all the tests passed and everything. | 12:12 | |
that's for a non-trivial project that I last touched in 2012. | 12:13 | ||
jnthn | Much wow. | ||
brrt | \o/ | 12:20 | |
12:27
domidumont left
12:28
domidumont joined
12:29
itz joined
12:30
nys joined,
tinyblak left
|
|||
dalek | ast: d81f538 | (Steve Mynott)++ | S (4 files): throws_like changed to throws-like |
12:34 | |
smls | m: for Grammar.^methods { say .name; $_ ~~ Any } | 12:40 | |
camelia | rakudo-moar 7b5256: OUTPUT«parsesubparseparsefileFAILGOALInvocant requires a 'Failure' instance, but a type object was passed. Did you forget a .new? in block <unit> at /tmp/i0y3DW29lg:1» | ||
smls | ^^ jnthn, did you make any progress with the NPQ methods leaking out through Grammar? | ||
12:40
vendethiel joined
12:41
[Sno] left
|
|||
jnthn | smls: Not yet | 12:41 | |
smls: Well, but they should in theory get exposed as a ForeignRoutine or so | |||
smls | m: for Grammar.^methods { say .name; say .WHAT } | 12:42 | |
camelia | rakudo-moar 7b5256: OUTPUT«parse(Method)subparse(Method)parsefile(Method)FAILGOALMethod 'gist' not found for invocant of class 'NQPRoutine' in block <unit> at /tmp/XjDrUydDJR:1» | ||
12:42
[Sno] joined
|
|||
smls | heh | 12:42 | |
jnthn | Yeah, that's the issue...the NQP object is sneaking into Perl 6 land. | 12:43 | |
smls | Should I open a rakudobug for it? | 12:45 | |
jnthn | Can do | ||
smls | ok | ||
12:45
kanl left
|
|||
jnthn | We'd kinda like the introspection to work out there | 12:46 | |
12:53
atroxaper joined
12:58
atroxaper left
|
|||
tony-o | that is the same problem with the grammar debugger :-) | 12:58 | |
smls | tony-o: Exactly | 13:02 | |
13:02
vendethiel left
13:04
Ven joined
13:09
vendethiel joined
13:12
zakharyas left,
aborazmeh joined,
aborazmeh left,
aborazmeh joined
13:13
notch joined
13:17
zakharyas joined
13:18
tinyblak joined
13:20
diana_olhovik_ left
13:23
diana_olhovik joined
13:31
sjn_phone_ joined
13:36
g4 left
13:38
sjn_phone_ left
|
|||
dalek | ast: 1d14062 | (Steve Mynott)++ | S02-names/pseudo.t: $*PROGRAM_NAME is now $*PROGRAM-NAME |
13:39 | |
tony-o | m: $*PROGRAM-NAME.say; | 13:40 | |
camelia | rakudo-moar 7b5256: OUTPUT«/tmp/1k1WwHXDNA» | ||
13:42
Possum joined
13:44
atphalix joined
|
|||
smls | What exactly is the purpose of $*PROGRAM-NAME if we already have $*PROGRAM.basename ? | 13:47 | |
13:48
brrt left
|
|||
Ven | m: '3' ~~ /$<x>=\d/; say :$<x> | 13:48 | |
camelia | rakudo-moar 7b5256: OUTPUT«Unexpected named parameter 'x' passed in block <unit> at /tmp/IniAUAtHbm:1» | ||
Ven | m: '3' ~~ /$<x>=\d/; say $<x> | ||
camelia | rakudo-moar 7b5256: OUTPUT«「3」» | ||
tony-o | m: say $*PROGRAM.basename | 13:49 | |
camelia | rakudo-moar 7b5256: OUTPUT«6vO7iPBRDR» | ||
smls | if $*PROGRAM.basename is for some reason not safe or desirable, maybe $*PROGRAM should be an object instead (lie $*USER and $*KERNEL) so one would write $*PROGRAM.name vs $*PROGRAM.path | ||
tony-o | m: say $*PROGRAM.WHAT | 13:50 | |
camelia | rakudo-moar 7b5256: OUTPUT«(IO::Path)» | ||
13:50
JimmyZ_ joined
|
|||
tony-o | m: say $*PROGRAM-NAME.WHAT | 13:50 | |
camelia | rakudo-moar 7b5256: OUTPUT«(Str)» | ||
tony-o | m: say $*PROGRAM.path | ||
camelia | rakudo-moar 7b5256: OUTPUT«/tmp/fLqgG9rjtG» | ||
smls | Having both $*PROGRAM and $*PROGRAM-NAME though, seems like unclean API design | ||
tony-o | smls++ . program name can be coerced from program it looks like | 13:51 | |
13:51
JimmyZ_ left
|
|||
tony-o | maybe there is a difference depending on how theyre started?.. | 13:51 | |
13:51
JimmyZ_ joined
|
|||
smls | $*PROGRAM.basename works even for one-liners (it returns "-e", like $PROGRAM-NAME) | 13:52 | |
a special $*PROGRAM object could have the luxury of setting its .name to an undefined value in that case, which would be cleaner | 13:53 | ||
(because one could in theory have a real file named -e) | |||
13:53
skids joined
|
|||
smls | $*PROGRAM.gist/.Str could still return "-e" for one-liners | 13:53 | |
^^ lizmat? | 13:55 | ||
lizmat | fwiw, I only inherited this design, am not sure as to the rationale | 14:00 | |
jnthn refrains from a pun about preferring composition over inheritance :P | |||
14:02
yary joined
|
|||
jnthn | (And agrees it's a little odd that we have the two) | 14:02 | |
smls | m: class A does Positional { has @!a is rw; method AT-KEY ($k) { @!a[$k] }; method ASSIGN-KEY ($k, $v) { @!a[$k] = $v } }; my @x := A.new; @x[0] = 42; dd @x.a | 14:06 | |
camelia | rakudo-moar 7b5256: OUTPUT«Potential difficulties: useless use of 'is rw' on @!a at /tmp/edMtqncF7r:1 ------> 3class A does Positional { has @!a is rw7⏏5; method AT-KEY ($k) { @!a[$k] }; methodCannot modify an immutable A in block <unit> at /tmp/edMtqn…» | ||
smls | ^^What am I missing? | ||
14:07
atphalix left
|
|||
lizmat | m: class A does Positional { has @!a; method AT-KEY ($k) { @!a[$k] }; method ASSIGN-KEY ($k, $v) { @!a[$k] = $v } }; my @x := A.new; @x[0] = 42; dd @x.a | 14:07 | |
camelia | rakudo-moar 7b5256: OUTPUT«Cannot modify an immutable A in block <unit> at /tmp/w33f3E9oYj:1» | ||
timotimo | m: class test { has @!a is rw } | ||
camelia | rakudo-moar 7b5256: OUTPUT«Potential difficulties: useless use of 'is rw' on @!a at /tmp/sjRGfolOar:1 ------> 3class test { has @!a is rw 7⏏5}» | ||
timotimo | you shouldn't need the "is rw" there, but it shouldn't give that error either | ||
smls | d'oh, gotta use -POS instead of -KEY | ||
jnthn | It's not an error, it's a warning. Also, it's correct. | ||
smls bangs head | 14:08 | ||
timotimo | oh! | ||
lizmat | smls: indeed, duh -) | ||
jnthn | smls: It took me as long as you to notice it :) | ||
timotimo | i thought the "is rw" gave the "cannot modify an immutable A" error | ||
jnthn | timotimo: Ah, no :) | 14:09 | |
14:09
AlexDaniel left
|
|||
timotimo | that would have been very strange indeed | 14:09 | |
[Coke] notes that [BUG] does indeed add the bug tag, but doubt anyone except maybe masak searches RT that way. | 14:10 | ||
14:10
yary left
|
|||
smls | On that matter, is there any chance Rakudo could be made to assume | 14:10 | |
method ASSIGN-KEY (\k, \v) { $.AT-KEY(\k) = \v } | 14:11 | ||
if AT-KEY is implemented but ASSIGN-KEY isn't? | |||
so simple use-cases would only have to implement one of them | |||
jnthn | smls: I think it already does. | ||
smls | oh? | ||
jnthn | At least, I'm pretty sure I made it that way when I added the ASSIGN- variant. | 14:12 | |
14:12
amurf joined
|
|||
jnthn | Since it's an opt-in optimization | 14:12 | |
Yes, in Any: | |||
multi method ASSIGN-KEY(\SELF: \key, Mu \assignee) { | |||
SELF.AT-KEY(key) = assignee; | |||
} | |||
14:12
Ven left
|
|||
timotimo | maybe smls is inheriting a method ASSIGN-KEY from a different class or role in the hierarchy? | 14:12 | |
14:13
yary joined
|
|||
smls | m: class A does Associative { has %.a; method AT-KEY ($k) { %!a{$k} } }; my %x := A.new; %x<foo> = 1; dd %x.a | 14:14 | |
camelia | rakudo-moar 7b5256: OUTPUT«Cannot modify an immutable Any in block <unit> at /tmp/KM3SfO7caS:1» | ||
dalek | kudo/nom: b2d6d02 | lizmat++ | src/core/Proc.pm: Add hex status report for more clarity |
||
lizmat | with that, on the JVM and OS X I get: | ||
$ perl6-j t/spec/S32-temporal/Date.t | |||
===SORRY!=== | |||
Unable to execute 'sw_vers' (ff00) | |||
hopes this helps FROGGS | 14:15 | ||
jnthn | smls: "is rw" on your AT-KEY | ||
smls | ah, right. | 14:16 | |
jnthn | We probably should capture this knowledge into p6doc somewhere :) | ||
14:17
amurf left
|
|||
yary | rakudo:my $y=multi foo (Int $x) { $x + 1 }; say "multifoo \$y=",$y(5) | 14:17 | |
timotimo | is there any way we can annotate the Any that was returned from AT-KEY so that we can say "made read-only by ..."? | ||
jnthn | timotimo: no | ||
timotimo | thought so | 14:18 | |
jnthn | Not unless you want to utterly hose performance :P | ||
smls | maybe the compiler could detect you trying to assign to the return value of a non-rw routine though? | ||
timotimo | it'd be neat to have an extra-verbose mode that you can start if you're looking for some problem like that, but i can't see how that would possibly help rather than just spamming the user with loads of diagnostic messages | 14:19 | |
14:19
sqirrel_ joined
|
|||
jnthn | smls: It's a method in this case, but for routines yes. | 14:20 | |
smls | ah, right, methods are completely dynamic | ||
timotimo | "method" in this case means we can't compile-time-analyze it | ||
yeah | |||
we can potentially do it in spesh, but spesh only runs after the code has been hit a few times, and in such cases you'd've already exited the program before spesh would come into play | 14:21 | ||
jnthn | Well, it's more like the profiler thing | ||
Well, a key part of the original OO definition was "extreme late binding" | 14:22 | ||
Then C++ and Java were invented and many people forgot that, and started putting process boundaries into their systems to recover the late binding... :P | 14:23 | ||
</oversimplified-history> | |||
timotimo | i don't remember that o_O | ||
hm, yeah, methods have to be known at compile-time in java and c++, don't they ... | 14:24 | ||
jnthn | Right. :) | ||
timotimo | that way lies performance from AOT compilation | 14:25 | |
jnthn | Oh, for sure. | 14:26 | |
14:26
Ven joined
14:29
RabidGravy joined
|
|||
smls | m: class A does Positional { has @.a = [2, 4], [6, 8]; method AT-POS ($k) is rw { dd $k; @!a[$k] }; }; my @x := A.new; @x[1; 1] = 42; dd @x.a | 14:29 | |
camelia | rakudo-moar 7b5256: OUTPUT«$k = 1@!a = [[2, 4], [6, 42]]<>» | ||
smls | So AT-POS abstracts the multi-dimensionality too? | ||
I can't get the full index (1; 1) at once in AT-POS? | 14:30 | ||
jnthn | smls: Not *yet*, but I'll be working on multi-dim stuff soon | 14:31 | |
smls: So expect changes there | |||
smls | ok | ||
jnthn | (I don't quite know what design I want yet.) | ||
smls | was just wondering if one could make a more idiomatic API for rosettacode.org/wiki/Bitmap#Perl_6 | ||
my $b = Bitmap.new(width => 10, height => 10); my $b[5; 5] = Pixel.new( R => 100, G => 200, B => 0) | 14:32 | ||
^^like that | |||
timotimo | well, postcircumfix:<[ ]> is a multi sub | ||
you could implement that for Bitmap | |||
jnthn | Yeah, exporting a postcircumfix is the best way at the moment | 14:33 | |
smls | yeah, but then you'll have to re-implement *everything* [ ] does | ||
e.g. ranges | |||
jnthn | But...I think we need better | ||
As in, I think an object should be able to handle multiple dimensions. | |||
timotimo | yes | 14:34 | |
smls | yeah | ||
jnthn | Since we'll need that for my int @matrix[3,3] or so | ||
Which should allocate one blob of memory for storage | |||
smls | method AT-POS ($scalar) vs method AT-POS (@list) ? | ||
jnthn | It may end up being that | ||
Type distinctions work well for us, since loads of our opts hang of type specialization :) | 14:35 | ||
*off | |||
timotimo | can we have the possibility to specify the exact alignment of rows/cols? also, C vs pascal index order? | ||
smls | Also, is there any advantage of writing method AT-KEY (\key) instead of method AT-KEY ($key) currently? | 14:38 | |
Rakudo itself seems to prefer the former | 14:39 | ||
s/prefer/use/ | |||
e.g. which should be recommended to p6doc readers? | |||
14:42
atroxaper joined
14:43
vendethiel left
|
|||
jnthn | The $ form, most probably | 14:44 | |
smls | ok | 14:45 | |
jnthn | shopping & | ||
14:46
Araq joined
14:47
atroxaper left
14:48
govt left
14:50
gfldex joined,
sjn_phone_ joined
|
|||
dalek | ast: 806ed2b | coke++ | S09-typed-arrays/arrays.t: fix typo |
14:53 | |
hoelzro | morning #perl6 | ||
14:58
coffee` joined
|
|||
masak | ahoy hoelzro | 15:00 | |
hoelzro | o/ masak | ||
smls | m: class A does Positional { has @.a = 2, 4, 8; method AT-POS ($k) is rw { dd $k; @!a[$k] }; }; my @x := A.new; @x[*-1] = 42; dd @x.a | 15:05 | |
camelia | rakudo-moar b2d6d0: OUTPUT«$k = 0@!a = [42, 4, 8]<>» | ||
smls | jnthn: How would one make *-1 indexes work for a custom type? ^^ | ||
masak | m: class A does Positional { has @.a handles <elems> = 2, 4, 8; method AT-POS ($k) is rw { dd $k; @!a[$k] }; }; my @x := A.new; @x[*-1] = 42; dd @x.a | 15:07 | |
camelia | rakudo-moar b2d6d0: OUTPUT«$k = 2@!a = [2, 4, 42]<>» | ||
masak | smls: ^^ | ||
smls | ah, elems | 15:08 | |
masak | that was literally the first thing that came to mind. glad it worked. | ||
m: class A {}; say A.new.elems | |||
camelia | rakudo-moar b2d6d0: OUTPUT«1» | ||
smls | shouldn't it throw an error though if it is not defined? | ||
rather than pretend that 0 was passed | |||
masak | when you don't override .elems somehow, you get the one from Any | ||
smls | ah | ||
masak | see eval above. | 15:09 | |
I was kinda hoping that either `handles Positional` or `handles Array` would DTRT, but they didn't. | |||
15:09
diana_olhovik left
15:11
domidumont left,
cognominal_ joined
15:13
cognominal left
|
|||
smls | it's kind of a WAT though | 15:14 | |
dalek | ast: 9f658bf | (Steve Mynott)++ | / (3 files): fix some more RAKUDO_DEPRECATIONS_FATAL=1 |
15:16 | |
15:16
Araq left
|
|||
masak | all I'm thinking is "hey, you managed to create your own custom Positional class, and you're complaining that you have to write a `handles` to get it to work?" | 15:16 | |
:P | |||
smls | 1) module implementor implements *-KEY, doesn't think of implementing elems as well | ||
2) downstream code uses objects of that type like arrays, everything works | |||
3) downstream code refactor naievely introduces a *-1 index --> silenly procuces wrong result | 15:17 | ||
it's not the "getting it work" I have a problem with, but the "fails to throw an exception if you forgot" | |||
masak | smls: how would you like it to work? | ||
smls | So that $foo[*-1] throws an exception if $foo's class did not intentionally specify how to get its number of elements | 15:18 | |
15:18
_mg_ left
|
|||
masak | this is why AT-POS exists, so thate the implementor doesn't have to re-implement Whatever-based indexing, ranges, etc. | 15:19 | |
jnthn | Yeah, but they still have to remember to implement elems... | ||
masak | that* | ||
jnthn | But I think it's fair enough | 15:20 | |
masak | me too. | ||
jnthn | It's not like you go implementing a collection type every day. | ||
smls | I guess | ||
15:20
vendethiel joined
15:21
notch left,
JimmyZ__ joined
|
|||
[Coke] | A writeup on how to do it for a tutorial page in the docs would probably be awesome, though. | 15:21 | |
15:21
Alina-malina joined
|
|||
masak | it's rare to be knowledgeable enough to know about `does Positional` and `AT-POS`, but not about `elems` :) | 15:22 | |
jnthn | [Coke]: Agree | ||
Could go in the WANTED | |||
15:23
JimmyZ_ left
|
|||
smls | I'm already planning such a write-up | 15:24 | |
Wondering if there's enough info to justify a full /language/indexing page describing both how the standard postcircumfixes can be used, and how to make them work for custom types. | 15:25 | ||
15:25
MueThoS76 joined,
MueThoS76 left
|
|||
masak | yes, sounds nice. | 15:26 | |
15:26
cognominal_ left
|
|||
[Coke] | ++smls! | 15:26 | |
15:27
zakharyas left
|
|||
itz | is make -j3 spectest or similar OK? | 15:27 | |
timotimo | no | ||
you use the env var TEST_JOBS instead | |||
itz | ty | ||
timotimo | yw :) | ||
15:28
telex left
15:30
telex joined,
khw joined
15:31
El_Che joined
15:33
[TuxCM] left,
Ven left
15:34
|Tux| joined,
|Tux| left,
|Tux| joined
|
|||
masak | why can't we also support `make -j3 spectest`, ooc? | 15:40 | |
[Coke] | because prove. | 15:41 | |
15:42
vendethiel left
|
|||
masak | I... see. | 15:42 | |
walk & | |||
[Coke] | it's one job as far as make is concerned. (you could theoretically have it set an env var based on the presence of -j, but then it's not going to work on windows) | ||
15:42
yary left
|
|||
[Coke] | (because nmake has no -j) | 15:42 | |
15:48
JimmyZ__ left,
JimmyZ_ joined
|
|||
timotimo | we'd have to have some way of splitting the spec test jobs up into multiple processes that nevertheless intercommunicate to give the final score of how many failures/successes/tests/todos/... we get | 15:51 | |
and to get a proper output of the tests being run and succeeding/failing without interleaving lines and such | |||
15:53
diana_olhovik_ joined
|
|||
JimmyZ_ | rewrite prove by perl6' | 15:53 | |
s async... | 15:54 | ||
15:54
Ven joined
|
|||
ugexe | ive nearly got an async prove done. just gotta tie up the grammar a bit more | 15:58 | |
15:58
nys left
16:00
captain-adequate joined
16:03
cognominal joined
|
|||
ugexe | calling method `t` on a file handle on windows fails with an ugly message: "Cannot find method 'isatty': no method cache and no .^find_method" | 16:03 | |
16:05
abraxxa left
|
|||
ugexe | oh it does on linux as well. must be nyi | 16:05 | |
16:06
tinyblak left
|
|||
itz | isatty isn't in moar it was in parrot there is an RT ticket open | 16:07 | |
16:07
AlexDaniel joined
|
|||
itz | I had a look at adding it but had no idea where to start | 16:08 | |
16:09
AlexDaniel left,
AlexDaniel joined
16:10
sjn_phone joined
|
|||
[Coke] | timotimo: or we could translate -j to TEST_JOBS | 16:12 | |
(and let prove do the multi-threading) | 16:13 | ||
16:13
sjn_phone_ left
16:15
[Sno] left
16:20
[Sno] joined
16:21
uncleyear left
16:22
uncleyear joined
16:26
[Sno] left,
isBEKaml joined
16:30
[Sno] joined
16:31
isBEKaml left
16:32
|Tux| left,
|Tux| joined
|
|||
dalek | ast: 8d84107 | (Steve Mynott)++ | S17-channel/earliest.t: fix minor typo |
16:32 | |
itz | this maybe be news to everyone but "git grep" is very fast on repo checkouts | 16:33 | |
err maybe not be news I mean :) | |||
JimmyZ_ | never heard it before... | 16:34 | |
jnthn tends to show it off a bit on git courses | 16:35 | ||
Nice you can give it flags to control how much context you want also | |||
16:35
vendethiel joined
16:37
sjn_phone left
16:42
sqirrel_ left
|
|||
smls | ack is fast enough :P | 16:43 | |
itz | git grep is something like 10x faster | 16:45 | |
smls | does it support perl style regexes? | 16:46 | |
(i.e. PCRE) | |||
itz | nope but I came across github.com/ggreer/the_silver_searcher | 16:47 | |
actually it could be good to steal ideas for "ack6" or similar :> | 16:48 | ||
smls | ;) | 16:49 | |
yay, my distro has a package for the_silver_searcher | 16:50 | ||
sjn is running the spectests on armv7l | |||
itz | sjn: what hw is that? | 16:51 | |
16:52
python joined
16:53
python left,
JimmyZ__ joined
16:56
JimmyZ_ left
16:57
vendethiel left,
FROGGS joined
17:01
dakkar left
17:02
Ven left,
vendethiel joined
|
|||
tadzik | jolla phone, I think :) | 17:06 | |
exciting | |||
there was this idea on OSDC to get KDE (Qt?) people to work on QML bindings for nativecall, did that work out? | |||
17:12
Ven joined
17:14
itz left
17:16
Entonian joined
17:19
Entonian left
|
|||
smls | QML depends on on the bulk of Qt doesn't it? | 17:21 | |
so we'd need "normal" Qt binding first | 17:22 | ||
17:22
spider-mario joined
|
|||
sjn | itz_: Jolla phone | 17:23 | |
tadzik: nah | 17:24 | ||
smls | my 3 most wanted nativecall bindings: 1) libxml2 2) libcurl 3) Qt | ||
FROGGS | ohh yeah, I should continue on libxml2 :S | ||
JimmyZ__ | 4) DBI6 | 17:25 | |
17:25
vendethiel left
|
|||
japhb | smls: My most wanted nativecall bindings are to $day-job libraries, but that requires C++ binding. I guess Qt does as well, come to think of it. There's a branch for C++ binding, but IIRC it's not yet merged. | 17:31 | |
17:37
Ven left
17:40
Ven joined
17:41
davido_ left
17:42
davido_ joined
17:44
AlexDaniel left
|
|||
timotimo | i believe we can get rather far by using Inline::Python to get at PySide | 17:47 | |
17:47
JimmyZ__ left
17:49
amurf joined
|
|||
DrForr | I'm putting together OpenCV. | 17:50 | |
17:54
Ven left,
amurf left
|
|||
smls | Some image loading/saving/editing library would be nice too - imlib2 or so. | 17:54 | |
But I don't have a real use-case for that right now besides rosettacode tasks | 17:55 | ||
Perl 6 + libxml2/curl thogh, I'd actually use for productive things ;) | |||
17:56
_mg_ joined
|
|||
DrForr | Imager has a C interface, and I've got some things waiting on unsigned ints.. | 17:57 | |
17:58
brrt joined
|
|||
timotimo | don't we have an imlib2 binding already? | 18:01 | |
smls | oh, looks like we do: github.com/mrhdias/perl6-Imlib2/ | 18:02 | |
18:05
vendethiel joined
18:09
aborazmeh left
18:20
atroxaper joined
|
|||
[Coke] | we should probably remove "readline" from the R* release announcement if we're using linenoise | 18:24 | |
18:25
atroxaper left,
_mg_ left
|
|||
masak | please do. | 18:32 | |
18:33
nys joined
|
|||
dalek | ar: bf2232a | (Will Coleda)++ | docs/announce/2015.06.md: Update 2015.06.md Remove reference to readline, we're using linenoise (and unicode support seems OK) |
18:38 | |
smls | "non-blocking I/O (in progress)" - It is? | 18:39 | |
18:39
_mg_ joined
|
|||
ugexe | looks like not in the last year anyway github.com/rakudo/rakudo/blob/nom/...yncFile.pm | 18:42 | |
brrt | hey, is S32-exceptions/misc.rakudo.moar known to fail | 18:43 | |
18:47
silug joined
18:49
vendethiel left
18:51
vendethiel joined
18:54
kaare_ left
18:57
][Sno][ joined,
[Sno] left
18:58
run4flat joined
|
|||
hoelzro | elm-lang.org/blog/compiler-errors-for-humans | 18:59 | |
I think the community has done a pretty good job in this department since I started looking at Perl 6, but I think this is a neat read | 19:00 | ||
leedo | speaking of linenoise, should I have access to a history in the repl? or am i building something wrong? | ||
brrt | speaking of speaking | 19:02 | |
i've just pushed a branch on moarvm with a libuv update | |||
ugexe | `language: perl6` is valid .travis.yml now | ||
brrt | since any bugs can be notoriously platform-dependent, i'd appreciate it if anyone using a non-linux platform would care to run it through a spectest | 19:03 | |
FROGGS | brrt: will check windows | ||
brrt | thanks :-) | 19:04 | |
smls | leedo: If you install the Linenoise module (e.g. `panda install Linenoise`), then the REPL will use it automatically | ||
Still doesn't remember history across sessions though. | 19:05 | ||
leedo | ah-ha, thanks! | ||
tony-o | m: $*OUT.t | 19:06 | |
camelia | rakudo-moar b2d6d0: OUTPUT«Cannot find method 'isatty': no method cache and no .^find_method in block <unit> at /tmp/RGMWnRwc0g:1» | ||
hoelzro | smls: that would be something we could easily add | ||
the question is where do you store it? | 19:07 | ||
brrt | FROGGS: i'm fairly sure you have to do a git submodule update after you change branches, and i think Configure.pl does that | ||
but anyway reconfigure prior to building :-) | |||
smls | hoelzro: ~/.local/share/perl6/repl.log ? | ||
hoelzro | smls: if it's ok to have a user-specific history, that would work | 19:08 | |
I can imagine that some people would like a project-specific one, though | |||
perhaps PERL6_HIST? | |||
smls | seems like a strange use-case | ||
do they also want a project-shared bash/zsh history? | 19:09 | ||
they should probably symlinks thir hist files together then | |||
leedo | it might be good to somehow notify people that they can get a history if they install Linenoise | ||
i'm not sure how you'd do that and not be annoying though | |||
hoelzro | leedo: it's in the README, I think | 19:10 | |
but I don't know if that's saying much =) | |||
itz_ | I saw S32-exceptions/misc.rakudo.moar fails today as well which I didn't see yesterday (or earlier) | 19:11 | |
leedo | well it's something at least | ||
smls | hoelzro: Ohh, you mean multiple projects *per* user - not "project" in the sense of collaborating between users? | 19:13 | |
hoelzro | smls: yes | 19:14 | |
I think PERL6_HIST would work for that | |||
19:14
bin_005 joined
|
|||
smls | I guess an environment variable could be useful for that, though I fon't know if many people would actually bother using it | 19:14 | |
Though IDE's might | |||
19:14
][Sno][ left
19:15
][Sno][ joined
|
|||
jnthn | smls: On async IO, I've done plenty of stability work of late to improve the situation with IO::Socket::Async, so yeah, there's progress | 19:15 | |
19:16
mr-foobar joined
|
|||
smls | ok | 19:18 | |
FROGGS | brrt: I always reconfigure (and make realclean prior to that), that's part of my build scripts | ||
brrt | i never do that :-) | ||
smls | hoelzro: Though supporting $PERL6_HIST is orthogonal to using a fixed location like $XDG_DATA_HOME/perl6/history if PERL6_HIST is not specified. | 19:21 | |
So it could always be added if the demand arises | |||
japhb | I forget, how do you add a coercion to a type? (So that you can say 'Foo() $bar' in a signature, and have it coerced from Any?) | 19:22 | |
smls | class Foo { method CALL-ME { ... } } I guess? | 19:24 | |
that whole corecion system needs some design love though, I think | 19:25 | ||
19:25
espadrine left
|
|||
smls | considering the inconsistent way Rakudo's built-in types handle it, how can we expect user code to do it consistently :P | 19:25 | |
brrt bbiab | 19:26 | ||
leedo | is the tab completion known to be a bit rough? | ||
ugexe | m: say 1 unless try { signal }; # is there some way to see if calling signal will work without an error? | ||
camelia | rakudo-moar b2d6d0: OUTPUT«===SORRY!===Cannot find method 'orig'» | ||
leedo | e.g. have a line half completed, and tab something. it clears the line and begins a completion at the start | 19:27 | |
smls | example? | 19:28 | |
"say spr" TAB completes to "say sprintf" for me | |||
19:30
brrt left
|
|||
leedo | smls: ah, only happens if i TAB after a space | 19:30 | |
19:31
][Sno][ left
|
|||
leedo | so "say <TAB>" | 19:31 | |
19:31
][Sno][ joined
|
|||
smls | can confirm | 19:31 | |
interesting | |||
leedo | or after a sigil | ||
RabidGravy | japhb: the $bar has to have a Foo method | ||
smls submit a rakudobug | |||
jnthn | Hm, the Rakudo and S32-exceptions/misc.t I had before clocking off last night are clean | 19:37 | |
jnthn pulls latest things | |||
19:39
_mg_ left
|
|||
jnthn | yep, with latest I get a failure | 19:40 | |
timotimo | the X::Obsolete thing? | 19:42 | |
for ${a}? | |||
jnthn | yeah | ||
dalek | ast: 7d7467d | jnthn++ | S32-exceptions/misc.t: Update test now "my ${foo}" is allowed. |
19:44 | |
timotimo | good | ||
jnthn | Should do it | 19:45 | |
TimToady | arguably 'my ${Int}' is still kinda wrong semantically, unless we pretend it's a % based on the shape | 19:46 | |
m: my $[3]; | 19:47 | ||
camelia | rakudo-moar b2d6d0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Uj6by6vv7XShaped variable declarations not yet implemented. Sorry. at /tmp/Uj6by6vv7X:1------> 3my $[3]7⏏5;» | ||
TimToady | we catch that one | ||
though that's just a NYI, not a semantic failure | 19:48 | ||
run4flat | My thoughts on PDL ideas that I would like to see in Perl 6: blogs.perl.org/users/david_mertens/...erl-6.html | ||
jnthn | TimToady: The problem isn't that we die, it's that we didn't die with X::Obsolete | ||
TimToady | well, yes, the 'my' was messing up the intended test, as you noticed | ||
hoelzro | I've noticed a lot of proto tokens in Grammar.nqp use <...>; does that symbol actually mean anything | 19:49 | |
? | |||
19:49
ShimmerFairy left
|
|||
TimToady | hoelzro: that's obsolescent, the intent is that all protos use {*} consistently | 19:49 | |
hoelzro | timotimo, FROGGS: do either of you have access to the testers.perl6.org box? any way I could get a Pg dump of the database from it, along with knowledge of the current Rakudo/modules versions on there? | 19:50 | |
TimToady: ah, thanks! | |||
FROGGS | hoelzro: I can do that probably | ||
hoelzro | excellent! | ||
smls | run4flat++ | 19:52 | |
run4flat | smls, thanks | 19:53 | |
smls | Though PDL'ish support won't make it into Perl 6.0, will it? | ||
run4flat | It won't? Somehow I thought that was on the list | 19:54 | |
smls | I dunno :P | ||
run4flat | and, to be clear, I'm not suggesting low-level hooks into PDL's engine | ||
smls | My guess is that it would be expected to be prototyed as a module first | ||
run4flat | Is there an example of such a thing that I can look at? | 19:55 | |
... preferably a simple one. :-) | |||
smls | and then if it turns out that said module can't avoid using nqp:: functionality to do things correctly, merge the required support back into Rakudo | ||
TimToady | smls: well, most of S09 is intended to provide PDLish support, and it remains to be seen how much of S09 gets implemented under jnthn's NSA work | 19:56 | |
19:56
yqt joined
|
|||
TimToady | some of the more abstract mapping semantics might have to wait till after 6.0 | 19:56 | |
19:56
brrt joined,
zakharyas joined
|
|||
smls | right, tightly packed arrays seem to be planned for 6.0 | 19:57 | |
TimToady | but the basic infrastructure should be PDL-ready at least | ||
smls | but having a more high-level PDL-like API as conjectued in the design.perl6.org/S09.html#PDL_signatures section, is probably module material right? | ||
TimToady | well, it all depends on whether someone goes wild before Christmas :) | 19:58 | |
19:58
qwebirc48505 joined
|
|||
run4flat | TimToady: I have a bare-bones idea of how to implement this | 19:58 | |
but I don't know how to hack the parser | 19:59 | ||
I thought I saw an Advent Calendar entry somewhere, but I've lost it | |||
TimToady | shouldn't have to hack the parser much, since most of S09's syntax is already supported, just some is NYI | ||
run4flat | if somebody can point me in the proper direction, I can start working on things | ||
19:59
qwebirc48505 left
|
|||
TimToady | m: my @pdl[3;3;3]; | 20:00 | |
camelia | rakudo-moar b2d6d0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/934irUGve9Shaped variable declarations not yet implemented. Sorry. at /tmp/934irUGve9:1------> 3my @pdl[3;3;3]7⏏5;» | ||
smls | TimToady: Also, maybe the high-level API (beyond simple array munging) *should* stay in module space, so it can experiment and evolve as needed. | 20:01 | |
20:02
ShimmerFairy joined
|
|||
smls | and potentially encourage competing solutions :) | 20:02 | |
RabidGravy | yeah | ||
TimToady | hopefully the type system can support that easily, plus we can have pragmas that warp the default semantics of built-ins in a given lexical scope | ||
if we need that | |||
run4flat | Alright, I'll see what I can come up with | 20:03 | |
jnthn | Tightly packed arrays are something I'd digging into this week, though the work on that is fairly gutsy | ||
run4flat | Believe it or not, I'm not too concerned with the implementation of the data type | 20:04 | |
jnthn | Once *that* is in, then I suspect it'll be easier to jump in and work on things in this area. | ||
run4flat | I'm concerned with the implementation of auto-looping | ||
oh | |||
20:04
bin_005_e joined
|
|||
run4flat | right, well, if the data container isn't yet available, then that'll make my life hard. :-) | 20:04 | |
20:04
bin_005 left
|
|||
jnthn | run4flat: Right; I need to get it in soon anyway, and knowing you're waiting to have it is another nice motivator :) | 20:05 | |
run4flat | jnthn, is there anything I can do to help? | ||
Is there a fork of perl6 I can watch? | |||
:-) | |||
20:05
darutoko left
|
|||
jnthn | m: say 'abc' ~~ /a ~ c [d]/ | 20:06 | |
camelia | rakudo-moar b2d6d0: OUTPUT«Nil» | ||
TimToady | why the superstitious []? | 20:07 | |
20:07
skids left
|
|||
jnthn | TimToady: 'cus somebody made it warn without it :P | 20:07 | |
m: say 'abc' ~~ /a ~ c d/ | |||
camelia | rakudo-moar b2d6d0: OUTPUT«Potential difficulties: Space is not significant here; please use quotes or :s (:sigspace) modifier (or, to suppress this warning, omit the space, or otherwise change the spacing) at /tmp/7t1o42lXO9:1 ------> 3say 'abc' ~~ /a ~ c7⏏5 …» | ||
jnthn | I'm more curious why that didn't trigger the goal matching error though... | ||
TimToady | hmm, it shouldn't warn on that particular space, since it's not, er, sigificant | 20:08 | |
jnthn | m: say '"x' ~~ /'"' ~ '"' \w+/ | ||
camelia | rakudo-moar b2d6d0: OUTPUT«Unable to parse expression in ; couldn't find final '"'  in block <unit> at /tmp/baTytOWdRa:1» | ||
jnthn | Locally: | ||
> say '"x' ~~ /'"' ~ '"' \w+/ | |||
Nil | |||
But what's freaking me out is...no spectests fail after I did this change o.O | 20:09 | ||
smls | run4flat: jnthn has a Perl 6 blog, where I assume he'll mention progress on tightly packed arrays: 6guts.wordpress.com/ :) | ||
jnthn | run4flat: What smls said; I only tend to work in branches when I'm going to break stuff that already works, so I'll likely be doing this in mainline branches. | ||
brrt | are you sure it's plugged in? | ||
jnthn :-P | |||
jnthn | ohhhh | 20:10 | |
The spectest already expect non-exceptional behavior :) | |||
And they're skipped rather than todo'd so I got no passing todos :) | |||
dalek | p: 121db36 | jnthn++ | src/QRegex/Cursor.nqp: Goal matching syntax fails to match, not throws. Since HLL::Grammar already overrides it, our parse errors still work out fine. This just changes the default behavior for userland. |
20:13 | |
p: 3ae36d0 | jnthn++ | t/qregex/rx_goal: Update NQP test suite for goal matching changes. |
|||
masak | run4flat++ # blogs.perl.org/users/david_mertens/...erl-6.html | 20:14 | |
run4flat: I'm curious where you picked up the name "Perl 6 v1.0", which I don't see used at all on #perl6 or on our mailing lists... :) | |||
run4flat | masak: I guessed | ||
:-) | |||
what is the version slated for Christmas called? | |||
masak | run4flat: I'm more likely to see 6.0.0 | 20:15 | |
run4flat | I'll fix my blog post, if tha helps | ||
masak | run4flat: but the truth is it doesn't have an "official" name. | ||
run4flat | heh | ||
masak | run4flat: it's... a slightly contentious area :/ | ||
TimToady | it's probably 6.Christmas | ||
and the beta is called 6.Birthday | |||
masak | :> | ||
run4flat | I suppose you can see that I see "Perl 6" is the language name. :-p | ||
smls | 6.six.1.0.for.real | 20:16 | |
masak | TimToady: at least your attempt at a resolution is sufficiently cute :P | ||
6.we.mean.it.this.time | |||
TimToady | the language revs don't have to look anything like the compiler revs | ||
run4flat | n/p, I can change it to 6.0.0 if that makes folks happy | ||
masak | run4flat: I don't have a dog in that race, so do what you want | ||
run4flat: I was genuinely curious, nothing more | |||
smls | I think v1.0 gets the point across | 20:17 | |
even if its unclear if it will actually be called that | |||
masak | if "Perl 6 v1.0" better reflects how you think about the language, then keep it | ||
TIMTOWTDI :) | |||
TimToady | we're not really picky here | ||
run4flat shrugs and closes the browser window with the blog editor | |||
no problem! | |||
masak | we're an AND culture, not an OR culture :P | 20:18 | |
run4flat | OK, so let's suppose I wanted to write a module that implements the 'autoloop' keyword | ||
can anybody point me to a module that implements a keyword, so I can start cargo-culting? | 20:19 | ||
FROGGS | run4flat: OO::Monitors | ||
run4flat looks | |||
dalek | kudo/nom: 7c35c5e | jnthn++ | tools/build/NQP_REVISION: Bump to get goal matching semantic change. |
||
masak | run4flat: also check out FROGGS++' various slangs on github | ||
20:20
japhb left
|
|||
run4flat tries to google that | 20:20 | ||
dalek | ast: f0e859a | jnthn++ | S05-metachars/tilde.t: Unfudge tests for RT #62086, RT #124949, RT #124950. |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...l?id=62086 | ||
[Coke] | masak: OR are we? | ||
masak | run4flat: github.com/FROGGS/p6-Slang-Tuxic github.com/FROGGS/p6-Slang-Piersing | 20:21 | |
run4flat | masak: thanks! It was actually easier than I expected | 20:22 | |
masak | \o/ | ||
run4flat | masak: I mean finding FROGGS' modules. But adding a keyword looks pretty easy, too | 20:23 | |
masak | run4flat: slangs are in early days still in Perl 6. there's not much of a "theoretical framework" around them, it's just messing about and hoping stuff comes out right. | ||
run4flat: still, when I read about autolooping in S09 recently, I thought "shouldn't that be a slang"? | |||
run4flat: and I was reminded of that when I skimmed your post just now. | |||
dalek | ar: 33e1b0a | FROGGS++ | docs/announce/2015.06.md: update announcement |
20:25 | |
hoelzro | /'{' .*? '}'/ and /'{' ~ '}' [.*?]/ are equivalent except for the error message on failure, right? | 20:26 | |
jnthn | hoelzro: Now you don't get an error by default, so they're equivalent by default. However, you can write a method FAILGOAL that thrwos an error if you wish | 20:27 | |
smls | ...and for the backtracking bugs that ~ still suffers from (I think) | ||
timotimo | ~ doesn't backtrack | 20:28 | |
hoelzro | jnthn: backtracking bugs? that could explain what I was seeing | ||
timotimo | well, now that it fails instead of throwing, it ought to backtrack | ||
hoelzro | so using a frugal operator like *? with ~ is probably ill-advised? | ||
masak | aye | ||
jnthn | It does backtrack now; the tests relating to that were just unfudged and passing. | ||
hoelzro | m: '{ commit() }' ~~ /'{' .*? '}'/ | 20:29 | |
camelia | ( no output ) | ||
masak | hoelzro: using .*? is ill-advised for other reasons too. you can almost always be more precise than that. | ||
hoelzro | m: say '{ commit() }' ~~ /'{' .*? '}'/ | ||
camelia | rakudo-moar b2d6d0: OUTPUT«「{ commit() }」» | ||
hoelzro | m: say '{ commit() }' ~~ /'{' ~ '}' [.*?]/ | ||
camelia | rakudo-moar b2d6d0: OUTPUT«Unable to parse expression in ; couldn't find final '}'  in block <unit> at /tmp/0z5EcUK0Ew:1» | ||
hoelzro | masak: true, I was just doing some prototyping using .*? | ||
masak | hoelzro: there's often a formulation that eliminates backtracking completely. or at least, it's best to aim for one. | ||
dalek | p: 57e8469 | TimToady++ | src/QRegex/P6Regex/Grammar.nqp: don't check space between idents inside a ~ b c |
||
hoelzro | is there something I have wrong in the regex above that uses ~? | ||
20:30
japhb joined
|
|||
TimToady | you just need to wait for jnthn's recent patch to recompile | 20:31 | |
masak | stand by for the imminent future being more equally distributed | 20:32 | |
brrt | future's entropy increasing? | ||
TimToady | also, you've got some superstitious [] there too :P | ||
hoelzro | TimToady: ah, yes, I added that when I thought *that's* what the issue was =) | 20:33 | |
20:34
Firedancer joined
20:35
run4flat left
|
|||
smls | m: my @a = 2, 4, 6, 8; my @b := @a[1, 3]; @b[0] = 40; dd @a | 20:35 | |
camelia | rakudo-moar b2d6d0: OUTPUT«@a = [2, 40, 6, 8]<>» | ||
smls | run4flat: ^^ re array slices | ||
masak | nice. now make that work in the multidim case :> kthx | 20:36 | |
smls | and with native arrays :P | 20:37 | |
TimToady | multidim isn't the problem; that's relying on containers | ||
what smls++ said | |||
masak .oO( fast *and* flexible!? ) | |||
smls | .oO(and simple and elegant and interoperable and maintainable) |
20:39 | |
TimToady | .oO(and wicked cool) |
||
masak .oO( and *ponies*! ) | 20:40 | ||
20:40
dha joined
|
|||
smls | .oO( :picard meme: jnthn, make it so! ) |
20:40 | |
nwc10 | I CAN HAZ CHEEZEponyBURGER? | 20:42 | |
brrt thinks we should have a picardbot | 20:43 | ||
nwc10 | written in Perl 6. Obviously. | ||
masak | 6ard | ||
jnthn | m: my int @a = 2, 4, 6, 8; my @b := @a[1, 3]; @b[0] = 40; say @a | ||
camelia | rakudo-moar b2d6d0: OUTPUT«2 40 6 8» | ||
jnthn | kthxbai :P | ||
masak | o.O | ||
TimToady | nice delorean | ||
masak | a miracle! | ||
brrt is baking popcorn | |||
TimToady | we do have native refs, after all | ||
dha | I have a feeling that the C<scalar> function is not particularly p6ish. Is it gone? | 20:45 | |
TimToady | very | ||
dha | *nod* | 20:46 | |
TimToady | as is wantarray | ||
masak | m: say my $x + my $y given $x = 40, $y = 2; | ||
camelia | rakudo-moar b2d6d0: OUTPUT«42» | ||
smls | theres no "scalar vs list context" in Perl 6 | ||
TimToady | not in the sense that Perl 5 means it, anyway | 20:47 | |
smls | only coercion of values that have been produced with no knowledge of the caller context | ||
masak | m: say my my $w1 ~ my $s ~ my $w2 given $w1 = "OH", $s = " ", $w2 = $w1.subst(/./, "").subst(/$/, "AI"); | 20:48 | |
camelia | rakudo-moar b2d6d0: OUTPUT«5===SORRY!5===Type 'my' is not declaredat /tmp/e5CacpkF70:1------> 3say my my7⏏5 $w1 ~ my $s ~ my $w2 given $w1 = "OH", Malformed myat /tmp/e5CacpkF70:1------> 3say my7⏏5 my $w1 ~ my $s ~ my $w2 given $w1 = "OH» | ||
masak | m: say my $w1 ~ my $s ~ my $w2 given $w1 = "OH", $s = " ", $w2 = $w1.subst(/./, "").subst(/$/, "AI"); | ||
camelia | rakudo-moar b2d6d0: OUTPUT«OH HAI» | ||
masak | \o/ | ||
TimToady is particularly fond of: repeat while my $x != 42 { ...; $x = 42 } | 20:49 | ||
20:49
kaare_ joined,
colomon left
|
|||
smls | what's the difference between "repeat while" and "while"? | 20:49 | |
masak | smls: when the condition is evaluated; after vs before the loop body | ||
aka `do while` in many older languages | 20:50 | ||
smls | ah, so *that's* the repolacement for do { ... } while | ||
TimToady | you can also say repeat { ...; $x = 42 } while $x != 42, but that doesn't work unles $x is predeclared | ||
masak | but I really dig Perl 6's version. and TimToady++'s `repeat while my` pattern is a big part of that. | 20:51 | |
TimToady | and very clearly shows the distinction between order of elaboration and order of executtion | ||
m: say '{ commit() }' ~~ /'{' ~ '}' .*?/ | 20:52 | ||
camelia | rakudo-moar 7c35c5: OUTPUT«「{ commit() }」» | ||
TimToady | there we go | ||
jnthn++ | |||
masak | and I like that lexical variables are woven into the order of elaboration. | ||
as they should. | |||
TimToady | nqp also has the /a ~ b c/ fix, but I didn't deem it worthy a bump | ||
(passes all tests though) | 20:53 | ||
masak | speaking of which | ||
I tried removing Interface Consistency in a local branch | |||
two cases of missing nameds in the core setting -- easily fixed | |||
ugexe | sub signal-jvm($) { Supply.new }; my $signal-handler = &::("signal") ~~ Failure ?? &::("signal-jvm") !! &::("signal"); my $sig-resize = ::("Signal::SIGWINCH"); $signal-handler.($sig-resize).act: { $MAX-TERM-COLS = GET-TERM-COLUMNS() }; # is a better way to catch signals on Moar but still *compile* on JVM? | ||
masak | but then the spectest suite shows loads of "Dubious"es, and then hangs around S32 | 20:54 | |
S32-io, even | |||
no idea why | |||
t/spec/S32-io/copy.t is the file that hangs. even when run directly with `perl6` | |||
20:54
brrt left
|
|||
masak | fails on a call to `copy($existing-file, $existing-file-stgt)` | 20:56 | |
20:56
zakharyas left
|
|||
TimToady | well, the io system relies on all sorts of weird named options, so I guess I'm not surprised | 20:57 | |
jnthn deals with one of the more fun RTs | |||
masak | I see nothing weird about the definition of `copy` in src/core/io_operators.pm | 20:58 | |
jnthn | (actually -Ofun) | ||
$ perl6-m -e "sub foo(Int $x = 'omg') { }" | |||
===SORRY!=== Error while compiling -e | |||
Default value '"omg"' will never bind to a parameter of type Int | |||
at -e:1 | |||
------> sub foo(Int $x = 'omg'<HERE>) { } | |||
:) | |||
masak | I could push this branch if someone else wants to play with it. | ||
jnthn | As requested by masak at some point :) | ||
TimToady | jnthn: why the double quoting? | ||
nwc10 | if I try to build the origin/libuv-1.6.1-update branch, at Configure.pl time it bombs out with | 20:59 | |
Updating submodules .................................... FAIL git error: fatal: reference is not a tree: 30c8be07bb78a66fdee5141626bf53a49a17094a | |||
Unable to checkout '30c8be07bb78a66fdee5141626bf53a49a17094a' in submodule path '3rdparty/libuv' | |||
jnthn | TimToady: 'cus I .perl the value, but put that in quotes... | ||
TimToady: Would you prefer it without any? | 21:00 | ||
FROGGS | nwc10: it worked for me after doing: git submodule foreach git pull origin master | ||
masak | jnthn: cool! | ||
jnthn | TimToady: Was thinking more of when it's like an integer | ||
TimToady | how bout .gist instead? | ||
jnthn | Hm, also works | ||
TimToady | or just leave off the outer quotes | ||
jnthn | Let's try that | ||
dalek | kudo/interface-inconsistency: dd67e25 | (Carl Masak)++ | src/Perl6/World.nqp: remove auto-adding of *%_ in methods |
||
kudo/interface-inconsistency: 257b202 | (Carl Masak)++ | src/core/ (2 files): add two "missing" named params The absence of these made `make` fail. |
|||
jnthn | Gone with .gist | ||
nwc10 | FROGGS: it still hates me | 21:01 | |
FROGGS | :/ | ||
masak | there you go. anyone who wants can investigate why we get massive failures and a hang in the spectest suite in that branch ;) | ||
nwc10 | my upstream is github.com/joyent/libuv.git | ||
FROGGS | nwc10: should have changed to libuv/libuv.git | ||
TimToady | masak: perhaps IO is the canary in your Mine of Inconsistency | 21:02 | |
nwc10 | aha. presumably nothing automates that for me... | ||
TimToady | we don't otherwise do much with class hierarchies | ||
nwc10 | FROGGS: now building. thanks. that was the problem. | ||
masak | TimToady: if so, then that's an interesting data point. | ||
but I don't know yet. | |||
nwc10 | the perils of being an early adopter | ||
TimToady | It's okay to be an early adopter if you're also an early adapter... | 21:03 | |
masak | being an early adopter means getting to say "I will show them! I will show them *all*!" a lot... | ||
"...mwhahahaha!" | 21:04 | ||
dalek | ast: c1305ef | jnthn++ | S06-signature/optional.t: Tweak a test the compiler got too clever for. |
21:06 | |
kudo/nom: 6519911 | jnthn++ | src/ (2 files): Catch impossible default values at compile time. When we use a literal as a default value, we know its type. We can check it against any declared nominal type, and complain at compile time that it's unreasonable. |
|||
dha | Can I assume that the concept of "the currently selected filehandle" does not really apply to p6, and therefore C<select> can be tossed away? | 21:07 | |
TimToady | yup | 21:08 | |
masak | m: my $x = 42; sub bar(Int $y = $x) { say $y }; bar(); $x = "OH HAI"; bar() | ||
camelia | rakudo-moar 7c35c5: OUTPUT«42Type check failed in binding $y; expected 'Int' but got 'Str' in sub bar at /tmp/J2FLYzug4Q:1 in block <unit> at /tmp/J2FLYzug4Q:1» | ||
masak | dha: if you really like the concept of currently-selected-filehandle, then you can implement it in a class. | ||
TimToady | dha: though you might direct them toward the fact that $*OUT and such are overridable in a dynamic scope | ||
dha | I'm wavering on whether that would be helpful or just confusing. :-) | 21:09 | |
TimToady | well, the outermost dynamic scope is kinda global... :) | 21:10 | |
[Coke] thinks 6ard might have some negative connotations for amerenglish. | |||
masak | dha: perhaps refer to sergot++'s module that redirects $*OUT to a string? | ||
dalek | ast: c286040 | jnthn++ | S06-signature/optional.t: Test for RT #112922. |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=112922 | ||
TimToady | anyway, select as a global concept is dead | 21:11 | |
masak | github.com/sergot/IO-Capture-Simple | ||
TimToady | though, perhaps the thing that might be confusing to P5ers is the fact that we consider globals to just be the degenerate case of dynamic variables now | 21:12 | |
so "globals" like $*OUT are really just dynamics defined at a very outer level | 21:13 | ||
it was kinda one of those 'oh wow' unifications that happened along the way | |||
dha | masak - thanks. throwing that in. | 21:14 | |
jnthn | Darn, my patch doesn't actually catch masak's original case in the ticket :P | ||
FROGGS | hehe | ||
TimToady | m: say sub { ... } ~~ Bool | 21:15 | |
camelia | rakudo-moar 7c35c5: OUTPUT«False» | ||
TimToady | you'd think it should | ||
dha | TimToady - Since, obviously, I have no idea what someone reading this is actually using C<select> for, I mentioned the overriding in the context of "maybe this will be of use to you". | 21:16 | |
jnthn | A closure ain't a true literal | ||
TimToady | yes, many uses of select were simply to treat some filehandle or other as if it were an object, to set $| or some such | ||
jnthn | 'cus it needs to be cloned etc. | ||
But I can make it work | |||
Don't want masak re-opening it with "but you didn't fix by bug!!!" :) | 21:17 | ||
RabidGravy | o/ we can fix it ... o/ | 21:18 | |
21:18
colomon joined
|
|||
TimToady | ooh, rudimentary type inference | 21:18 | |
as in "we know this can only produce this sort of value, despite it not being a constant | |||
21:18
TEttinger joined
|
|||
jnthn | :) | 21:19 | |
Made it work; guess I'd better spectest again :) | |||
TimToady | "All type inference that is useful is mandatory." | ||
"The compiler must be at least as smart as the user, but not much smarter." | 21:20 | ||
dha | I'm going to make a leap of faith that semctl, semget and semop are no more. | ||
21:20
Sqirrel left
|
|||
jnthn | That'd sem sane to me... | 21:20 | |
TimToady | anything POSIXy, BSDy, or SysVy is gonna be a thing for modules | 21:21 | |
jnthn: ctl yourself | |||
flussence | there's a Semaphore object in the core now... | ||
TimToady | but surely not an OS-level one? | 21:22 | |
jnthn | Probably not in that sense | ||
flussence | it works well enough I'm not left wanting OS-level ones, at least :) | ||
jnthn | Though surely kernel supported | ||
Since it sucks to have a kernel schedule threads that can't proceed. | |||
TimToady | well, the SysV IPC primitives were primarily for, er, IPC | 21:23 | |
jnthn | Ah...ours are for in-memory | 21:24 | |
uh | |||
in-process | |||
TimToady | nod | ||
jnthn | .oO( good job I don't teach this stuff...oh, wait... ) |
||
RabidGravy | I think I started a module for that stuff, | ||
TimToady | in fact, me nods off... | 21:25 | |
zzz & | |||
dalek | kudo/nom: aead30c | jnthn++ | src/Perl6/Actions.nqp: Extend default type analysis to code objects. |
||
hoelzro | ShimmerFairy: while backlogging, I saw your statement about *%_. I was just thinking about how much I dislike it =) | ||
dalek | ast: 6ad32a7 | jnthn++ | S06-signature/optional.t: A further test for RT #112922. |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=112922 | ||
ugexe | re: Windows. with moarvm, run("mode", :out) works. on jvm run("mode", :out) says it cannot find the file. shell("mode") works fine, but thought it may be worth noting the difference in behavior | 21:29 | |
dalek | ast: 73cd22a | jnthn++ | S06-signature/optional.t: Test for RT #123897. |
21:32 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=123897 | ||
DrForr | .tell nine Silly point to make, but pragmas appear to not be run when declared as 'use utf8:from<Perl5>;' - I realize it's silly but something to think about. | 21:33 | |
yoleaux | DrForr: I'll pass your message to nine. | ||
jnthn | Hm, rest or hunt one more RT... | 21:37 | |
21:38
colomon left
21:39
colomon joined
21:42
kaare_ left
21:50
skids joined
|
|||
jnthn | heh, RT #72440 was a pretty funny one :) | 21:53 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...l?id=72440 | ||
masak | :D | 21:56 | |
I found that bug by *porting* PGE :P | |||
21:57
atroxaper joined
21:58
colomon left
|
|||
jnthn | Another 5 year old one taken out :) | 21:59 | |
dalek | p: 5263e63 | jnthn++ | src/QRegex/P6Regex/Grammar.nqp: Remove wrong and duplicate optimization. We don't know that the atom we're looking at really can cope with us swallowing multiple chars into the literal at this point; we may be in a goal or a separator. Rather than fix it, it can simply go away, since there's code in the termish action method that does the very same optimization, but more generally, and when we know it's safe. So we don't lose out, but we do lose a couple of weird bugs. |
22:00 | |
22:00
Sqirrel joined
|
|||
masak | jnthn++ # taking out 5-year-olds -- oh wait | 22:00 | |
DrForr | That sounds bad in *so* many ways... | ||
dalek | kudo/nom: 4a72196 | jnthn++ | tools/build/NQP_REVISION: Get a couple of regex engine fixes. |
22:01 | |
masak | DrForr: worse than I intended, even. | ||
22:01
atroxaper left
|
|||
jnthn decides he won't take the 12-year-old out of the cupboard to sip on this evening... :P | 22:02 | ||
dalek | ast: 4752d6b | jnthn++ | S05-meta (2 files): Tests for RT #72440. |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...l?id=72440 | ||
jnthn | m: say "{1031 - 999} to go to get to a 3-digit number of RTs" | 22:05 | |
camelia | rakudo-moar aead30: OUTPUT«32 to go to get to a 3-digit number of RTs» | ||
jnthn | Sounds do-able within the month :) | 22:07 | |
jnthn has slayed 18 RT tickets so far this week :) | |||
masak | let's hope some doofus doesn't keep opening tickets, then :P | 22:08 | |
jnthn | Well, yeah, we've had like 6 in the last 24 hours | 22:09 | |
22:09
khw left
22:10
diana_olhovik_ left
|
|||
jnthn | Opinions welcome on rt.perl.org/Ticket/Display.html?id=125504 | 22:10 | |
But since we re-write %foo<a> to %foo{'a'} at compile time...we don't have the info to do any better in terms of knowing which syntax the program used by runtime, which is when the error happens. | 22:11 | ||
22:11
smls left
|
|||
masak | yeah. | 22:12 | |
not sure I see a good way to handle that. | 22:13 | ||
jnthn | Other thing with tickets is they ain't all of equal quality. | ||
RabidGravy | boom | ||
beddy byes | |||
masak | 'night, RabidGravy | ||
jnthn | RabidGravy: Hope you had a nice day at the beach! :) | ||
(By quality, I mean some really are well golfed down, or at least state expected outcome, whereas others are far from golfed or vauge in what they want) | 22:14 | ||
22:15
uncleyear left,
uncleyear joined
22:18
RabidGravy left
22:19
bin_005_e left
|
|||
japhb | .oO( Expected outcome: it works. ) |
22:23 | |
22:24
khw joined
|
|||
jnthn | :P | 22:24 | |
masak .oO( Observed outcome: something's wrong ) | |||
22:29
colomon joined
22:30
diana_olhovik_ joined,
diana_olhovik_ left
22:33
spider-mario left
22:37
telex left
22:38
telex joined
22:39
AlexDaniel joined
22:43
atweiden joined
|
|||
hoelzro | does hack have a very aggressive fail2ban running on it or something? I just tried to get on, but now it's not accepting any traffic from me on port 22 =/ | 22:45 | |
timotimo | i think there's fail2ban on it, yeah | 22:48 | |
jnthn | .oO( funny name, it didn't fail 2 ban him... ) |
22:49 | |
22:51
raiph joined
|
|||
hoelzro | heh | 22:53 | |
dha | Well, in case anyone wants an update, I've managed to get through perlfunc to C<split>. | 23:01 | |
jnthn | dha++ | ||
japhb | Impressive progress, dha++ ! | 23:02 | |
dha | Thanks. I just hope it winds up being of use to someone... | ||
23:03
vendethiel left
|
|||
masak | sounds like a very useful thing. | 23:06 | |
'night, #perl6 | 23:13 | ||
flussence | m: given DateTime.new(Instant.new(1435708835)) { .say; say .Instant - now } # buckle up | 23:14 | |
camelia | rakudo-moar 4a7219: OUTPUT«2015-06-30T23:59:60Z2702.292092» | ||
jnthn | ah, 'tis leap second night! :) | 23:17 | |
jnthn decides to try and sleep through it, so he can get an extra second of sleep :) | 23:18 | ||
'night o/ | |||
skids waiting to get paged about all the machines which missed the patch for that. | 23:19 | ||
23:22
gfldex left
|
|||
b2gills | I've heard that Google slightly adjusts the clock frequency so they don't have to deal with leap seconds directly | 23:29 | |
jercos | skew is good for yew | 23:30 | |
dalek | kudo-star-daily: 49d742d | coke++ | log/ (8 files): today (automated commit) |
23:35 | |
rl6-roast-data: 953465c | coke++ | / (9 files): today (automated commit) |
|||
skids keeps mixing up .foo and $.foo when he has both a topic and a self. I guess that goes in the "fluency" category. | 23:46 | ||
TimToady | b2gills: that sounds like a BSD adjtime(2) kind of approach | ||
23:53
yqt left,
yqt joined
23:58
TimToady joined
|