My GSoC weekly report

Paweł Murias pawelmurias at gmail.com
Wed Jul 3 18:11:26 UTC 2013


I could do a daily report of my activities on the blog, if you want to
ensure such incidents won't occur again.


2013/7/3 Paweł Murias <pawelmurias at gmail.com>

> Sorry for being late with the report, I got confused and thought the
> report was due by Wednesday instead of thursday. :(
>
>
> Here is the report. Also avalible at (
> http://www.parrot.org/content/gsoc-weekly-raport-my-rakudo-breaking-adventure
> )
>
> I tried to mimick the way subroutines are wrapped on rakudo and make test
> passed on parrot I commited the code.
> And it broke nqp on the jvm. And I realised that rakudo on the jvm uses
> the HEAD revision on nqp and not a version specified in
> tools/build/NQP_REVISION. And after my commit make test broke on nqp.
> I reverted the commit, and Jonathan Worthington figured out that I
> misunderstood what p6capture_lex did.
> NQP opcodes propably need some kind of docs. I encoutered a crazy one
> called locallifetime which is some optimalisation thing I can ignore (
> https://github.com/pmurias/rakudo-js/commit/a4dbf654f54dfddb0731aaf2605a...<https://github.com/pmurias/rakudo-js/commit/a4dbf654f54dfddb0731aaf2605a0a8450c4f634>).
> Which one of the primary rakudo/nqp authors wasn't sure what I does, just
> explaining it's some kind of ignorable optimalisation opcode.
> (As a side note p6capture_lex sets the outer of code ref stored in $!do of
> it's arguement) to the current frame of lexicals.)
> I implemented a version of that creatively called capture_lex for nqp
> (which was slightly more generic way as it didn't assume it's argument was
> a Perl6 Code).
> I implemented the capture_lex opcode on parrot and nqp, and once make test
> passed, I happlily commited it (
> https://github.com/perl6/nqp/commit/afa84b8365c51822a7c9d8fe703c02919ce5...<https://github.com/perl6/nqp/commit/afa84b8365c51822a7c9d8fe703c02919ce57a2b>
> )...
> And I broke rakudo. My commits where reverted and put on a branch. I
> realised that the sensible things was to just work on the more complex
> role.t test rather then spend a ton of time on hairy nqp refactors.
> I'm currently doing that.
>
> One quick solution I'm using to make the generated JavaScript easier to
> read (which is a large part of debugging) is to emit vim folds (
> https://github.com/pmurias/rakudo-js/commit/964b22911bd17ff253ea3381841f...<https://github.com/pmurias/rakudo-js/commit/964b22911bd17ff253ea3381841f5783e7dfde36>
> ).
>
> Example:
>
> /* deserialization code {{{*/
> A couple of dense screens mostly consisting of a large sha1 encoded string
> literal
> /* }}}*/
>
> /* main {{{*/
> /* {{{ */
> Things can be arbitrarly nested to provide increasing levels of
> increasingly ugly details.
> /* }}} */
> /* }}} */
>
> As I no longer have an distracting exams at university work on my project
> should be now picking up a faster pace.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.parrot.org/pipermail/parrot-dev/attachments/20130703/e765fdf5/attachment.html>


More information about the parrot-dev mailing list