On Tue, Oct 2, 2012 at 1:55 AM, Mark Hahn <m...@hahnca.com> wrote:
> @Marcel just meant that you have started an infinite discussion thread.
> He wasn't insulting your module.
> On Mon, Oct 1, 2012 at 2:42 PM, Marcel Laverdet <mar...@laverdet.com>wrote:
>> You have no idea what you've done.
>> On Mon, Oct 1, 2012 at 2:11 PM, Fedor Indutny <fe...@indutny.com> wrote:
> On Tue, Oct 2, 2012 at 1:55 AM, Mark Hahn <m...@hahnca.com> wrote:
> @Marcel just meant that you have started an infinite discussion thread. He wasn't insulting your module.
> On Mon, Oct 1, 2012 at 2:42 PM, Marcel Laverdet <mar...@laverdet.com> wrote:
> You have no idea what you've done.
> On Mon, Oct 1, 2012 at 2:11 PM, Fedor Indutny <fe...@indutny.com> wrote:
> Hey people,
I'm coauthor of xjst module, which is compiling templates to a
highly-recursive javascript code. However some javascript VMs like
Spidermonkey doesn't support that recursion well, and here comes spoon! It
can translate any recursive calls into fake asynchronous ones. And then
using tricky dispatch function I can run those calls one-by-one without any
recursion at all:
https://github.com/veged/xjst/blob/master/lib/xjst/utils.js#L68
On Tue, Oct 2, 2012 at 10:43 PM, Ted Young <t...@radicaldesigns.org> wrote:
> Just wondering, what were your use cases when writing spoon? Was it to
> solve production problems you were facing? Are you using it at nodejitsu?
> Cheers,
> Ted
> On Oct 1, 2012, at 11:28 PM, Fedor Indutny <fe...@indutny.com> wrote:
> "I'm just doing my job".
> On Tue, Oct 2, 2012 at 1:55 AM, Mark Hahn <m...@hahnca.com> wrote:
>> @Marcel just meant that you have started an infinite discussion thread.
>> He wasn't insulting your module.
>> On Mon, Oct 1, 2012 at 2:42 PM, Marcel Laverdet <mar...@laverdet.com>wrote:
>>> You have no idea what you've done.
>>> On Mon, Oct 1, 2012 at 2:11 PM, Fedor Indutny <fe...@indutny.com> wrote:
On Tue, Oct 2, 2012 at 10:49 PM, Fedor Indutny <fe...@indutny.com> wrote:
> No, we ain't using this at nodejitsu.
> I'm coauthor of xjst module, which is compiling templates to a
> highly-recursive javascript code. However some javascript VMs like
> Spidermonkey doesn't support that recursion well, and here comes spoon! It
> can translate any recursive calls into fake asynchronous ones. And then
> using tricky dispatch function I can run those calls one-by-one without any
> recursion at all:
> https://github.com/veged/xjst/blob/master/lib/xjst/utils.js#L68
> On Tue, Oct 2, 2012 at 10:43 PM, Ted Young <t...@radicaldesigns.org> wrote:
>> Just wondering, what were your use cases when writing spoon? Was it to
>> solve production problems you were facing? Are you using it at nodejitsu?
>> Cheers,
>> Ted
>> On Oct 1, 2012, at 11:28 PM, Fedor Indutny <fe...@indutny.com> wrote:
>> "I'm just doing my job".
>> On Tue, Oct 2, 2012 at 1:55 AM, Mark Hahn <m...@hahnca.com> wrote:
>>> @Marcel just meant that you have started an infinite discussion thread.
>>> He wasn't insulting your module.
>>> On Mon, Oct 1, 2012 at 2:42 PM, Marcel Laverdet <mar...@laverdet.com>wrote:
>>>> You have no idea what you've done.
>>>> On Mon, Oct 1, 2012 at 2:11 PM, Fedor Indutny <fe...@indutny.com>wrote:
Is xjst meant to run in a browser at all? I ask because I see code where
objects with a property named "default" are accessing like...
obj["default"]
which isn't necessary in runtimes that correctly implement ES5.1. "default"
is a reserved word, but property names are IdentifierNames, not
Identifiers, so "default" is valid when used like...
obj.default;
eg.
$ node
> var o = {default: "hi!"}
undefined
> o.default
'hi!'
Anyway, no big deal, I just happened to notice it and figured I'd mention.
On Tue, Oct 2, 2012 at 2:56 PM, Fedor Indutny <fe...@indutny.com> wrote:
> I'll write a blog post about it on http://blog.indutny.com/ soon,
> describing everything in details.
> On Tue, Oct 2, 2012 at 10:49 PM, Fedor Indutny <fe...@indutny.com> wrote:
>> No, we ain't using this at nodejitsu.
>> I'm coauthor of xjst module, which is compiling templates to a
>> highly-recursive javascript code. However some javascript VMs like
>> Spidermonkey doesn't support that recursion well, and here comes spoon! It
>> can translate any recursive calls into fake asynchronous ones. And then
>> using tricky dispatch function I can run those calls one-by-one without any
>> recursion at all:
>> https://github.com/veged/xjst/blob/master/lib/xjst/utils.js#L68
>> On Tue, Oct 2, 2012 at 10:43 PM, Ted Young <t...@radicaldesigns.org>wrote:
>>> Just wondering, what were your use cases when writing spoon? Was it to
>>> solve production problems you were facing? Are you using it at nodejitsu?
>>> Cheers,
>>> Ted
>>> On Oct 1, 2012, at 11:28 PM, Fedor Indutny <fe...@indutny.com> wrote:
>>> "I'm just doing my job".
>>> On Tue, Oct 2, 2012 at 1:55 AM, Mark Hahn <m...@hahnca.com> wrote:
>>>> @Marcel just meant that you have started an infinite discussion
>>>> thread. He wasn't insulting your module.
>>>> On Mon, Oct 1, 2012 at 2:42 PM, Marcel Laverdet <mar...@laverdet.com>wrote:
>>>>> You have no idea what you've done.
>>>>> On Mon, Oct 1, 2012 at 2:11 PM, Fedor Indutny <fe...@indutny.com>wrote:
Well, it supposed to work in all browsers, and it supposed to be
optimizable by all optimizers including uglifyjs, closure compiler and yui
compressor (that's why I'm using "escaped" property names sometimes).
On Tue, Oct 2, 2012 at 11:03 PM, Rick Waldron <waldron.r...@gmail.com>wrote:
> Is xjst meant to run in a browser at all? I ask because I see code where
> objects with a property named "default" are accessing like...
> obj["default"]
> which isn't necessary in runtimes that correctly implement ES5.1.
> "default" is a reserved word, but property names are IdentifierNames, not
> Identifiers, so "default" is valid when used like...
> obj.default;
> eg.
> $ node
> > var o = {default: "hi!"}
> undefined
> > o.default
> 'hi!'
> Anyway, no big deal, I just happened to notice it and figured I'd mention.
> Rick
> On Tue, Oct 2, 2012 at 2:56 PM, Fedor Indutny <fe...@indutny.com> wrote:
>> I'll write a blog post about it on http://blog.indutny.com/ soon,
>> describing everything in details.
>> On Tue, Oct 2, 2012 at 10:49 PM, Fedor Indutny <fe...@indutny.com> wrote:
>>> No, we ain't using this at nodejitsu.
>>> I'm coauthor of xjst module, which is compiling templates to a
>>> highly-recursive javascript code. However some javascript VMs like
>>> Spidermonkey doesn't support that recursion well, and here comes spoon! It
>>> can translate any recursive calls into fake asynchronous ones. And then
>>> using tricky dispatch function I can run those calls one-by-one without any
>>> recursion at all:
>>> https://github.com/veged/xjst/blob/master/lib/xjst/utils.js#L68
>>> On Tue, Oct 2, 2012 at 10:43 PM, Ted Young <t...@radicaldesigns.org>wrote:
>>>> Just wondering, what were your use cases when writing spoon? Was it to
>>>> solve production problems you were facing? Are you using it at nodejitsu?
>>>> Cheers,
>>>> Ted
>>>> On Oct 1, 2012, at 11:28 PM, Fedor Indutny <fe...@indutny.com> wrote:
>>>> "I'm just doing my job".
>>>> On Tue, Oct 2, 2012 at 1:55 AM, Mark Hahn <m...@hahnca.com> wrote:
>>>>> @Marcel just meant that you have started an infinite discussion
>>>>> thread. He wasn't insulting your module.
>>>>> On Mon, Oct 1, 2012 at 2:42 PM, Marcel Laverdet <mar...@laverdet.com>wrote:
>>>>>> You have no idea what you've done.
>>>>>> On Mon, Oct 1, 2012 at 2:11 PM, Fedor Indutny <fe...@indutny.com>wrote:
On Tue, Oct 2, 2012 at 3:07 PM, Fedor Indutny <fe...@indutny.com> wrote:
> Well, it supposed to work in all browsers, and it supposed to be
> optimizable by all optimizers including uglifyjs, closure compiler and yui
> compressor (that's why I'm using "escaped" property names sometimes).
> On Tue, Oct 2, 2012 at 11:03 PM, Rick Waldron <waldron.r...@gmail.com>wrote:
>> Fedor,
>> Is xjst meant to run in a browser at all? I ask because I see code where
>> objects with a property named "default" are accessing like...
>> obj["default"]
>> which isn't necessary in runtimes that correctly implement ES5.1.
>> "default" is a reserved word, but property names are IdentifierNames, not
>> Identifiers, so "default" is valid when used like...
>> obj.default;
>> eg.
>> $ node
>> > var o = {default: "hi!"}
>> undefined
>> > o.default
>> 'hi!'
>> Anyway, no big deal, I just happened to notice it and figured I'd mention.
>> Rick
>> On Tue, Oct 2, 2012 at 2:56 PM, Fedor Indutny <fe...@indutny.com> wrote:
>>> I'll write a blog post about it on http://blog.indutny.com/ soon,
>>> describing everything in details.
>>> On Tue, Oct 2, 2012 at 10:49 PM, Fedor Indutny <fe...@indutny.com>wrote:
>>>> No, we ain't using this at nodejitsu.
>>>> I'm coauthor of xjst module, which is compiling templates to a
>>>> highly-recursive javascript code. However some javascript VMs like
>>>> Spidermonkey doesn't support that recursion well, and here comes spoon! It
>>>> can translate any recursive calls into fake asynchronous ones. And then
>>>> using tricky dispatch function I can run those calls one-by-one without any
>>>> recursion at all:
>>>> https://github.com/veged/xjst/blob/master/lib/xjst/utils.js#L68
>>>> On Tue, Oct 2, 2012 at 10:43 PM, Ted Young <t...@radicaldesigns.org>wrote:
>>>>> Just wondering, what were your use cases when writing spoon? Was it to
>>>>> solve production problems you were facing? Are you using it at nodejitsu?
>>>>> Cheers,
>>>>> Ted
>>>>> On Oct 1, 2012, at 11:28 PM, Fedor Indutny <fe...@indutny.com> wrote:
>>>>> "I'm just doing my job".
>>>>> On Tue, Oct 2, 2012 at 1:55 AM, Mark Hahn <m...@hahnca.com> wrote:
>>>>>> @Marcel just meant that you have started an infinite discussion
>>>>>> thread. He wasn't insulting your module.
>>>>>> On Mon, Oct 1, 2012 at 2:42 PM, Marcel Laverdet <mar...@laverdet.com>wrote:
>>>>>>> You have no idea what you've done.
>>>>>>> On Mon, Oct 1, 2012 at 2:11 PM, Fedor Indutny <fe...@indutny.com>wrote:
I tried to integrate it as an alternate transformation engine for streamline (a fourth one) and the first results are encouraging: I got the first diskUsage example running.
I had to make a few changes to align spoon on the node.js callback format (error as first callback parameter + testing for err in callback and propagating it through __$callback).
My unit test suite is not running yet because of some unimplemented features: switch, try/finally, labelled statement. But I like the approach. The CGG intermediate representation is cool and can probably produce more efficent code than my pattern based approach.
On Wednesday, October 3, 2012 10:14:03 PM UTC+2, Bruno Jouhier wrote:
> Hi Fedor,
> This looks really promising.
> I tried to integrate it as an alternate transformation engine for > streamline (a fourth one) and the first results are encouraging: I got the > first diskUsage example running.
> I had to make a few changes to align spoon on the node.js callback format > (error as first callback parameter + testing for err in callback and > propagating it through __$callback).
> My unit test suite is not running yet because of some unimplemented > features: switch, try/finally, labelled statement. But I like the approach. > The CGG intermediate representation is cool and can probably produce more > efficent code than my pattern based approach.
On Thu, Oct 4, 2012 at 12:16 AM, Bruno Jouhier <bjouh...@gmail.com> wrote:
> s/CGG/CFG/
> On Wednesday, October 3, 2012 10:14:03 PM UTC+2, Bruno Jouhier wrote:
>> Hi Fedor,
>> This looks really promising.
>> I tried to integrate it as an alternate transformation engine for
>> streamline (a fourth one) and the first results are encouraging: I got the
>> first diskUsage example running.
>> I had to make a few changes to align spoon on the node.js callback format
>> (error as first callback parameter + testing for err in callback and
>> propagating it through __$callback).
>> My unit test suite is not running yet because of some unimplemented
>> features: switch, try/finally, labelled statement. But I like the approach.
>> The CGG intermediate representation is cool and can probably produce more
>> efficent code than my pattern based approach.