And this is *exactly* why I brought that up; had a feeling I might have
done something fishy. :)

It does throw; shouldn't be too hard to modify mine to pack segment by
segment. Thanks!




On Tue, Jul 18, 2017 at 12:53 PM, Kenton Varda <[email protected]>
wrote:

> On Tue, Jul 18, 2017 at 9:00 AM, Julián Díaz <[email protected]> wrote:
>
>> Appreciate the endorsement!
>>
>> I did in fact borrow some of that test data directly, though there's an
>> interesting divergence in the TypeScript version of the packing algorithm
>> so I wound up editing segmented-packed by hand to match:
>> https://github.com/jdiaz5513/capnp-ts/pull/10.
>>
>
> Hmm. I suspect this is because the C++ implementation packs each segment
> separately, and so the two runs of zeros came before and after a segment
> boundary. Unfortunately, assuming my suspicion is correct, then I suspect
> the C++ implementation will not be able to unpack your version. This is
> because it unpacks each segment into a separate array, but for speed
> reasons the core unpacking loop targets a single array at a time and has no
> way to pass along its state to the next call. I suppose this needs to be
> documented.
>
> You can check if this is the case by using `capnp decode -p` on your
> version of the data. I suspect it will throw an error.
>
> If it doesn't throw an error, then I'm confused.
>
> -Kenton
>
>
>> Still making slow but steady progress writing tests and finding broken
>> stuff. I'll publish to npm once the serialization part isn't so... broken.
>>
>> - Julián
>>
>> On Monday, July 17, 2017 at 8:36:36 PM UTC-4, Kenton Varda wrote:
>>>
>>> So I looked at this today and I'm pretty impressed! Code looks clean and
>>> seems to be following best practices. I made some notes on the issue
>>> tracker, as you probably saw, but generally looks pretty good. I'm pretty
>>> excited to start using this -- and I really want to migrate Sandstorm to
>>> TypeScript.
>>>
>>> One question: Have you written tests using the test data in the capnp
>>> repo?
>>>
>>> https://github.com/capnproto/capnproto/tree/master/c++/src/c
>>> apnp/testdata
>>>
>>> This would help check for any misreads of the spec.
>>>
>>> -Kenton
>>>
>>> On Thu, Jun 8, 2017 at 7:01 PM, Julián Díaz <[email protected]> wrote:
>>>
>>>> For those itching to get on the bleeding edge, I've got a working
>>>> schema compiler now!
>>>>
>>>> Serialization seems to be working okay with some unimplemented edges
>>>> here and there. Perhaps not surprisingly, I'm already seeing places where
>>>> this can outperform JSON.parse, so that's a major win!
>>>>
>>>> I almost had compile-to-JS support working as well, but the TypeScript
>>>> compiler is refusing to play nice with me right now. (See:
>>>> https://github.com/jdiaz5513/capnp-ts/issues/5)
>>>>
>>>> If anyone is really interested in using this stuff *today* please
>>>> reach out to me so I can better understand what you need and perhaps
>>>> rearrange how I implement things. Otherwise, there's still lots to do
>>>> before 1.0.0!
>>>>
>>>> PS: For the compiler nerds: the schema compiler actually uses the
>>>> TypeScript compiler API directly to build an AST before printing it to a
>>>> file.
>>>>
>>>> On Thursday, May 11, 2017 at 12:58:03 PM UTC-4, Julián Díaz wrote:
>>>>>
>>>>> Can't use proxies at all in TypeScript unless I set the target to ES6
>>>>> - right now I want to keep it compiling to ES5 so it's immediately useful
>>>>> for a wider range of people.
>>>>>
>>>>> It also seems like it's going to perform like crap:
>>>>> http://thecodebarbarian.com/thoughts-on-es6-proxies-performance.html
>>>>>
>>>>> I'll add it to the TODO, regardless; a separate ES6 build would be
>>>>> useful for many people. I could document it with the caveat that
>>>>> .get() will always be faster.
>>>>>
>>>>> On Thursday, May 11, 2017 at 11:10:16 AM UTC-4, Kenton Varda wrote:
>>>>>>
>>>>>> On Wed, May 10, 2017 at 11:17 PM, Mark Miller <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> https://kangax.github.io/compat-table/es6/
>>>>>>>
>>>>>>> It looks like proxies are supported everywhere.
>>>>>>>
>>>>>>
>>>>>> Unfortunately a lot of people still use old browsers.
>>>>>>
>>>>>> http://caniuse.com/#feat=proxy -- click on the "usage relative" box.
>>>>>>
>>>>>> -Kenton
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, May 10, 2017 at 8:54 PM, Kenton Varda <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Sweet!
>>>>>>>>
>>>>>>>> Totally random comment from totally randomly opening a file and
>>>>>>>> looking at it:
>>>>>>>>
>>>>>>>> I see lists are accessed via a method .get(n). Have you considered
>>>>>>>> using proxies to allow array subscript [] syntax? I guess some 10-20% 
>>>>>>>> of
>>>>>>>> browsers still don't support proxies but that number will only go down.
>>>>>>>>
>>>>>>>> -Kenton
>>>>>>>>
>>>>>>>> On Tue, May 9, 2017 at 2:03 PM, Julián Díaz <[email protected]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> I'm happy to report some real progress!
>>>>>>>>>
>>>>>>>>> https://github.com/jdiaz5513/capnp-ts
>>>>>>>>>
>>>>>>>>> Right now it's not very useful at all (I just barely have
>>>>>>>>> serialization working) but it's a solid starting point to wrap up the
>>>>>>>>> serialization API. The peanut gallery can start poking around to see 
>>>>>>>>> how I
>>>>>>>>> organized things – it does depart slightly from the reference
>>>>>>>>> implementation but I'm still aiming to make an external API that's 
>>>>>>>>> very
>>>>>>>>> similar to the C++ one.
>>>>>>>>>
>>>>>>>>> Once the Struct/List classes are complete I'll move on to the
>>>>>>>>> schema compiler, which looks like it'll be a cinch. Hoping I can keep 
>>>>>>>>> up
>>>>>>>>> the steady progress from here.
>>>>>>>>>
>>>>>>>>> On Monday, April 10, 2017 at 1:45:01 AM UTC-4, Ian Denhardt wrote:
>>>>>>>>>>
>>>>>>>>>> Quoting Kenton Varda (2017-04-09 18:35:48)
>>>>>>>>>>
>>>>>>>>>> >    1) libcapnp and libkj together add up to some 730k of code
>>>>>>>>>> (text
>>>>>>>>>> >    segment) these days. Unless emscripten builds are
>>>>>>>>>> significantly
>>>>>>>>>> >    smaller, that's probably too big.
>>>>>>>>>>
>>>>>>>>>> Hard to know without trying it, but it may well be the case that
>>>>>>>>>> wasm
>>>>>>>>>> builds will be smaller. The VM seems to be designed for small
>>>>>>>>>> code size
>>>>>>>>>> (sensibly, given its target use case). This obviously doesn't
>>>>>>>>>> apply to
>>>>>>>>>> the asm.js output.
>>>>>>>>>>
>>>>>>>>>> That said, I agree having a pure JS implementation is preferable.
>>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "Cap'n Proto" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to [email protected].
>>>>>>>>> Visit this group at https://groups.google.com/group/capnproto.
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>> Groups "Cap'n Proto" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>> send an email to [email protected].
>>>>>>>> Visit this group at https://groups.google.com/group/capnproto.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>>   Cheers,
>>>>>>>   --MarkM
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "Cap'n Proto" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected].
>>>>>>> Visit this group at https://groups.google.com/group/capnproto.
>>>>>>>
>>>>>>
>>>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Cap'n Proto" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> Visit this group at https://groups.google.com/group/capnproto.
>>>>
>>>
>>> --
>> You received this message because you are subscribed to the Google Groups
>> "Cap'n Proto" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> Visit this group at https://groups.google.com/group/capnproto.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at https://groups.google.com/group/capnproto.

Reply via email to