»ö« 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/M6W17SyCqzTwo terms in a rowat /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__0uzRPCMTwo terms in a rowat /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
|