Perl 6 - the future is here, just unevenly distributed

IRC log for #perl11, 2015-06-26

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

All times shown according to UTC.

Time Nick Message
04:47 esaym153 joined #perl11
04:48 willthechill esaym153: howdy
04:48 esaym153 howdy
04:48 esaym153 yea, was just fixing to go to bed, but was going to get up early and do some coding
04:48 willthechill to answer your question, I have not yet created a prioritized list of the operators which need to be implemented
04:48 esaym153 my normal projects are kind of (mental) roadblocked, so was looking for something else :)
04:49 willthechill working on RPerl system code requires a little bit of learning, as with any other serious project
04:49 esaym153 willthechill: and so what 'operators' are we talking about
04:49 willthechill to answer your question, I have not yet created a prioritized list of the operators which need to be implemented
04:49 esaym153 I see
04:50 willthechill but the first step would be to get RPerl installed and become familiarized
04:50 willthechill then picking out some ops to work on is easy
04:50 willthechill :)
04:50 esaym153 "easy", I like that
04:50 willthechill well, easy in the sense that there are hundreds of ops to choose from, and I can help guide that choice
04:51 willthechill unfortunately, RPerl will not install out-of-the-box from github right now, because we're waiting on some backlogged pull requests on Inline::C and Inline::Filters
04:53 esaym153 paste what ever you want in here, I got to get to bed for now. Will look over everything in the morning
04:53 willthechill okay goodnigiht!
04:53 willthechill :P  goodnight!  :)
05:05 ToApolytoXaos joined #perl11
05:38 rurban joined #perl11
05:39 rurban H&M typed python3: https://github.com/alehander42/hermetic
05:39 rurban https://news.ycombinator.com/item?id=9779097
05:41 rurban it has multis, see https://github.com/alehander42/hermetic/blob/master/core/str.py
05:42 rurban which references this perl type inferencer: http://web.archive.org/web/20050911123640/http://www.cs.berkeley.edu/~nikitab/courses/cs263/hm.html
05:44 rurban which is very simple, much simplier than a normal H&M, like Bla's
05:51 willthechill interesting
05:57 ToApolytoXaos ...why does this bring this in mind? https://www.python.org/dev/peps/pep-0484/
05:58 ToApolytoXaos basically it started as http://mypy-lang.org/
05:58 ToApolytoXaos and then it got PEP-ed
05:59 willthechill I don't generally keep up with non-Perl language news any more
05:59 willthechill :P
05:59 rurban yep. but this guy basically rewrites the python ast to a simple scheme ast, with 5 primitives
06:00 rurban I infer types on all perl ops
06:00 rurban and compile it to c also
06:00 ToApolytoXaos well, I don't know about you guys, but to me Perl is sexier than Python ^_^
06:02 rurban python syntax is a bit more regular. e.g. this is super simple: https://github.com/alehander42/hermetic/blob/master/hermetic/ast_rewriter.py
06:03 willthechill RPerl syntax is the only syntax that matters
06:03 willthechill I use the C/C++ type inferencer
06:03 willthechill no need to re-invent the wheel
06:03 rurban our ast looks not so easy: http://perl5.git.perl.org/perl.git/blob/HEAD:/regen/opcodes
06:03 willthechill ALTHOUGH I may have to do some of it when we start getting deeper into the semi-magic RPerl modes
06:04 willthechill RPerl AST is generated by EYAPP and is very fine
06:04 willthechill :)
06:04 rurban C++ does not do any type inference at all. it is static
06:04 willthechill okay sorry my bad, wrong term, we use C/C++ for type checking
06:05 rurban yes
06:05 willthechill BUT we will have to do some type inferencing for the semi-magic RPerl modes, as I said
06:05 willthechill just not quite yet  :)
06:06 rurban I have e.g.
06:06 rurban multiplymultiplication (*)ck_nullpIfsT2S S"(:Number,:Number):Number"
06:06 rurban i_multiplyinteger multiplication (*) ck_nullpifsT2S S"(:Int,:Int):Int"
06:06 rurban int_multiplyunboxed multiplication (*) ck_nullpif2I I"(:int,:int):int"
06:06 rurban num_multiplyunboxed num multiplication (*)ck_nullpnf2N N"(:num,:num):num"
06:06 rurban oh, n_multiply is missing
06:07 rurban but the impl. in C is the same for int and num
06:08 rurban I had to rename some new perl ops, btw. They have just no consistency at all. I provided backcompat macros
06:09 willthechill such as?
06:09 rurban ncmp    => 'cmp',
06:09 rurban i_ncmp  => 'i_cmp',
06:09 rurban slt     => 's_lt',
06:09 rurban sgt     => 's_gt',
06:09 rurban sle     => 's_le',
06:09 rurban ...
06:09 rurban scmp    => 's_cmp',
06:09 rurban nbit_and  => 'n_bit_and',
06:09 rurban nbit_xor  => 'n_bit_xor',
06:09 rurban ...
06:09 rurban ncomplement => 'n_complement',
06:09 rurban scomplement => 's_complement'
06:10 ToApolytoXaos off topic: willthechill, how can we check for modules upgrades in case a user has already installed with cpanm Inline::C module et al?
06:10 rurban i_, n_, s_: int, num, str typed
06:10 ToApolytoXaos "cpan-outdated -p | cpanm" won't do the trick
06:13 willthechill I always just run `cpanm Foo::Module` and it checks for the latest version...  maybe I don't understand your question?
06:14 willthechill rurban: looks good
06:15 ToApolytoXaos willthechill: if I say "cpanm Inline::C", it reports that is up to date
06:15 ToApolytoXaos but if I run "cpanm --installdeps ." from inside rperl repository I get this Found Inline::C 0.75 which doesn't satisfy 0.76.
06:15 ToApolytoXaos Found Inline::Filters 0.16 which doesn't satisfy 0.17.
06:16 willthechill that's because we are still waiting for the pending Inline::C and Inline::Filters pull requests
06:16 ToApolytoXaos aaah
06:16 ToApolytoXaos I see
06:16 willthechill rurban is in charge of Inline::Filters but ingy is in charge of Inline::C and we are still waiting for him
06:17 ToApolytoXaos I see
06:17 ToApolytoXaos that's nice to know
06:17 willthechill yeah sorry about that, nothing I can do but wait and hope ingy is not dead
06:18 rurban he was pretty busy lately
06:19 rurban aren't there 2 more comaints?
06:20 rurban And you can always provide your extended version in inc
06:24 rurban then go for inc (Module::Install)
06:25 ToApolytoXaos I'm too newbie-ish to understand Perlish fluently
06:26 ToApolytoXaos I've just started "Intermediate Perl"
06:26 ToApolytoXaos lol
06:54 rurban And the worst new name is nbit_xor, which accepts IV arguments only. not numeric, int only.
06:55 willthechill the it has 'n' in the name but does not accept numbers  :P
06:55 rurban ultimate goal: total inconsistency
06:55 rurban and no docs at all
06:55 willthechill LOL
06:56 willthechill no docs?
06:56 rurban ops or optimizer functions have no docs. why should they.
06:56 willthechill oh okay
06:56 rurban I'm adding them though
06:57 willthechill good for you!  :)
06:57 willthechill rurban++
06:57 rurban It could happen that some try to improve things, and then docs would only help them. so no docs.
06:58 willthechill haha you are so funny (sarcastic)
07:01 rurban not funny, angry
07:01 willthechill yes I am also unhappy, so I work on RPerl  :)
07:02 rurban I just added type optimizations, so no :)
07:02 rurban and a faster entersub for XS calls, and much more
07:04 willthechill this is all in cPerl?
07:13 rurban yes
07:14 rurban but I'm still rebasing all trees every other day.
07:14 rurban I'm still working on the master, performance and memory trees
07:17 rurban for unops and binops I can do pretty efficient multis already
07:17 rurban because I do it for the numbers, all the math
07:21 rurban I'll probably add a new magic op to change the stack var, so I can remove it in the optimizer.
07:21 rurban via no magic or types
07:21 rurban I'll have to test the speed difference
07:36 willthechill okay I have 'use rperltypes;'
07:36 willthechill but I still have not implemented 'use types;' or 'no magic;'
07:37 willthechill because we never made a final decision about them
07:40 rurban you don't need no magic, do you?
07:40 rurban how do you handle use Config; then
07:40 willthechill the only thing I use right now is 'use RPerl;'
07:41 rurban ah, I see. this will work
07:41 rurban it's a dialect in a lexical block
07:41 willthechill the lexical blocks are 1 whole file.
07:41 willthechill *.pm *.pl
07:41 rurban per file, ok
07:41 rurban still ok
07:42 rurban so you don't need no magic.
07:42 willthechill 3 possible compile units: package (*.pm), class (*.pm w/ 'use parent'), and program (*.pl)
07:43 willthechill in my mind, 'no magic;' is either equivalent to, or a subset of, 'use RPerl;'
07:43 willthechill for example, 'use rperltypes;' is a subset of 'use RPerl;'
07:43 willthechill in other words, every time you call 'use RPerl;', one of the many things it calls is 'use rperltypes;'
07:43 rurban I'll add no magic to the HINTS $^H bits, just like strict. I freed 2 bits there.
07:44 willthechill okay great
07:44 willthechill then I will treat 'no magic;' as equivalent to 'use RPerl;'
07:44 rurban p5p is still discussing new strict args, but they haven't even thought about the free bits there. they have none, so nothing to discuss. lol
07:44 willthechill any time I see a lexical 'no magic;' I will try to parse with RPerl;
07:45 willthechill how did you free up the 2 bits?
07:45 rurban restructure strict loading
07:45 rurban it was horrible
07:45 rurban strict is now a builtin, written in C
07:46 willthechill cool
07:46 willthechill sounds good
07:46 rurban I still got only 2 free bits, one for no magic, and one for use strict 'names' probably
07:47 rurban but maybe someone from p5p will have a better idea for the last bit
07:48 willthechill good idea!  :)
08:06 basiliscos joined #perl11
09:01 rurban bad idea. I've now looked back into p5p and had to write some emails
09:03 willthechill oh dear  :P
09:38 rurban joined #perl11
09:56 rurban joined #perl11
10:31 rurban joined #perl11
10:36 ToApolytoXaos joined #perl11
10:43 basiliscos joined #perl11
14:41 rurban joined #perl11
18:56 willthechill joined #perl11

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