»ö« 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:16 rurban1 joined
japhb wonders how to manage a hello.perl6.org as snazzy as this: hello.p5js.org/ 00:20
TimToady well, the Mint based on that 00:22
japhb Mint 17, I guess. 00:27
TimToady yes, a purportedly LTS version 00:29
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.
TimToady that's the theory :)
especially since Mint doesn't believe in upgrade-in-place as much as Ubuntu 00:32
so it's even churnier for Mint 00:33
TimToady loves the productive affixes in English :)
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 00:40 anaeem1 left
pmichaud Is there an ascii version of the union and intersection set operators? 00:47
I guess (|) and (&) ? 00:48
.u ∪ 00:49
yoleaux U+222A UNION [Sm] (∪)
00:54 cognome left
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 01:04 kurahaupo left 01:07 FROGGS left 01:09 lue left
BenGoldberg .u intersection 01:19
yoleaux U+2229 INTERSECTION [Sm] (∩)
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)␤»
BenGoldberg :)
01:20 anaeem1 joined 01:24 anaeem1 left
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:30 yeltzooo4 left 01:32 yeltzooo joined
BenGoldberg .u complement 01:35
yoleaux U+2201 COMPLEMENT [Sm] (∁)
BenGoldberg m: my \A = set(1, 2, 3); my \B = set(3, 4); say A ∁ B 01:36
camelia rakudo-moar 88326e: OUTPUT«===SORRY!=== Error while compiling /tmp/M6W17SyCqz␤Two terms in a row␤at /tmp/M6W17SyCqz:1␤------> set(1, 2, 3); my \B = set(3, 4); say A ⏏∁ B␤ expecting any of:␤ postfix␤ infix stopper…»
BenGoldberg m: my \A = set(1, 2, 3); my \B = set(3, 4); say ∁ B
camelia rakudo-moar 88326e: OUTPUT«===SORRY!=== Error while compiling /tmp/p__0uzRPCM␤Two terms in a row␤at /tmp/p__0uzRPCM:1␤------> = set(1, 2, 3); my \B = set(3, 4); say ⏏∁ B␤ expecting any of:␤ argument list␤ prefix …»
BenGoldberg m: my \A = set(1, 2, 3); my \B = set(3, 4); say A (^) B
camelia rakudo-moar 88326e: OUTPUT«set(1, 2, 4)␤»
01:36 Mouq joined
Mouq lizmat++ TimToady++ # fixing my error, smartmatch reboot 01:37
01:47 klapperl joined 01:50 klapperl_ left 01:51 kurahaupo joined 01:55 Mouq left 01:56 chenryn joined 02:08 anaeem1 joined, anaeem1 left 02:14 telex left 02:16 telex joined 02:18 iarna left, iarna joined 02:21 lue joined 02:27 raiph joined 02:29 iarna left
raiph .tell timotimo mebbe gist.github.com/raiph/f20cec6ff47400c31fbb is helpful for p6weekly 02:31
yoleaux raiph: I'll pass your message to timotimo.
02:36 nbrown joined 02:37 xinming left 02:38 xinming joined
dalek Heuristic branch merge: pushed 122 commits to roast/S26-WHY by hoelzro 02:46
Heuristic branch merge: pushed 83 commits to rakudo/S26-WHY by hoelzro
02:47 araujo left 02:49 PotatoGim joined 02:50 nbrown left 02:52 PotatoGim left, PotatoGim joined 02:53 noganex joined 02:55 noganex_ left 03:05 akaseki left, akaseki joined 03:06 isacloud___ left 03:07 isacloud____ joined 03:08 anaeem1 joined
dalek kudo/S26-WHY: e020d38 | (Rob Hoelz)++ | src/Perl6/ (3 files):
Implement decl docs for enums
03:12
03:13 anaeem1 left 03:14 rurban1 left 03:15 iarna joined, xragnar_ joined, xragnar left, xragnar_ is now known as xragnar, rurban1 joined 03:18 iarna left 03:21 iarna joined, BenGoldberg left 03:37 kaare_ joined 03:45 nbrown joined 03:50 kaare__ joined, kurahaupo left 03:51 treehug88 joined, integral_ joined, integral_ left, integral_ joined 03:52 Shozan joined, BooK_ joined, brother| joined, Psyche^ joined, breinbaa1 joined, sergot_ joined, ren1us2 joined, ren1us left, nbrown left, rjbs left, BooK left, ribasushi left, integral left, telex left, Psyche^_ left, Pleiades` left, DarthGandalf left, brother left, breinbaas left, kaare_ left, sergot left, timotimo left, SHODAN left, ren1us2 is now known as ren1us 03:53 telex joined, telex left, Pleiades` joined, ilbot3 left, ribasushi joined 03:54 timotimo joined, DarthGandalf joined, telex joined, anaeem1 joined, ilbot3 joined 03:56 rjbs joined 03:59 anaeem1 left 04:03 anaeem1 joined 04:06 Colby` joined 04:07 ilbot3 left, DarthGandalf left, Pleiades` left, Colby` is now known as Pleiades`, anaeem1 left 04:08 DarthGandalf joined 04:10 ilbot3 joined 04:13 anaeem1 joined 04:17 anaeem1 left 04:21 xinming_ joined, cognome joined 04:23 zakharyas joined 04:24 xinming left 04:25 anaeem1 joined 04:27 iarna left 04:30 anaeem1 left, kaare__ left 04:33 zakharyas1 joined 04:34 ventica2 joined, ventica left 04:35 ventica_desktop left, zakharyas left 04:37 [Sno] left, ventica_desktop joined 04:39 ventica_desktop left 04:45 nbrown joined 04:47 kurahaupo_ joined 04:48 kurahaupo__ joined 04:49 iarna joined 04:50 nbrown left 04:51 kurahaupo_ left 04:53 iarna left 04:54 SamuraiJack joined 04:55 kaare__ joined 05:00 itz_ joined 05:02 itz left 05:03 xenoterracide joined, zakharyas1 left, chenryn left 05:04 gfldex joined 05:08 Shozan is now known as SHODAN 05:09 Celelibi left 05:10 japhb_ joined, eternaleye left, simcop2387 left, btyler_ joined, djanatyn left, smash left 05:11 japhb left, eternaleye joined, btyler left, djanatyn joined, smash joined
Woodi hi #perl6 05:12
05:12 Celelibi joined 05:15 simcop2387 joined
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:16
P5 just calls C functions and it makes it fast. we always will be missing such speed. 05:18
05:18 xenoterracide left 05:20 chenryn joined 05:21 anaeem1_ joined 05:23 anaeem1_ left, anaeem1_ joined 05:24 darutoko joined 05:25 anaeem1 joined, anaeem1_ left
TimToady other than your premises and your conclusion, I agree completely :) 05:27
05:29 anaeem1 left 05:33 rurban1 left 05:35 anaeem1 joined 05:39 anaeem1__ joined, anaeem1 left 05:42 anaeem1 joined 05:43 anaeem1__ left 05:46 anaeem1 left, nbrown joined, anaeem1 joined 05:50 nbrown left 05:51 anaeem1 left 06:02 [Sno] joined 06:03 brother| is now known as brother 06:05 itz joined 06:07 itz_ left 06:10 chenryn left 06:15 denis_boyun joined 06:19 chenryn joined 06:25 ren1us left 06:28 ren1us joined 06:33 kaleem joined 06:36 anaeem1 joined 06:37 anaeem1 left, anaeem1 joined 06:41 anaeem1 left 06:47 nbrown joined 06:51 nbrown left 06:57 kaare__ is now known as kaare_ 07:03 FROGGS[mobile] left
moritz Woodi: guess what, we can call C functions from Perl 6. 07:06
07:10 xinming_ left 07:11 xinming joined
Woodi moritz: but we don't 07:11
but, as usual, I just guessing/imagining how things works... 07:12
moritz Woodi: then maybe you should suggest improvements *after* you have stopped guessing, and have actually informed yourself how stuff works 07:13
Woodi ok :) 07:15
07:19 brrt joined 07:33 pmurias joined 07:43 anaeem1_ joined 07:44 anaeem1_ left, brrt left 07:45 anaeem1 joined, PZt left 07:48 nbrown joined 07:52 nbrown left 07:54 kaleem left, kaleem joined
masak morning, #perl6 07:55
FROGGS_ Woodi: MMD with P6 subs and NativeCall subs should just work 08:05
timotimo that's right 08:08
yoleaux 02:31Z <raiph> timotimo: mebbe gist.github.com/raiph/f20cec6ff47400c31fbb is helpful for p6weekly
timotimo thank you, raiph
08:21 anaeem1 left 08:22 anaeem1 joined 08:40 lizmat left 08:46 kaleem left, kaleem joined 08:48 brrt joined 08:49 nbrown joined 08:50 fhelmberger joined 08:51 klaas-janstol joined 08:53 raiph left 08:54 nbrown left 08:56 donaldh joined
timotimo www.reddit.com/r/perl/comments/2dhv...scenarios/ - maybe someone in here can write up a well-thought-out response that is unlikely to turn this thread into a flamefest ... 08:59
moritz lol 09:02
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:04
moritz I've written an answer 09:05
and yes, it has the potential to turn into a flamewar 09:06
timotimo uh oh!
you wrote "a larger incentive to switch to perl 6 eventually" 09:07
brrt very few things in life do not have that potential
timotimo the haters will love that %)
and by love i mean hate
moritz of course
timotimo and by hate i mean love
moritz but it really is an essential point
the slowness of the p2 -> p3 migration is in large parts due to the lack of incentives to switch to 3 09:08
py2 -> py3 I should say
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
programming languages for most people are just tools without any intellectualism or artistry
xiaomiao moritz: performance + legacy code
moritz: "so if I invest 2000 man-hours I get the same I have now, 30% slower?" 09:09
09:11 donaldh left
moritz xiaomiao: correct; you'd have to offer something valuable in return 09:11
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
xiaomiao that, or performance optimizations that make things a lot faster
both can have a business value
timotimo moritz: you could have all these features in perl5! just use moar modulez! 09:14
09:17 SamuraiJack left, lizmat joined 09:23 FROGGS__ joined 09:25 FROGGS_ left
Ulti if v5 ever had more perf than perl5 that would probably be a winning scenario 09:25
has anyone actually benchmarked what already works in v5?
timotimo Ulti: don't forget v5 will never be able to run XS based modules 09:29
though a "port" of NativeCall to v5 should be very simple
hmm.
now that i think about it
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
no!
oh god
tadzik I'm willing to supply alcohol to make that bearable
timotimo i think in the end you'll just { use v6; use NativeCall; our sub ... is native ... ; }
nwc10 yes, there are already FFI modules for perl 5 on CPAN, and they are really taking the world by storm...
betterworld how will DESTROY work in v5? I think many programs that use
nwc10 FFI is about 25% of the "problem"
09:30 klaas-janstol left
betterworld that use DESTROY depend on refcounting 09:30
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
and you are *stuffed* if the interface includes inline functions, or macros that expand to code.
timotimo nwc10: you have to explain that to me, i have no clue of the perl5 world at all
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
what i mean is: is "taking the world by storm" sarcastic?
nwc10 but it generates C code, and so needs a C compiler
so people think that the solution is FFI, becaue then you don't need a C compiler to interface to C code
and FFI modules exist on CPAN
and (almost) nothing is using them.
because they don't actually make life easier
timotimo OK. 09:33
nwc10 nativecall is one part of what's needed to write a C interface.
but it's not enough on its own, except for simple things like "pass a number" or "return a number"
timotimo sad but true.
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:34
so it's a flag day upgrade 09:35
and no automated way to 100% convert py2 code to py3 either
xiaomiao yarp, that's quite horrible
nwc10 incrementally upgrading your codebase module by module is not made easy
09:36 alinbsp joined
timotimo i'm looking forward to diakopter's work on the perl5-inside-moarvm thing 09:38
colomon module smoker is back to 09:39
make: *** No rule to make target `m-clean', needed by `clean'. Stop.
Failed running make realclean at /home/smoker/.rakudobrew/bin/rakudobrew line 23.
:(
colomon 's vacation is very nearly over, so he hopes to have time to check this out soon. 09:40
timotimo we shouldn't need that step 09:41
just delete line 23 :P
tadzik: ^
tadzik timotimo: it's there Justin Case' 09:42
09:43 donaldh joined
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.
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:44
but since we have a common Configure.pl broken realclean is a reccuring problem :( 09:45
timotimo oh
moritz maybe Configure.pl should try all off (m-realclean, j-realclean, p-realclean), and ignore errors 09:48
09:49 nbrown joined 09:53 nbrown left, donaldh_ joined 09:56 donaldh left, donaldh_ is now known as donaldh 10:10 spider-mario joined
dalek kudo/nom: 758974b | jnthn++ | src/Perl6/Optimizer.nqp:
Don't let parens prevent "for (1..1000) { }" opt.
10:11
FROGGS__ m: for (((((((1..1000))))))) { } 10:12
camelia ( no output )
10:12 FROGGS__ is now known as FROGGS 10:13 scumdog joined
jnthn That's just stupid. 10:16
I only bothered with the above patch for the sake of perl6-bench.
It's an annoying one because we want to pattern match before the optimizer gets its hands on the child nodes 10:17
In most cases we visit children first, and such things get stripped away.
10:17 klaas-janstol joined
pmurias "for the sake of perl6-bench" - isn't that a bit cheating ? ;) 10:19
10:20 scumdog left
jnthn Optimization *is* cheating. 10:21
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:32 brrt left 10:50 nbrown joined 10:52 chenryn left 10:56 nbrown left 10:58 davido__ joined 11:01 davido___ left
nwc10 what's the most recent sent of benchmarks that anyone has run and published? 11:06
"are we nearly there yet?"
11:06 chenryn joined
jnthn I'm planning to do a run later today 11:07
timotimo oh, i wanted to do one, too! :)
11:17 kaleem left
dalek ecs: edccb81 | (Elizabeth Mattijsen)++ | S24-testing.pod:
Cleanup and elaboration on Testing

  - removed eval_lives_ok, eval_dies_ok, now handled by lives_ok/dies_ok
  - added cmp_ok
  - described each function in more depth
  - removed reference to Test::More, doesn't make sense to people not knowing p5
11:44
11:49 fling left 11:51 nbrown joined 11:52 Akagi201 left, fling joined, mr-foobar left 11:53 mr-foobar joined 11:55 nbrown left 11:57 prevost joined
timotimo i'm doing a benchmark run of latest rakudo and nqp on latest moar with and without jit 11:59
masak wow. backlog made me go look at hello.p5js.org -- I'm glad I did. 12:09
the web is turning interactive almost faster than my mind can get used to it.
but I think it's exactly the direction it should move in.
[Coke] "no, really, click here" 12:12
dalek kudo-star-daily: aa4e804 | coke++ | log/ (14 files):
today (automated commit)
12:18
12:18 rurban1 joined 12:21 treehug88 left
masak [Coke]: the mixing of video and interactive canvas was surprising. obvious in retrospect, but still surprising. 12:22
[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
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.
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
masak tadzik: that's why I more and more consider JavaScript to be a target language. 12:27
tadzik right
masak tadzik: same with HTML and CSS.
tadzik well, this I consider a GUI toolkit, not a language, but I see the point 12:28
pmurias masak: why do you consider JavaScipt laughably underpowered? 12:35
masak pmurias: other contemporary languages have several different levels of abstracting and compartmentalizing things. JavaScript has one: functions. 12:36
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.
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:38
12:40 klaas-janstol left
pmurias by littered with nested anonymous functions, you mean the use of callbacks for everything? 12:43
moritz also for getting a scope 12:44
masak right, not just callbacks.
functions are also used to create types.
moritz or for simulating a private attribute, by having a lexical variable in a new, private scope
masak and modules.
moritz EVERYTHING
masak and to do dependency injection.
right, everything. 12:45
moritz the more I think about it, the more I agree with masak++
which tells me that masak++ has thought a lot about it too :-)
nwc10 masak++
pmurias moritz: do people actually simulate private attributes in javascript?
nwc10 for these observations 12:46
moritz pmurias: some do
jnthn I use "var" in the scope of a constructor to obtain privacy in JS
masak it varies how much people care about that kind of privacy. 12:47
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)
masak yeah, it's the morally equivalent trick. 12:49
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
in the second iteration, that is
that's a very unusual experience for me :-) 12:51
masak cause for suspicion :)
moritz that too :-)
masak "where's my complimentary thinko?"
12:51 nbrown joined
moritz git says +80 lines, -5 lines 12:52
12:53 brrt left
pmurias masak: the interesting questions is, do the languages targeting javascript solve those problems? 12:55
12:56 nbrown left
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
pmurias: source maps make that even more true. likely other stuff in the future will make it even more true.
I think the trend is so important that even many non-web programmers would benefit from paying attention to it. 12:58
13:00 fhelmberger left
pmurias personally I don't have a plan how to deal with the callback hell in nqp-js/rakudo-js 13:00
and I'm not fully sure what a good solution to the lack of proper modules in js is 13:01
and the lack of proper modules seems to be the worst flow with js
masak "a good solution to the lack of proper modules in js" depends on your context. 13:02
13:03 dmol joined
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:03
13:03 chenryn left 13:04 chenryn joined
moritz Perl 6! 13:04
masak well, ++pmurias willing, yes.
I'd love to write web apps in Perl 6.
pmurias the bigger problem is that other people's module won't be in Perl 6 13:05
masak you mean there has to be some kind of JavaScript FFI? 13:06
lizmat fg 13:08
oops, ww :-)
masak wb :) 13:09
13:09 colomon left 13:11 kaare_ left
dalek p-js: 8ad493d | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Add missing semicolon when declaring a function.
13:15
p-js: 9f6f2bc | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Calling a sub with standard positional arguments.
p-js: 447c6cd | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Calling a sub with *@args. (Receiving those arguments is still NYI).
pmurias masak: there will have to be some way to import stuff from js modules 13:16
13:16 anaeem1 left
pmurias masak: hopefully a FFI will be mostly transparent/automatic 13:16
masak: one the node.js side there is a module system, but the browser side seems to be more important/interesting 13:17
13:18 chenryn left 13:19 chenryn joined
pmurias masak: suppose you want to use jquery from you Perl6 script, how are you supposed to do that? 13:20
timotimo 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, klaas-janstol joined
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:22
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.
jnthn Same for while bind
*sigh* certainly turning off the noise avoidance algo for my run.
timotimo i wondered about that, too.
13:23 Akagi201 joined
timotimo jnthn: how do i do that? 13:26
the data seems to be there, it's just being ignored?
pmurias masak: the details are the hard part
jnthn Yeah, japhb++ mentioned it's just a graphing option
pmurias masak: do we bundle the module or use a CDN?
jnthn But I forget the flag
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. :)
pmurias masak: some javascript code uses AMD, other just exposes a global object
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.
timotimo is that --min-time?
jnthn timotimo: maybe 13:28
13:29 iarna joined
timotimo AFK for a bit 13:29
13:30 thistusooa left
dalek p: c2362f4 | jnthn++ | src/ (3 files):
Don't walk whole setting symbol table on load.

This should help avoid some deserialization work, or at least get rid of one more thing that forces a bunch of it.
13:33
lizmat wonders how that would affect the spectest 13:34
dalek kudo/nom: 570de40 | jnthn++ | / (5 files):
Avoid walking whole setting scope at startup.

This should deal with another thing that forces deserialization of all things in the setting whether they're needed or not. Helps a little, but probably there are further "leaks" that could be cleared up.
13:35
jnthn lizmat: Not a lot from what I've measured
lizmat too bad :-)
jnthn It makes a small difference to base memory usage. 13:36
dalek kudo/nom: b9d499e | (Elizabeth Mattijsen)++ | lib/Test.pm:
Implement cmp_ok() (as recently specced ;-)
jnthn But only a couple of percent
13:42 brrt joined 13:45 Liss1 joined 13:47 amkrankruleuen left 13:48 amkrankruleuen joined 13:49 iarna left
donaldh ugh. Tried to add an scIndex into SixModelObject on JVM. Now get JVM crashes during nqp compilation. 13:50
13:50 jnap joined
donaldh does generated code rely on SixModelObject layout? 13:50
lizmat errands&
13:52 nbrown joined 13:53 sergot_ is now known as sergot
moritz donaldh: did you add it at the end? 13:55
oh wait, this is java, not C
never mind
13:55 sqirrel joined
donaldh Well class layout still matters in java 13:55
jnthn I can't immediately think of a reason we'd crash over that. 13:56
I mean, yeah, we compute classes on the fly
donaldh That are derived from SixModelObject 13:57
jnthn Right
13:57 nbrown left
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.
diakopter unless you're using Unsafe, if it's a true crash, it's a jvm bug...
moritz wouldn't be the first one we#d encounter :-) 13:58
donaldh Yah, but the JVM bug could be manifested by bad instructions.
diakopter ok, a Java specification bug :)
donaldh It's a true crash, i.e. SEGV. So yes, a JVM bug. 13:59
nwc10 donaldh: you've got the most current version of the JVM that Oracle have blessed us with? 14:00
14:00 kaare_ joined
donaldh I haven't. Recent but not latest. I'll get the latest 7 and 8 and try them. 14:01
14:01 rurban1 left
nwc10 obviously, I'm wondering if you have inadvertently found an exploit 14:01
14:08 anaeem1 joined
psch hi #perl6 o/ 14:13
14:15 araujo joined, araujo left, araujo joined
masak greetings, psch 14:15
14:15 anaeem___ joined
psch sergot: IO::Socket::SSL on 32bit segfaults a moar REPL for some URLs: gist.github.com/peschwa/c60c1c06a96781418d27 14:16
i'd blindly assume that's something in NativeCall, although i didn't get around to gdb deeper
hi masak
14:17 kurahaupo__ left
sergot psch++: thanks I will take a look at this 14:17
14:18 anaeem1 left
sergot psch: is it only the REPL/ 14:18
?
psch sergot: yes, the REPL segfaults. execution of a script gives an empty Buf 14:19
let me gist it for you
sergot will be great
psch sergot: gist updated 14:20
14:21 [Sno] left
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:21
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?
I mean 14:23
try to run it X times
github should return 301 in this case
And it does on my box 14:24
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
that's only for github
14:26 brrt left
hoelzro morning #perl6 14:28
diakopter that Oracle hath oracled us with 14:31
14:36 alinbsp left 14:40 donaldh_ joined
psch sergot: fwiw, i put a for 1..100 around the example code and it gave me 100 empty Bufs 14:40
sergot I always get satisfying result, even using the REPL. 14:41
So.. something is wrong :)
I'll get into this.
psch sergot: as mentioned, i'm on 32bit 14:42
14:42 ggoebel1111117 joined
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 sqirrel left
sergot In the OpenSSL module. 14:43
14:43 iarna joined
sergot psch++ # thank you for trying this stuff 14:45
14:46 ggoebel1111116 left
sergot :) 14:46
psch sergot++ # for making this stuff
:P
tadzik hmm, did someone look into making Net::IRC like SSL?
I could rewrite the dinner irc bot to Perl 6 and thus make it run production software at work :D
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:47
masak tadzik: what's the dinner IRC bot? 14:53
14:53 nbrown joined
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!
that sounds very neat!
tadzik it's using Bot::BasicBot and DBI 14:54
DBI because it's integrated with a webapp for signing up for dinner :)
14:54 donaldh_ left
jnthn "We're using Perl 6 in a critical application. If it fails, people starve!" 14:54
masak .oO( it's used in production... of dinner ) 14:55
dalek blets: 91390db | (Herbert Breunung)++ | docs/ (5 files):
organizing ops better, link cleanup
sjn Perl 6: The IOT Language for The Kitchen? 14:56
14:57 nbrown left
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
nwc10: I haven't tried it on spectests yet
dalek blets: a6c9a6a | (Herbert Breunung)++ | docs/ (5 files):
further link cleanup
15:02
15:04 iarna left 15:06 rurban1 joined 15:10 iarna joined
[Coke] pmurias++ # npq-js go! 15:14
dalek p-js: 003a34a | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Mark params in $*BLOCK.
15:15
p-js: 4dcba8c | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Simple positional parameters work.
p-js: 4fb3a7b | (Pawel Murias)++ | nqp-js:
Pass arguments to nqp-js.
p-js: ac0aada | (Pawel Murias)++ | / (3 files):
make js-test passes test t/nqp/01-literals.t with a concatenated mini-setting.
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:16 japhb_ is now known as japhb
hoelzro pmurias++ 15:17
dalek blets: 5b7b0f8 | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
fixing table alignements
15:21
blets: edc5a0c | (Herbert Breunung)++ | docs/appendix-b-grouped.txt:
fixing extrawide layouts too
15:23
15:25 Liss1 left
dalek p: daaf098 | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for async proc + JIT additions.
15:27
kudo/nom: 0bbedab | jnthn++ | / (2 files):
Support writing to async proc STDIN also.

Includes an NQP_REVISION bump to get MoarVM improvements that enable this.
15:28
15:38 denis_boyun left 15:39 donaldh left 15:40 donaldh joined 15:45 breinbaa1 left
dalek p-js: 34c8c0a | (Pawel Murias)++ | src/vm/js/nqp-runtime/runtime.js:
Add missing nqp.named, fix indentation.
15:48
rl6-roast-data: 10717a7 | coke++ | / (5 files):
today (automated commit)
15:51
[Coke] moar still busted. :(
jnthn [Coke]: That doesn't make a lot of sense...building without JIT fails, somehow? 15:53
dalek p-js: 4b45434 | (Pawel Murias)++ | tools/build/ (2 files):
"npm install" the runtime when it changes.
15:54
15:54 nbrown joined
[Coke] I'll post the build log (which I save only until the next day is run.) 15:56
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:57
15:58 nbrown left
[Coke] jnthn: oh, I'm an idiot. 15:58
dalek p-js: 118bb06 | (Pawel Murias)++ | / (3 files):
Add a js-lint which lints the javascript runtime using gjslint.

Fix the style violations it finds.
[Coke] Command failed (status 7424): /usr/bin/perl Configure.pl --prefix=/home/coke/sandbox/perl6-roast-data/rakudo.moar/install --backends=moar --make-install --git-protocol=https --gen-moar --moar-option=--disable-jit
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
15:59 slavik left
[Coke] *sigh* it'll be fine tomorrow. 15:59
pmurias what's the slowest compiler? 16:00
jnthn [Coke]: Phew! :)
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...
japhb (except on older builds, for concat tests, in which case r-m)
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:02
(And of course history plots, which are based on grabbing the peak performance from each compiler on each test, become essentially random) 16:03
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?
jnthn timotimo: The missing points for moar-jit towards the right of the graph
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...
timotimo as they pretty much stop left of the middle
japhb jnthn: I worded that poorly ("steady state") 16:07
dalek p-js: 19fcd62 | (Pawel Murias)++ | src/vm/js/bin/run_tests:
Add passing test 5 to run_tests.
japhb jnthn: Which test for example is missing points near the right?
jnthn japhb: t.h8.lv/p6bench/2014-08-14-jit_comparison.html - see moar-jit's entry in while_empty 16:08
timotimo and while_bind
japhb (And timotimo, do you have --min-scaling-points set to 2 instead of 3?
timotimo i didn't supply any value for that 16:09
16:09 AforAcronym joined, Alula_ left
japhb Hmmm, something is very fishy there. 16:09
Do you actually have data for those points in those tests?
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
japhb Which makes me wonder if there's some segfaulting or something going on that causes a signal, that timeall reads as failure
timotimo up to 131072 16:11
it's just that it's barely slower than at 0 :)
japhb For r-m-j on those two tests?
Oh, interesting!
timotimo i'll give you the json if you'd like?
japhb wonders if the loop got essentially optimized away 16:12
timotimo no, it would have stayed
japhb But if it was so bloody fast, timeall should have kept bumping the SCALE until it got a reading
timotimo but having the loop in asm is just ridiculously fast
japhb Hmmm, or there was an overflow in something
Yeah, post the json, I'd like to take a look 16:13
timotimo one sec :)
japhb Also, can you generate the plots (with a different filename) with --min-time=0 ?
timotimo t.h8.lv/p6bench/758974b.json
sure
japhb thx
Wait, while_empty is showing the problem, and *not* while_empty_native. 16:15
Hmmmm
timotimo t.h8.lv/p6bench/2014-08-14-min_time_0.html
japhb What the .... 16:16
OK, bus stop, but will continue looking at this.
jnthn hah, that while_empty_native one goes wild... 16:17
16:17 dayangkun left 16:20 Alula_ joined 16:22 zakharyas joined
dalek rl6-bench: af4e774 | TimToady++ | perl6/rc-self-describing-numbers:
install faster perl6 version

This version is twice as fast and cheats more like the nqp version.
16:22
16:26 SamuraiJack joined
japhb Awww, most of the clever went away 16:27
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
pmurias should the mandelbrot nqp banchmark specify types on variables?
TimToady but it was also dumber
FROGGS "clever" is good for RC, not for benchmarks
TimToady most of the speedup is by shortcircuiting the loop and not initializing with xx
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
timotimo ah, righto
FROGGS m: my $any; say $any ~ Buf.new
camelia rakudo-moar b9d499: OUTPUT«(signal )use of uninitialized value of type Any in string context in block at /tmp/EEB7U6do3m:1␤␤»
FROGGS is there already a ticket for that? 16:30
japhb xx with a constant on the left should be much faster, methinks.
TimToady especially when it's an initalizer 16:31
especially when it's an int array, oh wait
japhb
.oO( Language designer pokes at language implementors. Film at 11. )
16:32
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
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.
japhb Ah right, the list refactoring need 16:35
FROGGS jnthn: hmmm, @<foo>= in regexes should be pretty LHF, right? 16:36
jnthn What does it do?
16:37 anaeem___ left 16:39 anaeem1 joined, prevost left
TimToady but I think most of the 2^7 difference is in .[] 16:39
16:39 anaeem1 left 16:40 anaeem1 joined 16:41 anaeem1 left
pmichaud good morning, #perl6 16:42
16:42 Rotwang joined, anaeem1 joined
japhb o/ 16:43
jnthn o/ pmichaud
16:44 anaeem1 left 16:46 anaeem1 joined, anaeem1 left, anaeem1 joined 16:47 anaeem1 left 16:48 anaeem1 joined 16:49 anaeem1 left, anaeem1 joined 16:50 zakharyas left
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 unless 16:50
16:51 prevost joined
jnthn ...talking of cut off... :) 16:52
timotimo :)
japhb Where did it get cut off? It appears complete in my irssi.
jnthn japhb: Missing content after "But in this case, not unless"
japhb "But in this case, not unless r-m-j crashed, I think."
16:54 nbrown joined 16:56 denis_boyun_ joined 16:59 nbrown left
dalek p: 334b593 | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/ (7 files):
Eliminate ArrayList.indexOf usage in SerializationContext on JVM.
17:00
17:00 chenryn left 17:04 klaas-janstol left 17:06 chenryn joined 17:08 iarna left
jnthn .tell Mouq MoarVM HEAD fixes the htmlify grapheme iter crash 17:08
yoleaux jnthn: I'll pass your message to Mouq.
dalek rl6-bench: 7865e2d | (Geoffrey Broadwell)++ | timeall:
Improve robustness and detail of subprocess segfault check
17:09
japhb timotimo: Doing the timings in the future with stderr captured should now help to see segfaults better (and what exactly segfaulted) 17:11
17:12 Rotwang left
japhb donaldh: Ackpth. Lots and LOTS of whitespace changes got sucked into that patch. 17:15
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
I only loaded it into eclipse to check there weren't unused imports.
timotimo oke :) 17:20
17:20 kurahaupo_ joined
donaldh afk& 17:23
17:23 donaldh left 17:42 MilkmanDan left 17:55 nbrown joined 17:59 chenryn left, nbrown left 18:00 MilkmanDan joined 18:07 anaeem1 left 18:08 rurban1 left 18:20 klaas-janstol joined 18:21 klaas-janstol left, anaeem1 joined 18:22 treehug88 joined, klaas-janstol joined 18:23 SamuraiJack left 18:24 chenryn joined, [Sno] joined 18:26 klaas-janstol left, anaeem1 left 18:34 molaf_ joined, chenryn left 18:37 molaf left 18:38 chenryn joined 18:42 darutoko left 18:43 tgt joined 18:50 chenryn left, chenryn joined
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 ( no output )
FROGGS jnthn: do you know which part generates the method name that is called on the actions? 18:53
jnthn I think sym is specially handled somewhere 18:55
May be in P6QRegex::Actions
or QRegex::P6Regex::Actions
Or whatever we call it
:)
FROGGS assertion:sym<name> there cares about <sym> in regexes 18:56
18:56 nbrown joined
FROGGS and it creates a subcapture where the "<foo>" would be passed as a positional 18:56
18:57 rurban1 joined, Ven joined
FROGGS and I also know that we finally call the method (longname) on the action in QRegex::Cursor.!protoregex 18:57
Ven o/, #perl6
FROGGS but something must rebuild the longname, and that's the bit I am after
hi Ven 18:58
Ven holidays are good, until you end up with 200+ more github notifs!
jnthn We don't call the actions class in !protoregex; that's done in !reduce
Or do you mean the method name is a bit off? 18:59
Or it fails to find it?
In taht case, see !protoregex_table maybe, and look at .HOW.methods of the grammar
FROGGS it tries to invoke 'a:sym<' ~ $sym ~ '>'
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) )
camelia rakudo-moar 0bbeda: OUTPUT«awesome␤»
FROGGS see
PerlJam (not that I didn't believe you, I just wanted to see :()
er :)
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␤»
FROGGS also this--^
19:01 nbrown left
FROGGS that's nqp though 19:01
but I guess nqp is cheating here somehow?
PerlJam cheating by doing the right thing :) 19:02
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>>␤»
PerlJam =-huh
FROGGS O.o
jnthn That looks right. We canonicalize all quoting constructs in actual names to <...> 19:04
FROGGS hmmmm
jnthn m: say &infix:<< < >>
camelia rakudo-moar 0bbeda: OUTPUT«sub infix:<<> ($?, $?) { #`(Sub+{<anon>}|76380400) ... }␤»
jnthn Even if they don't match too well :)
19:04 chenryn left
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...
The name itself is actually passed as an argument to !curosr_pass iirc
And then on to !reduce, which does a method lookup
FROGGS and also, this makes .perl.EVAL impossible
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)
camelia rakudo-moar 0bbeda: OUTPUT«TOP a a:sym<<foo>>␤a:sym«<foo>»␤»
FROGGS ahh!
Ven .o( DEATH to the EVAL )
FROGGS only grammar methods are canonicalized
jnthn Aha! That A one looks wrong...
Yeah
vive le bustage
19:06 chenryn joined
FROGGS so I guess I have to look at the GrammarHOW? 19:07
Ven bien joué !
jnthn No, I'd suspect some fail in Actions.pm in Perl 6 19:08
FROGGS hmmm
jnthn Though given we handle tokens and methods through a lot of the same code...it is rather a mystery.
FROGGS not again :o)
FROGGS goes and checks isfalse first 19:09
dalek kudo/nom: f4ed491 | jnthn++ | src/vm/moar/ops/perl6_ops.c:
Add missing concrete checks to avoid SEGVs.

  tgt++ for reporting.
19:10
Ven eh. my 3g is too bad for me to commit the fixed learnxiny. sigh.
timotimo d'oh :( 19:11
FROGGS jnthn: ahh, P6::W.dissect_longname does the magic 19:13
I always forget that :sym<...> is just a colonpair
19:14 klaas-janstol joined
timotimo the next doctor who spin-off is going to have not two hearts, but two colons. 19:16
19:18 PZt joined
Ven wat 19:19
timotimo it'll be pretty crappy ... 19:20
19:21 Sqirrel joined 19:22 klaas-janstol left
FROGGS ohh, the token does not end up bing a longname... 19:23
19:24 raiph joined
Ven just pushed a learnxiny update 19:35
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/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:12929 (/home/p6eval/rakudo-inst-2/languages/perl6/r…»
Ven I thought this was supposed to work and to return from f 19:37
jnthn But the map is lazy so runs after f 19:38
Well, the block does, anyway
Ven uh, does it?
jnthn m: sub f(@a) { eager map({ return $_ if $_; }, @a) }; say f(^10); 19:39
camelia rakudo-moar 0bbeda: OUTPUT«1␤»
Ven I seem to remember Junction used that, though ...
oh.
m: sub f(@a) { map({ return $_ if $_; }, @a).gimme(*) }; f(^10); #??
camelia ( no output )
Ven you seem a bit laggy, camelia. 19:40
You even said jnthn++'s before mine ...
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:41
PerlJam Ven: what is "this aspect of subs" exactly? 19:43
Ven PerlJam: `return` in subs VS in blocks
"unable to push: server aborted the ssl handshake" nice. 19:44
PerlJam Ven: perhaps choose a different example that doesn't involve map?
Ven PerlJam: that's the 2nd option. I'm open to suggestions :)
s03 mentions \eqv and \===,but these don't seem to work 19:45
19:48 klaas-janstol joined 19:57 nbrown joined 19:59 lxmahyar joined
lxmahyar Learn perl 6 or perl 5 ? 19:59
FROGGS depends... what do you wanna do? 20:00
PerlJam lxmahyar: why is it an either or thing? :)
lxmahyar I have doubt to decide between perl or python 20:01
or somthing else
PerlJam lxmahyar: again, why not all of them?
20:01 nbrown left
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.
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:03
lxmahyar I familiar with many languages 20:04
FROGGS then continue with Perl 6 :o)
lxmahyar I mean syntaxes
but I doubt perl die or not ? :( 20:05
FROGGS hmm?
Perl is not dead
Ven especially not Perl 6 :-)
FROGGS even not Perl 5
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.
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 :-).
FROGGS Ven: exactly :o) 20:07
lxmahyar I want learn script language but, What does first ?
for fun, not for jub :)
FROGGS lxmahyar: then Perl 6, really
japhb For fun? Perl 6, hands down.
Ven Definitely Perl 6
japhb We even have -Ofun (Optimize for fun) as a basic community precept. 20:08
lxmahyar Haskell, Scheme or somthing ?
japhb Those are not scripting languages.
lxmahyar I know that.
Ven well, scheme can be considered as one, I guess.
japhb That said, I recommend learning both if you don't have a pure functional or S-expression based language under your belt.
Ven lisps have an history of AI scripting :P 20:09
japhb Ven: Kinda sorta, I suppose.
lxmahyar Well, so I guess, first learning perl5, then python
then something else
FROGGS hmmm, that does not sound like fun :o) 20:10
lxmahyar Now, I know C/C++
FROGGS (to me)
japhb Perl 5 will certainly give you reliability, speed, and a gigantic module library.
Ven that doesn't sound like fun either :P
lxmahyar and attention, but python indent not :D
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.
lxmahyar is perl6 compiler ghc ?
Ven I didn't understand ? 20:12
lxmahyar ohh, sorry it haskell ;)
FROGGS lxmahyar: no, Perl 6 is written in Perl6 (called rakudo)
Ven sighs realizing is english is as bad
japhb lxmahyar: ghc was used to write Pugs, which was the first Perl 6 compiler. It is no longer in active development.
FROGGS m: say "hello lxmahyar" 20:13
camelia rakudo-moar 0bbeda: OUTPUT«hello lxmahyar␤»
jnthn Current state of the art Perl 6 compilers are mostly written in Perl 6. :)
FROGGS jnthn: why the plural? :o)
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 :)
FROGGS lxmahyar: np 20:15
lxmahyar I like too much perl5 syntax but I'am scared 20:16
20:17 jnap left 20:18 jnap joined
lxmahyar perl has lists List comprehension? 20:18
FROGGS lxmahyar: well, Perl 6 is like Perl 5 leaned up and more awesome
cleaned*
japhb lxmahyar: Perl factors that rather differently than Python, for instance. 20:19
lxmahyar I hear perl6 has List comprehension 20:20
like this: "0..100 | Where {$_ * $_ -gt 3} | ForEach {$_ * 2}"
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…»
lxmahyar Does perl5 have ? 20:22
flussence m: say (^100).grep(3.sqrt < *).map(* * 2)
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…»
japhb lxmahyar: In Perl 5, it would be more like: my @s = map { $_ * 2 } grep { $_ ** 2 > 3 } 0 .. 99; 20:23
lxmahyar but like perl6 not in default? 20:24
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:25
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…»
lxmahyar interesting :) 20:27
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
Ven does shameless self-plugs
fun of this changes from one person to another :-) 20:29
how*. not of. duh.
lxmahyar Ven:Thanks for your time.
Ven well, if you're asking me how much fun I have, I'll always have time to tell you :-) 20:30
lxmahyar sure enough. 20:32
pmurias Ven: the link you posed seems broken 20:34
Ven oh, did I just add github.com before that. whoops :P 20:35
s/github\.com/http:\/\//
pmurias: learnxinyminutes.com/docs/perl6/
lxmahyar Ven: Tnx 20:36
pmurias is the flip flop operator important enough to put in the tutorial? 20:40
Ven pmurias: that tutorial is currently 1k2 lines long, and growing steadily. 20:42
It's already more than a mere "glimpse"
(there's a reason it's very much near the end, though) 20:43
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.
s/omits/omit/
pmurias why do we have both "? $foo" and "so $foo" 20:45
Ven pmurias: precedence, IIRC 20:46
cognome: that's too technical
pmurias Ven: one significant flow is that you describe the sort comparisions and not sort 20:47
Ven ha, that's an interesting point.
perl 6 methods aren't described anywhere, currently 20:48
nor should they be described in some "order", eh. 20:49
japhb cognome: & is Callable
$ implies itemized. \ implies nothing. 20:50
pmurias Ven: what do you mean by 'nor should they be described in some "order"'?
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)
pmurias Ven: so you shouldn't describe sort comparisions 20:52
they seem useless without a sort
20:53 telex left
Ven pmurias: they're not Array methods 20:53
you mean lt, gt and such, right?
pmurias <=>
<=>, cmp, eqv
Ven meh, it's kinda for completeness' sake, but I do need to explain sort here. 20:54
20:54 kaare_ left
japhb Way more useful to describe sort key extractors. 20:54
20:54 telex joined
japhb @people.sort(*.tenure) 20:54
Ven key extractors ? 20:55
japhb Ven: see ^^
Ven that's just priming
japhb Priming?
Ven and schwartzian transform
I'm answering that
japhb Yes, internally it should do a schwartzian transform. But there's no point in explaining that.
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
operators are just subs with a fancy syntax, and you aren't describing all the subs
20:57 chenryn left
Ven that's not my role. cmp, <=> and those should just stay at the end of the tutorial 20:57
20:58 nbrown joined
ren1us Ven: Might I suggest a Junctions section? :) 21:01
21:02 nbrown left
Ven ren1us: that's written in my to-do, but you're very welcome to write it :P 21:02
ren1us I'll get on that in about half an hour 21:03
pmurias Ven: do you intend it to be a tutorial or a giant list of everything?
ren1us I'll spend that half hour making sure *I* know what junctions do
Ven pmurias: tutorial.
pmurias I think you should consider slimming down some of the long lists of things 21:04
21:04 lxmahyar left
pmurias why mention quietly in a tutorial? 21:05
Ven Because it's intended to be very comprehensive.
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:06
(that one will explain the key concepts, etc) 21:07
21:08 klaas-janstol left
pmurias why do you want a tutorial to be comprehensive? 21:08
lizmat japhb: re irclog.perlgeek.de/perl6/2014-08-14#i_9185907 , do you mean the (incomplete) list in the SYNOPSIS section?
Ven I might very well be misusing words here. It should first explain to you the basics, then go more in-depth. 21:09
I want to be able to look at it myself if I have a doubt someday
pmurias hmm, maybe it would make sense to split the list of everything part from the tutorial introduction 21:11
Ven probably so. Then again -- I'm very open to suggestions :-) 21:12
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
pmurias and having synopsis links for the giant list of things seems usefull 21:14
21:14 gfldex left
Ven there should be one or two. Could add others. But they read poorly 21:15
21:16 araujo left, araujo joined
lizmat japhb: the only ones missing were todo, skip and skip_rest, right ? 21:16
dalek ecs: a939132 | (Elizabeth Mattijsen)++ | S24-testing.pod:
Elaborate a bit more on todo, skip, skip_rest

As spotted by japhb++
21:18
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...
japhb OK, cool. :-)
lizmat++
lizmat not much done today, still tired, so early night&
japhb Sleep well o/
21:28 chenryn joined 21:31 pmurias left 21:32 chenryn left 21:35 denis_boyun_ left 21:51 huf left 21:52 zakharyas joined 21:53 huf joined 21:59 nbrown joined, tgt left 22:03 nbrown left
cognome Ven: so replace type which has another meaning by kind/ 22:05
Ven that's nitpicking :P 22:06
done 22:07
I feel like "variables kinds" would be better than "variable kinds", because the latter implies that the kinds are variable.
japhb "kinds of variable"? 22:09
22:16 Ven left, iarna joined 22:18 dmol left 22:29 chenryn joined 22:31 Psyche^_ joined 22:33 chenryn left 22:35 Psyche^ left 22:39 raiph left 22:41 rurban1 left 22:44 rindolf joined 22:55 jnap left 23:00 nbrown joined 23:04 nbrown left 23:06 anaeem1 joined 23:14 anaeem1 left 23:17 spider-mario left 23:29 chenryn joined 23:34 Alula_ left 23:35 chenryn left 23:38 colomon joined 23:39 treehug88 left
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 gist.github.com/peschwa/c60c1c06a96781418d27; upstream discussion www.mail-archive.com/openssl-dev@op...2009.html) 23:40
yoleaux psch: I'll pass your message to sergot.
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
yoleaux psch: I'll pass your message to sergot.
23:43 raiph joined 23:50 Alula_ joined 23:52 thou left, chenryn joined