Perl 6 - the future is here, just unevenly distributed

IRC log for #perl11, 2013-09-27

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

All times shown according to UTC.

Time Nick Message
01:35 dalek Heuristic branch merge: pushed 20 commits to p2/namespace by rurban
01:36 dalek p2/p2: 504a651 | rurban++ | / (2 files):
01:36 dalek p2/p2: minor debug improvments, mostly comments
01:36 dalek p2/p2: review: https://github.com/perl11/p2/commit/504a6513fe
01:38 rurban1 Perlito is fantastic
01:38 travis-ci joined #perl11
01:38 travis-ci [travis-ci] perl11/p2#116 (namespace - b8ba034 : Reini Urban): The build failed.
01:38 travis-ci [travis-ci] Change view : https://github.com/perl11/p2/compare/504a6513feb8^...b8ba0348987b
01:38 travis-ci [travis-ci] Build details : http://travis-ci.org/perl11/p2/builds/11847341
01:38 travis-ci left #perl11
01:39 rurban1 rebased the old namespace branch, need to rename it to symtab, and fix some old bugs
01:40 rurban1 symtab is closure specific only, not Interpreter, and I need to store lexical decl also for types and attrs, like const.
01:41 rurban1 functions/classes/methods also
01:41 travis-ci joined #perl11
01:41 travis-ci [travis-ci] perl11/p2#117 (p2 - 504a651 : Reini Urban): The build passed.
01:41 travis-ci [travis-ci] Change view : https://github.com/perl11/p2/compare/4b74b7c2c44d...504a6513feb8
01:41 travis-ci [travis-ci] Build details : http://travis-ci.org/perl11/p2/builds/11847358
01:41 travis-ci left #perl11
01:59 Will_the_Chill rurban: If Perlito is fantastic, then why do we need P2?
01:59 Will_the_Chill also, if gperl is fantastic, why do we need P2?
02:01 rurban1 joined #perl11
02:33 rurban1 joined #perl11
03:02 tokuhirom joined #perl11
04:15 stevan joined #perl11
04:17 stevan joined #perl11
08:46 Will_the_Chill I'm trying to choose a parser.
12:28 Will_the_Chill rurban: I still want you to tell me why you need to build P2 if Perlito and gperl are fantastic?
14:00 rurban why do we need p2? because we need a realistic alternative perl5 and perl6 replacement
15:11 rurban parser: greg has now a parser for p6: tokuhirom/pvip
16:40 bluescreen joined #perl11
19:27 stevan joined #perl11
19:33 rurban1 joined #perl11
20:07 Will_the_Chill joined #perl11
20:07 Will_the_Chill rurban: you say "realistic", does that mean you find Perlito or gperl or RPerl or MoarVM or STD_P5 to be unrealistic?
20:13 dalek p2/p2: 37dab35 | rurban++ | / (7 files):
20:13 dalek p2/p2: enable hardening flags
20:13 dalek p2/p2:
20:13 dalek p2/p2: -pedantic not yet, as it fails to accept casting void* function ptrs
20:13 dalek p2/p2: -Wl,--as-needed -D_FORTIFY_SOURCE=2 (detects jit stack smashing better)
20:13 dalek p2/p2: -fstack-protector-all
20:13 dalek p2/p2: fix minor pedantic issues
20:13 dalek p2/p2: review: https://github.com/perl11/p2/commit/37dab35f7c
20:13 dalek p2/p2: 4cd48ec | rurban++ | / (4 files):
20:13 dalek p2/p2: make: icc fixes, add LDFLAGS for LINK, harden LDFLAGS
20:13 dalek p2/p2:
20:13 dalek p2/p2: now with -Wl,-z,relro -Wl,-z,now. faster and more secure initial startup
20:13 dalek p2/p2: review: https://github.com/perl11/p2/commit/4cd48ec16f
20:15 travis-ci joined #perl11
20:15 travis-ci [travis-ci] perl11/p2#118 (p2 - 4cd48ec : Reini Urban): The build passed.
20:15 travis-ci [travis-ci] Change view : https://github.com/perl11/p2/compare/504a6513feb8...4cd48ec16fe3
20:15 travis-ci [travis-ci] Build details : http://travis-ci.org/perl11/p2/builds/11881566
20:15 travis-ci left #perl11
21:01 rurban Will_the_Chill: Yes
21:02 rurban We will see how MoarVM will behave with non-blocking datastructures, but so far I see locks all over. Worse than parrot
21:56 ilbot2 joined #perl11
21:56 Topic for #perl11 is now http://perl11.org (coming soon!)
22:00 Will_the_Chill rurban: okay so MoarVM is unrealistic because of "worse locking that parrot".  fair enough.
22:01 Will_the_Chill so then what about Perlito or gperl or RPerl or STD_P5?
22:01 rurban It will not scale, and I doubt that it will be much faster then p5p perl
22:01 Will_the_Chill that is good to know.
22:01 rurban They are not realistic replacements at all
22:02 rurban STD_P5 is just a p5 parser, running on rakudo (not shared p5 <-> p6 vars)
22:12 ilbot2 joined #perl11
22:12 rurban it's even faster than the typed version dart, whuch should be faster theoretically
22:13 Will_the_Chill so do you want tracing JIT in potion to make P2 run faster for dynamic types?
22:13 rurban But I'm adding types and const to my compiler, and this should generate faster code also
22:13 rurban No, I don't care for a tracing jit. Too complicated and too much overhead. I got for type and const hints
22:14 rurban I go for
22:14 Will_the_Chill right
22:14 rurban But for this I have to implement symtabs for the declarations. Just re-started justed yesterday
22:15 rurban symtabs for globals at run-time and also for lexicals only needed for the compiler.
22:15 rurban symtab == namespace
22:16 Will_the_Chill okay I understand I think
22:16 rurban but since it's also for lexicals I've renamed it to symtab
22:16 Will_the_Chill okay
22:16 rurban I need it for function prototypes and method and class/type parsing
22:17 Will_the_Chill half of me cares about the big picture future of all Perl, the other half of me says I should only care about my own little RPerl project to make my own low magic code run fast.  XD
22:17 rurban my Int $i; needs class Int to exist already, otherwise it's a compiler error
22:17 Will_the_Chill I'm still trying to figure out which of the paths makes sense, thus all my questions.
22:17 rurban Class->method also needs Class to exist
22:18 Will_the_Chill I fixed those exact issues in RPerl by funky order-of-namespace-loading using BEGIN and INIT blocks
22:18 Will_the_Chill and some parts I had to hard-code kinda bootstrap because of circular dependencies.
22:18 rurban function protos are nmeeded for the compiler to see for how much args a call extends
22:18 Will_the_Chill RPerl is written (mostly) in RPerl and relies on itself.
22:19 rurban BEGIN is just a recursive eval while parsing
22:19 Will_the_Chill RPerl gets much of its speed using static typing and function prototyping.
22:20 rurban INIT, CHECK and END blocks need to be implemented as in perl, with seperate statement lists
22:20 rurban but since every BLOCK is just a Closure just call these closures if they exist
22:20 Will_the_Chill those special blocks are magic, I need to use them in the RPerl system code but don't want it used in the RPerl app code.
22:21 Will_the_Chill low magic code should NOT need those special blocks.
22:21 Will_the_Chill but I know that's just me.  nobody else cares about my low magic obsession.  :)
22:21 rurban hmm. phasing is useful. I'm doing foreach blocks differently. I call the block with the iterator variable as argument
22:22 Will_the_Chill foreach is now implemented in the new C++ so I'm sure I'll implement them in RPerl at some point.
22:23 rurban Do you store the for list as array?
22:23 rurban so for(0..10000) will be 10000 ints big?
22:24 rurban I'm not sure if for lists should be lazy
22:24 rurban to save space and make iterators and parallelization easier
22:25 Will_the_Chill no I pass it as args to C++ code that is then handled by the C++ compiler
22:25 rurban i.e. with 4 threads for (0..100) will spawn the loop into 4 threads with 25 iterations each
22:25 Will_the_Chill I will add parallelization soon.  :)
22:27 rurban problem is the timing of side-effects. So you must expclitly mark such a loop as pfor. Or use the p6 race op
22:31 rurban and gather / take
22:31 rurban which is just calling the iter coro all over
23:28 rurban1 joined #perl11
23:44 rurban1 joined #perl11

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