My GSoC weekly report

Jonathan "Duke" Leto jonathan at leto.net
Thu Jul 4 17:34:42 UTC 2013


Howdy,

Yes, daily reports would be appreciated!

Generating "vim folds" is a nice trick. Clever!

I am not sure if you have considered it, but will your code be able to
easily target JavaScript OR the low-level subset of JS called "asm.js"
[0] ? It is gaining wide support and is backed by Mozilla.

Asm.js is essentially a simple flavor of JavaScript that JIT engines
can optimize more efficiently than normal JavaScript.

Duke

[0] http://asmjs.org


On Wed, Jul 3, 2013 at 11:11 AM, Paweł Murias <pawelmurias at gmail.com> wrote:
> 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...).
>> 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...)...
>> 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...).
>>
>> 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
>



-- 
Jonathan "Duke" Leto <jonathan at leto.net>
Leto Labs LLC http://letolabs.com
209.691.DUKE http://duke.leto.net
@dukeleto


More information about the parrot-dev mailing list