|
»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
|
00:10
ugexe joined
|
|||
| timotimo | if the CAS doesn't turn into a little functional language, is it even useful? | 00:15 | |
|
00:15
BenGoldberg joined
|
|||
| raydiak | well, I suppose not, I just didn't think about it that way when I started out, but w/the compiling and stuff, it's starting to show a little potential for actual usefulness | 00:16 | |
| with only a couple more additions, it could be a new way to define primitives for Pray...or render procedural 3D surfaces from a user-entered equation by auto-generating the intersection tests at runtime | 00:21 | ||
| would have been way too slow for any actual use like that before, was mostly just good for rearranging equations or evaluating them for non-performance-sensitive uses | 00:22 | ||
| ugexe | does feather have some threshold that can be exceeded by updating the ecosystem with panda a lot? i keep getting connection refused on one specific machine when panda tries to update the ecosystem | 00:26 | |
| timotimo | isn't the panda server down in general right now? | 00:28 | |
| raydiak | ugexe: if feather moved hosts today, could you have an old cached dns record on that machine or something? | 00:29 | |
| timotimo | i wonder why we don't just host that on a static web server | ||
| raydiak | panda has been pack up for me for hours now | ||
| *back up | |||
| timotimo | OK | ||
|
00:29
ugexe_ joined
00:32
ugexe left,
ugexe_ is now known as ugexe
|
|||
| ugexe | its possible. just weird it worked one second then the next it was refused | 00:33 | |
|
00:34
kurahaupo left
00:45
GladiaTeur left,
jack_rabbit joined
00:47
firefish5000 left
|
|||
| timotimo | just to make sure ... perl6 regex do have negative look-behind with variable-length things, right? | 00:57 | |
| TimToady | for things that are reversible | 01:01 | |
| supposed to, ayway | |||
| *n | 01:02 | ||
| otoh, it's almost always a parsing smell to use one | |||
| timotimo | mhm mhm | 01:03 | |
| i'd just like to throw a "that works in perl6!" into a conversation about perl regexes having that limitation | |||
| TimToady | *g* | ||
| m: say 'abbbc' ~~ /<.after ab+> c/ | 01:05 | ||
| camelia | rakudo-moar c40c1b: OUTPUT«「c」» | ||
| TimToady | m: say 'Abbbc' ~~ /<.after ab+> c/ | ||
| camelia | rakudo-moar c40c1b: OUTPUT«Nil» | ||
| TimToady | looks like it works to me | ||
|
01:05
exixt is now known as EXIXT
|
|||
| timotimo | can we reverse subrules if they are declarative? | 01:06 | |
|
01:08
EXIXT is now known as exixt
01:09
KCL joined
01:10
exixt is now known as EXIXT
01:12
KCL_ left
|
|||
| TimToady | it's the declarative ones that are easy | 01:16 | |
| dalek | ake: d022e43 | (Arne Skjærholt)++ | src/Snake/ (3 files): Store functions defined in a class body in the class object. This means methods are half-way there. To make them work properly, attributes looked up in the class object have to be wrapped up as a lambda with the invocant to make them behave properly. |
||
| timotimo | i was mostly wondering if we can reverse all <foobar> and <&barbaz> likes | ||
| anyway, i should catch some sleep | 01:17 | ||
| good night, #perl6 ! | |||
| psch | g'night timotimo | ||
| TimToady | o/ | 01:18 | |
| psch | i've had an idea, in between, how to make jvm interop work, but apparently i confused the HOW with the class it describes... | 01:19 | |
| where "work" doesn't really mean work | 01:27 | ||
| more like "try to understand", i guess | |||
| i probably should also sleep o/ | |||
|
01:27
psch left
01:29
panchiniak joined
01:31
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
01:32
chenryn joined
01:35
BenGoldberg left
01:42
chenryn left,
BenGoldberg joined
01:47
robinsmidsrod left
01:49
robinsmidsrod joined
02:02
virtualsue left
02:32
BenGoldberg left
02:37
kurahaupo joined
02:40
Akagi201 left
02:43
BenGoldberg joined
02:47
BenGoldberg left
02:53
chenryn joined
03:11
adu joined
03:18
robinsmidsrod left
03:19
robinsmidsrod joined
03:20
chenryn left
03:22
chenryn joined
03:23
noganex_ joined
03:25
noganex left
03:30
JimmyZ joined
03:42
itz joined
03:43
waressearcher2 left
03:45
itz_ left
04:09
robinsmidsrod left,
rmgk_ joined,
rmgk is now known as Guest69125,
Guest69125 left,
rmgk_ is now known as rmgk,
robinsmidsrod joined
04:14
araujo left
04:15
kaare__ joined
04:32
robinsmidsrod left
04:35
robinsmidsrod joined,
robinsmidsrod left
04:37
robinsmidsrod joined
04:38
robinsmidsrod left
04:39
robinsmidsrod joined
04:44
robinsmidsrod left,
robinsmidsrod joined
04:50
PZt left
04:53
robinsmidsrod left
04:54
chenryn left,
robinsmidsrod joined
04:55
PZt joined
05:11
kaare__ left
05:13
mr-foobar left
05:18
robinsmidsrod left
05:19
robinsmidsrod joined
05:25
chenryn joined
05:30
PZt left
05:33
itz_ joined
05:35
itz left
05:44
kaare__ joined
05:56
jfredett joined
05:58
telex left
06:00
telex joined
06:06
mephinet left
06:07
denis_boyun joined
06:12
mephinet joined
06:14
anaeem1_ joined
|
|||
| raydiak | not sure if anyone is around, but I'm having trouble thinking of an adequate name for a data structure I made that I might wrap up into its own module | 06:34 | |
| moritz is around sporadically | |||
| raydiak | it's a hash keyed by hash w/eqv semantics | ||
| also has extra methods to e.g. find all keys with a certain sub-key w/o manual grepping and such | 06:35 | ||
| using it for polynomials in math::symbolic...like {:x(2),:y(1)} => 3 is an entry for 3x²y at a certain place in the guts | 06:38 | ||
| but there's nothing specific in it about numbers or math | 06:39 | ||
| it's not a HoH b/c the sub-hash is on the key side :) calling it MultiHash in the code, b/c I couldn't think of anything meaningful/intuitive/descriptive | 06:42 | ||
|
06:44
gfldex joined
06:47
dayangkun joined
06:48
dayangkun left
06:49
adu left,
denis_boyun left
07:02
dayangkun joined
|
|||
| JimmyZ | 3x^2y ? | 07:03 | |
|
07:04
eternaleye left
07:07
eternaleye joined,
KCL left
07:08
rurban joined
07:13
davido__ joined
07:15
davido___ left
07:19
kaleem joined
07:21
jluis joined,
FROGGS joined
07:23
jfredett left
07:26
virtualsue joined
07:31
dayangkun_ joined
07:32
dayangkun_ left,
blackbolt joined
07:35
dayangkun left
07:36
darutoko joined,
Alina-malina left
07:37
Alina-malina joined
07:42
gfldex left
07:47
robinsmidsrod left
07:49
robins joined
07:53
robins left,
robinsmidsrod joined
07:54
bjz joined
|
|||
| dalek | c: a14cc56 | smls++ | lib/Type/ (17 files): Add summaries for roles |
07:54 | |
| c: acd0982 | smls++ | lib/ (86 files): Add summaries for all remaining classes |
|||
| c: 9633d96 | smls++ | htmlify.p6: Make summaries work for type docs embedded in language docs |
|||
| c: 7ec008c | smls++ | htmlify.p6: Render role summaries in italic, on type index pages Since the summaries for classes and roles are phrased differently, it will help readers if we also render them differently. |
|||
| c: eecebd6 | moritz++ | / (103 files): Merge pull request #30 from smls/master Add summaries for all remaining documented types, + minor related htmlify improvements |
|||
|
07:55
robinsmidsrod left
07:57
robinsmidsrod joined
07:59
robinsmidsrod left,
robinsmidsrod joined
08:00
grondilu joined
|
|||
| grondilu | guys, my version of rakudo comes from the future! | 08:00 | |
| This is perl6 version 2014.11-25-gc40c1b8 built on MoarVM version 2014.11-17-g972d95b | |||
| :-) | |||
| FROGGS | grondilu: :P | 08:01 | |
|
08:03
[Tux] left
08:04
blackbolt left
08:08
blackbolt10 joined
08:11
[Tux] joined
|
|||
| masak | morning, #perl6! | 08:12 | |
| moritz | \o masak, #perl6 | ||
|
08:13
robinsmidsrod left
08:14
robinsmidsrod joined
|
|||
| FROGGS | morning m&m | 08:15 | |
| masak | moritz and masak: www.m-ms.com.au/media/3387/red_yell...unning.jpg | 08:16 | |
|
08:16
robinsmidsrod left
08:19
robins joined
|
|||
| moritz | masak: who's the red one? :-) | 08:19 | |
|
08:20
rindolf joined
|
|||
| masak | still trying to figure that out myself. | 08:27 | |
|
08:28
erkan joined,
erkan left,
erkan joined
08:29
smls joined
|
|||
| smls | o/ | 08:29 | |
| moritz | \o smls | 08:32 | |
| smls: you should have an invitation to join the perl6 organization on github, so that you can push doc changes (and more) directly | |||
| smls: and thanks for your patches so far! | |||
| smls | ok | ||
| though for more invasive changes, review requests are still better, right? | 08:33 | ||
| so you can review them... :) | |||
|
08:33
blackbolt10 left
|
|||
| moritz | yes | 08:33 | |
| though normally we operated on the "forgiveness is better than permission" principle | 08:34 | ||
| smls | is the sync to doc.perl6.org automated thought? | ||
| if it is, we should be a little more careful with this particular repo | |||
|
08:35
robins is now known as robinsmidsrod,
pecastro left,
rurban1 joined
|
|||
| moritz | it's not | 08:35 | |
| though I hope to automate it in a few months | 08:36 | ||
|
08:38
rurban left
|
|||
| dalek | ecs: ba95f5f | (L. Grondin)++ | S99-glossary.pod: fix "control flow" link |
08:52 | |
| ecs: c86147b | (L. Grondin)++ | S99-glossary.pod: fix "sigil" link |
|||
| ecs: 780f49e | (L. Grondin)++ | S (5 files): Merge branch 'master' of github.com:perl6/specs |
|||
|
08:52
bjz left
08:54
bjz joined
08:55
abraxxa joined
|
|||
| moritz | www.greghendershott.com/2014/11/git...ments.html does that mean github doesn't hilight Perl 6 code anymore? | 08:55 | |
| jnthn | smls++ # documentation work | 08:56 | |
|
08:56
vti joined,
Ven joined
|
|||
| Ven | .tell masak swift has something akin to your THUNK. stackoverflow.com/questions/2410261...utoclosure – it's like a "call-by-name" | 08:57 | |
| yoleaux | Ven: I'll pass your message to masak. | ||
| masak | moritz: well, I see highlighting in github.com/masak/druid/blob/master...id/Game.pm -- but it might be it's Perl 5 highlighting. `has` ain't highlighted, for example. | ||
| yoleaux | 08:57Z <Ven> masak: swift has something akin to your THUNK. stackoverflow.com/questions/2410261...utoclosure – it's like a "call-by-name" | ||
| masak | Ven: I'm right here. | ||
| Ven | :) nice then. | ||
| (but it's a more like your THUNK than a call-by-name) | 08:58 | ||
| moritz | useless use of yoleaux at line *-3 | ||
| Ven | "is-move-bad" wouldn't "illegal" be a more fitted name? | ||
| masak | yes, that's pretty close to THUNK. | 08:59 | |
| Ven: yes, probably. | 09:00 | ||
|
09:00
sqirrel__ joined
|
|||
| Ven just skimmed through druid's code once again | 09:00 | ||
| masak | seems my 2010 self optimized that name for brevity, though. | ||
| Ven ponders the idea of a D&D game in p6 | 09:01 | ||
| masak | Ven: does this mean that in Swift, functions cannot be called before they're declared? | ||
| Ven | masak: think so. That's 100% for the best in my book, though :) | 09:02 | |
| also, operators can be predeclared (operator prefix |>, e.g.) | |||
| masak | *nod* | ||
| I sometimes like post-declaring functions. | |||
| I realized yesterday that this actually provides a limited Haskell-style `where` functionality, for functions only. | 09:03 | ||
| Ven | It does. But I think there's usually a problem in your "flow" if you need that :) | 09:04 | |
| masak | m: 2 + 2 == 5 or exit-saying("seems I need to brush up my math") given my &exit-saying = -> $msg { say $msg; exit } | ||
| camelia | rakudo-moar c40c1b: OUTPUT«seems I need to brush up my math» | ||
| masak | \o/ | ||
| Ven | you might be either overengineering or not having enough blocks in such cases | ||
| masak | nah, it's all about emphasis in the phrase. | ||
| Ven | yeah, the postfix-given is nice :) | ||
| jnthn | .oO( I might use that idiom given it's possible... ) |
09:06 | |
| masak | actually, with some gritting of teeth, it's possible for other variables as well. | 09:07 | |
| m: 2 + 2 == 4 or say "Turns out it was ", (my $actual) given $actual = 4 | |||
| camelia | ( no output ) | ||
| masak | m: 2 + 2 == 5 or say "Turns out it was ", (my $actual) given $actual = 4 | ||
| camelia | rakudo-moar c40c1b: OUTPUT«Turns out it was 4» | ||
|
09:07
azawawi joined
|
|||
| azawawi | hi | 09:07 | |
| masak | azawawi! \o | ||
| Ven | now that's evil :) | ||
| hey awwaiid | 09:08 | ||
| whoops. azawawi | |||
| azawawi | lol | ||
| panda's meta http server seems to be down... feather.perl6.nl:3000 is down from the same box | 09:09 | ||
| cant panda update | |||
| azawawi wonders if he will see rakudo star 2014.11 | |||
| smls | moritz: Speaking of slightly more invasive changes... Are you very fond of keeping the full type docs for the 8 types {Set, SetHash, Bag, BagHash, Mix, MixHash, Grammar, Perl6::Metamodel::ClassHOW} embedded inside free-form Language/ Pods? | 09:11 | |
| I'd prefer them to have their own stand-alone Type/ Pods like all other classes and roles. | |||
| masak | azawawi: feather was migrated yesterday, and the panda service is not back up. | ||
| smls | Both because I think linking instead of embedding would be more reader-friendly, and because htmlify would benefit from being able to expect a more consistent structure for its input data (rather than munging through everything and heuristically extracting stuff from all over the place, like it does now). | 09:12 | |
| azawawi | masak: migrated where? | ||
| masak | to a new feather. | ||
| smls | (Especially in anticipation of the envisaged refactor to make htmlify.pl pull-based/incremental...) | ||
|
09:13
erkan left
|
|||
| moritz | smls: +1 to having them in type/ | 09:14 | |
| smls | ok | ||
| azawawi tries to build rakudo on windows 7 64-bit | |||
| smls | moritz: While I modify Language/Sets_Bags_and_Mixes.pod to accomodate that change, may I also rename it to Language/setbagmix.pod to match the naming/URL scheme of the other docs? | 09:18 | |
| Do you have a system in place to add URL redirects on doc.perl6.org for backwards-compatibility? | |||
|
09:19
itz joined
09:20
itz_ left
09:21
Ugator joined
09:23
cosimo left
09:24
Shozan is now known as SHODAN,
dakkar joined,
cosimo joined
09:26
ribasushi left
09:27
ribasushi joined
09:34
sqirrel__ left
09:42
chenryn left
09:49
denis_boyun joined
09:58
azawawi left
10:05
EXIXT is now known as exixt
10:07
zakharyas joined
10:08
Celelibi left
10:10
Celelibi joined
|
|||
| carlin | re: github highlighting, yes it appears that perl6 is no longer highted, tested by creating a gist and selecting Perl6 as the language, and it doesn't highlight it when it definitely used to | 10:21 | |
| smls | m: my %fruits := <apple orange apple banana>.Set; say "{++$}) $_" for %fruits; | 10:22 | |
| camelia | rakudo-moar c40c1b: OUTPUT«1) apple orange banana» | ||
| smls | ^^ It looks like Set does not do Iterable, and hence does not flatten. Why not? | 10:23 | |
| JimmyZ | carlin: you're right | ||
|
10:23
kst` joined
10:25
kst left
|
|||
| peteretep | that's because they stopped using pygments, right? | 10:26 | |
| smls | m: my Set[Int] $n; :( | 10:32 | |
| camelia | rakudo-moar c40c1b: OUTPUT«===SORRY!===Type Set cannot accept type arguments» | ||
|
10:32
JimmyZ left
|
|||
| jnthn | It's not spec'd as doing so either, afaik. | 10:35 | |
| Maybe in 6.future :) | |||
| moritz | smls: +1 to renames; no system for preserving old URLs | ||
|
10:37
Ven left
10:43
chenryn joined
|
|||
| moritz | smls: so that sets can be nested, IIRC | 10:43 | |
| smls | hm but hashes, array, and lists can also be nested just fine... | 10:45 | |
| re preserving URLs: What kind of server setup does doc.perl6.org use? nginx? | 10:46 | ||
| moritz | smls: apache2 | ||
|
10:47
chenryn left
|
|||
| smls | m: my $x = set <foo bar baz 1 2 3>; say $x.list; | 10:57 | |
| camelia | rakudo-moar c40c1b: OUTPUT«foo bar baz 1 2 3» | ||
| smls | ^^ don't hash'y things scramble the order of their elements like they do it Perl 5? | 10:58 | |
| moritz | they can | ||
| iirc set currently doesn't, but don't rely on it | |||
|
11:00
pecastro joined
|
|||
| Woodi | hallo #perl6 :) | 11:01 | |
| m: Grammar::Tracer; grammar abc { rule TOP { <quoted> }; rule quoted { '"' <string> '"' }; }; abc.parse('"abc"'); | 11:02 | ||
| camelia | rakudo-moar c40c1b: OUTPUT«Could not find symbol '&Tracer' in method <anon> at src/gen/m-CORE.setting:13780 in any find_method_fallback at src/gen/m-Metamodel.nqp:2725 in any find_method at src/gen/m-Metamodel.nqp:988 in block <unit> at /tmp/pGIm0jTQPn:1» | ||
| masak | 'allo, Woodi | ||
| Woodi: missing `use` | |||
| Woodi | in repl I get a bit of grammar trace and error: Method 'string' not found for invocant of class 'abc' | 11:03 | |
| so, grammar class is build at runtime ? or it is Tracer effect ? | |||
| jnthn | Well, yeah...your grammar has no method named string. | ||
| Woodi | I thinked it should be checked at compile time | 11:04 | |
| jnthn | It's just a normal method call, and those are always late-bound. | ||
| Woodi | a bit strange... | ||
| jnthn | Nope. | ||
| Not unless the only languages you ever programmed in are Java, C#, and C++, anyway. :P | |||
| masak .oO( requestor fails at pasting code into camelia, then complains about language features he doesn't fully grok. community++ remains polite. ) | 11:05 | ||
|
11:10
anaeem1_ left
|
|||
| jnthn | Iinterestingly, the original OO languages were dynamic in this sense, and used the more helpful "message send" metaphor rather than "method call"... :) | 11:10 | |
| masak | Woodi: the same mechanism that allows a method base class to call a method in a derived class (with no additional fuss) also makes it impossible to check at compile time. | 11:11 | |
| Woodi: it's called "runtime polymorphism". | |||
| jnthn | And of course, when you send a message, the object can be all like, "return to sender...address unknown..." :) | 11:12 | |
| masak .oO( this method call ain't nothin' but a hound dog ) | |||
| jnthn | .oO( you ain't never seen my fields and you ain't no friend class of mine ) |
11:13 | |
| masak .oO( don't be cruel to a class that's true ) | 11:14 | ||
|
11:17
sqirrel__ joined
11:20
ssqq joined
|
|||
| smls | What's an example of a simple, commonly-used (by users not implementors) Perl 6 built-in type that is *not* a value type? | 11:21 | |
| masak | Hash | 11:22 | |
| Array | |||
| Pair | |||
| smls | m: say (1, 2, 3).WHICH; say [1, 2, 3].WHICH; say (a => 1).WHICH; | 11:23 | |
| camelia | rakudo-moar c40c1b: OUTPUT«Parcel|(Int|1)(Int|2)(Int|3)Array|70620192Pair|77700592» | ||
| smls | ok | ||
| m: say .WHICH for /./, {$_}, Buf.new(2, 4, 6) | 11:28 | ||
| camelia | rakudo-moar c40c1b: OUTPUT«Regex|55031280Block|61498240Buf|76158368» | ||
| ssqq | github.com/songzan/vim_plug/blob/m...ax/pod.vim could make Pod more readable. | ||
| smls | ^^These two, or is their .WHICH just NYI? | ||
| *too | |||
|
11:33
yeahnoob joined
11:35
anaeem1 joined
|
|||
| lizmat | smls: what do you expect about their .WHICH ? | 11:36 | |
|
11:36
anaeem1 left
|
|||
| smls | in theory they could be value types, no? | 11:36 | |
| same which for every structurally identical instance | |||
| lizmat | Array will never be a value type, nor will Pair be (because the value is not fixed) | 11:37 | |
| Parcel is on the chopping block | |||
| jnthn | And Buf is a kind of array really. | ||
| So it also ain't a value type | |||
| smls | ok | ||
|
11:38
anaeem1_ joined,
anaeem1_ left,
araujo joined
|
|||
| jnthn | Same with regex, since "are these two pieces of code identical" is the halting problem :) | 11:38 | |
| moritz | and we still haven't solved that. We should be trying harder :-) | ||
| jnthn | I fear if we start working on it, we'll just never stop... | ||
| smls | "Parcel is on the chopping block" -- but List will take over its duties :) | 11:39 | |
| moritz | List is a mutable type, so no value type | 11:41 | |
| smls | but post-GLR? | ||
| "Thus infix:<,> will now create Lists directly. It’s likely that comma-Lists will be immutable [...]" - pmthium.com/2014/10/apw2014/ | 11:42 | ||
| moritz | huh, I missed that part | 11:43 | |
| smls | Having one mutable list type (Array) and one immutable one (List), seems elegant to me :) | 11:44 | |
|
11:45
robinsmidsrod left
|
|||
| smls | I would maybe even go one step further, and make List the only one that supports laziness. | 11:45 | |
| lizmat | ??? a lazy, immutable List ? | ||
| smls | why not? | ||
| lizmat | that's called a generator, surely ? | 11:46 | |
| nine | We could also rename List to Tuple and match Python | ||
| abraxxa | tuple are pairs, list is just a list imho | 11:47 | |
| moritz | tuples don't need to be 2-tuples | ||
|
11:47
robinsmidsrod joined
|
|||
| lizmat | that sounds more like Parcels to me... | 11:49 | |
| smls | As for lazy/infinite Arrays, do we really need them? | 11:50 | |
| lizmat | yes | ||
|
11:50
ssqq_ joined
|
|||
| lizmat | going back to p5 and not having them, has made that *very* clear to me | 11:51 | |
| smls | I think the kind of functional idioms/algorithms that tend to make use of lazy lists, don't really have much use for mutability or guaranteed itemization of values... | 11:52 | |
| lizmat: Can you give an example of an algorithm/solution that is better served by a lazy Array than a lazy List? | 11:53 | ||
|
11:53
ssqq left
|
|||
| lizmat | ah, sorry, I didn't get the emphasis on Array there | 11:54 | |
| hmmm.... | |||
| smls | And jnthn said in one of his talks, that potential laziness is one of the reasons why arrays are still a lot slower than in Perl 5... | ||
| lizmat | you could have a point there... | ||
| so, no I don't have an example of lazy Array over lazy List | 11:56 | ||
|
11:59
smls left
|
|||
| jnthn | Well, if you can't do that, you can't assign an infinite thing to an array, ever. | 12:00 | |
|
12:00
kaleem left
|
|||
| lizmat | you maen: my @a := inifinite list ? | 12:02 | |
| my @a = infinite list | |||
| ? | |||
| jnthn | That's not assignment. | ||
| Right, = is | |||
| You would have to write := | |||
| lizmat | I could live with that, really | ||
| it makes it *really* clear what you're doing | |||
| dalek | kudo/newio: 55d59e4 | (Tobias Leich)++ | src/Perl6/ (2 files): attempt to fix RT #123215 |
12:04 | |
| kudo/newio: 2b6e77e | (Tobias Leich)++ | src/Perl6/Actions.nqp: fix value of chained colonpairs in ( ) |
|||
| synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123215 | ||
| kudo/newio: c40c1b8 | (Tobias Leich)++ | src/Perl6/ (2 files): fix chained colonpairs in curlies, resolves RT #123215 |
|||
| synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123215 | ||
| dalek | kudo/newio: f55a607 | (Elizabeth Mattijsen)++ | src/Perl6/ (2 files): Merge branch 'nom' into newio |
||
| jnthn | Also, Array ~~ List, and Array not being lazy when List is seems like a pretty clear Liskov violation... | 12:05 | |
|
12:06
fhelmberger joined
|
|||
| lizmat | perhaps Array !~~ List? | 12:08 | |
| just playing devil's advocate here | 12:09 | ||
| they're just both Iterables ? | |||
|
12:09
smls joined
|
|||
| smls | Array ~~ List, but Array !~~ Parcel | 12:10 | |
| So, if post-GLR List becomes more like current Parcel... | |||
| As for assigning vs binding infinite lists to @ variables, I wouldn't miss it the current state of being able to assign *some* infinite lists but having to use binding for others | 12:13 | ||
| As lizmat said, always using binding in those cases improves clarity anyway | 12:14 | ||
|
12:16
kurahaupo left
|
|||
| smls | s/'i't '// | 12:17 | |
| smls can't even type his typo corrections without typos :/ | 12:18 | ||
|
12:20
smls left
12:31
chenryn joined
12:36
chenryn left
|
|||
| Ugator | hi #perl6 :-) is there gonna be a weekly? | 12:40 | |
| vti | in regexes is this supposed to work '** ^2'? like from 0 to 2 range? right now you have to write '** 0..2', or am i missing smth? | 12:42 | |
| masak | Ugator: good question! haven't seen timotimo today... | 12:43 | |
| vti: I think you're the first who thinks of that syntax. | |||
| vti: doesn't sound all that unreasonable to me. | |||
| Ugator | .seen timotimo | ||
| yoleaux | I saw timotimo 01:17Z in #perl6: <timotimo> good night, #perl6 ! | ||
| Woodi | I was not aware that Perl6 design choices was "too-late" binding :) becouse this can be categorized as syntax-error-not-detected during compilation. in such simple case all info is in code but not used... | ||
| vti | masak: i thought it had the same 'range' functionality as in loops | 12:44 | |
|
12:45
darutoko- joined
|
|||
| masak | m: say "AxxxB" ~~ / A [x ** ^4] B / | 12:45 | |
| camelia | rakudo-moar c40c1b: OUTPUT«===SORRY!=== Error while compiling /tmp/dyFJahR0z4Quantifier quantifies nothingat /tmp/dyFJahR0z4:1------> say "AxxxB" ~~ / A [x ** ⏏^4] B / expecting any of: postfix infix stopper…» | ||
| Woodi | jnthn: interestingly, I always understand "method sending" as as asynchronous signal :) | ||
| masak | I don't see it colliding with anything, so... I guess it's just a simple matter of programming. | 12:46 | |
| Woodi: you mean "message passing". | |||
|
12:48
darutoko left
|
|||
| vti | masak: nice, how do i start? :) | 12:48 | |
| masak | vti: write failing spectest. then (I'm guessing) extend the NQP grammar engine. | 12:49 | |
| jnthn | Message sends to an object can be sync or async; it's all up to the meta-object doing the dispatching. See my OO::Actors model for that makes $obj.something(...) an async operation on $obj :) | ||
| masak | was gonna say -- whether it is actually sync or async is up to the object system. | ||
| jnthn | *systems* :) | 12:50 | |
| masak | oh, in the sense that each meta-object can be one, and they're running alongside each other? fair enough. | 12:51 | |
| Woodi: some years ago, I found worrydream.com/EarlyHistoryOfSmalltalk/ fascinating reading. you might, too. it's long but worth it. | |||
| Woodi | yes, I mean as in actors. that was my first intuition whrn learning OO. I have problems with learning "method call-and-return" class interaction design... | 12:52 | |
| it's design choice, I know... | 12:53 | ||
| jnthn | Well, I suspect Perl 6 is flexible enough that you could write a module that enforces much stricter compile-time checking. But I don't think it's a good default. | 12:55 | |
| masak | it kinda presupposes a closed world hypothesis. | ||
| jnthn | (Especially when considered in the context of the rest of the language.) | 12:56 | |
| Hm, I better get ready for my train trip... :) | |||
| bbl & | 12:57 | ||
| lizmat | sometimes I wish we had something like ifd | 13:01 | |
| (as in if defined) | |||
| masak | what's wrong with `if $thing.defined` ? | 13:02 | |
| lizmat | ifd complicated_thing -> $foo { | ||
|
13:02
brrt joined
|
|||
| lizmat | would match only if complicated_thing were defined, but passed the thing into $foo (rather than the result of defined) | 13:03 | |
| or do we have a simple recipe to do something like that already ? | |||
|
13:04
robinsmidsrod left
|
|||
| masak | m: sub ifd($thing, &fn) { if $thing.defined { fn($thing) } }; ifd 2, -> $n { say $n }; ifd my $x, -> $y { say "!!!" } | 13:04 | |
| camelia | rakudo-moar c40c1b: OUTPUT«2» | ||
|
13:04
ssqq joined
|
|||
| masak | m: macro ifd($thing, $fn) { quasi { if {{{$thing}}}.defined { {{{$fn}}}({{{$thing}}}) } } }; ifd 2, -> $n { say $n }; ifd my $x, -> $y { say "!!!" } | 13:05 | |
| camelia | rakudo-moar c40c1b: OUTPUT«===SORRY!===Cannot reference undeclared local 'pres_topic__1'» | ||
| masak | :/ | ||
|
13:06
robinsmidsrod joined
|
|||
| ssqq | How to get all *symbols/symbolic* of current package? | 13:06 | |
| moritz | m: say ::?PACKAGE.WHO.keys | 13:07 | |
| camelia | rakudo-moar c40c1b: OUTPUT«» | ||
| masak | m: module Current { our $x; say Current.WHO.perl } | ||
| camelia | rakudo-moar c40c1b: OUTPUT«("\$x" => Any).hash» | ||
| moritz | m: module A { our sub f() { }; say ::?PACKAGE.WHO.keys } | 13:08 | |
| camelia | rakudo-moar c40c1b: OUTPUT«&f» | ||
| nine | lizmat: doesn't a Perl 5 like if my $foo = complicated_thing { ... } still work? | ||
| lizmat: if defined my $foo = complicated_thing { ... } of course | |||
| lizmat | hmmm.... | ||
| moritz | nine: but iirc it's differently scoped | ||
| that is, visible after the if | |||
| masak | it is. | ||
| moritz | my: if defined(my $x = 42) { }; say $x | ||
| m: if defined(my $x = 42) { }; say $x | |||
| camelia | rakudo-moar c40c1b: OUTPUT«42» | ||
| moritz loves camelia++ | 13:09 | ||
| nine | moritz: oh indeed. A Pity. | ||
| masak | you could do `given complicated_thing { if .defined { ... } }` | ||
| lizmat | m: if defined my $foo = 42 { say $foo } | ||
| camelia | rakudo-moar c40c1b: OUTPUT«42» | ||
| lizmat | but yeah... | ||
| masak | or even name it with `->` | ||
| lizmat | m: if defined my $foo = Int { say $foo } | ||
| camelia | ( no output ) | ||
| ssqq | m: say ::?GLOBAL.WHO.keys | 13:10 | |
| camelia | rakudo-moar c40c1b: OUTPUT«===SORRY!===Could not locate compile-time value for symbol ::?GLOBAL» | ||
| moritz | that's just GLOBAL | ||
| m: say GLOBAL.WHO.keys | |||
| camelia | rakudo-moar c40c1b: OUTPUT«» | ||
| nine | m: { if defined my $foo = 1 { say $foo; } } | 13:11 | |
| camelia | rakudo-moar c40c1b: OUTPUT«1» | ||
| nine | m: { if defined my $foo = 1 { say $foo; } } say $foo; | ||
| camelia | rakudo-moar c40c1b: OUTPUT«===SORRY!=== Error while compiling /tmp/m7U81ACHTUTwo terms in a rowat /tmp/m7U81ACHTU:1------> if defined my $foo = 1 { say $foo; } } ⏏say $foo; expecting any of: postfix statement…» | ||
| nine | m: { if defined my $foo = 1 { say $foo; } }; say $foo; | ||
| camelia | rakudo-moar c40c1b: OUTPUT«===SORRY!=== Error while compiling /tmp/gI1aCI7q0sVariable '$foo' is not declaredat /tmp/gI1aCI7q0s:1------> ed my $foo = 1 { say $foo; } }; say $foo⏏; expecting any of: postfix» | ||
| moritz | ssqq: the setting is full of lexical symbols which get added to your program as an outer scope | ||
| m: say CORE::.keys | |||
| camelia | rakudo-moar c40c1b: OUTPUT«%DEPRECATIONS @UNITS $init-time-num %FILETEST-HASH %CLEAN-PARTS-NUL &zip %pvalcodecache %propcodecache $?TABSTOP $UINT64_UPPER $sprintfHandlerInitialized $default &samewith &lastcall &nextsame &callsame &nextwith &callwith &redo &next &last &return &return…» | ||
|
13:12
zakharyas left
|
|||
| Woodi | can we have a switch --do-compile-time-bind ? | 13:13 | |
| masak | no. | ||
| moritz | Woodi: nope; that's a recipe for disaster | ||
| Woodi | why ? | 13:14 | |
|
13:14
sqirrel__ left
|
|||
| moritz | first of all, the whole setting would need to be done differently if we expected it to be used with such an option | 13:14 | |
| second, it'd fracture the language (worse than strict/no strict) | |||
| third, lots of extra work | |||
| masak | it doesn't work well with how people (including core developers) use the language. | 13:15 | |
|
13:15
guru joined
|
|||
| masak | Woodi: the closest you can realistically wish for is a pragma you can load to conform to your kinky mode of programming. | 13:15 | |
| Woodi | moritz: I thinked it could be optimization time work. I prefer more compile time work... | ||
|
13:16
guru is now known as Guest58485,
Guest58485 is now known as ajr_
|
|||
| Woodi | masak: that dynamic-idealism is not always good | 13:16 | |
| but just dreaming... | 13:17 | ||
| masak | Woodi: people have informed you of why your dreaming does not work out in practice. it's all there in the backlog. | ||
| ssqq | O,my god, COE:: have 596 symbols have been used. | 13:18 | |
| masak | Woodi: I fail to see which "dynamic-idealism" it is you dislike, beyond *runtime polymorphism*, which tends to be help up as one of the nicer things in OO. | ||
| held* | |||
| ssqq | CORE:: have 596 symbols have been used | ||
|
13:22
kaleem joined
|
|||
| Woodi | masak: I think you like to have things sharply categorized... such or such. but good things are often "elastic" | 13:23 | |
| masak | maybe a summary of the situation is that Perl 6 is strict in the lexical scoping end, but loose/dynamic in the method dispatch end. | ||
|
13:23
grondilu left,
pnu left
|
|||
| masak | Woodi: yes, sure. though sometimes, things are fairly well clear-cut, and wishing the core language were different, without understanding the tradeoffs, is unproductive. | 13:24 | |
|
13:25
Spot__ joined,
sivoais left,
skarn left
13:26
Spot_ left,
Spot__ is now known as Spot_
13:27
sivoais joined,
pnu joined,
skarn joined
13:28
sqirrel__ joined
|
|||
| ssqq | m: say pi; | 13:35 | |
| camelia | rakudo-moar c40c1b: OUTPUT«3.14159265358979» | ||
|
13:36
yeahnoob left,
yeahnoob joined
13:37
sivoais left
|
|||
| masak | m: say round e ** (2 * pi * i), 1e-15 | 13:38 | |
| camelia | rakudo-moar c40c1b: OUTPUT«1+0i» | ||
| masak | \o/ | ||
|
13:38
sivoais joined
13:45
grondilu joined
13:46
kaare__ left
|
|||
| moritz | strict by default is basicall .NET :-) | 13:46 | |
| *basically | |||
|
13:47
sivoais left
|
|||
| masak | I was thinking TypeScript. | 13:47 | |
| but yes, that's a level of static method checking that Perl simply doesn't subscribe to. | 13:48 | ||
|
13:48
sivoais joined
|
|||
| moritz sometimes ponders a stricter fork of p6, just for experimenting | 13:49 | ||
| masak | ooh | ||
| Striktudo! | |||
| moritz | "how would it looks like, if..." | ||
| I have the theory that it'd force us to think more about which roles we put methods in | 13:50 | ||
|
13:52
rurban1 left
|
|||
| ssqq | Just like elisp, Perl 6 *MAIN* namespace have amount of symbols that exported from many module. | 13:53 | |
| moritz | no, they aren't exported from many modules | 13:55 | |
|
13:59
sivoais left
|
|||
| masak | elisp doesn't have namespaces. | 13:59 | |
| it has community-encouraged manual prefixing of everything. | |||
|
14:00
sivoais joined
|
|||
| brrt | (just like c, one might add) | 14:00 | |
|
14:01
yeahnoob left
|
|||
| masak | right -- and IIUC, C++ codegens methods using a similar mapping. | 14:01 | |
|
14:01
bjz left
|
|||
| masak | I mean, there's an obvious isomorphism between actual namespaces and prefixing. | 14:02 | |
|
14:02
bjz joined
14:04
ssqq left
|
|||
| [Coke] | Wish me luck! water advisory at work today, so no coffee! *twitch* | 14:05 | |
|
14:06
anaeem1 joined
|
|||
| vti | it seems that $$ doesn't eat the newline character and smth like '[ \n | $ ]' has to be written, is there a way around that? and is \n portable? i mean \r?\n isn't required anymore? | 14:06 | |
| lizmat | .oO( if they cannot have coffee, give them tea! :-) |
||
| masak | vti: $$ is an anchor, and by nature zero-width. | ||
| vti: you can always define your own rule <eol> or something. | 14:07 | ||
|
14:07
molaf joined
|
|||
| vti | masak: i see | 14:08 | |
| FROGGS | m: say "a\r\n" ~~ / a $$/ | ||
| camelia | rakudo-moar c40c1b: OUTPUT«「a」» | ||
| FROGGS | m: say "a\n" ~~ / a $$/ | ||
| camelia | rakudo-moar c40c1b: OUTPUT«「a」» | ||
| FROGGS | m: say "a\r\n" ~~ / a $$/ | ||
| camelia | rakudo-moar c40c1b: OUTPUT«「a」» | ||
| FROGGS | er | ||
| m: say "a\r" ~~ / a $$/ | |||
| camelia | rakudo-moar c40c1b: OUTPUT«「a」» | ||
| FROGGS | so yeah, it is portable | ||
| timotimo | o/ | 14:09 | |
| i want to do a weekly today | |||
|
14:09
ssqq_ left
|
|||
| FROGGS | \o/ | 14:09 | |
|
14:09
panchiniak left
|
|||
| jnthn | \n will match \r\n, yes | 14:09 | |
| FROGGS | ++timotimo | ||
| masak | timotimo: how appropriate -- we want to read it! :D | ||
| jnthn | Why would you write \n $$, though? | ||
| You just matched a new line, it's pretty darn clear you're at the end of the line. :) | 14:10 | ||
|
14:10
bjz left,
sivoais left,
bjz joined
14:11
anaeem1 left
|
|||
| jnthn | I can see [\n | $] a bit more | 14:11 | |
|
14:11
Util joined
|
|||
| vti | jnthn: i am not writing \n $$, just [\n | $] | 14:11 | |
| jnthn | Though in many cases I'd structure it more like <line>* % \n [ $ || { die 'parse fail' } ] or so | ||
|
14:12
sivoais joined
|
|||
| jnthn | vti: Yeah, others were, I missed what you originally wrote. | 14:12 | |
| masak | jnthn: I don't see any `\n $$` in the backlog, except from you ;) | ||
|
14:13
marconrd joined
|
|||
| jnthn | Yes, lots of $$ though. | 14:13 | |
|
14:13
anaeem1_ joined
|
|||
| masak | agree on principle, though. better to handle line breaks outside of the line rule. | 14:14 | |
| it's an inside-outside thing. if the line rule itself can avoid talking about line breaks, so much the better. | |||
| sometimes it has to. but better to avoid it if possible. | |||
| jnthn | Aye, that's a more eloquent way of saying what I was trying to :) | 14:15 | |
| timotimo | make test inside nqp gives me two failing tests, 10-file-ops.t and 78-shell.t | 14:18 | |
| vti | i don't what to parse in a 'line per line' way, but sometimes i want to cut the line out with the newline, so instead of (my own syntax follows :) /^^ .*? $$+/ i write /^^ .*? [ \n | $ ]/, $$+ is $$ + \n :) | ||
| timotimo | they seem to be trying to do operations on folders, which we now throw exceptions for, OSLT? | ||
| marconrd | hi, folks! can anyone help me? how to add my first p6 module on ecosystem? (github.com/marcoonroad/Coro-Simple ...) | 14:19 | |
|
14:19
sqirrel__ left
14:20
JimmyZ joined,
chenryn joined
|
|||
| timotimo | marconrd: do you know of the "take-rw" feature? | 14:20 | |
| marconrd | "take-rw"? not... | 14:21 | |
|
14:21
sivoais left
|
|||
| jnthn | marconrd: Submit a pull request to github.com/perl6/ecosystem/blob/ma.../META.list or just ask for a commit bit to it if you plan to do more modules in the future :) | 14:21 | |
| timotimo | it will put a read-write-able container into the resulting lazy list, that the receiver of the list can then write to | ||
| and the "generator" can inspect the container for a change in value after the take has returned | 14:22 | ||
| moritz | marconrd: what's your github ID? | ||
| timotimo | (this relies on "no batching" behavior, though) | ||
|
14:23
sivoais joined
|
|||
| FROGGS | moritz: seems to be marcoonroad | 14:24 | |
| marconrd | this is just a minimal module for coroutines inspired on Lua coroutine.wrap/coroutine.yield... | ||
| timotimo | FROGGS: macarooned? | ||
| marconrd: OK :) | |||
|
14:25
chenryn left
|
|||
| FROGGS | timotimo: my kids often look macarooned | 14:25 | |
| moritz would like to wait for a confirmation from marconrd | |||
| marconrd | thanks to everyone, i will think about new features before try to submit the pull request :) | 14:26 | |
| timotimo | i didn't know what a "macaroon" was until i saw an article on google's security/permission framework with that name yesterday | 14:27 | |
| moritz makes coconut macaroons for christmas each year | |||
|
14:28
kjs_ joined
|
|||
| timotimo | is that "makronen" in german? | 14:28 | |
| moritz | yes | 14:29 | |
| timotimo | ah | 14:30 | |
|
14:33
sivoais left
14:34
sivoais joined
14:42
kjs_ left
14:44
sivoais left
14:45
sivoais joined
14:52
telex left
14:54
telex joined
14:56
sivoais left
14:57
sivoais joined
|
|||
| dalek | kudo/nom: f526b08 | (Timo Paulssen)++ | src/Perl6/Optimizer.nqp: optimize METAOP_ASSIGN in-place (benefits += in sink context) |
14:59 | |
| lizmat | timotimo++ | 15:00 | |
| timotimo | before this, only += in non-sink contexts would be optimized, which isn't as clever i think %) | ||
| hm. actually: "void context" would have been more correct | |||
| since the void context itself is what causes the sink to be emitted | 15:01 | ||
| &METAOP_ASSIGN is now completely gone from the rat_mul_div_cancel benchmark profile | |||
| lizmat | we have $foo.?method (as in call method on foo if method exists) | ||
| is there something like: | |||
| $foo?.method | |||
| timotimo | $foo andthen .method could work | 15:02 | |
| lizmat | (call method on $foo if instantiated) | ||
| timotimo | m: my $foo = "Hello"; say ($foo andthen .lc) | ||
| camelia | rakudo-moar c40c1b: OUTPUT«» | ||
| timotimo | m: my $foo = "Hello"; say ($foo andthen *.lc) | ||
| camelia | rakudo-moar c40c1b: OUTPUT«hello» | ||
| timotimo | m: my $foo; say ($foo andthen *.lc) | ||
| camelia | rakudo-moar c40c1b: OUTPUT«(Any)» | ||
| timotimo | m: my $foo; say ($foo.lc) | ||
| camelia | rakudo-moar c40c1b: OUTPUT«No such method 'lc' for invocant of type 'Any' in block <unit> at /tmp/hZg4SYDWzK:1» | ||
| lizmat | timotimo++ | ||
| timotimo | :) | 15:03 | |
| jnthn | ooh, nice :) | ||
| timotimo | DIVIDE_NUMBERS is responsible for 50% of all Scalar allocations in rat_mul_div_cancel. that could probably be cut down significantly by using binding instead of assignment, OSLT? | ||
| [Coke] | m: no, andthen! | 15:04 | |
| camelia | rakudo-moar c40c1b: OUTPUT«===SORRY!=== Error while compiling /tmp/Gdcivk69fhTwo terms in a rowat /tmp/Gdcivk69fh:1------> no, andthen⏏! expecting any of: argument list postfix infix stopper …» | ||
| moritz | timotimo: OSLT? | ||
| timotimo | "or something like that" | ||
| moritz | timotimo: +1 | 15:05 | |
| timotimo: are you going for it, or should I? | |||
| timotimo | you can if you like, i'll open up my wordpress "add post" page and see what i can come up with :) | 15:06 | |
|
15:06
sivoais left
15:07
sivoais joined
|
|||
| jnthn actually did something this week to report in the weekly :) | 15:07 | ||
| timotimo | i see you started work on the parameterized 6model things | 15:08 | |
| i haven't looked at the full commit log yet, but i will do that for the weekly | |||
|
15:08
Sir_Ragnarok left
|
|||
| moritz spectests | 15:08 | ||
|
15:09
marconrd left
15:11
kjs_ joined
15:13
Sir_Ragnarok joined
|
|||
| vti | what's an alternative for like in Test.pm? | 15:13 | |
| moritz | vti: what kind of alternative are you looking for? | 15:14 | |
|
15:14
sqirrel__ joined
|
|||
| vti | moritz: 'like', sorry for not empasizing :) | 15:14 | |
| moritz | vti: why do you need an alternative? | ||
| vti | because i coudn't find like(), maybe there is smth else | 15:15 | |
| i tried reading source code, but no luck | |||
|
15:15
b2gills left
|
|||
| vti | i expected is $foo, rx// to work, but 'is' looks like just does 'eq' | 15:16 | |
|
15:16
virtualsue left
|
|||
| moritz | vti: it seems we don't have anything (I thought we had something, and you were looking for an alternative) | 15:16 | |
| osfameron | so you mean an alternative to *Test::More*'s like() ? | ||
| moritz | vti: I tend to use ok $thing ~~ /.../, but that doesn't give good diagnostics | ||
|
15:17
sivoais left
|
|||
| moritz | but I think I'd welcome a like() function in Test.pm that simply smart-matches | 15:17 | |
| one problem is that our regexes don't stringify nicely | |||
| so the diagnostics won't be very good | |||
| vti | osfameron: exactly | ||
| [Coke] | like++ | ||
|
15:18
sivoais joined
|
|||
| lizmat | so, what *is* the quickest way to get the name of the calling sub ? | 15:19 | |
| timotimo | i'd go via callframe(1) i think? | 15:20 | |
| moritz | m: sub f() { g() }; sub g { say Backtrace.new()[0].code.name } | 15:21 | |
| camelia | ( no output ) | ||
| lizmat | m: sub b { a }; sub a { callframe(1).my<&?ROUTINE>.name }; say b # timotimo++ | ||
| camelia | rakudo-moar c40c1b: OUTPUT«b» | ||
| moritz | m: sub f() { g() }; sub g { say Backtrace.new()[0].code.name }; f() | ||
| camelia | rakudo-moar c40c1b: OUTPUT«» | ||
| moritz | m: sub f() { g() }; sub g { say Backtrace.new()[1].code.name }; f() | ||
| camelia | rakudo-moar c40c1b: OUTPUT«new» | ||
| moritz | m: sub f() { g() }; sub g { say Backtrace.new()[3].code.name }; f() | ||
| camelia | rakudo-moar c40c1b: OUTPUT«f» | ||
| timotimo | heh heh | 15:22 | |
| lizmat | moritz: I think callframe will be cheaper | ||
| jnthn | Yes, much cheaper | ||
| I'd hope. :) | |||
| lizmat | creating a while Backtrace is expensive | ||
| moritz | aye :-) | ||
|
15:22
pmurias joined
|
|||
| lizmat | *whole | 15:22 | |
| jnthn | If you're doing it in CORE.setting you can nqp::getcodename(nqp::callercode()) or so :) | 15:23 | |
| pmurias | hi | ||
| moritz | \o pmurias | ||
| pmurias | snake seems to have very little tests, do they live elsewhere or do they need to be written? | ||
| moritz hilights arnsholt for ^^ | 15:24 | ||
| timotimo | oh hey pmurias :) | ||
| jnthn | .oO( will badgering arnsholt cause tests to mushroom into existence? ) |
||
| arnsholt | pmurias: They need to be written | 15:25 | |
| Also, my irssi only highlights on /^arnsholt/ =) | |||
| moritz | Hi, my name is moritz, I'm a failed highlighting engineer | 15:26 | |
| jnthn | You must work at GitHub! | ||
| arnsholt | (jnthn: Implementing Python has addered by brains, incidentally =p) | 15:27 | |
| pmurias | arnsholt: and later on it should be possible to steal some tests from pynie? | ||
| lizmat | jnthn++ | ||
| arnsholt | pmurias: Definitely! | ||
| moritz kinda hopes it's possible to steal tests from python | |||
| they do have tests, don't they? | |||
| arnsholt | The indent handling is almost entirely cribbed from Pynie, actually. Except in NQP, rather than PIR | 15:28 | |
| I tried looking for tests at some point. Nothing as specific as roast, certainly | |||
| pmurias | moritz: as far as i remember the tests in python are rather complex in structure | ||
| arnsholt | There's some test stuff in the Python repo, but it wasn't clear to me whether they were sanity tests for the implementation, or more speccy | 15:29 | |
| Pypy might have something. Didn't check there yet | |||
|
15:29
sivoais left
15:30
sivoais joined
|
|||
| arnsholt | I have actually considered joining #pypy and ask some questions | 15:30 | |
|
15:31
Sir_Ragnarok left
|
|||
| masak | do it! | 15:31 | |
|
15:32
Akagi201 joined
|
|||
| arnsholt | Yeah, I think the time is more right now, since some things actually work | 15:32 | |
| Last I thought about it I was still working on getting the parsing right | |||
| timotimo | jnthn: the thing you were refering to for the weekly was the parameterized 6model stuff, right? | 15:33 | |
| jnthn | timotimo: That plus some Windows test fixes plus fixing the floor/ceil bug on Moar with large numbers... | ||
| timotimo | ah, yes | 15:34 | |
|
15:37
anaeem1_ left
15:39
Sir_Ragnarok joined
15:40
sivoais left,
dakkar left
|
|||
| hoelzro | o/ #perl6 | 15:40 | |
|
15:40
anaeem1_ joined
15:41
sivoais joined
|
|||
| [Coke] | heyo, hoelzro | 15:42 | |
| vti | what is the best way of doing smth like this from p5 'sub get{shift->route('GET', @_}', currently I have 'sub get (*@rest) { route('GET', |@rest) }' | 15:43 | |
| hoelzro | o/ [Coke] | 15:44 | |
| jnthn | sub get($_, *@rest) { .route('GET, @rest) } maybe. | 15:45 | |
| uh, without a missing quote :) | |||
| lizmat | m: sub a (|c) { b(|c) }; sub b { say @_; say %_ }; a( 42, b=>5) # maybe this ? | 15:46 | |
| camelia | rakudo-moar f526b0: OUTPUT«42"b" => 5» | ||
| lizmat | m: sub a (|c) { b("foo", |c) }; sub b { say @_; say %_ }; a( 42, b=>5) # maybe this ? | ||
| camelia | rakudo-moar f526b0: OUTPUT«foo 42"b" => 5» | 15:47 | |
| jnthn | I thought the point wsa to method call on the first argument? | ||
| Or did I understand the shift-> wrong? | |||
| vti | jnthn: sorry, actually there is no 'shift', just added that automatically | ||
| jnthn | Oh | ||
| vti | just passing the same args and adding one in front | 15:48 | |
| jnthn | Then what you had looked fine enough | ||
| May be a bit faster with the capture approach | |||
| moritz | or you can use sub get($_, \c) { .route('GET', |c) } | ||
| that passes along named arguments too | |||
| jnthn | |c in the sig too | 15:49 | |
| moritz | oh | 15:50 | |
| moritz tends to mix those up | |||
| \c would be a single one, right? | |||
| vti: sub get($_, |c) { .route('GET', |c) } then | 15:51 | ||
| jnthn | Right | ||
|
15:51
sivoais left
|
|||
| vti | thanks | 15:52 | |
|
15:52
sivoais joined,
mr-foobar joined
15:54
sivoais left
|
|||
| hoelzro | I was thinking about the non-definite form of return values in S06 (ex. method foo($x --> self)). S06 is kind of murky on this, but can the return value in the signature be an arbitrary expression? | 15:55 | |
|
15:55
sivoais joined
|
|||
| hoelzro | (I'm thinking of trying my hand at implementing it) | 15:55 | |
|
15:56
b2gills joined
|
|||
| moritz has no idea | 15:59 | ||
|
16:00
sqirrel__ left
|
|||
| timotimo | moritz: did the scalar-decreasement-effort work out? | 16:03 | |
| dalek | kudo/nom: a3cf223 | moritz++ | src/core/Rat.pm: Avoid scalar allocations in DIVIDE_NUMBERS timotimo++ for coming up with the idea, and benchmarking/profiling |
||
| moritz lets dalek answer | |||
| timotimo | :) | 16:04 | |
| did you measure yet? | |||
| if not, i'm going to do it | |||
| moritz | timotimo: I didn't | 16:05 | |
| timotimo | i'll have results in a bit :) | ||
| hoelzro | I'm thinking it makes sense as an arbitrary expression, but I'm wondering if it should be evaluated at compile time or runtime | ||
| moritz | I had a hang in t/spec/S17-procasync/kill.rakudo.moar and a failure in another async test; I hope they aren't related to my change | ||
| hoelzro: run time | |||
| timotimo | i don't think so, moritz | ||
| moritz | hoelzro: just like default values are evaluated at run time | 16:06 | |
| hoelzro | moritz: to be consistent with "regular" params? | ||
| lizmat | fwiw, I've not seen hangs for a *long* time | ||
| hoelzro | yeah, that makes sense | ||
| lizmat | moritz: so I would be suspect of hangs ... | ||
| timotimo | uh oh | ||
| moritz | hoelzro: yes, you don't want --> [1, 2, 3] to return references to the same array | ||
| hoelzro | indeed | ||
| brrt | yeah, spectest hangs for me too | ||
| hoelzro | moritz++ | ||
| timotimo | it could be compile-time evaluated (maybe in the optimizer) and generate a clone() for it? | 16:07 | |
| moritz | timotimo: in that special cases, yes | ||
| timotimo: in --> self, no | |||
| timotimo | ah, yes | 16:08 | |
|
16:09
JimmyZ left
|
|||
| timotimo | moritz: i'm sad to say the number of allocations didn't decrease | 16:09 | |
|
16:09
chenryn joined
|
|||
| timotimo | i feared that ;( | 16:09 | |
| but *something* caused the number of GC runs to decrease anyway | 16:10 | ||
| so we may have another case of an op not being annotated as ALLOCATES | |||
| 1505 gc runs instead of 1778 gc runs | |||
| dalek | rl6-roast-data: a853cd8 | coke++ | / (5 files): today (automated commit) |
16:11 | |
| jnthn | timotimo: getlex may vivify containers, as may getattr; if you implement the "look at end of nursery" thing, then we can just mark up all of those. | ||
| timotimo | ah, yes, that'd be good | 16:12 | |
| jnthn: that's the little push i needed to make me implement that :P | 16:13 | ||
|
16:13
chenryn left
|
|||
| |Tux| | ==> Reinstalling Slang::Tuxic | 16:16 | |
| Could not download module metadata: Failed to connect: connection refused | |||
| in method update at lib/Panda/Ecosystem.pm:91 | |||
| moritz | tadzik: ^^ panda meta data server not running? | 16:17 | |
| timotimo | jnthn: what do you think about ops that first allocate and then call other stuff that may allocate, too? should i allow for a bit of space between the returned object and the current allocation pointer? | ||
|
16:19
ptc_p6 joined
|
|||
| moritz | lizmat: can't reproduce the hang | 16:19 | |
| so I hope we're fine :-) | |||
| brrt | moritz - i can | 16:20 | |
| moritz | :( | ||
| lizmat | I hope so too, otherwise the wrath of [Coke] will be upon you :-) | ||
| moritz | brrt: can you bisect it please? | ||
|
16:21
kaare__ joined
|
|||
| jnthn | timotimo: Hm, wonder how many of those we have... | 16:22 | |
| timotimo: Oh...guess split is an example... | |||
| lizmat | m: "~/rakudo/.bashrc".IO.f # shouldn't we handle ~ at the beginning of a string when creating an .IO ? | 16:23 | |
| camelia | rakudo-moar f526b0: OUTPUT«Unhandled exception: Failed to find '~/rakudo/.bashrc' while trying to do '.f' at <unknown>:1 (/home/camelia/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295) from src/gen/m-CORE.setting:13784 (/home/camelia/rakudo-inst-…» | ||
| lizmat | does ~ mean something on Win32 ? | 16:25 | |
| brrt doesn't know how bisect works, and only has mac-availability for the next 5 minutes or so | 16:26 | ||
| timotimo | huh, interesting. | 16:27 | |
| i get a segfault now | |||
| getlex or getattr_o may return an actual null pointer? | |||
|
16:27
denis_boyun left
|
|||
| brrt | hmmm | 16:27 | |
| jnthn | Don't think they should | 16:28 | |
| brrt | it should not | ||
| although getattr_o may | |||
| it is repr-dependent | |||
| getlex should not though. and it should do that correctly even if we're jitting | 16:29 | ||
|
16:30
brrt left
|
|||
| timotimo | i didn't actually look where exactly the segfault came from, but it seems obvious enough %) | 16:31 | |
| and just as i say that, it still blows up even though i put in a null pointer check %) | 16:34 | ||
|
16:35
fhelmberger left
|
|||
| timotimo | huh. | 16:35 | |
| tadzik | moritz: indeed, it crashed. Should be up now | ||
| timotimo | ah, getlex can handle native types, too | 16:36 | |
| so it's not necessarily a pointer that it returns | 16:37 | ||
| so getting the STABLE(obj)->WHAT fails | |||
| hoelzro | when a value is deserialized, there's no nqp:: call going on like nqp::create, is there? | 16:38 | |
| timotimo | don't think so | 16:39 | |
| jnthn: what other ops should i annotate as "maybe annotates"? | 16:40 | ||
| jnthn | timotimo: When you instrument, you should only do it if it's an object lexical... | ||
| timotimo | right, i'll have to inspect that | ||
| haven't done much with lexicals yet | |||
| jnthn | hoelzro: No, no code is run on deserialization | 16:41 | |
| timotimo: You don't have to, just look at the local type of the register it's assigned into. | |||
| timotimo | oooooh | 16:42 | |
| of course :) | |||
| japhb | I noticed someone mention implementing D&D in Perl 6 in the backlog as I was skimmming for highlights. FWIW I've been sketching out what it would take to implement the rules (even just the character generation rules) of a full pen and paper RPG. It's ... a LOT of special cases. Old school RPGs pretty much assumed they could write any rule at all, because it was humans that had to deal with it, not computers. | 16:44 | |
| timotimo | jnthn: apparently i'll have to check if the spesh_graph's lexical_types was set up and if not i'd look at g->sf instead? | ||
|
16:45
kaleem left,
kaleem joined
|
|||
| jnthn | timotimo: Just always look at g->sf->local_types, I think | 16:46 | |
|
16:46
anaeem1_ left
|
|||
| timotimo | um, local types | 16:46 | |
| yes | |||
|
16:47
jluis_ joined
|
|||
| jnthn | Oh, wait, you might want to always go for local_types actually | 16:48 | |
| Because otherwise it may explode on inlined things | |||
| timotimo | local_types in the g rather than the sf? | ||
| moritz: if you'd like to do a tiny bit more with DIVIDE_NUMBERS: it allocates hundreds of thousands of BOOTCode in my current profile | 16:49 | ||
| nine | Is this one known? | ||
| m: Buf.new() eq Str.new() | |||
| camelia | rakudo-moar a3cf22: OUTPUT«Cannot use a Buf as a string, but you called the Stringy method on it in method Stringy at src/gen/m-CORE.setting:5715 in sub infix:<eq> at src/gen/m-CORE.setting:1550 in block <unit> at /tmp/ZZbxARVm7s:1» | ||
| timotimo | exactly as many as it allocates Scalar objects | ||
| nine | Oh, seems even fixed! Ends in an endless loop allocating memory on my machine. Will upgrade rakudo | 16:50 | |
| jnthn | timotimo: yes | ||
| timotimo | jnthn: but that segfaults :) | 16:51 | |
| jnthn | Oh. | ||
| Does the instrumentation look at the locals anywhere yet at all? | 16:52 | ||
| timotimo | i don't think so | 16:53 | |
| the comment clearly states that the local_types is only set up if there's inlines | |||
| jnthn | Oh, well, I'd trust it then :) | ||
| timotimo | so since we allocate from a nulled blob anyway, i just put in a check for g->local_types to be non-null | ||
| i just added getattr_o and getlex; i should probably add many more. like getlexouter, getdynlex, ... as well as sp_get_o and sp_p6get_o and such? | 16:54 | ||
| jnthn | Yeah | 16:55 | |
| Uh | |||
| Not sp_p6get_o | |||
| You know that one does not | |||
| But there is a variant that does | |||
| timotimo | oh, of course | ||
| jnthn | Also getattrs_o, the late-bound one. | ||
|
16:56
Akagi201 left
|
|||
| timotimo | ah, yes | 16:57 | |
| how do you feel about counting how many allocations come from interpreted code and how many come from spesh'd code? | |||
| that way, thrown-out allocations due to spesh would be visible | |||
|
17:00
pmichaud joined
|
|||
| pmichaud | Good morning, #perl6 | 17:00 | |
| nine | Good morning, pmichaud! | 17:01 | |
| jnthn | timotimo: Hm, could be interesting idea... | 17:02 | |
| timotimo: Good prep for when we get escanal too... | |||
| o/ pmichaud | |||
| pmichaud | o/ jnthn | ||
| timotimo | escanal? that's an amusing way to shorten in | ||
| it* | |||
| jnthn | "A canal! It is a canal!" | 17:03 | |
| [Coke] | enterprise standards C analytics? | ||
| [Coke] makes up something plausible. | |||
| pmichaud | A man, a plan, a canal? | ||
| jnthn | Escape analysis :P | ||
| pmichaud | At one level I'm really concerned about how many things our "optimizations" will break after doing GLR. | 17:04 | |
| vti | is my-method preferred over my_method? are there any conventions? | 17:06 | |
| timotimo | there are at least two conventions! | 17:07 | |
| jnthn | pmichaud: Which ones, ooc? | ||
| timotimo | a third one might be my'method | ||
| jnthn | pmichaud: There's rather few of them that relate specifically to lists. | ||
| pmichaud | well, especially the ones attempting to optimize for sink context | ||
| jnthn | Ah | ||
| So things in Perl6::Optimizer, rather than things in Moar | |||
| pmichaud | since we're planning to change our notion of sink context a bit | ||
| yes, in Perl6::Optimizer | 17:08 | ||
| and throughout much of src/core | |||
| jnthn | Yes, there'll be some upheavel. It's easy enough to turn the optimizer down while we work on GLR | ||
| timotimo | jnthn: looking at DIVIDE_NUMBERS, here: github.com/rakudo/rakudo/blob/nom/...Rat.pm#L40 | ||
| do you think the way the code uses the "last statement of block as return value" causes the optimizer to not inline the blocks? | 17:09 | ||
| and thus causes closures to be taken every time we DIVIDE_NUMBERS? | |||
|
17:10
kaleem left
|
|||
| jnthn | timotimo: It's more likely the "my $r" getting in the way | 17:11 | |
| timotimo: Lexicals declared in a scope prevent it being flattened away, modulo other opts | |||
| And while NQP is quite good at those now, Rakudo is less so ('cus it's harder) | |||
| timotimo | i would have expected that to be turned into a local; i could probably look at the speshlog to find out | 17:12 | |
| jnthn | github.com/rakudo/rakudo/blob/nom/...Rat.pm#L40 | ||
| oops | |||
| No, it won't be. | |||
| timotimo | we could most probably put $r outside the if/else and it could help? | ||
| jnthn | Could do, yes | ||
|
17:13
FROGGS left
|
|||
| timotimo | we don't require escanal to turn lexicals into registers at the spesh level when we inline other spesh graphs, right | 17:13 | |
| ? | |||
| yes, that did it! :) | 17:14 | ||
| now i'll just need a proper measurement to see if it got worse for some unrelated reason | |||
| jnthn | The VM isn't the right place to turn lexicals into registers, I don't think. That is a decisoin for higher up. | 17:15 | |
|
17:15
anaeem1 joined
|
|||
| jnthn | Too many language semantics come into play | 17:15 | |
| timotimo | OK | ||
|
17:16
ajr_ left,
mr-foobar left
|
|||
| jnthn | Note that Moar's optimizer can inline blocks with lexicals, in some cases. | 17:17 | |
|
17:17
guru joined
|
|||
| TimToady is working on his fifth implementation of longext literals now, having discovered four other ways that mostly work... :) | 17:17 | ||
|
17:17
guru is now known as Guest77835
|
|||
| TimToady | the current implementation works so well it's coredumping now :) | 17:18 | |
| jnthn | TimToady++ # perserverance | ||
| timotimo | jnthn: how do we handle allocations like in p6recont_ro? it allocates a new container and swaps out the container in its first argument ... | 17:19 | |
| jnthn | timotimo: Umm...not sure we easily can... | ||
| pmurias | longext literals? | ||
| jnthn | timotimo: I think that op may go away though | ||
| TimToady | pmurias: the 2nd tiebreaker rule for longest token matching | 17:20 | |
| jnthn | timotimo: Since emitting it as code would make it transparent to spesh. | ||
| timotimo | ah, that sounds fair | 17:21 | |
|
17:21
kjs_ left
|
|||
| timotimo | jnthn: would you +1 a moar revision bump just to make p6listitems MVM_EXTOP_ALLOCATING? or should i just wait until the next bump comes along? | 17:22 | |
|
17:22
kurahaupo joined
|
|||
| jnthn | timotimo: Feels fine; bumps are a renewable resource... :) | 17:23 | |
|
17:23
Guest77835 is now known as ajr_
|
|||
| dalek | kudo/nom: c238291 | (Timo Paulssen)++ | src/core/Rat.pm: make DIVIDE_NUMBERS friendlier to block inlining |
17:23 | |
| TimToady | it's debumps that are limited, since you can't go negative | ||
| jnthn | timotimo: Did that last patch make a measurable difference? | 17:25 | |
| timotimo | i pushed it for convenience so that i can measure it with perl6-bench on my desktop | ||
| jnthn | :P | 17:27 | |
| timotimo | might have wanted to push it to a branch instead, but i'm hopeful it'll turn out an improvement | ||
|
17:29
jluis_ left
|
|||
| timotimo | DIVIDE_NUMBERS is now a single "thing" at spesh time, but it still has 42 BBs | 17:30 | |
| jnthn | Well, is that 'cus it inlined all the ops used in it? | 17:31 | |
| timotimo | i'm looking closer right now | 17:32 | |
| jnthn | k | ||
| Time to detrain & | |||
| timotimo | there's some invokes still in there | 17:34 | |
| the first three fastinvokes probably correspond to gcd, div and div in the first three lines | 17:35 | ||
| and one at the end is for sinking | |||
|
17:40
kaleem joined,
pmurias left
17:56
kaleem left
|
|||
| cognominal | strongloop.com/strongblog/whats-new...execution/ Can we do that with rakudo and moarvm? | 17:57 | |
|
17:58
chenryn joined
|
|||
| timotimo | yes, we can | 17:58 | |
| you can have as many MVMInterpreter structures as you like | 17:59 | ||
|
18:00
kaleem joined
|
|||
| timotimo | actually, i just very briefly looked at the post; what is it actually about, exactly? | 18:00 | |
| i think moarvm is pretty global-free | 18:01 | ||
| but i haven't actually checked to make sure | |||
|
18:02
chenryn left
|
|||
| cognominal | well, I am looking about the editor atom, and transitively I read about atom-shell, a new way to build guis using node-js and this article about a necessary feature? | 18:02 | |
| timotimo | anyway, gotta AFK for a bit | 18:03 | |
| cognominal | Would be nice if we could hook rakudo as well to atom. | ||
|
18:05
virtualsue joined,
anaeem1 left
18:10
kaleem left
|
|||
| tony-o | found it, nvm | 18:10 | |
|
18:11
kjs_ joined
|
|||
| timotimo | found what? | 18:17 | |
|
18:20
exixt is now known as EXIXT,
gfldex joined
18:21
kaare__ is now known as kaare_
|
|||
| tony-o | wrong channel, i was missing a comma in my META for Slang::SQL though | 18:23 | |
|
18:26
xinming_ joined
|
|||
| timotimo | OK :) | 18:27 | |
|
18:27
kjs_ left
18:28
xinming left
|
|||
| masak | JSON is a harsh mistress. | 18:29 | |
| timotimo | rat_mul_div_cancel 95092/s 108362/s | ||
| rat_harmonic 19060/s 21178/s | |||
| that's before my DIVIDE_NUMBERS inlining patch on the left, and after on the right | |||
| tony-o | is ab5tract in here? | 18:30 | |
| masak | timotimo: looks... better. | ||
| timotimo | just a tiny bit :\ | ||
|
18:30
kjs_ joined
18:32
denis_boyun_ joined,
ajr_ left
|
|||
| timotimo | for some reason, divide-and-conquer got 4.8x faster over that exact commit | 18:32 | |
| i don't think that's due to my change, though | |||
|
18:36
kjs_ left
18:38
FROGGS joined
|
|||
| japhb | timotimo: d-a-c is using rationals ... but perhaps you have accidentally found one of the things that causes d-a-c to be unreasonably slow (closures) | 18:42 | |
| (I don't know that to be the case, I'm just speculating on possible reasons) | |||
|
18:43
denis_boyun_ left
|
|||
| timotimo | i didn't improve closures | 18:44 | |
| sadly, the profiler doesn't work very well with multple threads | |||
|
18:45
Ugator left
|
|||
| raydiak | \o mornin #perl6 | 18:50 | |
| hoelzro | o/ raydiak | ||
| timotimo | heyo raydiak :) | 18:51 | |
| raydiak | how goes it timo & hoelzro? | 18:52 | |
| hoelzro | it goes | ||
| holiday season and whatnot =) | |||
| raydiak | I hear that...time of year I keep my head down and try to stay away from stores :) | 18:53 | |
.oO( oh wait that's all year ) |
18:55 | ||
| nine | "Or Node embedded in a phone or network switch where it is performing routing logic for multiple connections" <- this scares me on so many levels... | 18:58 | |
| raydiak | as in Node.js? | ||
| tony-o | .tell ab5tract fixed the HTML::Parser::XML module, it works as expected and it works with the advent sample ugexe provided | 18:59 | |
| yoleaux | tony-o: I'll pass your message to ab5tract. | ||
| timotimo | yes, node.js | ||
| tony-o: way cool :) | |||
| tony-o | timotimo: it's much faster than when i originally released too :-) (not because i optimized it, either) | 19:00 | |
| need to get my other modules up to snuff too, i'm disappointed in the async http server performance | |||
| raydiak | why would you want your embedded devices to run javascript? | 19:01 | |
| tony-o | because ecmascript | ||
| timotimo | tony-o: did you ever have a look at moarvm's --profile? :) | 19:02 | |
|
19:02
anaeem1_ joined
|
|||
| tony-o | timotimo: i haven't, moar segfaults when i siege the server, jvm perl hangs when i siege | 19:02 | |
| timotimo | for html::parser::xml, though? :) | 19:03 | |
|
19:07
sqirrel__ joined
|
|||
| tony-o | html parser seems to work great | 19:12 | |
| i'm taking a look at the web scraper right now, then the async serber | |||
| timotimo: are you trying to use the parser for something? | 19:13 | ||
|
19:14
pecastro left
19:17
anaeem1_ left
|
|||
| timotimo | nah | 19:18 | |
| i just meant for the profiler | |||
|
19:20
anaeem1_ joined
|
|||
| tony-o | ah | 19:20 | |
|
19:25
dalek left
19:26
dalek joined,
ChanServ sets mode: +v dalek
|
|||
| TimToady has pushed the latest longlit patch; you'll need to pull both nqp and moar to keep them in sync under master | 19:27 | ||
| dalek | ast: 49638fb | TimToady++ | S05-metasyntax/longest-alternative.t: more longlit tests for various failure modes |
19:29 | |
|
19:29
EXIXT is now known as exixt
|
|||
| vendethiel- | TimToady: github.com/perl6/nqp/compare/53e0c...20de67R164 indentation seems off here | 19:29 | |
| is that a github issue or is it an editor one? | |||
|
19:31
exixt is now known as EXIXT
|
|||
| dalek | p: 750f659 | TimToady++ | src/QRegex/NFA.nqp: fix tab damaged noticed by ven++ |
19:32 | |
| timotimo | TimToady: how stable does it seem to be? | ||
| TimToady | passes all the tests except the pairs test, which doesn't seem to be my problem | ||
| though it probably only works right for moar, now that I think on it | 19:33 | ||
|
19:34
Ugator joined
|
|||
| dalek | kudo/newio: 00535f7 | (Elizabeth Mattijsen)++ | src/core/ (7 files): .IO now does an IOU.new |
19:34 | |
| TimToady | probably should have checked in the branch instead, but got lost in a maze of merge conflicts | ||
| dalek | kudo/newio: f526b08 | (Timo Paulssen)++ | src/Perl6/Optimizer.nqp: optimize METAOP_ASSIGN in-place (benefits += in sink context) |
19:35 | |
| kudo/newio: a3cf223 | moritz++ | src/core/Rat.pm: Avoid scalar allocations in DIVIDE_NUMBERS timotimo++ for coming up with the idea, and benchmarking/profiling |
|||
| kudo/newio: c238291 | (Timo Paulssen)++ | src/core/Rat.pm: make DIVIDE_NUMBERS friendlier to block inlining |
|||
| kudo/newio: f6eea6e | (Elizabeth Mattijsen)++ | src/ (2 files): Merge branch 'nom' into newio |
|||
| moritz | timotimo: those BOOTCodes, are they from if statements? | ||
| timotimo: and what benchmark do you use? | |||
| timotimo | they are from taking closures | ||
| rat_mul_div_cancel from perl6-bench | 19:36 | ||
| TimToady | in fact, don't pull nqp right now if you're on jvm or parrot | ||
| moritz | timotimo: how do I run just that one? | ||
| timotimo | the lexical $r inside the if clauses prevented inlining, because lexicals are hard | ||
| i usually just copy&paste from microbenchmarks.pl and insert a number for SCALE | |||
| because i also want to --profile | 19:37 | ||
| moritz | timotimo: I can see how $numerator and $denominator can cause closurification, but there's no $r in a condition in DIVIDE_NUMBERS | 19:38 | |
| nine | How do I unpack an array into variables in Perl 6? In Perl 5 I'd do my ($foo, $bar) = @baz; | ||
| moritz | m: my @ar = <a b c>; my ($a, $b) = @ar; say $b | 19:39 | |
| camelia | rakudo-moar c23829: OUTPUT«b» | ||
| moritz | nine: just the same :-) | ||
| tony-o | is it possible to break a promise already vowed? i'm using one as a timer to "timeout" a request if it takes too long and if my request is fulfilled prior to the timer then i'd like to not have that timeout promise hanging around | 19:40 | |
| nine | Oh, then I did something wrong when I tried that. | ||
| moritz: thanks | |||
| tony-o | break or keep.. | ||
| or destroy | 19:41 | ||
|
19:41
travis-ci joined
|
|||
| travis-ci | NQP build failed. TimToady 'fix tab damaged noticed by ven++' | 19:41 | |
| travis-ci.org/perl6/nqp/builds/41997965 github.com/perl6/nqp/compare/55b3c...0f65973fcc | |||
|
19:41
travis-ci left
|
|||
| timotimo | damn you, tabs! | 19:42 | |
| tony-o: timer promises are pretty cheap, i believe | |||
| dalek | osystem: 0f6241c | (Marco Aurélio)++ | META.list: Add Coro::Simple. |
19:43 | |
| osystem: 6542129 | moritz++ | META.list: Merge pull request #37 from marcoonroad/master Add Coro::Simple. |
|||
| tadzik | oh :) | ||
| timotimo | tadzik: is that better than yours? :) | ||
| tony-o | timotimo: i think they are but they're filling up the queue and causing moar to stop responding | ||
| tadzik | timotimo: I don't know yet :) | ||
| the code looks familiar | 19:44 | ||
| it has some features mine doesn't | |||
|
19:45
Alula left
19:46
chenryn joined
|
|||
| timotimo | oh, wow. | 19:49 | |
|
19:50
vendethiel- left
19:51
chenryn left
19:52
vendethiel joined
|
|||
| tony-o | there isn't a mechanism to break the timer promise, though? | 19:53 | |
|
19:54
Alula joined
|
|||
| timotimo | oh, wait, actually | 19:55 | |
| didn't we get cancelable thingies? | |||
| no, i think that was for repeating things | |||
|
19:55
sqirrel__ left
|
|||
| tony-o | i wonder if i'm using the wrong mechanism for a timeout :/ | 19:56 | |
| it sounds like i am | |||
|
20:01
raiph joined
|
|||
| dalek | ast: 71cb115 | usev6++ | S02-types/pair.t: Fudge tests for RT #123215 for Parrot and JVM |
20:01 | |
| synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123215 | ||
| FROGGS | bartolin: how does that fail on these backends? the patch I did was not moar only | 20:04 | |
| bartolin | FROGGS: on parrot it aborts with duplicate named argument in call in block <unit> at t/spec/S02-types/pair.rakudo.parrot:329 | 20:05 | |
| FROGGS | hmmm | ||
|
20:07
rindolf left,
darutoko- left
|
|||
| bartolin | FROGGS: on jvm it just doesn't pass: gist.github.com/usev6/2758cadede70afcb92c6 | 20:07 | |
| FROGGS: is a gist for the failure on parrot useful, too? | 20:08 | ||
| FROGGS | jvm fails very interestingly here | ||
| bartolin: no, I'll need to build a perl6-p anyway :o) | |||
| bartolin: thank you | |||
| bartolin | no problem :-) | 20:09 | |
| dalek | kudo/nom: bf6f157 | moritz++ | src/Perl6/World.nqp: Fix error reporting inside the setting without thsi patch, at least r-m always printed the last key for all elements |
20:10 | |
| timotimo | good catch, moritz! | 20:11 | |
|
20:15
kurahaupo left
20:18
kurahaupo joined
|
|||
| TimToady will have to disable longlit on parrot and jvm till he gets those backend nfa engines in shape | 20:19 | ||
|
20:22
raiph left,
travis-ci joined
|
|||
| travis-ci | Rakudo build failed. Moritz Lenz 'Fix error reporting inside the setting | 20:22 | |
| travis-ci.org/rakudo/rakudo/builds/42001844 github.com/rakudo/rakudo/compare/c...6f15746194 | |||
|
20:22
travis-ci left
|
|||
| timotimo | p6weekly.wordpress.com/?p=266&s...393895e763 - feedback please :) | 20:22 | |
| dalek | p: 38d290c | TimToady++ | src/QRegex/NFA.nqp: disable longlit on jvm and parrot for the moment |
20:27 | |
| TimToady | that should make travis happier anyway | ||
| only moar will pass all the new longlit tests though | 20:28 | ||
| but that should unbreak the build | |||
| (for people on master) | 20:29 | ||
| jnthn | evening, #perl6 | 20:35 | |
| lizmat | jnthn o/ | 20:36 | |
| FROGGS | timotimo: I feedbacked | ||
|
20:37
bjz_ joined,
bjz left
|
|||
| colomon | \o | 20:37 | |
| timotimo | i saw, thanks :) | ||
| jnthn, lizmat, p6weekly.wordpress.com/?p=266&s...393895e763 feel free to feed back :) | |||
| lizmat | timotimo: I think TimToady did most of the work on the negative index issue... I merely nudged | 20:38 | |
| jnthn | FROGGS: "feedbuck", no? :) | ||
| FROGGS | jnthn: yeah, probably :o) | ||
| jnthn looks at the weekly before he digs into teaching prep :) | |||
|
20:40
EXIXT is now known as exixt
|
|||
| jnthn | timotimo: Looks good to me :) | 20:40 | |
|
20:41
panchiniak joined
20:42
timotimo left,
guru joined
20:43
guru is now known as Guest67284
20:44
Guest67284 is now known as ajr_
20:45
exixt is now known as EXIXT,
EXIXT is now known as exixt
20:47
chenryn joined
20:50
cognominal left
20:52
chenryn left
20:53
Mouq joined
|
|||
| masak | timotimo: "Mouq worked towards making slangs more easily usable from Perl 6 code, among others by introducing the ~ sigil." | 20:53 | |
| should that be "twigil"? | |||
| Mouq | TimToady: NQP needs a Moar bump | 20:54 | |
| [Coke] | masak++ | 20:55 | |
|
20:55
denis_boyun_ joined
|
|||
| dalek | line-Python: 09ad48b | nine++ | / (3 files): Handle exceptions raised in Python or Perl code correctly We now handle user exceptions, invalid function or method names and passing exceptions from Perl through Python back to Perl. |
20:56 | |
|
20:56
cognominal joined,
raiph joined
|
|||
| Mouq | nine++ | 20:56 | |
| nine | This should make debugging so much easier :) | 20:57 | |
|
20:58
jluis_ joined
|
|||
| dalek | p: 5d9d2b7 | TimToady++ | tools/build/MOAR_REVISION: bump moar |
20:58 | |
|
20:58
raiph left
|
|||
| jnthn | TimToady: I guess try number 5 was the lucky one? :) | 20:59 | |
| dalek | kudo/nom: ac27d2f | TimToady++ | tools/build/NQP_REVISION: bump nqp |
||
| vendethiel | nine++ :-) | ||
| TimToady | except I forgot to fix jvm and parrot's nqp runner, oops | ||
| so longlit is disabled in those for the moment | 21:00 | ||
| jnthn | nqp runner, or nfa runner? | ||
| TimToady | er, nfa | ||
| jnthn | ftm tla... | ||
| TimToady | ysi | 21:01 | |
| jnthn | What approach did you settle on in the end? | ||
| TimToady | see the commit messages :) | 21:02 | |
| errands & | |||
| dalek | line-Python: 9cb450f | nine++ | pyhelper.c: Correctly handle invalid method names when calling methods on P6 objects inheriting from Python |
||
|
21:05
kjs_ joined
|
|||
| jnthn | ah, which dalek didn't report. :) OK. | 21:06 | |
| vendethiel | oooh we have a beginning of native arrays :o)? | 21:09 | |
|
21:11
wtw left
21:17
brrt joined,
brrt left
21:18
exixt left
21:24
raiph joined
21:27
kjs_ left
21:28
kjs_ joined,
Pleiades` left,
exixt joined
|
|||
| woolfy | Interviews by Denis Banovic during Austrian Perl Workshop with Larry Wall and Jonathan Worthington, in Salzburg (by the way, the article around it is nice too): www.tourismusbesprechungsraum.at/bl...-salzburg/ | 21:29 | |
|
21:31
kaare_ left
21:32
kjs_ left
|
|||
| jnthn | oh no, what did I say... :) | 21:32 | |
| woolfy | Follow the link, see the second video... | 21:33 | |
|
21:33
Pleiades` joined
|
|||
| lizmat | .tell timotimo "Interviews by Denis Banovic during Austrian Perl Workshop with Larry Wall and Jonathan Worthington, in Salzburg (by the way, the article around it is nice too): www.tourismusbesprechungsraum.at/bl...salzburg/" might be worth mentioning in the Perl 6 Weekly | 21:33 | |
| yoleaux | lizmat: I'll pass your message to timotimo. | ||
| vendethiel | ooh, I remember this interview! | 21:34 | |
| woolfy was interviewed as well, I'm sure :P | |||
| *g* | 21:35 | ||
| woolfy | I was the one holding the camera... I was not interviewed. | ||
| (a train interrupted the interview at the end... just a bit of noise...) | 21:36 | ||
| vendethiel | this week was a very good week :) | ||
| dalek | ast: d025d6c | usev6++ | S03-operators/ (2 files): Replace tests like 'dies_ok' with more specific version |
21:37 | |
| synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77592 | ||
| woolfy | (I did not hold the camera during the interview with jnthn... I assume I did a bad job during Larry's... with the train and all) | 21:39 | |
| [Coke] | Is anyone working on adding a "like" to our Test.pm? | ||
| bartolin | hmm, maybe that commit holds a bit too much (too specific) testing. but someone once mentioned the term 'interface consistency' ;-) | 21:40 | |
|
21:43
anaeem1_ left
21:44
anaeem1_ joined,
anaeem1_ left
|
|||
| [Coke] | m: say /'hi'/.WHAT | 21:47 | |
| camelia | rakudo-moar ac27d2: OUTPUT«(Regex)» | ||
| FROGGS | m: say /'knockknock'/.WHAT | ||
| camelia | rakudo-moar ac27d2: OUTPUT«(Regex)» | ||
| lizmat | m: say /'knockknock'/.WHO | 21:48 | |
| camelia | rakudo-moar ac27d2: OUTPUT«(Mu)» | ||
| lizmat | MuMuMuMu | ||
.oO( there have been better knock knock jokes ) |
|||
| FROGGS | m: say ('Look, a joke!'; *).WHAT | 21:49 | |
| camelia | rakudo-moar ac27d2: OUTPUT«(LoL)» | ||
|
21:50
Mouq left
|
|||
| [Coke] | :P | 21:50 | |
| m: say /'hi'/.Str ; say /'hi'/ | 21:52 | ||
| camelia | rakudo-moar ac27d2: OUTPUT«Code object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/Sjs_VLbH9m:1» | ||
| FROGGS | how would a aborigine react? | ||
| [Coke] | m: say /'hi'/.Str ; say /'hi'/.gist | ||
| camelia | rakudo-moar ac27d2: OUTPUT«Code object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/mJISZ2Qb9q:1» | ||
| FROGGS | (lol) # native LoL | ||
| [Coke] | m: say /'hi'/.gist | ||
| camelia | rakudo-moar ac27d2: OUTPUT«» | ||
| FROGGS stops now | |||
| [Coke] | m: say /'hi'/.perl | ||
| camelia | rakudo-moar ac27d2: OUTPUT«regex (Mu: *%_) { #`(Regex|74193440) ... }» | ||
| [Coke] | so there's no pretty printing a regex? | 21:53 | |
| (vaguely needed to implement like()) | |||
| FROGGS | [Coke]: you could make it output the .perl output for now | 21:55 | |
|
21:56
telex left
|
|||
| [Coke] | perl6.org/compilers/ - the rakudo section needs to be updated to talk about moar. | 21:56 | |
| FROGGS: the .perl is useless. | |||
| see ^^ | |||
| jnthn | m: class StateMachine { has $!state = 0; method run() { given $!state++ % 3 { when 0 { 'Knock knock?' }; when 1 { 'Who\'s there?' }; when 2 { 'Bug in your state machine' } } } }; my $sm = StateMachine.new; say $sm.run for ^4 | ||
| camelia | rakudo-moar ac27d2: OUTPUT«Knock knock?Who's there?Bug in your state machineKnock knock?» | ||
| FROGGS | >.< | 21:57 | |
| [Coke]: same goes for subroutines | 21:58 | ||
| (I think) | |||
|
21:58
denis_boyun_ left,
telex joined,
jluis_ left
22:00
denis_boyun_ joined
22:02
ptc_p6 left
|
|||
| jnthn | I dunno how robust this will be, but: | 22:04 | |
| m: sub like-impl($a, $b, $txt) { say $a ~~ $b ?? "ok" !! "not ok - $a ain't like $txt" }; macro like($a, $b) { my $txt = ~$b; quasi { like-impl({{{ $a }}}, {{{ $b }}}, $txt) } }; like 'abc', /\w+/; like '!!!', /\w+/;sub like-impl($a, $b, $txt) { say $a ~~ $b ?? "ok" !! "not ok - $a ain't like $txt" }; macro like($a, $b) { my $txt = ~$b; quasi { like-impl({{{ $a }}}, {{{ $b }}}, $txt) } }; like 'abc', /\w+/; like '!!!', /\w+/; | |||
| camelia | rakudo-moar ac27d2: OUTPUT«===SORRY!=== Error while compiling /tmp/D3uet963gtRedeclaration of routine like-implat /tmp/D3uet963gt:1------> "ok" !! "not ok - $a ain't like $txt" }⏏; macro like($a, $b) { my $txt = ~$b; qu expectin…» | ||
| jnthn | wtf | ||
| m: sub like-impl($a, $b, $txt) { say $a ~~ $b ?? "ok" !! "not ok - $a ain't like $txt" }; macro like($a, $b) { my $txt = ~$b; quasi { like-impl({{{ $a }}}, {{{ $b }}}, $txt) } }; like 'abc', /\w+/; like '!!!', /\w+/; | 22:05 | ||
| camelia | rakudo-moar ac27d2: OUTPUT«oknot ok - !!! ain't like '!!!', /\w+/» | ||
| jnthn | There we go :) | ||
| oh, well, almost...hmm. | 22:06 | ||
| Anyway, it's a way to get the text :) | |||
|
22:08
denis_boyun_ left
|
|||
| dalek | ast: aad8694 | usev6++ | S03-operators/arith.t: Add test for RT #122053 |
22:12 | |
| synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122053 | ||
| bartolin | and with that: good night #perl6! | 22:15 | |
|
22:18
wtw joined
|
|||
| FROGGS | gnight bartolin | 22:26 | |
|
22:27
panchiniak left
22:36
chenryn joined
22:40
chenryn left,
kjs_ joined
22:41
vti left
22:46
Mouq joined
|
|||
| dalek | kudo/newio: 7b96bac | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: Copy all file open logic to open() |
22:46 | |
| kudo/newio: 327ef78 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm: PIO is a public attribute (at least for now) We need to be able to set it with .new |
|||
| kudo/newio: bf6f157 | moritz++ | src/Perl6/World.nqp: Fix error reporting inside the setting without thsi patch, at least r-m always printed the last key for all elements |
22:48 | ||
| kudo/newio: ac27d2f | TimToady++ | tools/build/NQP_REVISION: bump nqp |
|||
| kudo/newio: ef6e3b9 | (Elizabeth Mattijsen)++ | / (2 files): Merge branch 'nom' into newio |
|||
|
22:48
timo joined,
timo is now known as timotimo
|
|||
| jnthn | Sleep time...'night | 22:50 | |
| TimToady | good night | ||
| timotimo | seems like the machine i'm using for irc, mail, web hosting, jabber and other stuff has fallen off the 'net | ||
| yoleaux | 21:33Z <lizmat> timotimo: "Interviews by Denis Banovic during Austrian Perl Workshop with Larry Wall and Jonathan Worthington, in Salzburg (by the way, the article around it is nice too): www.tourismusbesprechungsraum.at/bl...salzburg/" might be worth mentioning in the Perl 6 Weekly | ||
| lizmat | gnight jnthn | 22:51 | |
| timotimo++ weekly! | |||
|
22:51
KCL_ joined
|
|||
| timotimo | thank you | 22:51 | |
| and thank you all for the work i was able to present :) | |||
|
22:52
synopsebot left
22:53
masak left,
tadzik left,
pmichaud left,
[Coke] left,
Util left
22:54
Juerd left,
hugme left,
dalek left
|
|||
| timotimo | oh, kind of looks like another server that's used for irc sessions has fallen off the 'net | 22:54 | |
| TimToady | oh, ~ is a twigil, not a sigil... | 22:55 | |
| Mouq | m: say $~MAIN # Still 99% NYI :P | 22:58 | |
| camelia | rakudo-moar ac27d2: OUTPUT«Slang.new(:grammar(Perl6::Grammar), :actions(Perl6::Actions))» | ||
| raydiak | perlcabal.org and perl6.org are down too | 23:00 | |
|
23:06
masak joined,
tadzik joined,
pmichaud joined,
Util joined,
masak is now known as Guest92293,
Juerd joined,
dalek joined,
ChanServ sets mode: +v dalek
|
|||
| timotimo | welcome back, featherers! | 23:06 | |
| TimToady | .oO(The United Featheration of P6anets) |
23:07 | |
|
23:07
hugme joined,
ChanServ sets mode: +v hugme
|
|||
| TimToady | hugme: hug yourself | 23:08 | |
| hugme hugs yourself | |||
|
23:08
synopsebot joined
|
|||
| lizmat | hugme: hug herself | 23:10 | |
| hugme hugs herself | |||
| lizmat | :-) | ||
|
23:11
[Coke] joined,
vti joined
23:12
kjs_ left
|
|||
| timotimo | vendethiel: please tell me more about how the last week was good :) | 23:14 | |
|
23:21
[Sno] left
23:22
[Sno] joined
23:25
exixt is now known as EXIXT
23:37
chenryn joined
23:41
chenryn left
23:45
timotimo left
23:46
timo joined,
timo is now known as Guest54457
23:49
nebuchadnezzar left
23:51
virtualsue left
|
|||
| tony-o | with nativecall, is it possible to dereference a sub and pass that into the library (as a mechanism for a callback, for instance)? | 23:52 | |
| i'm looking at the microhttpd example here: www.gnu.org/software/libmicrohttpd/ | 23:53 | ||
| trying to figure out in what way i can abuse MHD_start_daemon to run a perl6 sub | |||
| dalek | kudo/newio: d64b919 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: pipe() now has all the logic it needs |
23:54 | |
| kudo/newio: 130fd21 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm: IO::Handle.encoding fixes |
|||
| FROGGS | tony-o: yes | ||
| lizmat | and with that, good night, #perl6! | ||
| FROGGS | tony-o: look at NativeCall's test suite, there are examples for callbacks | ||
| gnight lizmat | |||
| tony-o | FROGGS: i guess i missed it | 23:55 | |
| FROGGS: oh in the test suite .. | |||
| FROGGS | yes | ||
| woolfy | timotimo: I should have asked vendethiel the same question... so I hope he answers... | 23:56 | |
|
23:58
raiph left
|
|||