Perl 6 - the future is here, just unevenly distributed

IRC log for #perl11, 2015-04-26

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

All times shown according to UTC.

Time Nick Message
03:28 willthechill joined #perl11
07:04 ToApolytoXaos joined #perl11
07:12 willthechill ToApolytoXaos: howdy!  :)
07:13 willthechill bulk88: have you heard of and/or used Docker?
07:13 ToApolytoXaos greetings willthechill. yes, i have heard and read about Docker, but haven't tried it yet.
07:14 willthechill I'm about to re-image my 8 cloudatcost compute nodes and noticed they have a new OS option "Docker Ubuntu 14.04"
07:14 willthechill I would normally choose regular "Ubuntu 14.04"
07:15 willthechill I had not heard of Docker before!  :P
07:15 willthechill now I am reading that Docker is to deployment as Git is to development
07:15 willthechill and there is also a DockerHub just like GitHub
07:16 willthechill I love GitHub (even though I am far from a git expert)
07:16 ToApolytoXaos there are many projects like that
07:16 willthechill many projects like Docker?
07:16 ToApolytoXaos i still prefer the good ol' manual way
07:17 ToApolytoXaos more and more projects are following the Docker example, but to me it's still not *that* clear
07:17 willthechill yes I am overboard on the good ol' manual way, time to start automating for RPerl deployment!   https://github.com/wbraswell/lampuniversity.org/blob/master/docs/LAMP_install_notes.txt
07:17 willthechill I am not sold on Docker yet
07:17 willthechill but it does have lots going for it
07:17 willthechill Docker itself is written in Go and licensed under Apache
07:18 willthechill I would be more immediately sold if it was written in Perl but oh well  ;P
07:18 willthechill anyway, Docker has tons of support and some interesting subprojects like Docker Swarm for automatically building clusters, which is one of the things I'm working on now
07:19 willthechill also Docker "Automated Builds" similar to GitHub's Travis buildbot
07:19 ToApolytoXaos to be honest, i was thinking about this concept last night and i wanted to send you an email, but then i forgot because i went out for a drink lol
07:19 willthechill but for deployment not just development
07:19 ToApolytoXaos i wanted to see whether starman would have anything to benefit from RPerl
07:19 willthechill supposedly I can build a Docker container for RPerl and anybody can just run it like no problemo
07:19 willthechill this would be super useful
07:20 willthechill although RPerl can be installed mostly automatically from CPAN
07:20 ToApolytoXaos yes, that would be ideal
07:20 ToApolytoXaos basically that's how DigitalOcean works if i'm not mistaken
07:20 willthechill but the CPAN method (or even a downstream-from-CPAN Ubuntu apt-get method) is not very portable
07:20 willthechill or intuitive
07:20 ToApolytoXaos you could try vagrant
07:23 willthechill looks like Docker and Vagrant can work together
07:23 willthechill http://blog.scottlowe.org/2015/02/10/using-docker-with-vagrant/
07:24 ToApolytoXaos yes, because vagrant is more into the vmware / virtualbox world
07:25 willthechill well I'm using cloudatcost.com for vmware-based VM's running Ubuntu, although I have used virtualbox on my personal Linux machines just for fun in the past
07:25 willthechill I don't think we need Vagrant for anything right now
07:25 ToApolytoXaos true
07:26 ToApolytoXaos i have attempted to try Docker, but got lost
07:26 willthechill also, doesn't look like Vagrant is immediately integrated with CloudAtCost
07:26 willthechill but Docker is
07:27 ToApolytoXaos anyway, let's continue with the traditional way and then we check docker in the future :D
07:27 ToApolytoXaos question: any plans to write a book or something about RPerl?
07:28 ToApolytoXaos when is it appropriate to use RPerl?
07:28 ToApolytoXaos brb
07:29 willthechill yes I will write "Learning RPerl" and get it printed through O'Reilly
07:29 willthechill it will be based on the concepts and patterns of "Learning Perl" but will use compilable RPerl code for the solutions
07:29 willthechill it is appropriate the use RPerl any time you want your Perl code to run fast
07:30 willthechill bulk88: looks like Docker could provide an open source and automated method for helping people get RPerl to run in Windows if they don't want to go the possibly-difficult manual installation route
07:30 willthechill https://docs.docker.com/installation/windows/
07:32 willthechill basically Docker-on-Windows uses VirtualBox to load a Docker-specific tiny Linux VM, which then loads any Docker container (RPerl in our case)
07:32 willthechill so there's the not-insignificant overhead of VirtualBox in this case, supposedly Docker itself has little-to-no overhead so that part is okay
07:33 willthechill but this method of RPerl-on-Windows is the "easy way" for people who don't want to struggle with cygwin or Microsoft compiler suites, etc.
07:34 willthechill "boot2docker is essentially a super-lightweight Linux instance running the Docker daemon"
07:36 willthechill LOL authors of Vagrant vs Docker on StackOverflow   http://stackoverflow.com/questions/16647069/should-i-use-vagrant-or-docker-io-for-creating-an-isolated-environment
07:46 ToApolytoXaos lol!
07:47 ToApolytoXaos willthechill, suggestion: before you print your book through O'Reilly, why not offer it free online and let people provide feedback, fix typos and suggest improvements?
07:48 willthechill sure I'm not opposed to that
07:48 ToApolytoXaos this way you will attract new candidates to start using / participating to RPerl which is awesome and also you could have sponsor ads on the sidebars of your website :)
07:48 willthechill haha sure that sounds good  :)
07:49 ToApolytoXaos this way anyone could see those ads and promote your sponsors which leads to a reciprocal marketing strategy
07:49 ToApolytoXaos thus, more and more mouths will be talking the "new Perl thing" as a backend cool tool
07:51 willthechill yes I believe I agree with that approach
07:52 ToApolytoXaos my idea is simpe
07:52 ToApolytoXaos i want to take all those projects people have created as their backend services and convince them to convert them to RPerl
07:52 willthechill yes that is correct
07:52 ToApolytoXaos the reason? simple; why combine multiple tools together to produce the desired result whereas RPerl would produce a much better result as a whole?
07:53 ToApolytoXaos let's see something
07:53 willthechill *nods*
07:53 ToApolytoXaos Perl + Varnish + a web server + JavaScript chaos + etc
07:53 ToApolytoXaos all these things need hardware, memory, and lots of CPU
07:54 ToApolytoXaos and you are wondering...if we could get rid of all these things for the power of C or C++...
07:54 ToApolytoXaos enter RPerl; problem solved LOL!
07:54 ToApolytoXaos no need to cache, RPerl is fast enough to surpass JVM if it's used the right way
07:55 ToApolytoXaos therefore, no need to use Varnish for caching, nor to use a web server that is beefy enough to kill your entire stack
07:55 ToApolytoXaos i would love to see Plack / starman get reimplemented in RPerl and rerun its benchmarks
07:56 ToApolytoXaos what does this means for companies like BlueHost and Booking.com? no need to train your Perl staff to learn new technologies so they can take an advantage of the new hip
07:56 willthechill RPerl will be much faster than JVM
07:57 willthechill yes we need to upgrade all the slow-but-important Perl code to RPerl
07:57 ToApolytoXaos that's my objective :D
07:57 ToApolytoXaos can you imagine how much powerful this will be for the Perl community?
07:58 renormalist joined #perl11
07:58 willthechill hahaha yes that is why I have committed my life to creating RPerl
07:58 ToApolytoXaos for sure i don't want to kill so to speak the good ol' Perl scripts, but it would be nice to use my powerful PC at its full potential
07:59 ToApolytoXaos i really am interested in using both Perl and RPerl for my future projects
07:59 ToApolytoXaos i think you are doing an amazing job
07:59 ToApolytoXaos i could easily help in the near future with C or C++ inner parts of RPerl, since i'm having more than 12+ academic years using C++ exclusively
07:59 willthechill RPerl was specifically designed to be able to mix back in with normal interpreted Perl
08:00 ToApolytoXaos brilliant!
08:00 willthechill that is why RPerl is real
08:00 ToApolytoXaos sorry mate, but your benchmarks turned me on the other day :D hahahahaha
08:00 ToApolytoXaos literally!
08:00 ToApolytoXaos it brought tears to my eyes
08:00 willthechill yes well those benchmarks are what convinced me to do it myself
08:01 ToApolytoXaos i believe in RPerl
08:01 willthechill well that makes 2 of us at least, haha!  ;)
08:01 ToApolytoXaos and i mean massively, greatly, wholeheartedly!
08:02 willthechill well great now we just need one million more of you and we will be all set!
08:02 ToApolytoXaos one step at a time
08:02 willthechill let's get the cloning machine ready
08:02 ToApolytoXaos i believe in persistence
08:03 ToApolytoXaos as soon as you have RPerl stable enough, we could start experimenting with well known projects out there and share it via github pages
08:03 ToApolytoXaos this way people would be able to see, download the demos, and experiment
08:03 ToApolytoXaos more and more will be willing to test it and come with feedback, new ideas, and bug fixes
08:03 ToApolytoXaos that's how Linus started with Linux
08:03 ToApolytoXaos well, look at it now lol
08:05 willthechill yes I agree
08:05 willthechill I intend to use RPerl for the rest of my life
08:05 ToApolytoXaos same here
08:05 willthechill to create some really important and super-fast software
08:06 ToApolytoXaos again, same here lol
08:06 willthechill in fact I'm annoyed that I had to create RPerl, I waited a decade for somebody else to do it for me!
08:06 ToApolytoXaos just because it involves C++ as the backend secret recipe, i am willing to use it :D
08:06 willthechill yes well I want Perl at the speed of C
08:06 ToApolytoXaos that's how the majority of language creators started their own tools
08:06 willthechill interestingly, C++11 is really the "secret" to which you refer
08:07 willthechill before C++11 it would have been even more annoying and difficult to create RPerl
08:07 ToApolytoXaos i forgot to add the two 1s
08:07 willthechill haha yes the two 1's!
08:07 ToApolytoXaos are you using the move semantics and lambdas?
08:07 willthechill no I am actually not a C++11 expert
08:07 willthechill I'm going to need others to help me there
08:08 ToApolytoXaos so what parts from C++11 are you using?
08:08 ToApolytoXaos to be honest, i haven't seen C++11/14 in depth yet
08:08 willthechill unordered_map is the most important part of C++11 for RPerl right now
08:08 ToApolytoXaos i see
08:08 willthechill and unordered_map works great in GNU g++
08:08 willthechill so there you go!
08:09 ToApolytoXaos brilliant
08:09 willthechill it is actually a combination of C++11 and ingy's Inline.pm which allows RPerl to exist
08:09 willthechill standing on the shoulders of giants and all that!
08:09 ToApolytoXaos awesome
08:10 ToApolytoXaos i haven't checked whether unordered_map exist in Boost or not
08:10 ToApolytoXaos yep, since 1.38.9
08:10 ToApolytoXaos *.0
08:10 ToApolytoXaos typo
08:10 ToApolytoXaos which means, you could easily use it with C++03
08:11 ToApolytoXaos this way would could use old compilers
08:11 ToApolytoXaos not forcing people to use >= C++11
08:12 willthechill oh nice!
08:13 willthechill so you just have to do an extra include I guess?    #include Boost.h
08:13 willthechill for the old compilers?
08:18 ToApolytoXaos not exactly lol
08:19 ToApolytoXaos http://www.boost.org/doc/libs/1_58_0/doc/html/unordered.html
08:19 ToApolytoXaos http://www.boost.org/doc/libs/1_58_0/doc/html/unordered/reference.html#header.boost.unordered_map_hpp
08:21 ToApolytoXaos another suggestion would be to add a flag to check whether a compiler is newer than C++03 and if it is, to use the latest C++11 unordered_map; else, to use the included Boost libraries
08:21 ToApolytoXaos that's an option as well
08:22 willthechill yes that is perfectly acceptable
08:22 willthechill using a preprocessor compiler-check flag, that is
08:23 ToApolytoXaos brilliant
08:27 ToApolytoXaos will I piss you off if I say that I still don't understand how RPerl works? :D hahaha
08:29 willthechill 1.  write RPerl source code, it is a low-magic subset of normal Perl 5
08:29 willthechill 2.  RPerl source code goes through 3-phase parser
08:29 willthechill 2a.  normal Perl syntax check
08:29 willthechill 2b.  Perl::Critic brutal check
08:29 willthechill 2c.  RPerl grammar check
08:30 ToApolytoXaos that "brutal" part sounds scary
08:30 willthechill 3.  output of step 2 parser is RPerl abstract syntax tree (AST) data structure stored in multi-layered Perl hashes
08:31 willthechill 4.  RPerl AST can be transformed if needed for compile-time operations, for example future auto-parallelization
08:31 willthechill 5.  RPerl AST goes through code generator in 1 of 3 modes
08:31 ToApolytoXaos 4. awesome!
08:32 willthechill 5a.  Perl ops, Perl types (test mode, normal Perl interpreted speed)
08:32 willthechill 5b.  C++ ops, Perl types (7x speedup, medium-magic mode)
08:32 ToApolytoXaos 5a. when you say Ops for both Perl and C++, what do you mean?
08:32 willthechill 5c.  C++ ops, C++ types (200x speedup, low-magic mode)
08:33 ToApolytoXaos how about Perl Ops, C++ types?
08:33 willthechill 6.  if mode 5a or 5b, resulting C++ code is parsed by Inline::CPP
08:33 willthechill 7.  output of step 6 is XS and C++
08:33 willthechill 8.  g++ or other compiler used to generate fast binaries from XS and C++
08:34 bulk88_2 joined #perl11
08:34 willthechill 9.  binaries linked back into Perl 5 interpreter
08:34 ToApolytoXaos ah, therefore i could access them inside my interpreter?
08:34 ToApolytoXaos like "use warnings;"?
08:34 willthechill 10.  non-compiled (high-magic) Perl 5 code does not know or care that the RPerl code is now compiled, so the RPerl code runs fast and the regular Perl code runs unaltered
08:35 willthechill there that's the general idea
08:35 willthechill to answer your questions: yes "brutal" is hard for most people to swallow, but remember that is only pass 2 of 3 in the parser!
08:35 ToApolytoXaos i see
08:35 willthechill pass 3 (RPerl grammer) is "beyond brutal" haha
08:35 willthechill literally
08:36 willthechill your question about Perl/C++ ops/types is unclear
08:36 ToApolytoXaos you say you have perl ops perl types
08:36 willthechill oh actually I see one question: Perl ops C++ types
08:36 willthechill there is no reason to do that
08:36 ToApolytoXaos and the reason?
08:36 willthechill Perl types are the essence of Perl
08:36 ToApolytoXaos okay
08:37 willthechill C++ types are actually a re-implementation of Perl types
08:37 willthechill in theory it would be possible to do it, but it would not be obviously beneficial in any way I can think of
08:37 ToApolytoXaos what is it that makes Perl types so slow in contrast to C++ types reimplementation?
08:37 willthechill C++ ops are the thing that makes RPerl run fast
08:37 willthechill Perl types are super-high-magic
08:37 ToApolytoXaos i will ask again; what is ops?
08:37 willthechill lots of dynamic crap
08:38 willthechill "ops" is short for "operations"
08:38 willthechill "data" is short for "data types and data structures"
08:38 ToApolytoXaos ah i see
08:38 willthechill operations are add, subtract, sine, cosine, push, pop, shift, unshift, etc
08:38 willthechill data types are integer, float, string
08:38 ToApolytoXaos yes bison's operations?
08:38 willthechill data structures are arrays, hashes
08:38 ToApolytoXaos or yaccs?
08:38 ToApolytoXaos yacc?
08:39 willthechill RPerl parser phase 3 (RPerl Grammar) is written using EYAPP, a yacc-descendent
08:39 willthechill but none of this is related to the grammar
08:39 willthechill so your question is invalid I think
08:39 ToApolytoXaos that's why i'm a newbie ;) :P
08:39 willthechill EYAPP does not provide any data or ops of it's own
08:39 willthechill it only provides a structure for parsing
08:40 ToApolytoXaos parsing syntax tree i presume
08:40 willthechill parsing generates a syntax tree as output, see step 3 above
08:40 ToApolytoXaos awesome
08:40 ToApolytoXaos i'm getting there lol
08:40 willthechill no problem
08:40 willthechill I'm glad to help explain
08:40 ToApolytoXaos i can finally see a little light at the end of the tunnel
08:40 willthechill it is complicated
08:41 ToApolytoXaos yeah indeed it is
08:41 willthechill compilers are (arguably) the most complicated and basic and important part of computer science
08:41 ToApolytoXaos i'm asking all these questions, because i would like to help in any way i can in the near future
08:41 willthechill I would contend that compilers ARE computer science  ;)
08:41 willthechill yes I understand, I am glad you are asking questions
08:41 ToApolytoXaos i haven't had participated in any FOSS-ed project every before and I would like to do so
08:41 ToApolytoXaos ever*
08:41 willthechill ah yes well, it is fun to be part of a good project!  :)
08:42 ToApolytoXaos true
08:42 ToApolytoXaos and RPerl is a brilliant example
08:42 willthechill haha yes well, as soon as we can get v1.0 done!  :P
08:43 willthechill I am only 16 months late
08:43 willthechill St. Larry is nearly 13 years late
08:43 ToApolytoXaos i would love to see all these morons saying "Perl is slow like shit!" and say "have you tried RPerl?" and when they say "no" i will say "then shut the fuck up!" hahahahaha :D
08:44 willthechill WOW!  well hopefully we can use slightly less profanity when we are running our public family-friendly marketing campaign, but yes I agree with your sentiment!
08:44 ToApolytoXaos oops
08:44 ToApolytoXaos then let me refrase
08:44 willthechill haha no problem
08:44 ToApolytoXaos rephrase
08:44 willthechill but do remember, this is a publicly-logged IRC channel!
08:45 ToApolytoXaos "shut the door behind you hahahaha" sounds better?
08:45 willthechill for the official public record, I do not condone telling the Perl haters to "shut the bleep up", LOL
08:45 ToApolytoXaos i usually say "shut the FAQ up"
08:45 ToApolytoXaos this way i'm covered lol
08:45 willthechill I'm going to be like "do you have a few moments to spare for RPerl?"
08:46 willthechill haha
08:46 ToApolytoXaos to be honest with you, as soon as i understand how RPerl's backend works, i will be working on improving C++ parts
08:46 ToApolytoXaos it's a challenging language and i like experimenting with it
08:46 ToApolytoXaos i adore speed, stability, and performance
08:47 ToApolytoXaos let's not forget i have just started experimenting with the Perl world
08:47 ToApolytoXaos if i'm not mistaken, RPerl could be used to reimplement Perl 6
08:47 ToApolytoXaos i hope i'm not wrong
08:48 willthechill no you are not wrong
08:48 willthechill RPerl is the ideal candidate to reimplement both Perl 5 and Perl 6
08:48 willthechill because RPerl already supports Perl types
08:48 willthechill (data types and data structures)
08:49 willthechill in fact, RPerl may be the ONLY way to reimplement Perl 5
08:49 willthechill and by "may" I mean "I have no idea how we would do it any other way"
08:50 ToApolytoXaos so, when we say reimplementing, do we mean discarding the old C code?
08:50 basiliscos joined #perl11
08:51 willthechill well, refactoring bit-by-bit
08:51 ToApolytoXaos brilliant
08:51 willthechill there will be no wholesale "throwing out" of huge chunks
08:51 ToApolytoXaos there are lots of macros in C code
08:51 willthechill but more like throwing away one line at a time as it is re-written in RPerl and proven to work exactly the way the old code worked
08:51 ToApolytoXaos many duplicates
08:51 willthechill yes tons of macros
08:51 willthechill and other garbage
08:52 ToApolytoXaos we could easily migrate to C++
08:52 willthechill it will not be fun or easy or fast or cheap
08:52 willthechill well we don't want to write any C or C++ code ourselves!  that is what RPerl does
08:52 ToApolytoXaos since C++ got everywhere now it would be much preferable taking advantage those awesome C++ destructors
08:52 ToApolytoXaos true
08:52 ToApolytoXaos and take advantage of smart pointers
08:52 willthechill all the C++ code we write should be inside RPerl
08:52 ToApolytoXaos yes :D
08:53 ToApolytoXaos i can't wait to finally get it how it works
08:53 willthechill that way we don't have to write any C++ code outside of RPerl
08:53 ToApolytoXaos is RPerl more or less like a transcompiler?
08:54 willthechill RPerl can be boiled down to: parse, generate, compile
08:54 willthechill this is shown clearly here:  https://github.com/wbraswell/rperl/blob/master/lib/RPerl/Compiler.pm
08:55 ToApolytoXaos i have lots of things to study
08:55 willthechill part of RPerl can be considered a source-to-source compilation, specifically RPerl-to-C++, but remember RPerl doesn't stop there, then we invoke Inline::CPP and finally g++ to actually generate a binary output file
08:55 willthechill so really RPerl is a true compiler: RPerl source code to binary code
08:55 ToApolytoXaos oh man, i can hear people screaming out of joy lol
08:55 willthechill haha yes well just wait until you hear all the people screaming out in hatred as well
08:56 ToApolytoXaos yeah. it would be nice though to see immediate results as you run the script
08:56 willthechill remember how much the Perl Monks just LOVE that their Perl code is super slow
08:56 ToApolytoXaos you know what they say; haters gonna hate.
08:56 willthechill "immediate results as you run the script", this sounds like JIT (just-in-time) compiling
08:57 willthechill RPerl can approach JIT once it self-compiles (bootstraps), because then the compiler itself will be super fast
08:57 willthechill but really you only need JIT for high-magic code
08:57 willthechill and RPerl is not meant for high-magic code, really
08:57 willthechill it can be modified and extended to support it, but that is somewhat artificial
08:57 ToApolytoXaos with libgccjit it's possible now
08:58 willthechill really for high-magic code we need to either use RPerl to fully reimplement Perl 5 as just described, or link RPerl and rurban's forthcoming P2 engine, which is JIT-based for high-magic Perl 5 code
08:58 ToApolytoXaos tempting...
08:58 willthechill yes well LLVM and JIT and other things like that are pretty awesome
08:58 willthechill but if they were somehow going to have magically solved our problem, then it would have already happened by now
08:59 ToApolytoXaos true in a way
08:59 willthechill in other words, I'm being FORCED to create RPerl because none of the other awesome stuff actually works yet
08:59 ToApolytoXaos i'm saying this because no one have tried IMHO
08:59 ToApolytoXaos have you tried it?
08:59 willthechill tried what now?
08:59 ToApolytoXaos the LLVM approach
09:01 ToApolytoXaos wow...how does this works in Compiler.pm? my string $rperl_input_file_name
09:01 ToApolytoXaos how does "string" works as an identifier?
09:01 willthechill RPerl provides real data types
09:01 willthechill RPerl is very high magic under the covers
09:01 willthechill unfortunately
09:01 willthechill :/
09:01 ToApolytoXaos why unfortunately?
09:01 willthechill because high magic SUCKS
09:01 willthechill in EVERY WAY
09:02 willthechill it is slow, unmanageable, buggy, hard to upgrade, hard to maintain, expensive, etc
09:02 willthechill RPerl exists to KILL HIGH MAGIC CODE
09:02 ToApolytoXaos then we could follow the Go language way
09:02 willthechill how so?
09:03 ToApolytoXaos they have used C to create it, then they push its limits to get stable enough and in the end they have used Go to implement their own compiler
09:03 ToApolytoXaos now it's faster than before and easier to maintain for them
09:03 ToApolytoXaos the same could happen with RPerl
09:03 ToApolytoXaos to reimplement itself to make it clearer
09:03 ToApolytoXaos without the magic touch
09:04 ToApolytoXaos self hosting to be honest.
09:07 willthechill see my comment at 3:57 above, a compiler which can compile itself is called a "bootstrapping compiler"
09:07 willthechill I'm way ahead of you, my friend
09:07 willthechill much of RPerl is already written in RPerl
09:07 willthechill I was unclear on this point, most of the high-magic parts of RPerl have been concentrated
09:08 willthechill for example, in here:   https://github.com/wbraswell/rperl/blob/master/lib/RPerl/CompileUnit/Module/Class.pm
09:09 willthechill also examples such as the grammar_rules__map() subroutine here:  https://github.com/wbraswell/rperl/blob/master/lib/RPerl/Generator.pm
09:10 willthechill not to mention the Grammar.eyp -> Grammar.pm process of the EYAPP compiler
09:10 ToApolytoXaos brilliant!
09:10 willthechill so there are many parts of RPerl which do no have an obvious way to be replaced with low magic code
09:10 willthechill well, brilliant in the sense that the code works
09:10 willthechill but not brilliant because we are stuck with high magic code
09:10 ToApolytoXaos yes, i saw the 3:57 comment, but did not know what did you mean with "bootstrapping"
09:10 willthechill yes we eventually want RPerl to be 100% bootstrapping
09:11 willthechill which means we do not rely upon the Perl 5 interpreter to run the RPerl compiler
09:11 willthechill but for now all the high magic code in RPerl can only be run by the Perl 5 interpreter
09:11 ToApolytoXaos well, i'm sure RPerl will find a way to discard high magic code and replace it with easier implementing code
09:11 willthechill chicken-and-egg
09:11 willthechill yes eventually we will get there, in a few years
09:11 ToApolytoXaos i don't think it will take years to make it reality
09:12 ToApolytoXaos just continue being positive and it will come sooner than you think
09:12 willthechill I would be shocked to see RPerl bootstrap in less than 1 - 2 years even with maximum funding and support
09:12 willthechill it is just too complicated
09:13 willthechill also, I would be shocked to see Perl 5 re-implemented in RPerl in anything less than 2 - 4 years
09:13 willthechill because it is INSANELY complicated
09:13 willthechill almost too complicated for humans to handle
09:13 willthechill I allow us a decade to fix Perl 5
09:14 willthechill it has taken 27 years to create the mess we're in, if we can fix it in 10 then we are doing good!
09:15 ToApolytoXaos still, i'm too positive; don't ask me why
09:16 ToApolytoXaos it's a natural instinct that things will run smoother than you think
09:16 ToApolytoXaos with lots of "aha" moments
09:16 willthechill haha yes well
09:16 willthechill I kind of lost that shine once I hit my 12-months-overdue mark
09:16 willthechill ;)
09:17 ToApolytoXaos there's something in your coding style that makes it look easier than actually is
09:17 ToApolytoXaos and i'm sure people will acknowledge that
09:17 willthechill my "coding style" is RPerl
09:17 willthechill that is why RPerl is awesome
09:17 ToApolytoXaos yes, i know that
09:17 willthechill it is a very verbose and easy-to-understand method
09:17 ToApolytoXaos true
09:17 willthechill RPerl is very close to pseudo-code
09:18 willthechill so it is good for learning
09:18 willthechill it is also very fast, so it is good for production
09:18 willthechill and it works with normal Perl 5, so it is good for crufty hackers who want Perlishness and don't care about speed
09:19 ToApolytoXaos awesome
09:20 willthechill yup!
09:21 ToApolytoXaos so, again i will ask so i can finally embed it in my empty brain. when RPerl comes handly?
09:21 ToApolytoXaos when to use?
09:21 ToApolytoXaos *handy
09:22 * ToApolytoXaos thinks it's time to upgrade my fingers AI version, 'cause this one is buggy causing too many typos
09:23 willthechill Perl is slow, RPerl is fast
09:23 willthechill if you want your code to run slow, use Perl
09:23 willthechill if you want your code to run fast, use RPerl
09:23 willthechill that's the most basic I can make it for you
09:24 willthechill is that what you were asking?
09:24 willthechill or maybe you were asking something else?
09:25 ToApolytoXaos i was asking something rather simple
09:25 ToApolytoXaos all these existing scripts for instance, debian packaging
09:26 ToApolytoXaos is there any benefit to reimplement it in RPerl?
09:26 willthechill if the code is already written in C or C++, then it will not benefit from speed, because you are already at maximum speed
09:27 willthechill in those cases, the benefit is to make your code much easier to maintain
09:27 ToApolytoXaos debian packaging is implemented in pure Perl
09:27 willthechill oh well if it is written in normal Perl, then is can obviously be upgraded to RPerl for major speed increase!
09:28 willthechill (I forgot debian packaging was all Perl)
09:28 willthechill the only people who will NOT want to upgrade their existing Perl code are those who want to maintain their job security by keeping impossible-to-maintain high-magic code
09:29 ToApolytoXaos yeah, that's obvious enough
09:29 willthechill and of course those people who write little one-line Perl scripts which do not matter if they run super slow or not
09:29 ToApolytoXaos true
09:29 willthechill everybody who has significant Perl codebases to maintain will eventually need to upgrade the slow parts of their code to use RPerl
09:30 willthechill they can keep the rest in high magic if they really want
09:30 willthechill personally I don't allow high magic code in my company, but that is different for everybody
09:31 ToApolytoXaos i understand your concept
09:31 ToApolytoXaos i would have done the same
09:34 willthechill *nods*
09:37 ToApolytoXaos what parts of RPerl would you like to have implemented differently?
09:38 willthechill well I wasted a few months trying to get PPI to work as a parser, it is inherently high-magic so it did not work, so I had to re-do the parser from scratch using EYAPP which is really nice
09:38 willthechill that's the biggest one
09:39 willthechill other than that I think it is good
09:39 willthechill and PPI is no longer an issue so really we're good
09:39 willthechill I would not change anything about the RPerl v1.0 architecture
09:39 willthechill I believe the design is also quite good
09:40 willthechill as for the implementation: the pure-RPerl parts are good, the high magic bits not so much
09:40 willthechill I mean I write good high magic code, but it just stinks that there has to be any high magic code at al
09:40 willthechill *at all
09:40 willthechill as previously mentioned
09:41 ToApolytoXaos okay, how would you like to see a "high magic code" being implemented?
09:41 ToApolytoXaos that could be easier to understand and fix when get broken?
09:45 willthechill well those are the parts I sent you at 4:09 which need to eventually be re-implemented in pure RPerl
09:46 willthechill brb
09:49 ToApolytoXaos ok
10:07 willthechill back
10:08 willthechill perhaps you were asking in reference to the work items for which you would be well-suited?
10:09 ToApolytoXaos actually i haven't thought about it this way lol
10:13 willthechill oh okay, I just wasn't sure about the meaning of your question
10:14 ToApolytoXaos my question was based on the following: "<willthechill> as for the implementation: the pure-RPerl parts are good, the high magic bits not so much"
10:14 ToApolytoXaos the "not so much" part
10:15 willthechill right
10:16 willthechill that is simply my way of repeating myself, I keep saying how high magic code (normal Perl 5) is bad and low magic code (RPerl) is good
10:16 ToApolytoXaos i see
10:16 ToApolytoXaos well, you have a point :D
10:16 willthechill and there are parts of RPerl itself which are written in RPerl, and there are other parts of RPerl itself which are written in normal Perl 5
10:17 willthechill from 4:08
10:17 ToApolytoXaos well, my time is different than yours
10:17 ToApolytoXaos for instance here it's 13:17
10:17 willthechill my time is 5:17
10:17 willthechill 12:08 for you then
10:18 ToApolytoXaos cool
10:18 ToApolytoXaos ah the Class.pm
10:18 willthechill yes Class.pm and friends
10:18 willthechill it will be very very difficult to remove all the high magic code
10:19 willthechill but the high magic code of RPerl is nothing compared to to the even worse tangle of garbage code that some Perl 5 shops must maintain
10:19 ToApolytoXaos yeah
10:19 willthechill and none of THAT compares to the Perl 5 core itself, written in C and C macros
10:19 ToApolytoXaos i understand what you are saying
10:19 ToApolytoXaos lol
10:19 ToApolytoXaos i want to see cPanel folks how they will react with RPerl
10:19 willthechill well hopefully they will come to love RPerl
10:20 willthechill we shall see
10:20 ToApolytoXaos that's what i thought so
10:22 ToApolytoXaos any plans to participate to any Perl group meeting and present RPerl?
10:23 willthechill hopefully yes
10:23 willthechill YAPC::NA this year
10:23 willthechill hopefully!
10:24 ToApolytoXaos brilliant
10:24 ToApolytoXaos i hope to see a video on youtube or elsewhere
10:27 willthechill me too, haha!  ;)
10:28 ToApolytoXaos so, what are the current plans for RPerl as we speak?
10:29 ToApolytoXaos oh, i forgot to mentioned that I pulled the latest rperl code and tried to run make test; it failes to 22 tests :/
10:30 willthechill the latest RPerl build passes for me and for Travis bot:   https://travis-ci.org/wbraswell/rperl/builds/59835551
10:30 willthechill can you please pull and try again?
10:30 ToApolytoXaos ok, let me check it
10:30 willthechill perhaps you need to clean out your local::lib...     rm -Rf ~/perl5
10:30 ToApolytoXaos it's already up to day
10:30 ToApolytoXaos *date
10:30 willthechill what is up to date?
10:30 ToApolytoXaos the git pull
10:31 ToApolytoXaos let me delete perl5 then
10:31 willthechill yes
10:31 willthechill and also delete the git tree local to you, assuming you have not written any RPerl code yourself
10:31 ToApolytoXaos no, i haven't done anything
10:31 willthechill so there will be almost no trace of RPerl left on your machine
10:31 ToApolytoXaos what exactly to delete?
10:32 willthechill I forgot what your git directory was
10:32 willthechill for sure delete ~/perl5
10:32 willthechill then also delete whatever your rperl git pull directory is
10:32 ToApolytoXaos it's ~/GIT_CODES/rperl/
10:32 willthechill rm -Rf ~/GIT_CODES/rperl
10:32 ToApolytoXaos what?
10:33 willthechill I'm saying, delete all traces of RPerl off your system and start over from scratch
10:33 ToApolytoXaos ok
10:34 ToApolytoXaos so, i cloned the project again
10:34 ToApolytoXaos and should i follow the steps we initially run together?
10:38 willthechill yes
10:39 ToApolytoXaos why step 2a asks for this? $ cpanm WBRASWELL/RPerl-1.000_002.tar.gz
10:39 ToApolytoXaos what's the point of it if i have it locally from github?
10:39 willthechill hold on
10:39 willthechill no
10:39 willthechill don't do step 2a
10:39 ToApolytoXaos i haven't; that's why i'm asking
10:40 willthechill you already did step 0
10:40 willthechill now do 1a, then 2b
10:40 willthechill in step 1a you do not need to do the second command:
10:40 willthechill echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >> ~/.bashrc
10:40 willthechill because you already have the correct code appended to your ~/.bashrc file
10:40 ToApolytoXaos that's step 1a
10:41 ToApolytoXaos done it
10:41 willthechill okay do `tail ~/.bashrc`
10:41 willthechill see if you have duplicate 'eval $(perl...' in there
10:41 ToApolytoXaos ok
10:42 ToApolytoXaos yes i have
10:43 willthechill so you will want to fix that
10:43 ToApolytoXaos i removed the duplicate
10:43 willthechill okay great!
10:43 willthechill sorry I wasn't fast enough to remind you not to do that duplicate step
10:43 ToApolytoXaos currently waiting for dependencies to finish
10:43 willthechill NOT FAST ENOUGH!  (unlike RPerl, haha!)
10:43 ToApolytoXaos lol
10:43 willthechill okay great
10:44 ToApolytoXaos you could figure out a way to check whether such appending line exists, else to append it normally.
10:46 willthechill yes true
10:46 ToApolytoXaos question: you have "make; make test; make install"
10:46 ToApolytoXaos what? :D
10:46 willthechill although actually those install steps should not be done multiple times
10:46 ToApolytoXaos shouldn't it be "make; make install; make test"?
10:47 willthechill no
10:47 willthechill perl doesn't go that way
10:47 ToApolytoXaos oh?
10:47 willthechill at least everything I've seen
10:47 ToApolytoXaos ah, first you check whether things work properly, therefore if and only if everything is alright to install it?
10:47 willthechill make, then make test, then make install
10:47 willthechill correct
10:47 ToApolytoXaos brilliant
10:47 ToApolytoXaos i love Perl thus far :D
10:47 willthechill haha that's great!
10:49 ToApolytoXaos still getting those warnings
10:50 ToApolytoXaos is there a way to have a template mechanism like how you want c++ code to be tested?
10:50 ToApolytoXaos i mean
10:50 ToApolytoXaos you want a certain type of code to be tested so you could use it in RPerl
10:51 ToApolytoXaos since i know C++, i would like to offer my help in a way that could be used to improve RPerl as a whole
10:52 ToApolytoXaos when i say template, like here documents
10:52 ToApolytoXaos brb
10:53 willthechill the warnings are only when you are using git
10:53 willthechill they should not affect non-developers who install using CPAN or apt-get or Docker
11:00 willthechill okay well I'm off to bed, talk to you soon!  :)
11:22 ToApolytoXaos alright mate, rest well.
11:32 Bender joined #perl11
11:33 bulk88 willthechill, no, I very rarely use VMs, and never cloud computing
15:19 basiliscos joined #perl11
22:41 rurban joined #perl11

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