Perl 6 - the future is here, just unevenly distributed

IRC log for #perl11, 2015-05-22

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

All times shown according to UTC.

Time Nick Message
00:38 davido___ joined #perl11
04:00 willthechill joined #perl11
05:00 davido___ joined #perl11
05:08 davido__ joined #perl11
08:34 basiliscos joined #perl11
12:15 travis-ci RPerl build passed. Will Braswell says 'Generator, Perl Ops Perl Types, Parenthesis'
12:15 travis-ci http://travis-ci.org/wbraswell/rperl/builds/63638423 https://github.com/wbraswell/rperl/compare/c4e6c9e909f3...79e11a83aae8
15:32 ToApolytoXaos joined #perl11
18:11 ToApolytoXaos hey willthechill, I hope you read this already http://blog.booking.com/making-perl-faster.html
20:21 willthechill LOL 18% faster
20:21 willthechill to me that is meaningless!
20:22 willthechill I mean, it is such a small gain as to be insignificant compared to what we need in a real optimizer
20:22 willthechill RPerl provides 700% and 20,000% speedup in the hand-compiled tests
20:22 willthechill that means 18% is nothing  :)
20:23 willthechill BUT STILL good for them!  I am glad Booking.com got some small gain for themselves.  :)
20:37 ToApolytoXaos there you are :D
20:37 ToApolytoXaos yeah, i thought the same
20:38 ToApolytoXaos and i said to myself "imagine, William hasn't applied any optimization on the current output"
20:38 willthechill haha yeah funny!  :)
20:38 ToApolytoXaos can you imagine what can be accomplished with full C++11 support?
20:38 willthechill we can possibly use their tiny little optimization in a future version of RPerl
20:38 ToApolytoXaos with lambdas, and move semantics?
20:38 ToApolytoXaos i don't think we will need it
20:38 willthechill no I do not know how lambdas or move semantics will help us
20:39 ToApolytoXaos do you know how move semantics work?
20:39 willthechill nope
20:39 ToApolytoXaos okay, a rather simple yet silly example
20:40 ToApolytoXaos in Perl, Lua, and Python to swap values a and b you just do "a, b = b, a"
20:40 ToApolytoXaos in C-domain language, you have to use a variable to temporarily hold the value you want to swap
20:41 ToApolytoXaos now with the move semantics, you just take that rvalue straight into lvalue
20:41 ToApolytoXaos traditionally in C++, all these years to assign an object B to an object A you had to use a copy constructor
20:43 ToApolytoXaos you can still use it, but most people now prefer to move their desired object without holding any temporary object somewhere inside heap memory
20:44 willthechill okay well that sounds like another one of these micro-optimizations like Booking.com's integer thing
20:44 willthechill WHICH IS FINE
20:44 willthechill but minor
20:44 ToApolytoXaos eeeeemm...not exactly
20:45 ToApolytoXaos when you are doing a massive recursion that creates multiple copies of an object, you create humongous memory spikes that can literally drive your systems crazy
20:46 willthechill okay fair enough
20:47 willthechill I'm sure you can imagine that I am not particularly concerned with such details at this point in time
20:47 willthechill I mean, I'm not UNCONCERNED with them
20:47 ToApolytoXaos oh that's fine :)
20:47 willthechill it is just nowhere near the top of the to-do list  :)
20:47 ToApolytoXaos it would be part of our future research :)
20:47 willthechill yes, future work!
20:47 ToApolytoXaos i understand
20:48 ToApolytoXaos the current objective is to deliver this beauty out in the wild as soon as possible
20:48 willthechill yup!
20:48 ToApolytoXaos and frankly, i can't wait to use it in mass production
20:48 ToApolytoXaos i am considering myself a tester, even though i haven't done anything particular
20:48 ToApolytoXaos i just test it and promote it as much as i can
20:49 ToApolytoXaos but i'm doing my best to understand it as a whole so i may lift a bit of weight off your shoulders in the near future.
20:50 ToApolytoXaos i honestly can't wait to see Booking.com peoples' faces when they finally test RPerl in real time!
20:50 ToApolytoXaos let alone cPanel or BugZilla
20:50 willthechill haha yes well I imagine there will be many arguments both for and against RPerl once it is working
20:50 willthechill flames and haters as well as supporters
20:52 ToApolytoXaos then, we can simply reply back to haters a nice question "if you can do better, then how come you haven't fixed the language yet?!"
20:52 ToApolytoXaos "or haven't done it yourself better than this?"
20:53 willthechill haha yes that is the correct response
20:59 willthechill ToApolytoXaos: you may begin testing RPerl code output with the following command
20:59 willthechill rperl -v -d -m ops=PERL -m types=PERL ./lib/RPerl/Test/Fu.pm
20:59 willthechill inspect the inside of Fu.pm for the parts which do and do not properly compile
20:59 willthechill then inspect Fu.pmc for output code
20:59 willthechill *.pm input *.pmc output
21:00 willthechill "Perl Module" -> "Perl Module Compiled"
21:03 ToApolytoXaos ok, let me write these steps down
21:04 willthechill well it is basically the same as using any compiler
21:04 ToApolytoXaos true
21:04 willthechill look at what is inside the file you want to compile (Fu.pm), run the compiler (rperl...), look at what is inside the file you generated (Fu.pmc)
21:05 willthechill that's it
21:05 willthechill whenever you do 'use RPerl::Test::Fu;' the Perl interpreter will look FIRST for Fu.pmc then it will look for Fu.pm
21:05 willthechill so if Fu.pmc exists, it will automatically be loaded INSTEAD OF Fu.pm
21:06 ToApolytoXaos is it like a bytecode?
21:10 willthechill is what like bytecode?
21:10 willthechill anything can go inside the PMC files
21:10 willthechill bytecode is for virtual machines, RPerl is a compiler, no bytecode here thank goodness!
21:11 willthechill the rperl command I gave you is for non-optimized test mode, PERLOPS PERLTYPES
21:11 willthechill the output in the PMC file should be exactly the same as the input code in the PM file
21:12 willthechill that's how we know the test mode is working properly
21:12 willthechill but I am still writing the PERLOPS PERLTYPES code generator routines now, so only the code in Fu.pm which is not marked "BAD" will compile
21:13 ToApolytoXaos nice. sorry for asking stupid questions :/
21:14 ToApolytoXaos i correlated it with Python that creates .pyc bytecode files from .py source files
21:15 willthechill anything can go in PMC files, including bytecode, or nothing, or whatever
21:21 ToApolytoXaos awesome
21:25 ToApolytoXaos i think i'm doing something wrong
21:27 ToApolytoXaos Can't locate object method "ast_to_rperl__generate" via package "MethodOrSubroutine_74" at /home/stefanos/perl5/lib/perl5/RPerl/CompileUnit/Module/Class/Generator.pm line 162.
21:28 ToApolytoXaos oh bummer...i forgot to fetch the latest HEAD
21:28 willthechill did you inspect the inside of Fu.pm before attempting to compile?
21:28 willthechill oh well yes, obviously you will want the latest code
21:29 ToApolytoXaos give me a second to pastebin an error message "make clean" showed just right now
21:30 ToApolytoXaos http://paste.debian.net/hidden/831f7345/
21:34 willthechill that's because you fetched new code then tried `make clean` using an out-of-date Makefile
21:35 ToApolytoXaos i got used to Code::Blocks that I often fetch myself and built its Debian packages and never had such issue :/
21:36 ToApolytoXaos what about my previous "can't locate" message?
21:37 willthechill I keep telling you to inspect the inside of Fu.pm before you try to compile
21:37 ToApolytoXaos sorry man, it's very late here and i'm half asleep
21:37 ToApolytoXaos apologies
21:37 willthechill make sure you have the latest code from github, then look inside Fu.pm to make sure you are not trying to compile with any lines marked "BAD"
21:39 ToApolytoXaos yeah, i just read the commented lines from Fu.pm
21:39 willthechill there you go!
21:41 ToApolytoXaos anyway mate, i need to get some sleep. i'm exhausted :/
21:41 ToApolytoXaos i hope to see you tomorrow
21:42 ToApolytoXaos goodnight

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