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 <[email protected]> > 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. >
_______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev
