Perl 6 - the future is here, just unevenly distributed

IRC log for #perl11, 2013-09-13

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

All times shown according to UTC.

Time Nick Message
00:23 rurban_ 20x - 30x is what I benchmarked so far against perl5. I guess p2 is close to v8 and dart. since our external C calls are faster than v8 it should be faster than node.js
00:23 rurban_ in general p2 has no optimizing compiler and jit, so it's slower on arithmetic than luajit and v8.
00:24 rurban_ but the call and callback ABI is better and closer to the C ABI, so interacting with external libs like libuv is faster
00:54 dalek p2/p2: 11d193c | rurban++ | front/potion.c:
00:54 dalek p2/p2: define global argv array
00:54 dalek p2/p2: review: https://github.com/perl11/p2/commit/11d193c522
00:54 dalek p2/p2: 44efcf7 | rurban++ | front/p2.c:
00:54 dalek p2/p2: define global @ARGV array
00:54 dalek p2/p2: review: https://github.com/perl11/p2/commit/44efcf7662
00:54 dalek p2/p2: c3ecc87 | rurban++ | example/nbody.pn:
00:54 dalek p2/p2: nbody.pn: simplify
00:54 dalek p2/p2: review: https://github.com/perl11/p2/commit/c3ecc87344
00:54 dalek p2/p2: d08be52 | rurban++ | / (3 files):
00:54 dalek p2/p2: readline: dynamically parse potion code from p2
00:54 dalek p2/p2:
00:54 dalek p2/p2: dlopen the potion syntax .so, parse and execute it by using p2_eval. (disabled)
00:54 dalek p2/p2: export potion_find_file
00:54 dalek p2/p2: review: https://github.com/perl11/p2/commit/d08be528b7
00:54 rurban_ benchmarks need @ARGV
01:15 dalek p2/p2: d2fe6a8 | rurban++ | example/nbody.pn:
01:15 dalek p2/p2: nbody.pn: use argv||50000, remove debugging code
01:15 dalek p2/p2: review: https://github.com/perl11/p2/commit/d2fe6a804f
01:31 rurban joined #perl11
02:35 rurban joined #perl11
03:25 Hinrik so, just to get the history right... potion is a VM+language by _why and you're its current maintainer, while p2 is a new language for potion? Or is p2 also a fork of the potion VM, to suit the language's needs?
03:27 Hinrik What's confusing me a bit is that you're still maintaining the potion repository, but the p2 repository looks like a fork of it (very similar directory structure)
03:36 rurban joined #perl11
03:36 bulk88 joined #perl11
04:36 rurban joined #perl11
04:50 bulk88 joined #perl11
04:53 stevan joined #perl11
05:37 rurban joined #perl11
06:12 stevan_ joined #perl11
06:38 rurban joined #perl11
07:38 rurban joined #perl11
08:39 rurban joined #perl11
09:39 rurban joined #perl11
10:40 rurban joined #perl11
11:40 rurban joined #perl11
12:41 rurban joined #perl11
12:50 rurban joined #perl11
13:17 bluescreen joined #perl11
14:12 rurban joined #perl11
14:27 rurban joined #perl11
15:04 rurban_ yes. the potion repo contains the stable version of the vm, enhancements of potion within the p2 repo are eventually backported to potion.
15:05 rurban_ p2 runs upon the potion vm. the parser syntax is different, but the compiler and vm is the same.
15:06 rurban_ p2 will have more libraries though. So I first write new libraries in p2 and backport it to potion if they turn out good and small enough. aio, pcre and sprintf e.g.
15:06 rurban_ the p5 and p6 libraries will be in p2 alone
15:07 rurban_ core should be small and stable, and get more eyes. the languages (p5, p6, ...) are just syntax and libraries on top of the vm
15:08 rurban_ implementing ruby, lua or python will also be trivial e.g.
15:54 rurban_ time bin/potion example/nbody.pn 500000
15:54 rurban_ -0.1692899033779056
15:54 rurban_ -0.1548278938881474
15:54 rurban_ real0m0.008s
15:55 rurban_ $ time perl ~/Perl/shootout/bench/nbody/nbody.perl 500000
15:55 rurban_ -0.169075164
15:55 rurban_ -0.169096567
15:55 rurban_ real0m10.982s
15:58 rurban_ oops, wrong itercount. it is real0m2.945s for potion/p2
15:59 rurban_ so it's 3.7x faster
16:02 dalek p2/p2: 6c45586 | rurban++ | front/potion.c:
16:02 dalek p2/p2: change argv: argv[0] = filename or "-e" or ""
16:02 dalek p2/p2:
16:02 dalek p2/p2: argv[1] will be the first user-provided argument.
16:02 dalek p2/p2: review: https://github.com/perl11/p2/commit/6c455865b0
16:02 dalek p2/p2: 8660a62 | rurban++ | core/vm.c:
16:02 dalek p2/p2: typo paramater in fatal msg
16:02 dalek p2/p2:
16:02 dalek p2/p2: also disable some DBG_vt (wrong bin-arith)
16:02 dalek p2/p2: review: https://github.com/perl11/p2/commit/8660a62bc9
16:02 dalek p2/p2: 0b7853f | rurban++ | example/nbody.pn:
16:02 dalek p2/p2: improve example/nbody.pn: debug, argv[1]
16:02 dalek p2/p2:
16:02 dalek p2/p2: and some array access optimzations from nbody.lua
16:02 dalek p2/p2: review: https://github.com/perl11/p2/commit/0b7853ff95
16:04 travis-ci joined #perl11
16:04 travis-ci [travis-ci] perl11/p2#49 (p2 - 0b7853f : Reini Urban): The build passed.
16:04 travis-ci [travis-ci] Change view : https://github.com/perl11/p2/compare/d2fe6a804f96...0b7853ff9557
16:04 travis-ci [travis-ci] Build details : http://travis-ci.org/perl11/p2/builds/11328667
16:04 travis-ci left #perl11
16:05 rurban_ p2 sample soon. lua 0m3.876s,m luajit: 0m0.183s
16:06 rurban_ so potion is actually pretty slow
17:00 stevan joined #perl11
17:39 dalek p2/p2: a15ed1e | rurban++ | / (4 files):
17:39 dalek p2/p2: syntax: add hash, remove lick
17:39 dalek p2/p2:
17:39 dalek p2/p2: simplify MY decl (so far all vars are lexical)
17:39 dalek p2/p2: change unquoted hashkeys to parse until unq-sep (allows ws in keys)
17:39 dalek p2/p2: lick [] lists are now disabled
17:39 rurban_ added now hashes
17:39 dalek p2/p2: a hash is compiled to a list with assignments (x=1,y=2,...) which is compiled to settable ops.
17:39 dalek p2/p2: add listref rule instead of licks [...]
17:39 dalek p2/p2: review: https://github.com/perl11/p2/commit/a15ed1ec37
17:39 rurban_ and listrefs
17:42 travis-ci joined #perl11
17:42 travis-ci [travis-ci] perl11/p2#50 (p2 - a15ed1e : Reini Urban): The build passed.
17:42 travis-ci [travis-ci] Change view : https://github.com/perl11/p2/compare/0b7853ff9557...a15ed1ec379e
17:42 travis-ci [travis-ci] Build details : http://travis-ci.org/perl11/p2/builds/11332651
17:42 travis-ci left #perl11
18:07 dalek p2/p2: e5c54eb | rurban++ | syn/syntax-p5.y:
18:07 dalek p2/p2: syn: allow negative numbers, allow empty lists,
18:08 dalek p2/p2:
18:08 dalek p2/p2: add optional stmt seperators between statements
18:08 dalek p2/p2: review: https://github.com/perl11/p2/commit/e5c54eb061
18:08 dalek p2/p2: d5cf1ec | rurban++ | syn/syntax-p5.y:
18:08 dalek p2/p2: special-case empty lists to fix indirect method calls
18:08 dalek p2/p2: review: https://github.com/perl11/p2/commit/d5cf1ecee1
18:11 travis-ci joined #perl11
18:11 travis-ci [travis-ci] perl11/p2#51 (p2 - d5cf1ec : Reini Urban): The build passed.
18:11 travis-ci [travis-ci] Change view : https://github.com/perl11/p2/compare/a15ed1ec379e...d5cf1ecee18b
18:11 travis-ci [travis-ci] Build details : http://travis-ci.org/perl11/p2/builds/11333628
18:11 travis-ci left #perl11
18:34 bluescreen joined #perl11
18:37 dalek p2/p2: 445c090 | rurban++ | syn/syntax-p5.y:
18:37 dalek p2/p2: fix aasign rule: MY? l:list assign r:list
18:37 dalek p2/p2: review: https://github.com/perl11/p2/commit/445c090bb6
18:42 travis-ci joined #perl11
18:42 travis-ci [travis-ci] perl11/p2#52 (p2 - 445c090 : Reini Urban): The build passed.
18:42 travis-ci [travis-ci] Change view : https://github.com/perl11/p2/compare/d5cf1ecee18b...445c090bb6b4
18:42 travis-ci [travis-ci] Build details : http://travis-ci.org/perl11/p2/builds/11334505
18:42 travis-ci left #perl11
18:57 dalek p2/p2: e7e4acf | rurban++ | / (2 files):
18:57 dalek p2/p2: add nbody.pl, omit superflouos whitespace at end of list,block, use v5.10
18:57 dalek p2/p2: review: https://github.com/perl11/p2/commit/e7e4acfb88
18:59 travis-ci joined #perl11
18:59 travis-ci [travis-ci] perl11/p2#53 (p2 - e7e4acf : Reini Urban): The build passed.
18:59 travis-ci [travis-ci] Change view : https://github.com/perl11/p2/compare/445c090bb6b4...e7e4acfb889b
18:59 travis-ci [travis-ci] Build details : http://travis-ci.org/perl11/p2/builds/11335301
18:59 travis-ci left #perl11
22:01 dalek p2/p2: d34d9b6 | rurban++ | / (7 files):
22:01 dalek p2/p2: nbody.pl: parse while, -expr, ...
22:01 dalek p2/p2:
22:01 dalek p2/p2: special case: for"|"foreach"|"while"|"class"|"if"|"elseif with list block to be handled in the compiler
22:01 dalek p2/p2: parse use v5.10
22:01 dalek p2/p2: ++G->lineno at end-of-line, and omit \r\n from utf8
22:01 dalek p2/p2: eval use|no immediately: use|no, name, args..., special case use|no p2;
22:01 dalek p2/p2: rewrite nbody.pl to be parsable by p2
22:01 dalek p2/p2: review: https://github.com/perl11/p2/commit/d34d9b6b6e
22:03 travis-ci joined #perl11
22:03 travis-ci [travis-ci] perl11/p2#54 (p2 - d34d9b6 : Reini Urban): The build passed.
22:03 travis-ci [travis-ci] Change view : https://github.com/perl11/p2/compare/e7e4acfb889b...d34d9b6b6e45
22:03 travis-ci [travis-ci] Build details : http://travis-ci.org/perl11/p2/builds/11341984
22:03 travis-ci left #perl11
22:23 dalek p2/p2: 4a8bdc0 | rurban++ | / (4 files):
22:23 dalek p2/p2: pl examples: use number for atoi
22:23 dalek p2/p2: review: https://github.com/perl11/p2/commit/4a8bdc0193
22:24 travis-ci joined #perl11
22:24 travis-ci [travis-ci] perl11/p2#55 (p2 - 4a8bdc0 : Reini Urban): The build passed.
22:24 travis-ci [travis-ci] Change view : https://github.com/perl11/p2/compare/d34d9b6b6e45...4a8bdc0193c4
22:24 travis-ci [travis-ci] Build details : http://travis-ci.org/perl11/p2/builds/11342676
22:24 travis-ci left #perl11
22:38 rurban joined #perl11
23:39 rurban joined #perl11

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