Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-08-14

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:16 rurban1 joined #perl6
00:20 * japhb wonders how to manage a hello.perl6.org as snazzy as this: http://hello.p5js.org/
00:22 TimToady well, the Mint based on that
00:27 japhb Mint 17, I guess.
00:29 TimToady yes, a purportedly LTS version
00:31 TimToady so if someone is interested in LTS of niecza, 3.2.8 is probably a good target :)
00:31 japhb I was reading about that recently -- Mint 17 is supposedly taking advantage of Ubuntu LTS to avoid the churn expected over the next two years of Ubuntu proper.
00:31 TimToady that's the theory :)
00:32 TimToady especially since Mint doesn't believe in upgrade-in-place as much as Ubuntu
00:33 TimToady so it's even churnier for Mint
00:33 * TimToady loves the productive affixes in English :)
00:35 * TimToady loves the churnier affixes in English :)
00:35 japhb I think the Mint core team is just more realistic about GUI upgrades than Ubuntu is.  Debian has been good enough (but not perfect) at CLI upgrades for server installs, but GUI desktop installs?  Eww.
00:36 anaeem1 joined #perl6
00:47 pmichaud Is there an ascii version of the union and intersection set operators?
00:48 pmichaud I guess (|) and (&) ?
00:49 pmichaud .u ∪
00:49 yoleaux U+222A UNION [Sm] (∪)
00:56 japhb m: my $a = set( 1, 2, 3 ); my $b = set ( 3, 4 ); say $a (|) $b; say $a (&) $b;
00:56 camelia rakudo-moar 88326e: OUTPUT«set(1, 2, 3, 4)␤set(3)␤»
01:03 FROGGS_ joined #perl6
01:19 BenGoldberg .u intersection
01:19 yoleaux U+2229 INTERSECTION [Sm] (∩)
01:20 BenGoldberg m: my $a = set( 1, 2, 3 ); my $b = set ( 3, 4 ); say $a ∪ $b; say $a ∩ $b;
01:20 camelia rakudo-moar 88326e: OUTPUT«set(1, 2, 3, 4)␤set(3)␤»
01:20 BenGoldberg :)
01:20 anaeem1 joined #perl6
01:25 japhb m: my \A = set(1, 2, 3); my \B = set(3, 4); say A ∪ B; say A ∩ B;   # More like a mathemitician might write it  :-)
01:25 camelia rakudo-moar 88326e: OUTPUT«set(1, 2, 3, 4)␤set(3)␤»
01:32 yeltzooo joined #perl6
01:35 BenGoldberg .u complement
01:35 yoleaux U+2201 COMPLEMENT [Sm] (∁)
01:36 BenGoldberg m: my \A = set(1, 2, 3); my \B = set(3, 4); say A ∁ B
01:36 camelia rakudo-moar 88326e: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/M6W17SyCqzâ�¤Two terms in a rowâ�¤at /tmp/M6W17SyCqz:1â�¤------> [32m set(1, 2, 3); my \B = set(3, 4); say A [33mâ��[31mâˆ� B[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopper…»
01:36 BenGoldberg m: my \A = set(1, 2, 3); my \B = set(3, 4); say ∁ B
01:36 camelia rakudo-moar 88326e: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/p__0uzRPCMâ�¤Two terms in a rowâ�¤at /tmp/p__0uzRPCM:1â�¤------> [32m = set(1, 2, 3); my \B = set(3, 4); say [33mâ��[31mâˆ� B[0mâ�¤    expecting any of:â�¤        argument listâ�¤        prefix …»
01:36 BenGoldberg m: my \A = set(1, 2, 3); my \B = set(3, 4); say A (^) B
01:36 camelia rakudo-moar 88326e: OUTPUT«set(1, 2, 4)␤»
01:36 Mouq joined #perl6
01:37 Mouq lizmat++ TimToady++ # fixing my error, smartmatch reboot
01:47 klapperl joined #perl6
01:51 kurahaupo joined #perl6
01:56 chenryn joined #perl6
02:08 anaeem1 joined #perl6
02:16 telex joined #perl6
02:18 iarna joined #perl6
02:21 lue joined #perl6
02:27 raiph joined #perl6
02:31 raiph .tell timotimo mebbe https://gist.github.com/raiph/f20cec6ff47400c31fbb is helpful for p6weekly
02:31 yoleaux raiph: I'll pass your message to timotimo.
02:36 nbrown joined #perl6
02:38 xinming joined #perl6
02:46 dalek Heuristic branch merge: pushed 122 commits to roast/S26-WHY by hoelzro
02:46 dalek Heuristic branch merge: pushed 83 commits to rakudo/S26-WHY by hoelzro
02:49 PotatoGim joined #perl6
02:52 PotatoGim joined #perl6
02:53 noganex joined #perl6
03:05 akaseki joined #perl6
03:07 isacloud____ joined #perl6
03:08 anaeem1 joined #perl6
03:12 dalek rakudo/S26-WHY: e020d38 | (Rob Hoelz)++ | src/Perl6/ (3 files):
03:12 dalek rakudo/S26-WHY: Implement decl docs for enums
03:12 dalek rakudo/S26-WHY: review: https://github.com/rakudo/rakudo/commit/e020d3862d
03:15 iarna joined #perl6
03:15 xragnar_ joined #perl6
03:15 rurban1 joined #perl6
03:21 iarna joined #perl6
03:37 kaare_ joined #perl6
03:45 nbrown joined #perl6
03:50 kaare__ joined #perl6
03:51 treehug88 joined #perl6
03:51 integral_ joined #perl6
03:51 integral_ joined #perl6
03:52 Shozan joined #perl6
03:52 BooK_ joined #perl6
03:52 brother| joined #perl6
03:52 Psyche^ joined #perl6
03:52 breinbaa1 joined #perl6
03:52 sergot_ joined #perl6
03:52 ren1us2 joined #perl6
03:53 telex joined #perl6
03:53 Pleiades` joined #perl6
03:54 ilbot3 joined #perl6
03:54 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
03:56 rjbs joined #perl6
04:10 ilbot3 joined #perl6
04:10 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
04:13 anaeem1 joined #perl6
04:21 xinming_ joined #perl6
04:21 cognome joined #perl6
04:23 zakharyas joined #perl6
04:25 anaeem1 joined #perl6
04:33 zakharyas1 joined #perl6
04:34 ventica2 joined #perl6
04:37 ventica_desktop joined #perl6
04:45 nbrown joined #perl6
04:47 kurahaupo_ joined #perl6
04:48 kurahaupo__ joined #perl6
04:49 iarna joined #perl6
04:54 SamuraiJack joined #perl6
04:55 kaare__ joined #perl6
05:00 itz_ joined #perl6
05:03 xenoterracide joined #perl6
05:04 gfldex joined #perl6
05:10 japhb_ joined #perl6
05:10 btyler_ joined #perl6
05:11 eternaleye joined #perl6
05:11 djanatyn joined #perl6
05:11 smash joined #perl6
05:12 Woodi hi #perl6
05:12 Celelibi joined #perl6
05:15 simcop2387 joined #perl6
05:16 Woodi about JIT thing... I don't know planned jit emits some bytecode or nativecode but not having native/C implementations of some critical functions will make us always unhappy. native/C codded subs/methods could be reached via multi dispatch when arg types match. actually we could have two implementations of some functions: pure P6 and C, compile time choosed...
05:18 Woodi P5 just calls C functions and it makes it fast. we always will be missing such speed.
05:20 chenryn joined #perl6
05:21 anaeem1_ joined #perl6
05:23 anaeem1_ joined #perl6
05:24 darutoko joined #perl6
05:25 anaeem1 joined #perl6
05:27 TimToady other than your premises and your conclusion, I agree completely :)
05:35 anaeem1 joined #perl6
05:39 anaeem1__ joined #perl6
05:42 anaeem1 joined #perl6
05:46 nbrown joined #perl6
05:46 anaeem1 joined #perl6
06:02 [Sno] joined #perl6
06:05 itz joined #perl6
06:15 denis_boyun joined #perl6
06:19 chenryn joined #perl6
06:28 ren1us joined #perl6
06:33 kaleem joined #perl6
06:36 anaeem1 joined #perl6
06:37 anaeem1 joined #perl6
06:47 nbrown joined #perl6
07:06 moritz Woodi: guess what, we can call C functions from Perl 6.
07:11 xinming joined #perl6
07:11 Woodi moritz: but we don't
07:12 Woodi but, as usual, I just guessing/imagining how things works...
07:13 moritz Woodi: then maybe you should suggest improvements *after* you have stopped guessing, and have actually informed yourself how stuff works
07:15 Woodi ok :)
07:19 brrt joined #perl6
07:33 pmurias joined #perl6
07:43 anaeem1_ joined #perl6
07:45 anaeem1 joined #perl6
07:48 nbrown joined #perl6
07:54 kaleem joined #perl6
07:55 masak morning, #perl6
08:05 FROGGS_ Woodi: MMD with P6 subs and NativeCall subs should just work
08:08 timotimo that's right
08:08 yoleaux 02:31Z <raiph> timotimo: mebbe https://gist.github.com/raiph/f20cec6ff47400c31fbb is helpful for p6weekly
08:08 timotimo thank you, raiph
08:22 anaeem1 joined #perl6
08:46 kaleem joined #perl6
08:48 brrt joined #perl6
08:49 nbrown joined #perl6
08:50 fhelmberger joined #perl6
08:51 klaas-janstol joined #perl6
08:56 donaldh joined #perl6
08:59 timotimo http://www.reddit.com/r/perl/comments/2dhvq5/a​re_perl_56_and_python_23_comparable_scenarios/ - maybe someone in here can write up a well-thought-out response that is unlikely to turn this thread into a flamefest ...
09:02 moritz lol
09:04 timotimo though i can sort of see how any perl6 developer appearing in that thread could cause at least one message like "of course the perl6 cabal/echo chamber/... turns up to praise their hobby project" etc etc
09:05 moritz I've written an answer
09:06 moritz and yes, it has the potential to turn into a flamewar
09:06 timotimo uh oh!
09:07 timotimo you wrote "a larger incentive to switch to perl 6 eventually"
09:07 brrt very few things in life do not have that potential
09:07 timotimo the haters will love that %)
09:07 timotimo and by love i mean hate
09:07 moritz of course
09:07 timotimo and by hate i mean love
09:07 moritz but it really is an essential point
09:08 moritz the slowness of the p2 -> p3 migration is in large parts due to the lack of incentives to switch to 3
09:08 moritz py2 -> py3 I should say
09:08 Ulti if someone wants you to use a hex screwdriver but all the screws you used on your nice construction are philips why would you upgrade
09:08 Ulti programming languages for most people are just tools without any intellectualism or artistry
09:08 xiaomiao moritz: performance + legacy code
09:09 xiaomiao moritz: "so if I invest 2000 man-hours I get the same I have now, 30% slower?"
09:11 moritz xiaomiao: correct; you'd have to offer something valuable in return
09:12 xiaomiao moritz: and in the case of python I'm still searching for it
09:12 moritz xiaomiao: like, features that make the code base much more maintainable and smaller
09:12 xiaomiao that, or performance optimizations that make things a lot faster
09:12 xiaomiao both can have a business value
09:14 timotimo moritz: you could have all these features in perl5! just use moar modulez!
09:17 lizmat joined #perl6
09:23 FROGGS__ joined #perl6
09:25 Ulti if v5 ever had more perf than perl5 that would probably be a winning scenario
09:25 Ulti has anyone actually benchmarked what already works in v5?
09:29 timotimo Ulti: don't forget v5 will never be able to run XS based modules
09:29 timotimo though a "port" of NativeCall to v5 should be very simple
09:29 timotimo hmm.
09:29 timotimo now that i think about it
09:30 tadzik are you now thinking about implementing XS in NativeCall?
09:30 timotimo a big portion of what makes NativeCall so nice and elegant is our type signatures and type system and stuff like that
09:30 timotimo no!
09:30 timotimo oh god
09:30 tadzik I'm willing to supply alcohol to make that bearable
09:30 timotimo i think in the end you'll just { use v6; use NativeCall; our sub ... is native ... ; }
09:30 nwc10 yes, there are already FFI modules for perl 5 on CPAN, and they are really taking the world by storm...
09:30 betterworld how will DESTROY work in v5?  I think many programs that use
09:30 nwc10 FFI is about 25% of the "problem"
09:30 betterworld that use DESTROY depend on refcounting
09:31 nwc10 you also need to parse C headers to get function signatures, implement accessors to C structures, and parse headers to get enums and macros
09:31 nwc10 and you are *stuffed* if the interface includes inline functions, or macros that expand to code.
09:31 timotimo nwc10: you have to explain that to me, i have no clue of the perl5 world at all
09:32 nwc10 timotimo: Perl 5 interfacing to C is traditionally done with "XS", which is an ugly shorthand langauge for writing C code
09:32 timotimo nwc10: right, nativecall can't deal with that, and it may be out of scope for NativeCall itself
09:32 timotimo what i mean is: is "taking the world by storm" sarcastic?
09:32 nwc10 but it generates C code, and so needs a C compiler
09:32 nwc10 so people think that the solution is FFI, becaue then you don't need a C compiler to interface to C code
09:32 nwc10 and FFI modules exist on CPAN
09:32 nwc10 and (almost) nothing is using them.
09:32 nwc10 because they don't actually make life easier
09:33 timotimo OK.
09:33 nwc10 nativecall is one part of what's needed to write a C interface.
09:33 nwc10 but it's not enough on its own, except for simple things like "pass a number" or "return a number"
09:33 timotimo sad but true.
09:34 nwc10 oh, part of py2/py3 migration problem is that there's no way to have both py2 and py3 code running in the same process
09:35 nwc10 so it's a flag day upgrade
09:35 nwc10 and no automated way to 100% convert py2 code to py3 either
09:35 xiaomiao yarp, that's quite horrible
09:35 nwc10 incrementally upgrading your codebase module by module is not made easy
09:36 alinbsp joined #perl6
09:37 timotimo i'm looking forward to diakopter's work on the perl5-inside-moarvm thing
09:39 colomon module smoker is back to
09:39 colomon make: *** No rule to make target `m-clean', needed by `clean'.  Stop.
09:39 colomon Failed running make realclean at /home/smoker/.rakudobrew/bin/rakudobrew line 23.
09:39 colomon :(
09:40 * colomon 's vacation is very nearly over, so he hopes to have time to check this out soon.
09:41 timotimo we shouldn't need that step
09:41 timotimo just delete line 23 :P
09:41 timotimo tadzik:  ^
09:42 tadzik timotimo: it's there Justin Case'
09:43 donaldh joined #perl6
09:43 timotimo it's there to make the whole process abort
09:43 colomon timotimo: the smoke tesf doesn't work if it gets beyond that step, either.
09:44 tadzik well, make is great and all that, but if you want to minimize the random cases where deps somehow end up outdated it's safer to realclean every time
09:45 tadzik but since we have a common Configure.pl broken realclean is a reccuring problem :(
09:45 timotimo oh
09:48 moritz maybe Configure.pl should try all off (m-realclean, j-realclean, p-realclean), and ignore errors
09:49 nbrown joined #perl6
09:53 donaldh_ joined #perl6
10:10 spider-mario joined #perl6
10:11 dalek rakudo/nom: 758974b | jnthn++ | src/Perl6/Optimizer.nqp:
10:11 dalek rakudo/nom: Don't let parens prevent "for (1..1000) { }" opt.
10:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/758974bd55
10:12 FROGGS__ m: for (((((((1..1000))))))) { }
10:12 camelia rakudo-moar 88326e: ( no output )
10:13 scumdog joined #perl6
10:16 jnthn That's just stupid.
10:16 jnthn I only bothered with the above patch for the sake of perl6-bench.
10:17 jnthn It's an annoying one because we want to pattern match before the optimizer gets its hands on the child nodes
10:17 jnthn In most cases we visit children first, and such things get stripped away.
10:17 klaas-janstol joined #perl6
10:19 pmurias "for the sake of perl6-bench" - isn't that a bit cheating ? ;)
10:20 scumdog left #perl6
10:21 jnthn Optimization *is* cheating.
10:26 pmurias nqp-m has the same annoying error messages as nqp-p?
10:26 sjn the trick is to cheat so everyone benefits from it
10:50 nbrown joined #perl6
10:58 davido__ joined #perl6
11:06 nwc10 what's the most recent sent of benchmarks that anyone has run and published?
11:06 nwc10 "are we nearly there yet?"
11:06 chenryn joined #perl6
11:07 jnthn I'm planning to do a run later today
11:07 timotimo oh, i wanted to do one, too! :)
11:44 dalek specs: edccb81 | (Elizabeth Mattijsen)++ | S24-testing.pod:
11:44 dalek specs: Cleanup and elaboration on Testing
11:44 dalek specs:
11:44 dalek specs: - removed eval_lives_ok, eval_dies_ok, now handled by lives_ok/dies_ok
11:44 dalek specs: - added cmp_ok
11:44 dalek specs: - described each function in more depth
11:44 dalek specs: - removed reference to Test::More, doesn't make sense to people not knowing p5
11:44 dalek specs: review: https://github.com/perl6/specs/commit/edccb8139e
11:51 nbrown joined #perl6
11:51 fling joined #perl6
11:53 mr-foobar joined #perl6
11:57 prevost joined #perl6
11:59 timotimo i'm doing a benchmark run of latest rakudo and nqp on latest moar with and without jit
12:09 masak wow. backlog made me go look at http://hello.p5js.org -- I'm glad I did.
12:09 masak the web is turning interactive almost faster than my mind can get used to it.
12:09 masak but I think it's exactly the direction it should move in.
12:12 [Coke] "no, really, click here"
12:18 dalek rakudo-star-daily: aa4e804 | coke++ | log/ (14 files):
12:18 dalek rakudo-star-daily: today (automated commit)
12:18 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/aa4e804a5e
12:18 rurban1 joined #perl6
12:22 masak [Coke]: the mixing of video and interactive canvas was surprising. obvious in retrospect, but still surprising.
12:23 masak [Coke]: things like this make me want to sit down and think of all the other things that are already possible but that we don't do.
12:23 * moritz wants IRC with screencast support
12:24 moritz and IP-over-voice
12:24 masak [Coke]: furthermore, modern web development seems to consist of this. a small minority spearheads development with great ideas, and everyone else keeps running behind trying to make the laughably underpowered language do the same stuff.
12:25 moritz it's not really the language that's laughably underpowered, it's really the interaction model
12:25 tadzik it seems to me that the entire web is this, everyone trying to make a laughable language do proper stuff :/
12:27 brrt joined #perl6
12:27 masak tadzik: that's why I more and more consider JavaScript to be a target language.
12:27 tadzik right
12:27 masak tadzik: same with HTML and CSS.
12:28 tadzik well, this I consider a GUI toolkit, not a language, but I see the point
12:35 pmurias masak: why do you consider JavaScipt laughably underpowered?
12:36 masak pmurias: other contemporary languages have several different levels of abstracting and compartmentalizing things. JavaScript has one: functions.
12:37 nwc10 masak: I've not used JS very much (mostly to drive CasperJS), but that's a very interesting way of looking at it
12:37 masak pmurias: consequently, being proficient in JavaScript mean learning how to (mis-)use functions for *everything*, and even well-written JavaScript is littered with nested anonymous functions, requiring familiarity with the patterns to make sense of it all.
12:38 masak pmurias: in practice, people compensate by switching to better languages and then compiling down to JS. result: less and less JS is an author language, more and more it's a compiled-to language.
12:43 pmurias by littered with nested anonymous functions, you mean the use of callbacks for everything?
12:44 moritz also for getting a scope
12:44 masak right, not just callbacks.
12:44 masak functions are also used to create types.
12:44 moritz or for simulating a private attribute, by having a lexical variable in a new, private scope
12:44 masak and modules.
12:44 moritz EVERYTHING
12:44 masak and to do dependency injection.
12:45 masak right, everything.
12:45 moritz the more I think about it, the more I agree with masak++
12:45 moritz which tells me that masak++ has thought a lot about it too :-)
12:45 nwc10 masak++
12:45 pmurias moritz: do people actually simulate private attributes in javascript?
12:45 nwc10 for these observations
12:46 moritz pmurias: some do
12:46 jnthn I use "var" in the scope of a constructor to obtain privacy in JS
12:47 masak it varies how much people care about that kind of privacy.
12:48 masak but yes, those who do use the lexical scope of the function for private things.
12:48 moritz there are even folks in perl 5 who use lexicals for privacy (see inside-out objects)
12:49 masak yeah, it's the morally equivalent trick.
12:50 * moritz had a to write a tricky piece of code twice (due to changed requirements), and it worked correctly the very first time
12:50 moritz in the second iteration, that is
12:51 moritz that's a very unusual experience for me :-)
12:51 masak cause for suspicion :)
12:51 moritz that too :-)
12:51 masak "where's my complimentary thinko?"
12:51 nbrown joined #perl6
12:52 moritz git says +80 lines, -5 lines
12:55 pmurias masak: the interesting questions is, do the languages targeting javascript solve those problems?
12:57 masak pmurias: I'd say they solve them less than being able to run things directly in the browser, but more than the absence of a solution.
12:57 masak pmurias: source maps make that even more true. likely other stuff in the future will make it even more true.
12:58 masak I think the trend is so important that even many non-web programmers would benefit from paying attention to it.
13:00 pmurias personally I don't have a plan how to deal with the callback hell in nqp-js/rakudo-js
13:01 pmurias and I'm not fully sure what a good solution to the lack of proper modules in js is
13:01 pmurias and the lack of proper modules seems to be the worst flow with js
13:02 masak "a good solution to the lack of proper modules in js" depends on your context.
13:03 dmol joined #perl6
13:03 masak you could (a) be really discipilined, (b) have tools help you be really disciplined, or (c) cross-compile from a language that gives you discipline.
13:04 chenryn joined #perl6
13:04 moritz Perl 6!
13:04 masak well, ++pmurias willing, yes.
13:04 masak I'd love to write web apps in Perl 6.
13:05 pmurias the bigger problem is that other people's module won't be in Perl 6
13:06 masak you mean there has to be some kind of JavaScript FFI?
13:08 lizmat fg
13:08 lizmat oops, ww  :-)
13:09 masak wb :)
13:15 dalek nqp-js: 8ad493d | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
13:15 dalek nqp-js: Add missing semicolon when declaring a function.
13:15 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/8ad493d0dc
13:15 dalek nqp-js: 9f6f2bc | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
13:15 dalek nqp-js: Calling a sub with standard positional arguments.
13:15 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/9f6f2bcb74
13:15 dalek nqp-js: 447c6cd | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
13:15 dalek nqp-js: Calling a sub with *@args. (Receiving those arguments is still NYI).
13:15 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/447c6cd2a4
13:16 pmurias masak: there will have to be some way to import stuff from js modules
13:16 pmurias masak: hopefully a FFI will be mostly transparent/automatic
13:17 pmurias masak: one the node.js side there is a module system, but the browser side seems to be more important/interesting
13:19 chenryn joined #perl6
13:20 pmurias masak: suppose you want to use jquery from you Perl6 script, how are you supposed to do that?
13:20 timotimo http://t.h8.lv/p6bench/2014​-08-14-jit_comparison.html - benchmarks with jit on/off and also including the last release. /cc jnthn
13:21 molaf joined #perl6
13:21 klaas-janstol joined #perl6
13:22 masak pmurias: I hope/imagine we can use the :from adverb in our `use` statement, and it will compile down to some JavaScript that pulls in the module.
13:23 jnthn timotimo: Why does the while_empty one look ridiculous (e.g. most of the line missing for moar-jit)?
13:23 masak pmurias: as much JavaScript as I do nowadays, I still don't know the exact pros/cons between AMD modules and CommonJS modules, and who knows what other modern module standards.
13:23 jnthn Same for while bind
13:23 jnthn *sigh* certainly turning off the noise avoidance algo for my run.
13:23 timotimo i wondered about that, too.
13:23 Akagi201 joined #perl6
13:26 timotimo jnthn: how do i do that?
13:26 timotimo the data seems to be there, it's just being ignored?
13:26 pmurias masak: the details are the hard part
13:26 jnthn Yeah, japhb++ mentioned it's just a graphing option
13:26 pmurias masak: do we bundle the module or use a CDN?
13:26 jnthn But I forget the flag
13:27 timotimo OK
13:27 jnthn timotimo: Seems the JIT notably helps some benchmarks, doesn't do much on others, but doesn't make any of them worse. :)
13:27 pmurias masak: some javascript code uses AMD, other just exposes a global object
13:27 masak pmurias: to me that sounds like a configure option on the to-JS compiler. bundling feels like the sensible default, since it creates something self-contained.
13:27 timotimo is that --min-time?
13:28 jnthn timotimo: maybe
13:29 iarna joined #perl6
13:29 timotimo AFK for a bit
13:33 dalek nqp: c2362f4 | jnthn++ | src/ (3 files):
13:33 dalek nqp: Don't walk whole setting symbol table on load.
13:33 dalek nqp:
13:33 dalek nqp: This should help avoid some deserialization work, or at least get rid
13:33 dalek nqp: of one more thing that forces a bunch of it.
13:33 dalek nqp: review: https://github.com/perl6/nqp/commit/c2362f4881
13:34 * lizmat wonders how that would affect the spectest
13:35 dalek rakudo/nom: 570de40 | jnthn++ | / (5 files):
13:35 dalek rakudo/nom: Avoid walking whole setting scope at startup.
13:35 dalek rakudo/nom:
13:35 dalek rakudo/nom: This should deal with another thing that forces deserialization of all
13:35 dalek rakudo/nom: things in the setting whether they're needed or not. Helps a little,
13:35 dalek rakudo/nom: but probably there are further "leaks" that could be cleared up.
13:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/570de409df
13:35 jnthn lizmat: Not a lot from what I've measured
13:35 lizmat too bad :-)
13:36 jnthn It makes a small difference to base memory usage.
13:36 dalek rakudo/nom: b9d499e | (Elizabeth Mattijsen)++ | lib/Test.pm:
13:36 dalek rakudo/nom: Implement cmp_ok() (as recently specced ;-)
13:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b9d499eba9
13:36 jnthn But only a couple of percent
13:42 brrt joined #perl6
13:45 Liss1 joined #perl6
13:48 amkrankruleuen joined #perl6
13:48 amkrankruleuen joined #perl6
13:50 donaldh ugh. Tried to add an scIndex into SixModelObject on JVM. Now get JVM crashes during nqp compilation.
13:50 jnap joined #perl6
13:50 donaldh does generated code rely on SixModelObject layout?
13:50 lizmat errands&
13:52 nbrown joined #perl6
13:55 moritz donaldh: did you add it at the end?
13:55 moritz oh wait, this is java, not C
13:55 moritz never mind
13:55 sqirrel joined #perl6
13:55 donaldh Well class layout still matters in java
13:56 jnthn I can't immediately think of a reason we'd crash over that.
13:56 jnthn I mean, yeah, we compute classes on the fly
13:57 donaldh That are derived from SixModelObject
13:57 jnthn Right
13:57 jnthn But that's inheriting from it; I can't easily think of a way things would break.
13:57 * donaldh can't remember now member access is worked out.
13:57 diakopter unless you're using Unsafe, if it's a true crash, it's a jvm bug...
13:58 moritz wouldn't be the first one we#d encounter :-)
13:58 donaldh Yah, but the JVM bug could be manifested by bad instructions.
13:58 diakopter ok, a Java specification bug :)
13:59 donaldh It's a true crash, i.e. SEGV. So yes, a JVM bug.
14:00 nwc10 donaldh: you've got the most current version of the JVM that Oracle have blessed us with?
14:00 kaare_ joined #perl6
14:01 donaldh I haven't. Recent but not latest. I'll get the latest 7 and 8 and try them.
14:01 nwc10 obviously, I'm wondering if you have inadvertently found an exploit
14:07 anaeem1 joined #perl6
14:13 psch hi #perl6 o/
14:15 araujo joined #perl6
14:15 araujo joined #perl6
14:15 masak greetings, psch
14:15 anaeem___ joined #perl6
14:16 psch sergot: IO::Socket::SSL on 32bit segfaults a moar REPL for some URLs: https://gist.github.com/pe​schwa/c60c1c06a96781418d27
14:16 psch i'd blindly assume that's something in NativeCall, although i didn't get around to gdb deeper
14:16 psch hi masak
14:17 sergot psch++: thanks I will take a look at this
14:18 sergot psch: is it only the REPL/
14:18 sergot ?
14:19 psch sergot: yes, the REPL segfaults.  execution of a script gives an empty Buf
14:19 psch let me gist it for you
14:19 sergot will be great
14:20 psch sergot: gist updated
14:21 psch sergot: a passing observation is that sites that do work don't seem to report 300; yours e.g. works but gives 403, google gives 302.  not sure if that could be significant
14:22 psch where "yours" is the test.pl6 that sits in the repo root for io-socket-ssl
14:22 sergot does it fails (showing an empty Buf) always?
14:23 sergot I mean
14:23 sergot try to run it X times
14:23 sergot github should return 301 in this case
14:24 sergot And it does on my box
14:25 psch i didn't yet not get an empty Buf, i've been trying a total of 20 times or so between yesterday and today
14:25 psch that's only for github
14:26 brrt left #perl6
14:28 hoelzro morning #perl6
14:31 diakopter that Oracle hath oracled us with
14:39 donaldh_ joined #perl6
14:40 psch sergot: fwiw, i put a for 1..100 around the example code and it gave me 100 empty Bufs
14:41 sergot I always get satisfying result, even using the REPL.
14:41 sergot So.. something is wrong :)
14:41 sergot I'll get into this.
14:42 psch sergot: as mentioned, i'm on 32bit
14:42 ggoebel1111117 joined #perl6
14:43 psch and NativeCall does have at least one hangup with non-explicit-sized ints.  i didn't see if you're using int anywhere for is native declarations, but those could be a problem
14:43 sergot I use int32 for the port.
14:43 sergot In the OpenSSL module.
14:43 iarna joined #perl6
14:45 sergot psch++ # thank you for trying this stuff
14:46 sergot :)
14:46 psch sergot++ # for making this stuff
14:46 psch :P
14:46 tadzik hmm, did someone look into making Net::IRC like SSL?
14:46 tadzik I could rewrite the dinner irc bot to Perl 6 and thus make it run production software at work :D
14:47 psch i'd been thinking about a github module a bit, which is why it's doubly sad that github is one of the sites it doesn't work for heh
14:53 masak tadzik: what's the dinner IRC bot?
14:53 nbrown joined #perl6
14:53 tadzik masak: we have a bot at work that decides where do we order dinner from and who's calling to order
14:53 masak ooh!
14:53 masak that sounds very neat!
14:54 tadzik it's using Bot::BasicBot and DBI
14:54 tadzik DBI because it's integrated with a webapp for signing up for dinner :)
14:54 jnthn "We're using Perl 6 in a critical application. If it fails, people starve!"
14:55 * masak .oO( it's used in production... of dinner )
14:55 dalek tablets: 91390db | (Herbert Breunung)++ | docs/ (5 files):
14:55 dalek tablets: organizing ops better, link cleanup
14:55 dalek tablets: review: https://github.com/perl6/tablets/commit/91390db073
14:56 sjn Perl 6: The IOT Language for The Kitchen?
14:58 hoelzro is anyone else noticing more segfaults lately?
14:58 nwc10 hoelzro: in various S17 tests?
14:59 hoelzro I had a module that was working, and when I built the latest mokudo, some of its tests segfault
14:59 hoelzro nwc10: I haven't tried it on spectests yet
15:02 dalek tablets: a6c9a6a | (Herbert Breunung)++ | docs/ (5 files):
15:02 dalek tablets: further link cleanup
15:02 dalek tablets: review: https://github.com/perl6/tablets/commit/a6c9a6a525
15:06 rurban1 joined #perl6
15:10 iarna joined #perl6
15:14 [Coke] pmurias++ # npq-js go!
15:15 dalek nqp-js: 003a34a | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
15:15 dalek nqp-js: Mark params in $*BLOCK.
15:15 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/003a34ae01
15:15 dalek nqp-js: 4dcba8c | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
15:15 dalek nqp-js: Simple positional parameters work.
15:15 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/4dcba8cc72
15:15 dalek nqp-js: 4fb3a7b | (Pawel Murias)++ | nqp-js:
15:15 dalek nqp-js: Pass arguments to nqp-js.
15:15 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/4fb3a7b7c2
15:15 dalek nqp-js: ac0aada | (Pawel Murias)++ | / (3 files):
15:15 dalek nqp-js: make js-test passes test t/nqp/01-literals.t with a concatenated mini-setting.
15:15 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/ac0aadaad7
15:15 japhb_ lizmat: In your recent S24-testing commit, there are several functions described in the main text as exported, but aren't listed in the exported functions list near the top -- for example todo/skip/skip_rest, though perhaps more -- I didn't do a real audit, just noticed it in passing
15:17 hoelzro pmurias++
15:21 dalek tablets: 5b7b0f8 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
15:21 dalek tablets: fixing table alignements
15:21 dalek tablets: review: https://github.com/perl6/tablets/commit/5b7b0f89bd
15:23 dalek tablets: edc5a0c | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
15:23 dalek tablets: fixing extrawide layouts too
15:23 dalek tablets: review: https://github.com/perl6/tablets/commit/edc5a0c53e
15:27 dalek nqp: daaf098 | jnthn++ | tools/build/MOAR_REVISION:
15:27 dalek nqp: Bump MOAR_REVISION for async proc + JIT additions.
15:27 dalek nqp: review: https://github.com/perl6/nqp/commit/daaf0980c7
15:28 dalek rakudo/nom: 0bbedab | jnthn++ | / (2 files):
15:28 dalek rakudo/nom: Support writing to async proc STDIN also.
15:28 dalek rakudo/nom:
15:28 dalek rakudo/nom: Includes an NQP_REVISION bump to get MoarVM improvements that enable
15:28 dalek rakudo/nom: this.
15:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0bbedab34e
15:40 donaldh joined #perl6
15:48 dalek nqp-js: 34c8c0a | (Pawel Murias)++ | src/vm/js/nqp-runtime/runtime.js:
15:48 dalek nqp-js: Add missing nqp.named, fix indentation.
15:48 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/34c8c0a3bf
15:51 dalek perl6-roast-data: 10717a7 | coke++ | / (5 files):
15:51 dalek perl6-roast-data: today (automated commit)
15:51 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/10717a7f00
15:51 [Coke] moar still busted. :(
15:53 jnthn [Coke]: That doesn't make a lot of sense...building without JIT fails, somehow?
15:54 dalek nqp-js: 4b45434 | (Pawel Murias)++ | tools/build/ (2 files):
15:54 dalek nqp-js: "npm install" the runtime when it changes.
15:54 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/4b45434c30
15:54 nbrown joined #perl6
15:56 [Coke] I'll post the build log (which I save only until the next day is run.)
15:57 japhb jnthn, timotimo: OK, so the noise removal thing seems to be giving people fits.  I put it in because otherwise you would get noise values that would result in really high maximum rates, thus causing comparison and history to give bogus information.  But it's still confusing you guys.  Suggestions for something better?
15:58 [Coke] jnthn: oh, I'm an idiot.
15:58 dalek nqp-js: 118bb06 | (Pawel Murias)++ | / (3 files):
15:58 dalek nqp-js: Add a js-lint which lints the javascript runtime using gjslint.
15:58 dalek nqp-js:
15:58 dalek nqp-js: Fix the style violations it finds.
15:58 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/118bb06583
15:58 [Coke] Command failed (status 7424): /usr/bin/perl Configure.pl --prefix=/home/coke/sandbox/perl​6-roast-data/rakudo.moar/install --backends=moar --make-install --git-protocol=https --gen-moar --moar-option=--disable-jit
15:59 japhb The problem is largely that the slowest and fastest compiler on many of these tests are so far apart in performance, that it's hard to increase the SCALE (and thus avoid most of the noisy area of the left of the graph) without making the slowest compiler take so long that timotimo rants at me about time to do a benchmark run.  :-(
15:59 [Coke] *sigh* it'll be fine tomorrow.
16:00 pmurias what's the slowest compiler?
16:00 jnthn [Coke]: Phew! :)
16:01 japhb pmurias: usually r-p
16:01 jnthn japhb: I understand the problem, it's just that it's easy for me to visually spot bogus hoise at the start of the graph and filter it out, whereas trying to guess what missing data might have been is about impossible...
16:01 japhb (except on older builds, for concat tests, in which case r-m)
16:02 japhb jnthn: Sure, the visual side is one thing, but the comparison values in the hover text are all wrong if the noise peaks higher than the steady state
16:03 japhb (And of course history plots, which are based on grabbing the peak performance from each compiler on each test, become essentially random)
16:04 jnthn japhb: The weird thing about the graphs timotimo posted today are that it's cut data out later on in the benchmark...
16:05 timotimo hm?
16:05 jnthn timotimo: The missing points for moar-jit towards the right of the graph
16:06 timotimo "towards the right" is a pretty optimistic way of phrasing that :P
16:06 jnthn japhb: The trouble with "steady state" is that not all benchmarks hit one too...
16:06 timotimo as they pretty much stop left of the middle
16:07 japhb jnthn: I worded that poorly ("steady state")
16:07 dalek nqp-js: 19fcd62 | (Pawel Murias)++ | src/vm/js/bin/run_tests:
16:07 dalek nqp-js: Add passing test 5 to run_tests.
16:07 dalek nqp-js: review: https://github.com/pmurias​/nqp-js/commit/19fcd62d35
16:07 japhb jnthn: Which test for example is missing points near the right?
16:08 jnthn japhb: http://t.h8.lv/p6bench/2014​-08-14-jit_comparison.html - see moar-jit's entry in while_empty
16:08 timotimo and while_bind
16:08 japhb (And timotimo, do you have --min-scaling-points set to 2 instead of 3?
16:09 timotimo i didn't supply any value for that
16:09 AforAcronym joined #perl6
16:09 japhb Hmmm, something is very fishy there.
16:09 japhb Do you actually have data for those points in those tests?
16:10 japhb Because if a run errors for any reason, timeall immediately gives up on that compiler for that test and goes to the next.
16:10 timotimo gimme a sec; i think so
16:10 japhb Which makes me wonder if there's some segfaulting or something going on that causes a signal, that timeall reads as failure
16:11 timotimo up to 131072
16:11 timotimo it's just that it's barely slower than at 0 :)
16:11 japhb For r-m-j on those two tests?
16:11 japhb Oh, interesting!
16:11 timotimo i'll give you the json if you'd like?
16:12 * japhb wonders if the loop got essentially optimized away
16:12 timotimo no, it would have stayed
16:12 japhb But if it was so bloody fast, timeall should have kept bumping the SCALE until it got a reading
16:12 timotimo but having the loop in asm is just ridiculously fast
16:12 japhb Hmmm, or there was an overflow in something
16:13 japhb Yeah, post the json, I'd like to take a look
16:13 timotimo one sec :)
16:13 japhb Also, can you generate the plots (with a different filename) with --min-time=0 ?
16:13 timotimo http://t.h8.lv/p6bench/758974b.json
16:13 timotimo sure
16:13 japhb thx
16:15 japhb Wait, while_empty is showing the problem, and *not* while_empty_native.
16:15 japhb Hmmmm
16:15 timotimo http://t.h8.lv/p6bench/2014-08-14-min_time_0.html
16:16 japhb What the ....
16:16 japhb OK, bus stop, but will continue looking at this.
16:17 jnthn hah, that while_empty_native one goes wild...
16:20 Alula_ joined #perl6
16:22 zakharyas joined #perl6
16:22 dalek perl6-bench: af4e774 | TimToady++ | perl6/rc-self-describing-numbers:
16:22 dalek perl6-bench: install faster perl6 version
16:22 dalek perl6-bench:
16:22 dalek perl6-bench: This version is twice as fast and cheats more like the nqp version.
16:22 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/af4e7743dc
16:26 SamuraiJack joined #perl6
16:27 japhb Awww, most of the clever went away
16:28 TimToady clever is one of the reasons the nqp version is 2^8 times faster
16:28 timotimo ideally, we'd have fast execution for clever code
16:28 pmurias should the mandelbrot nqp banchmark specify types on variables?
16:28 TimToady but it was also dumber
16:28 FROGGS "clever" is good for RC, not for benchmarks
16:28 TimToady most of the speedup is by shortcircuiting the loop and not initializing with xx
16:29 japhb We're really starting to need a compendium of things for people to avoid (or to specifically do) when optimizing
16:29 TimToady since the loop shortcircuits, we never have to "initialize" with //= on those cases
16:29 timotimo ah, righto
16:29 FROGGS m: my $any; say $any ~ Buf.new
16:29 camelia rakudo-moar b9d499: OUTPUT«(signal )use of uninitialized value of type Any in string context  in block  at /tmp/EEB7U6do3m:1␤␤»
16:29 FROGGS is there already a ticket for that?
16:30 japhb xx with a constant on the left should be much faster, methinks.
16:31 TimToady especially when it's an initalizer
16:31 TimToady especially when it's an int array, oh wait
16:32 japhb .oO( Language designer pokes at language implementors.  Film at 11. )
16:33 TimToady also the "clever" code was stringifying and numifying the same thing multiple times, which is something P5 optimizes but P6 doesn't yet
16:33 jnthn Note that we already do away with the thunk when it's a constant on the left
16:34 TimToady and it still runs 2^7 slower than the nqp version
16:34 jnthn The problem is that xx is done with gather/take, which in turn never gets told "oh, just eagerly make as many values as you can", so it makes them one at a time.
16:34 japhb Ah right, the list refactoring need
16:36 FROGGS jnthn: hmmm, @<foo>= in regexes should be pretty LHF, right?
16:36 jnthn What does it do?
16:39 anaeem1 joined #perl6
16:39 TimToady but I think most of the 2^7 difference is in .[]
16:40 anaeem1 joined #perl6
16:42 pmichaud good morning, #perl6
16:42 Rotwang joined #perl6
16:42 anaeem1 joined #perl6
16:43 japhb o/
16:43 jnthn o/ pmichaud
16:46 anaeem1 joined #perl6
16:46 anaeem1 joined #perl6
16:48 anaeem1 joined #perl6
16:49 anaeem1 joined #perl6
16:50 japhb timotimo: After looking at the timing json file, I'm leaning even further towards something having happened that cut off the timing of r-m-j early on those tests.  The scaler should have kept scaling, because none of the runs had a time over --enough-time (default 1.0 seconds).  If there had been a run that took way long (like a background task eating all the CPU for a couple seconds), then it's reasonable for the scaler to have quit.  But in this case, not unles
16:51 prevost joined #perl6
16:52 jnthn ...talking of cut off... :)
16:52 timotimo :)
16:52 japhb Where did it get cut off?  It appears complete in my irssi.
16:52 jnthn japhb: Missing content after "But in this case, not unless"
16:52 japhb "But in this case, not unless r-m-j crashed, I think."
16:54 nbrown joined #perl6
16:56 denis_boyun_ joined #perl6
17:00 dalek nqp: 334b593 | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/ (7 files):
17:00 dalek nqp: Eliminate ArrayList.indexOf usage in SerializationContext on JVM.
17:00 dalek nqp: review: https://github.com/perl6/nqp/commit/334b5939a6
17:06 chenryn joined #perl6
17:08 iarna left #perl6
17:08 jnthn .tell Mouq MoarVM HEAD fixes the htmlify grapheme iter crash
17:08 yoleaux jnthn: I'll pass your message to Mouq.
17:09 dalek perl6-bench: 7865e2d | (Geoffrey Broadwell)++ | timeall:
17:09 dalek perl6-bench: Improve robustness and detail of subprocess segfault check
17:09 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/7865e2ddd2
17:11 japhb timotimo: Doing the timings in the future with stderr captured should now help to see segfaults better (and what exactly segfaulted)
17:15 japhb donaldh: Ackpth.  Lots and LOTS of whitespace changes got sucked into that patch.
17:18 donaldh ugh, so they did. Work computer. I've enabled remove-trailing-whitespace on save in eclipse for another project that fails the build when there's trailing whitespace.
17:18 donaldh I only loaded it into eclipse to check there weren't unused imports.
17:20 timotimo oke :)
17:20 kurahaupo_ joined #perl6
17:23 donaldh afk&
17:55 nbrown joined #perl6
18:00 MilkmanDan joined #perl6
18:20 klaas-janstol joined #perl6
18:21 anaeem1 joined #perl6
18:22 treehug88 joined #perl6
18:22 klaas-janstol joined #perl6
18:24 chenryn joined #perl6
18:24 [Sno] joined #perl6
18:34 molaf_ joined #perl6
18:38 chenryn joined #perl6
18:43 tgt joined #perl6
18:50 chenryn joined #perl6
18:52 FROGGS m: grammar G { token TOP { <a> }; proto token a {*}; token a:sym«<foo>» { <sym> } }; class A { method a:sym«<foo>»($/) { say("awesome") } }; G.parse("<foo>", :actions(A) ) # bug
18:52 camelia rakudo-moar 0bbeda: ( no output )
18:53 FROGGS jnthn: do you know which part generates the method name that is called on the actions?
18:55 jnthn I think sym is specially handled somewhere
18:55 jnthn May be in P6QRegex::Actions
18:55 jnthn or QRegex::P6Regex::Actions
18:55 jnthn Or whatever we call it
18:55 jnthn :)
18:56 FROGGS assertion:sym<name> there cares about <sym> in regexes
18:56 nbrown joined #perl6
18:56 FROGGS and it creates a subcapture where the "<foo>" would be passed as a positional
18:57 rurban1 joined #perl6
18:57 Ven joined #perl6
18:57 FROGGS and I also know that we finally call the method (longname) on the action in QRegex::Cursor.!protoregex
18:57 Ven o/, #perl6
18:57 FROGGS but something must rebuild the longname, and that's the bit I am after
18:58 FROGGS hi Ven
18:58 Ven holidays are good, until you end up with 200+ more github notifs!
18:58 jnthn We don't call the actions class in !protoregex; that's done in !reduce
18:59 jnthn Or do you mean the method name is a bit off?
18:59 jnthn Or it fails to find it?
18:59 jnthn In taht case, see !protoregex_table maybe, and look at .HOW.methods of the grammar
18:59 FROGGS it tries to invoke 'a:sym<' ~ $sym ~ '>'
19:00 FROGGS so the name is off, aye
19:00 PerlJam m: grammar G { token TOP { <a> }; proto token a {*}; token a:sym«<foo>» { <sym> } }; class A { method a:sym<<foo>>($/) { say("awesome") } }; G.parse("<foo>", :actions(A) )
19:00 camelia rakudo-moar 0bbeda: OUTPUT«awesome␤»
19:00 FROGGS see
19:00 PerlJam (not that I didn't believe you, I just wanted to see :()
19:00 PerlJam er :)
19:01 FROGGS nqp-m: grammar G { token TOP { <a> }; proto token a {*}; token a:sym«<foo>» { <sym> } }; class A { method a:sym«<foo>»($/) { say("awesome") } }; G.parse("<foo>", :actions(A) )
19:01 camelia nqp-moarvm: OUTPUT«awesome␤»
19:01 FROGGS also this--^
19:01 FROGGS that's nqp though
19:01 FROGGS but I guess nqp is cheating here somehow?
19:02 PerlJam cheating by doing the right thing :)
19:03 jnthn m: grammar G { token TOP { <a> }; proto token a {*}; token a:sym«<foo>» { <sym> } }; class A { method a:sym<<foo>>($/) {  say("awesome") } }; say G.^methods(:local); say A.^methods(:local)
19:03 camelia rakudo-moar 0bbeda: OUTPUT«TOP a a:sym<<foo>>␤a:sym<<foo>>␤»
19:03 PerlJam =-huh
19:03 FROGGS O.o
19:04 jnthn That looks right. We canonicalize all quoting constructs in actual names to <...>
19:04 FROGGS hmmmm
19:04 jnthn m: say &infix:<< < >>
19:04 camelia rakudo-moar 0bbeda: OUTPUT«sub infix:<<> ($?, $?) { #`(Sub+{<anon>}|76380400) ... }␤»
19:04 jnthn Even if they don't match too well :)
19:05 FROGGS how are we supposed to retrieve that correct action method name then?
19:05 jnthn Well, if it's canonicalized it should just match the one in the grammar...
19:05 jnthn The name itself is actually passed as an argument to !curosr_pass iirc
19:05 jnthn And then on to !reduce, which does a method lookup
19:05 FROGGS and also, this makes .perl.EVAL impossible
19:06 jnthn Uh, we already throw away the method body anyway :P
19:06 FROGGS m: grammar G { token TOP { <a> }; proto token a {*}; token a:sym«<foo>» { <sym> } }; class A { method a:sym«<foo>»($/) {  say("awesome") } }; say G.^methods(:local); say A.^methods(:local)
19:06 camelia rakudo-moar 0bbeda: OUTPUT«TOP a a:sym<<foo>>␤a:sym«<foo>»␤»
19:06 FROGGS ahh!
19:06 Ven .o( DEATH to the EVAL )
19:06 FROGGS only grammar methods are canonicalized
19:06 jnthn Aha! That A one looks wrong...
19:06 jnthn Yeah
19:06 jnthn vive le bustage
19:06 chenryn joined #perl6
19:07 FROGGS so I guess I have to look at the GrammarHOW?
19:07 Ven bien joué !
19:08 jnthn No, I'd suspect some fail in Actions.pm in Perl 6
19:08 FROGGS hmmm
19:08 jnthn Though given we handle tokens and methods through a lot of the same code...it is rather a mystery.
19:08 FROGGS not again :o)
19:09 * FROGGS goes and checks isfalse first
19:10 dalek rakudo/nom: f4ed491 | jnthn++ | src/vm/moar/ops/perl6_ops.c:
19:10 dalek rakudo/nom: Add missing concrete checks to avoid SEGVs.
19:10 dalek rakudo/nom:
19:10 dalek rakudo/nom: tgt++ for reporting.
19:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f4ed4919f8
19:10 Ven eh. my 3g is too bad for me to commit the fixed learnxiny. sigh.
19:11 timotimo d'oh :(
19:13 FROGGS jnthn: ahh, P6::W.dissect_longname does the magic
19:13 FROGGS I always forget that :sym<...> is just a colonpair
19:14 klaas-janstol joined #perl6
19:16 timotimo the next doctor who spin-off is going to have not two hearts, but two colons.
19:18 PZt joined #perl6
19:19 Ven wat
19:20 timotimo it'll be pretty crappy ...
19:21 Sqirrel joined #perl6
19:23 FROGGS ohh, the token does not end up bing a longname...
19:24 raiph joined #perl6
19:35 * Ven just pushed a learnxiny update
19:36 Ven m: sub f(@a) { map({ return $_ if $_; }, @a) }; f(^10); #??
19:36 camelia rakudo-moar 0bbeda: OUTPUT«Unhandled exception: Attempt to return outside of any Routine␤   at <unknown>:1  (/home/p6eval/rakudo-inst-2/languages/perl6/r​untime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:12929  (/home/p6eval/rakudo-inst-2/languages/perl6/r…»
19:37 Ven I thought this was supposed to work and to return from f
19:38 jnthn But the map is lazy so runs after f
19:38 jnthn Well, the block does, anyway
19:38 Ven uh, does it?
19:39 jnthn m: sub f(@a) { eager map({ return $_ if $_; }, @a) }; say f(^10);
19:39 camelia rakudo-moar 0bbeda: OUTPUT«1␤»
19:39 Ven I seem to remember Junction used that, though ...
19:39 Ven oh.
19:39 Ven m: sub f(@a) { map({ return $_ if $_; }, @a).gimme(*) }; f(^10); #??
19:39 camelia rakudo-moar 0bbeda: ( no output )
19:40 Ven you seem a bit laggy, camelia.
19:40 Ven You even said jnthn++'s before mine ...
19:41 Ven Well, then, I'm in a corner here. I need either to explain lazy/eager contexts BEFORE talking about this aspect of subs, or I need to find something that takes a block but isn't lazy
19:43 PerlJam Ven: what is "this aspect of subs" exactly?
19:43 Ven PerlJam: `return` in subs VS in blocks
19:44 Ven "unable to push: server aborted the ssl handshake" nice.
19:44 PerlJam Ven: perhaps choose a different example that doesn't involve map?
19:44 Ven PerlJam: that's the 2nd option. I'm open to suggestions :)
19:45 Ven s03 mentions \eqv and \===,but these don't seem to work
19:48 klaas-janstol joined #perl6
19:57 nbrown joined #perl6
19:59 lxmahyar joined #perl6
19:59 lxmahyar Learn perl 6 or perl 5 ?
20:00 FROGGS depends... what do you wanna do?
20:00 PerlJam lxmahyar: why is it an either or thing? :)
20:01 lxmahyar I have doubt to decide between perl or python
20:01 lxmahyar or somthing else
20:01 PerlJam lxmahyar: again, why not all of them?
20:02 FROGGS lxmahyar: well, I do not like Python, but I'm not sure we can help you here without any informations
20:02 PerlJam lxmahyar: Or, if it were me, I'd learn Perl so that learnign the others would be simpler.
20:03 japhb lxmahyar: To be more precise, it's generally recommended to learn many languages -- but if you're asking which one to learn *first*, that depends on your goals.
20:04 lxmahyar I familiar with many languages
20:04 FROGGS then continue with Perl 6 :o)
20:04 lxmahyar I mean syntaxes
20:05 lxmahyar but I doubt perl die or not ? :(
20:05 FROGGS hmm?
20:05 FROGGS Perl is not dead
20:05 Ven especially not Perl 6 :-)
20:05 FROGGS even not Perl 5
20:05 japhb lxmahyar: I'm going to moderate FROGGS' comment by saying that Perl 6 is definitely recommended for learning if your needs are not urgent and humongous, because we're deep in the task of optimizing the compiler; it's not super fast yet.  For those needs, Perl 5 would be better.
20:06 FROGGS I mean, it might be harder to get a Perl job than to get a Java job, but I would not like to suffer doing Java at work fwiw
20:06 Ven hahaha. PHP and java jobs are easy to get, and they're the worst :-).
20:07 FROGGS Ven: exactly :o)
20:07 lxmahyar I want learn script language but, What does first ?
20:07 lxmahyar for fun, not for jub :)
20:07 FROGGS lxmahyar: then Perl 6, really
20:07 japhb For fun?  Perl 6, hands down.
20:07 Ven Definitely Perl 6
20:07 japhb We even have -Ofun (Optimize for fun) as a basic community precept.
20:08 lxmahyar Haskell, Scheme or somthing ?
20:08 japhb Those are not scripting languages.
20:08 lxmahyar I know that.
20:08 Ven well, scheme can be considered as one, I guess.
20:08 japhb That said, I recommend learning both if you don't have a pure functional or S-expression based language under your belt.
20:08 Ven lisps have an history of AI scripting :P
20:09 japhb Ven: Kinda sorta, I suppose.
20:09 lxmahyar Well, so I guess, first learning perl5, then python
20:09 lxmahyar then something else
20:10 FROGGS hmmm, that does not sound like fun :o)
20:10 lxmahyar Now, I know C/C++
20:10 FROGGS (to me)
20:10 japhb Perl 5 will certainly give you reliability, speed, and a gigantic module library.
20:10 Ven that doesn't sound like fun either :P
20:10 lxmahyar and attention, but python indent not :D
20:11 Ven well then, same for python/php/ruby, I guess
20:11 japhb Of all the languages I know (have forgotten more than I currently use fluently, actually), Perl 6 is by far the most fun.
20:11 lxmahyar is perl6 compiler ghc ?
20:12 Ven I didn't understand ?
20:12 lxmahyar ohh, sorry it haskell ;)
20:12 FROGGS lxmahyar: no, Perl 6 is written in Perl6 (called rakudo)
20:12 * Ven sighs realizing is english is as bad
20:12 japhb lxmahyar: ghc was used to write Pugs, which was the first Perl 6 compiler.  It is no longer in active development.
20:13 FROGGS m: say "hello lxmahyar"
20:13 camelia rakudo-moar 0bbeda: OUTPUT«hello lxmahyar␤»
20:13 jnthn Current state of the art Perl 6 compilers are mostly written in Perl 6. :)
20:13 FROGGS jnthn: why the plural? :o)
20:14 lxmahyar sorry for bad English
20:14 jnthn Well, was considering multi-backend Rakudo, but in a sense STD is still in many ways the ultimate in getting a correct parse and that's in Perl 6 too :)
20:15 FROGGS lxmahyar: np
20:16 lxmahyar I like too much perl5 syntax but I'am scared
20:18 jnap joined #perl6
20:18 lxmahyar perl has lists List comprehension?
20:18 FROGGS lxmahyar: well, Perl 6 is like Perl 5 leaned up and more awesome
20:18 FROGGS cleaned*
20:19 japhb lxmahyar: Perl factors that rather differently than Python, for instance.
20:20 lxmahyar I hear perl6 has List comprehension
20:20 lxmahyar like this: "0..100 | Where {$_ * $_ -gt 3} | ForEach {$_ * 2}"
20:21 FROGGS m: my @s = ($_ * 2 if $_ ** 2 > 3 for 0 .. 99); say @s
20:21 camelia rakudo-moar 0bbeda: OUTPUT«4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156…»
20:22 lxmahyar Does perl5 have ?
20:22 flussence m: say (^100).grep(3.sqrt < *).map(* * 2)
20:22 camelia rakudo-moar 0bbeda: OUTPUT«4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156…»
20:23 japhb lxmahyar: In Perl 5, it would be more like: my @s = map { $_ * 2 } grep { $_ ** 2 > 3 } 0 .. 99;
20:24 lxmahyar but like perl6 not in default?
20:25 japhb lxmahyar: I'm not sure how to interpret that.  We've just shown you three different syntaxes (one of which also works in Perl 5) for what Pythonistas consider to be a list comprehension.
20:26 Ven m: ^100 ==> grep(3.sqrt < *) ==> map(* * 2) ==> say # that works too
20:26 camelia rakudo-moar 0bbeda: OUTPUT«4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 156…»
20:27 lxmahyar interesting :)
20:28 Ven lxmahyar: you can a glimpse of Perl 6 with this tutorial: github.com/learnxinyminutes.com/docs/perl6/
20:28 lxmahyar I like philosophy of TMTOWDI :D
20:28 * Ven does shameless self-plugs
20:29 Ven fun of this changes from one person to another :-)
20:29 Ven how*. not of. duh.
20:29 lxmahyar Ven:Thanks for your time.
20:30 Ven well, if you're asking me how much fun I have, I'll always have time to tell you :-)
20:32 lxmahyar sure enough.
20:34 pmurias Ven: the link you posed seems broken
20:35 Ven oh, did I just add github.com before that. whoops :P
20:35 Ven s/github\.com/http:\/\//
20:35 Ven pmurias: http://learnxinyminutes.com/docs/perl6/
20:36 lxmahyar Ven: Tnx
20:40 pmurias is the flip flop operator important enough to put in the tutorial?
20:42 Ven pmurias: that tutorial is currently 1k2 lines long, and growing steadily.
20:42 Ven It's already more than a mere "glimpse"
20:43 Ven (there's a reason it's very much near the end, though)
20:44 pmurias you have to decide if you want to describe the whole setting or just a "chunk" of the language large enought to be productive
20:44 cognome Ven: "# Perl 6 has 4 variable types".  I think you mean something like sigils are a way to denote roles. There are four of them :  % for Associative  @ for Positional and & for Code and $ for everything else. And that would omits the :: pseudosigil.
20:44 cognome s/omits/omit/
20:45 pmurias why do we have both "? $foo" and "so $foo"
20:46 Ven pmurias: precedence, IIRC
20:46 Ven cognome: that's too technical
20:47 pmurias Ven: one significant flow is that you describe the sort comparisions and not sort
20:47 Ven ha, that's an interesting point.
20:48 Ven perl 6 methods aren't described anywhere, currently
20:49 Ven nor should they be described in some "order", eh.
20:49 japhb cognome: & is Callable
20:50 japhb $ implies itemized.  \ implies nothing.
20:50 pmurias Ven: what do you mean by 'nor should they be described in some "order"'?
20:51 Ven pmurias: I don't want to have a listing of what methods List has, then Str, then ..
20:51 japhb (Well, that was imprecise, \ on a param name while binding means to not alter it by e.g. containerizing or itemizing)
20:52 pmurias Ven: so you shouldn't describe sort comparisions
20:52 pmurias they seem useless without a sort
20:53 Ven pmurias: they're not Array methods
20:53 Ven you mean lt, gt and such, right?
20:53 pmurias <=>
20:53 pmurias <=>, cmp, eqv
20:54 Ven meh, it's kinda for completeness' sake, but I do need to explain sort here.
20:54 japhb Way more useful to describe sort key extractors.
20:54 telex joined #perl6
20:54 japhb @people.sort(*.tenure)
20:54 Ven key extractors ?
20:55 japhb Ven: see ^^
20:55 Ven that's just priming
20:55 japhb Priming?
20:55 Ven and schwartzian transform
20:55 Ven I'm answering that
20:55 japhb Yes, internally it should do a schwartzian transform.  But there's no point in explaining that.
20:56 japhb Ah, good.  I haven't read the whole thing yet.  :-)
20:56 pmurias Ven: completeness as in describing all the operators doesn't seem to be worth much in a tutorial
20:56 pmurias operators are just subs with a fancy syntax, and you aren't describing all the subs
20:57 Ven that's not my role. cmp, <=> and those should just stay at the end of the tutorial
20:58 nbrown joined #perl6
21:01 ren1us Ven: Might I suggest a Junctions section? :)
21:02 Ven ren1us: that's written in my to-do, but you're very welcome to write it :P
21:03 ren1us I'll get on that in about half an hour
21:03 ren1us I'll spend that half hour making sure *I* know what junctions do
21:03 pmurias Ven: do you intend it to be a tutorial or a giant list of everything?
21:03 Ven pmurias: tutorial.
21:04 pmurias I think you should consider slimming down some of the long lists of things
21:05 pmurias why mention quietly in a tutorial?
21:05 Ven Because it's intended to be very comprehensive.
21:06 Ven I have another project of something that intends to read more like a book, but I first want to finish that tutorial to see where I'm going.
21:07 Ven (that one will explain the key concepts, etc)
21:08 pmurias why do you want a tutorial to be comprehensive?
21:08 lizmat japhb: re http://irclog.perlgeek.de/​perl6/2014-08-14#i_9185907 , do you mean the (incomplete) list in the SYNOPSIS section?
21:09 Ven I might very well be misusing words here. It should first explain to you the basics, then go more in-depth.
21:09 Ven I want to be able to look at it myself if I have a doubt someday
21:11 pmurias hmm, maybe it would make sense to split the list of everything part from the tutorial introduction
21:12 Ven probably so. Then again -- I'm very open to suggestions :-)
21:13 Ven I'm not an experienced writer nor an experienced p6er. I'm just trying stuff out, we'll see how that works out!
21:13 japhb lizmat: No, the one under "All of the following functions are exported by default:" in the DESCRIPTION section
21:14 pmurias and having synopsis links for the giant list of things seems usefull
21:15 Ven there should be one or two. Could add others. But they read poorly
21:16 araujo joined #perl6
21:16 lizmat japhb: the only ones missing were todo, skip and skip_rest, right ?
21:18 dalek specs: a939132 | (Elizabeth Mattijsen)++ | S24-testing.pod:
21:18 dalek specs: Elaborate a bit more on todo, skip, skip_rest
21:18 dalek specs:
21:18 dalek specs: As spotted by japhb++
21:18 dalek specs: review: https://github.com/perl6/specs/commit/a939132b25
21:19 japhb lizmat: I noticed those in passing, but I didn't really do a comprehensive review
21:19 lizmat I think I got them all now...
21:19 japhb OK, cool.  :-)
21:19 japhb lizmat++
21:19 lizmat not much done today, still tired, so early night&
21:19 japhb Sleep well o/
21:28 chenryn joined #perl6
21:52 zakharyas joined #perl6
21:53 huf joined #perl6
21:59 nbrown joined #perl6
22:05 cognome Ven: so replace type which has another meaning by kind/
22:06 Ven that's nitpicking :P
22:07 Ven done
22:07 Ven I feel like "variables kinds" would be better than "variable kinds", because the latter implies that the kinds are variable.
22:09 japhb "kinds of variable"?
22:16 iarna joined #perl6
22:29 chenryn joined #perl6
22:31 Psyche^_ joined #perl6
22:44 rindolf joined #perl6
23:00 nbrown joined #perl6
23:06 anaeem1 joined #perl6
23:29 chenryn joined #perl6
23:38 colomon joined #perl6
23:40 psch .tell sergot i've added a very basic error-printing to your OpenSSL module and the error message seems to points at something upstream (3rd file in https://gist.github.com/pes​chwa/c60c1c06a96781418d27; upstream discussion http://www.mail-archive.com/opens​sl-dev@openssl.org/msg32009.html)
23:40 yoleaux psch: I'll pass your message to sergot.
23:40 psch .tell sergot i'm not sure that's actually the problem though; the discussion mentions AES-NI, which at least one of the machines i encounter that error doesn't support
23:40 yoleaux psch: I'll pass your message to sergot.
23:43 raiph joined #perl6
23:50 Alula_ joined #perl6
23:52 chenryn joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo