<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/arti-rpc-client-core/cbindgen.toml, branch arti-v1.2.6</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.6</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-v1.2.6'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2024-07-31T17:54:16Z</updated>
<entry>
<title>ffi: Clean up long lines and confusing expressions.</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-30T22:07:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=110bd661dd97d077d638a48eb53d1e4b9ae89948'/>
<id>urn:sha1:110bd661dd97d077d638a48eb53d1e4b9ae89948</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ffi: Clarify rules for *out pointers.</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-30T21:53:41Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=dcc57756a8f85ab6e97430911626a2ffcd101653'/>
<id>urn:sha1:dcc57756a8f85ab6e97430911626a2ffcd101653</id>
<content type='text'>
Except for *error_out, they are always set to NULL on error.
</content>
</entry>
<entry>
<title>ffi: Document on-error behavior of consuming and setting.</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-29T17:25:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5eab0076cb82228d0cfc2afdd0d98275200cb944'/>
<id>urn:sha1:5eab0076cb82228d0cfc2afdd0d98275200cb944</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Apply safety-related suggestions from Diziet</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-29T16:16:43Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=cb1b7b69583a67dcde48fb014d63db3376575412'/>
<id>urn:sha1:cb1b7b69583a67dcde48fb014d63db3376575412</id>
<content type='text'>
</content>
</entry>
<entry>
<title>RPC FFI: Write a bit more text for the C no-UB requirements.</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-28T17:25:51Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=246bd9f8f29ed85929d9c9c08928fd083bb6e48d'/>
<id>urn:sha1:246bd9f8f29ed85929d9c9c08928fd083bb6e48d</id>
<content type='text'>
I got this by reading over all the relevant Rust stdlib safety
documentation (now linked to in the macro definitions),
and making sure that the C no-UB text is sufficient to guarantee
that those requirements are met.
</content>
</entry>
<entry>
<title>Copy suggestions from .h file to cbindgen.toml</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-25T17:54:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=9ecf2e2401ce3a290c1c4950aa4e4bdbc76545f2'/>
<id>urn:sha1:9ecf2e2401ce3a290c1c4950aa4e4bdbc76545f2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>rpclib ffi: Grand identifier renaming</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-25T15:06:54Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=851cd0a7032b7bcc2689c36afed7a5ef1b820326'/>
<id>urn:sha1:851cd0a7032b7bcc2689c36afed7a5ef1b820326</id>
<content type='text'>
In brief: Everything now starts with ARTI_RPC, arti_rpc, or ArtiRpc.
</content>
</entry>
<entry>
<title>rpclib: Revise/condense "safety" docs for C functions</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-25T14:40:04Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=a9334b3cb2a60387ede0c3a83bb348ecd25f5cc9'/>
<id>urn:sha1:a9334b3cb2a60387ede0c3a83bb348ecd25f5cc9</id>
<content type='text'>
These documents are no longer called "safety".  They are now mostly
collected as a big list of "correctness requirements" at the start
of the cbindgen header.  Because of these requirements, most
functions no longer need their own "safety" sections.

I am explicitly using `#[allow(clippy::missing_safety_doc)]` on each
function, rather than adding a blanket exception:
  - There are other unsafe functions in this code, to which we
    wouldn't want an exception to apply.
  - Documenting the safety^W correctness requirements of a function
    is important enough to make sure that we aren't skipping out on
    it unintentionally.
</content>
</entry>
<entry>
<title>rpclib: Grand error refactoring: outparam, not thread-local</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-25T13:52:56Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6b1f266a8405d7c07b10e5cf2b153c575e6f2288'/>
<id>urn:sha1:6b1f266a8405d7c07b10e5cf2b153c575e6f2288</id>
<content type='text'>
Per discussion, we'd rather have an optional output parameter for error
objects rather than mess with thread-local variables.

This is possibly less convenient for direct usage from C,
but likely more convenient for wrapper functions in other languages.
</content>
</entry>
<entry>
<title>rpclib: _Sketch_ of string API.</title>
<updated>2024-07-31T17:54:16Z</updated>
<author>
<name>Nick Mathewson</name>
<email>nickm@torproject.org</email>
</author>
<published>2024-07-24T19:13:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=5265d6c1aa3c14ef09d908c9695eb1f003253d33'/>
<id>urn:sha1:5265d6c1aa3c14ef09d908c9695eb1f003253d33</id>
<content type='text'>
In this API, borrowed strings are `const char *`, and owned strings
are `ArtiRpcStr *`.  You can get the former from the latter with
`arti_rpc_str_get()`, which returns a `const char *` in hopes that
you will neither modify nor free() that `const char *`

(Note that there are no places where string ownership needs to be
passed into this library; and at present, there is only one case
where it is passed out.  I do not anticipate that we will need to do
intake of owned strings.  We will probably need to return these in a
few more cases as we add more API surface.)
</content>
</entry>
</feed>
