<geofft> I _think_ that Child actually is Send, yes :)
<geofft> I'm just trying to wrap my head around the concept of what happens if I have a thing that isn't
<geofft> (for instance, if I care about thread-directed signals, I might want a wrapper type around Child that explicitly isn't Send)
<dwrensha> hm. I think this is a problem that "usually" won't come up. But in your case it might be a problem.
<geofft> I could just bet that it isn't going to seriously affect me until after GJ!capnproto-rust exists
<geofft> (and if I lose that bet, start helping make GJ!capnproto-rust)
<geofft> > thread '<main>' panicked at 'broken cap factory is unimplemented', /home/geofft/src/rust/capnproto-rust/src/private/layout.rs:1602
<geofft> that's like progress!
<geofft> ah, my fault for not actually returning my return value
<geofft> looks like Child is in fact Send + 'static, so this compiles. thanks all for the help :)
<dwrensha> ok, I've got my local dev server in a state where trying to do anything nontrivial results in the Disembargo error
<dwrensha> I'll be poking at it. If anyone has any theories they'd like to test, let me know.
<dwrensha> hm. Looks like we always git this error first: "capnp/rpc.c++:122: info: returning failure over rpc; exception = capnp/rpc.c++:2301: failed: Pipeline call on a request that returned no capabilities or was already closed."
<dwrensha> s/git/get/
gopar has joined #sandstorm
<dwrensha> after restarting the frontend, things seem to be back to normal
<geofft> in a 2-party RPC, can I compare two interfaces/capabilities from the same node for equality?
<dwrensha> not in capnp-rpc-rust
<dwrensha> As far as I know, you can't in capnproto-c++ either, yet.
<geofft> :(
<dwrensha> you could perhaps add a method getUniqueId(),
<geofft> sure. I want a "please stop sending me notifications" method, so I could just assign a numeric ID to "me"
<dwrensha> I just got the bug to happen on this commit of capnproto: https://github.com/sandstorm-io/capnproto/commit/8f614cc4194a58cccbf72d51e2d232da27d05d2b
<dwrensha> so it wasn't last night's push to capnproto that broke things
jadewang has joined #sandstorm
jadewang has quit [Remote host closed the connection]
gopar has quit [Ping timeout: 244 seconds]
<dwrensha> kentonv: it's looking likely to me that this commit is related to the Disembargo bug we're seeing: https://github.com/sandstorm-io/capnproto/commit/6cf2b5a798af0300ae494b3b1530c276d5afdbf5
<dwrensha> running on master with only those 4 lines reverted, I have been unable to get the Disembargo crash to happen
jadewang has joined #sandstorm
<kentonv> geofft: correctly and securely comparing remote capabilities for equality is surprisingly hard!
<kentonv> geofft: That said, most of the hardness is in corner cases. In the common case it ought to be easy and we ought to support it.
<kentonv> dwrensha: Ah hah... That change fixed a bug where making pipeline calls on a capability that turned out to be a null pointer would kill the connection. I bet there's a deeper bug involving sending disembargo messages to such capabilities.
<kentonv> dwrensha: repo'd in unit test.
<geofft> kentonv: yeah, this is explicitly for the case of one party talking to the same other party
<geofft> probably there's a better design pattern for this, but I want to say "Please start doing callbacks" and "OK, stop doing callbacks"
<kentonv> "please start doing callbacks" should return a "handle" object. Drop the handle to say "stop doing callbacks".
<geofft> what is dropping a handle?
<kentonv> thus the subscription is controlled by RAII
<geofft> in the capnp-rpc sense (not in the local C++/Rust app sense)
<kentonv> a "handle" is a term we made up for a capability that has no methods and exists solely for its destructor
<kentonv> when all references to the handle go out of scope, something happens
<kentonv> cap'n proto has deterministic lifecycle management in the protocol, so you can depend on that
<geofft> oh, I didn't realize that the RPC system tracked capabilities going out of scope
<geofft> that does simplify/improve things.
<geofft> and that it has destructors
<kentonv> yep
<kentonv> I've found it to be an essential feature
<geofft> I'd imagine!
<kentonv> and it makes me hate using Cap'n Proto in Javascript where I have to explicitly close() things since the GC is non-deterministic
<geofft> I don't see it mentioned on capnproto.org though :)
<geofft> or I can't read, which is certainly possible
<kentonv> I think it's in there somewhere, but perhaps not called out as clearly as it should be
jadewang has quit [Remote host closed the connection]
erikoeurch has joined #sandstorm
jadewang has joined #sandstorm
<erikoeurch> When I use Oasis, there's always the security notice icon in the url bar of Firefox saying there is no identity information supplied and that the connection is not fully secure
<kentonv> erikoeurch: can you get a screenshot?
<kentonv> "no identity information" is expected (it's just a DV cert), but "not fully secure" is unexpected
<erikoeurch> tricky to screenshot it because it closes on any keyboard stroke or mouse click, but here's the text: "This website does not supply identity information.
<erikoeurch> The connection to this website is not fully secure because it contains unencrypted elements (such as images) or the encryption is not strong enough."
<kentonv> does it say this when you first load the site, before opening any grains?
<erikoeurch> ah, no, it seems to be ok when first loading
<erikoeurch> so I guess it's a problem with grains
<kentonv> which app?
<erikoeurch> Paperwork
<erikoeurch> but perhaps it's just what I've put in my notebook
<erikoeurch> copy-pasting stuff from websites into Paperwork seems to keep links and everything
<erikoeurch> maybe images are fetched from external sources because of that
<kentonv> that would make sense
<kentonv> well, I'm off to bed.
<kentonv> incidentally, someday we're no longer going to allow embedding external resources. I guess you might have some broken images then. :/
jadewang has quit [Remote host closed the connection]
<erikoeurch> thanks for the heads-up -- will think of a better solution for my archiving :)
larjona has joined #sandstorm
mort___ has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 240 seconds]
erikoeurch has quit [Ping timeout: 244 seconds]
mort___ has quit [Quit: Leaving.]
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 265 seconds]
mort___ has joined #sandstorm
jadewang has joined #sandstorm
jadewang has quit [Ping timeout: 246 seconds]
decipherstatic has quit [Remote host closed the connection]
decipherstatic has joined #sandstorm
<geofft> is there a tool that checks if a change to a .capnp file is backwards-compatible?
<geofft> (so I can stick it in a pre-commit hook or something?)
<dwrensha> geofft: it's on the wish list https://capnproto.org/roadmap.html#tools
<geofft> shiny!
<geofft> ooh the JSON-over-HTTP proxy would be pretty nice too.
mort___ has quit [Quit: Leaving.]
kentonv has quit [Ping timeout: 256 seconds]
kentonv has joined #sandstorm
aldeka_ has joined #sandstorm
ocdtrekkie_ has joined #sandstorm
kamalmarhubi has quit []
kamalmarhubi has joined #sandstorm
ocdtrekkie_ has quit [Remote host closed the connection]
aldeka_ has quit [Remote host closed the connection]
erikoeurch has joined #sandstorm
bb010g has quit []
bb010g has joined #sandstorm
NOTevil has joined #sandstorm
jadewang has joined #sandstorm
achernya has quit [Ping timeout: 244 seconds]
* paulproteus waves good morning.
achernya has joined #sandstorm
larjona has quit [Remote host closed the connection]
achernya_ has joined #sandstorm
achernya has quit [Ping timeout: 244 seconds]
larjona has joined #sandstorm
jadewang has quit [Remote host closed the connection]
<larjona> paulproteus I got vagrant-spk up running :) Going on with the tutorial...
jadewang has joined #sandstorm
<paulproteus> larjona: Awesome! (-:
erikoeurch has quit [Quit: Leaving]
<dwrensha> paulproteus: do you know what's up with this broken link? https://twitter.com/SandstormIO/status/624240865930817541
<paulproteus> Buffer appears to have joined three URLs I typed in separately into two URLs.
<paulproteus> The first URL is therefore the first *two* URLs concatenated.
<paulproteus> I guess I'll delete the sad broken Tweet.
<paulproteus> Oh I'm not sure I know how.
larjona has quit [Quit: Konversation terminated!]
decipherstatic has quit [Quit: No Ping reply in 180 seconds.]
decipherstatic has joined #sandstorm
NOTevil has quit [Quit: ...]
<jadewang> I noticed a traffic spike to the sandstorm frontpage
<jadewang> and then noticed that simi_ posted a link in an HN comment
<jadewang> I have no point, I just want to say thanks to simi_ from Lavaboom
<jadewang> bd
neynah has joined #sandstorm
mort___ has joined #sandstorm
neynah has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
<geofft> dwrensha: why does foo_list::Reader::get(self, index: u32) take an owning self, instead of an &self?
<geofft> how am I supposed to get multiple things out of it :)
<dwrensha> the Reader should be Copy
<dwrensha> so you should be able to use it afterwards
<dwrensha> the Builder is not Copy
<dwrensha> so you need to use the borrow() method
<geofft> oh hrm. yeah that was my followup question, how does index_move() work.
<geofft> ok, so I'm misinterpreting this error message
<geofft> aha, "note: `commands` was previously moved here because it has type `capnp::interface_list::Reader<'_, flatbush::flatbush_capnp::command::Client>`, which is non-copyable"
<geofft> ok, so I implemented interface_list::Reader wrong.
<geofft> oh, interfaces' Client types are Clone but not Copy, so I need to stick an explicit .clone() in there
isd has joined #sandstorm
<dwrensha> Clients are Clone because you need to increase the reference count
<dwrensha> jparyani: I guess that https://github.com/sandstorm-io/sandstorm/pull/625 means the admin page won't get stuck on "Loading..." anymore
<paulproteus> You knew about this bug!!??
<paulproteus> : D
preilly has quit [Ping timeout: 256 seconds]
preilly has joined #sandstorm
preilly is now known as Guest20908