]>
asedeno.scripts.mit.edu Git - cl-protobufs.git/log
Alejandro R Sedeño [Mon, 3 Jun 2013 21:26:46 +0000 (17:26 -0400)]
Merge branch 'int32-serialization'
Alejandro R Sedeño [Mon, 29 Apr 2013 20:08:19 +0000 (16:08 -0400)]
wire-format: Rework SERIALIZE-PACKED
Alejandro R Sedeño [Mon, 29 Apr 2013 20:04:59 +0000 (16:04 -0400)]
wire-format: More type declaration and LOGBITP usage
Alejandro R Sedeño [Mon, 29 Apr 2013 20:04:00 +0000 (16:04 -0400)]
wire-format: More type declarations
Alejandro R Sedeño [Mon, 29 Apr 2013 18:36:31 +0000 (14:36 -0400)]
wire-format: Start using LOGBITP and ILOGBITP
Alejandro R Sedeño [Mon, 29 Apr 2013 18:35:31 +0000 (14:35 -0400)]
utilities: Introduce ILOGBITP, a LOGBITP for FIXNUMS
Alejandro R Sedeño [Fri, 26 Apr 2013 15:49:27 +0000 (11:49 -0400)]
wire-format: BABEL:STRING-TO-OCTETS gives us a SIMPLE-ARRAY
Alejandro R Sedeño [Fri, 26 Apr 2013 15:49:03 +0000 (11:49 -0400)]
wire-format: An ENCODE-INT that doesn't cons
Alejandro R Sedeño [Thu, 25 Apr 2013 18:34:13 +0000 (14:34 -0400)]
wire-format: A more efficient VARINT-LENGTH
Alejandro R Sedeño [Fri, 5 Apr 2013 05:23:01 +0000 (01:23 -0400)]
wire-format: Drop unnecessary clamping for callers of ENCODE-UINT functions
Alejandro R Sedeño [Fri, 5 Apr 2013 05:21:16 +0000 (01:21 -0400)]
wire-format: Generated ENCODE-UINT methods now clamp input size
Alejandro R Sedeño [Fri, 5 Apr 2013 05:05:08 +0000 (01:05 -0400)]
wire-format: Eliminate LENGTH32, LENGTH64, DECODE-INT32, and DECODE-INT64
Alejandro R Sedeño [Fri, 5 Apr 2013 05:04:26 +0000 (01:04 -0400)]
wire-format: Start using ENCODE-INT and DECODE-INT
Alejandro R Sedeño [Fri, 5 Apr 2013 04:56:50 +0000 (00:56 -0400)]
wire-format: Introduce ENCODE-INT and DECODE-INT
Alejandro R Sedeño [Fri, 5 Apr 2013 05:01:37 +0000 (01:01 -0400)]
wire-format: Replace LENGTH32 and LENGTH64 with VARINT-LENGTH
Alejandro R Sedeño [Fri, 5 Apr 2013 04:54:39 +0000 (00:54 -0400)]
wire-format: Introduce VARINT-LENGTH to replace LENGTH32 and LENGTH64
Alejandro R Sedeño [Fri, 5 Apr 2013 00:03:01 +0000 (20:03 -0400)]
tests: Fix tests for serialization of negative :int32 values
Alejandro R Sedeño [Mon, 27 May 2013 22:13:10 +0000 (18:13 -0400)]
define-proto: Fix a bug in the brach I just merged
Alejandro R Sedeño [Mon, 27 May 2013 21:27:46 +0000 (17:27 -0400)]
Merge branch 'refactor-define-proto'
Alejandro R Sedeño [Tue, 16 Apr 2013 22:54:50 +0000 (18:54 -0400)]
define-proto: refactor DEFINE-EXTEND
Alejandro R Sedeño [Tue, 16 Apr 2013 20:00:31 +0000 (16:00 -0400)]
define-proto: factor common code out of DEFINE-MESSAGE and DEFINE-GROUP
Alejandro R Sedeño [Mon, 15 Apr 2013 16:59:13 +0000 (12:59 -0400)]
define-proto: update docstrings to add WRITER keyword arg
Scott McKay [Sat, 6 Apr 2013 07:13:40 +0000 (12:43 +0530)]
Signal 'serialization-error' if there are any hard errors while (de)serializing
Scott McKay [Tue, 2 Apr 2013 12:06:14 +0000 (17:36 +0530)]
Fooey, some versions of ASDF don't export 'absolute-pathname-p'
Scott McKay [Mon, 1 Apr 2013 08:42:44 +0000 (14:12 +0530)]
Make it a bit easier to debug .proto files interactively
Alejandro R Sedeño [Wed, 20 Mar 2013 03:39:36 +0000 (23:39 -0400)]
Merge branch 'import-by-symbol'
Alejandro R Sedeño [Wed, 20 Mar 2013 02:42:28 +0000 (22:42 -0400)]
Test pure-lisp symbol-based import
Alejandro R Sedeño [Tue, 19 Mar 2013 20:28:41 +0000 (16:28 -0400)]
Allow import by symbol to support pure-lisp protobuf definitions
Alejandro R Sedeño [Sat, 16 Mar 2013 17:45:42 +0000 (13:45 -0400)]
Merge branch 'empty-message-serialization'
Alejandro R Sedeño [Sat, 16 Mar 2013 06:12:30 +0000 (02:12 -0400)]
Add size caching to object-size methods generated for messages without fields
Fixes the bug tickled by the tests in this commit's parent.
Steven Spitz [Fri, 15 Mar 2013 17:57:52 +0000 (13:57 -0400)]
Add tests for serializing emtpy messages in various contexts
These tests tickle an error serializing emtpy messages as fields of
other messages when using speed-optimized serializers.
Alejandro R Sedeño [Fri, 8 Mar 2013 01:33:09 +0000 (20:33 -0500)]
asdf-support: source-file-explicit-type, not source-explicit-file-type
Alejandro R Sedeño [Thu, 7 Mar 2013 23:42:35 +0000 (18:42 -0500)]
Merge branches 'asdf-component-type-consistency' and 'record-non-import-paths'
Alejandro R Sedeño [Thu, 7 Mar 2013 22:40:59 +0000 (17:40 -0500)]
model-classes: Don't look at *COMPILE-FILE-PATH* when recording schemas by pathname
Alejandro R Sedeño [Thu, 7 Mar 2013 22:39:51 +0000 (17:39 -0500)]
asdf-support: note which proto file we're loading a fasl for
This ensures that all pathnames for all .proto files we load get put
in PROTO-IMPL::*ALL-SCHEMAS*, not just those we import.
Alejandro R Sedeño [Thu, 7 Mar 2013 18:40:03 +0000 (13:40 -0500)]
asdf-support: simplify do-process-import internals
Don't override file extension for imports; assume the string that was
used to form the pathname is accurate. This makes base-path and
proto-file the same, so fold them both into proto-file.
Drop bogus checks for type "proto".
Alejandro R Sedeño [Thu, 7 Mar 2013 18:30:31 +0000 (13:30 -0500)]
asdf-support: simplify do-process-import calling
Alejandro R Sedeño [Thu, 7 Mar 2013 17:22:57 +0000 (12:22 -0500)]
asdf-support: hardcode "proto" in fewer places
Alejandro R Sedeño [Thu, 7 Mar 2013 21:22:15 +0000 (16:22 -0500)]
qtest: Make sure we end on a fresh line after running tests
Alejandro R Sedeño [Wed, 6 Mar 2013 05:32:06 +0000 (00:32 -0500)]
Merge branch 'portability'
Alejandro R Sedeño [Wed, 6 Mar 2013 05:24:06 +0000 (00:24 -0500)]
Merge branch 'type-expansion' into portability
Alejandro R Sedeño [Wed, 6 Mar 2013 04:42:05 +0000 (23:42 -0500)]
Merge branch 'rework-schema-import-and-lookup'
Alejandro R Sedeño [Tue, 5 Mar 2013 22:32:05 +0000 (17:32 -0500)]
Change how protobuf schemas and classes are recorded and found
* FIND-SCHEMA no longer works on a string or keyword. Both of these
were based on the PATHNAME-NAME of the protobuf, which has a high
probability of collision. (e.g., common.proto -> "COMMON", :COMMON)
Instead, look up schemas based on package and name. For instance,
the protobuf foo.proto, declaring "package FooPackage;", can be
found with: (FIND-SCHEMA 'FOO-PACKAGE::FOO)
* Pathname-based schema lookup no longer ignores file type.
Alejandro R Sedeño [Tue, 5 Mar 2013 22:18:35 +0000 (17:18 -0500)]
asdf-support: rework import again
* DO-PROCESS-IMPORT is now responsible for deciding whether or not to
process an import. It does so by searching for the .proto to be
imported, and upon finding it, checks to see if we alredy have a
schema for that pathname. Additionally, it now returns the pathname.
* PROCESS-IMPORTS and PROCESS-IMPORTS-FROM-FILE now defer the work of
figuring out whether or not an import has been done to
DO-PROCESS-IMPORT. PROCESS-IMPORTS uses the return value of
DO-PROCESS-IMPORT to update the PROTO-IMPORTED-SCHEMAS of the schema
being processed.
Alejandro R Sedeño [Tue, 5 Mar 2013 19:50:29 +0000 (14:50 -0500)]
asdf-support: more filename mangling
New functions:
* ASDF::PROTOBUF-MANGLE-NAME: Takes a pathname, returns a string to be
used as a filename that represents the original path.
e.g., #P"/foo/bar/baz.quux" becomes "foo-bar-baz-quux"
* ASDF::PROTOBUF-LISPIZE-PATHNAME: Takes a pathname, returns a new
pathname with the name mangled as described above, and with a lisp
type.
Alejandro R Sedeño [Tue, 5 Mar 2013 20:52:18 +0000 (15:52 -0500)]
According to protoc, this file was bogus; now it works
Alejandro R Sedeño [Sun, 3 Mar 2013 07:39:10 +0000 (02:39 -0500)]
utilities.lisp: This is how ABCL and XCL do type expansion
Alejandro R Sedeño [Sun, 3 Mar 2013 05:10:41 +0000 (00:10 -0500)]
utilities.lisp: This is how ECL and MKCL do type expansion
Alejandro R Sedeño [Sun, 3 Mar 2013 05:09:09 +0000 (00:09 -0500)]
Make (declare (values ...)) for rpc methods opt-in, rather than opt-out
So far only CCL appears to consistently handle this.
Alejandro R Sedeño [Sun, 3 Mar 2013 05:08:39 +0000 (00:08 -0500)]
pull in trivial-garbage for TG:MAKE-WEAK-HASH-TABLE
Scott McKay [Sun, 3 Mar 2013 09:52:37 +0000 (15:22 +0530)]
In the spirit of making CL-Protobufs represent exemplary modern Common Lisp code:
- Use 'defparameter' instead of 'defvar' where appropriate.
- Fix 'defvar' doc strings to distinguish between globals and "thread locals".
- Avoid using 'nconc'. introduce a new 'appendf' macro instead.
- Add a comment lamenting the fact that exporting something like 'proto-options'
also exports the writer '(setf proto-options)'. Fixed in Dylan.
Scott McKay [Fri, 1 Mar 2013 05:36:12 +0000 (11:06 +0530)]
Dammit, forgot to save this file
Scott McKay [Fri, 1 Mar 2013 05:31:55 +0000 (11:01 +0530)]
Add utilities 'make-option' and 'add-option' to make new work simpler
Scott McKay [Thu, 28 Feb 2013 08:24:04 +0000 (13:54 +0530)]
Update copyright notices
Scott McKay [Thu, 28 Feb 2013 06:42:33 +0000 (12:12 +0530)]
Implement in-object size caching, compile-time conditionalized on #+use-base-protobuf-message
Scott McKay [Thu, 28 Feb 2013 06:19:58 +0000 (11:49 +0530)]
A few whitespace changes
Alejandro R Sedeño [Thu, 28 Feb 2013 03:03:43 +0000 (22:03 -0500)]
asdf-support: decorate names of .lisp files generated from .proto files.
This prevents geodata.proto's FASL from being clobbered by
geodata.lisp's FASL. Before both were geodata.fasl, now the former is
geodata.proto.fasl.
This is generally a good idea.
Alejandro R Sedeño [Thu, 28 Feb 2013 01:43:07 +0000 (20:43 -0500)]
asdf-support: search path should be based on proto-file, not lisp-file
Alejandro R Sedeño [Wed, 27 Feb 2013 23:41:30 +0000 (18:41 -0500)]
Merge branch 'asdf3'
Alejandro R Sedeño [Wed, 27 Feb 2013 23:28:08 +0000 (18:28 -0500)]
asdf-support: Use ASDF3 CHECK-LISP-COMPILE-RESULTS when relevant
Alejandro R Sedeño [Thu, 21 Feb 2013 03:56:22 +0000 (22:56 -0500)]
asdf-support: match asdf platform-specific compile options
Alejandro R Sedeño [Tue, 19 Feb 2013 18:23:09 +0000 (13:23 -0500)]
asdf-support: support for ASDF3
Alejandro R Sedeño [Wed, 27 Feb 2013 04:14:57 +0000 (23:14 -0500)]
Merge branch 'split-package-rpc'
Alejandro R Sedeño [Tue, 26 Feb 2013 21:04:46 +0000 (16:04 -0500)]
Update documentation
Alejandro R Sedeño [Tue, 26 Feb 2013 19:18:56 +0000 (14:18 -0500)]
Decorate service method stubs and intern them in a different package
The client-side stub is now CALL-FOO
The server-side stub is now FOO-IMPL
They are interned in package XXX-RPC, where XXX is the name of the
package being used by the rest of the schema.
Alejandro R Sedeño [Thu, 21 Feb 2013 20:01:55 +0000 (15:01 -0500)]
fixup:
6ac9510 add missing close-paren
Alejandro R Sedeño [Wed, 20 Feb 2013 17:54:53 +0000 (12:54 -0500)]
parser.lisp: tweak method parsing
Don't assume that returning no options meant there was no body in the
method declaration. An empty body may have been there
instead. Distinguish that scenario with a second return value from
PARSE-PROTO-METHOD-OPTIONS and use that value in PARSE-PROTO-METHOD
determine whether or not to look for a semicolon.
Alejandro R Sedeño [Fri, 15 Feb 2013 23:13:13 +0000 (18:13 -0500)]
Don't assume 32-bits integers fit in a fixnum
Follow up to the last commit; I should really know better.
Alejandro R Sedeño [Fri, 15 Feb 2013 18:08:55 +0000 (13:08 -0500)]
Fix double creation for ccl when high bits are negative
Alejandro R Sedeño [Tue, 12 Feb 2013 00:54:59 +0000 (19:54 -0500)]
printer.lisp: better preserve proto names
[proto -> lisp]
1) Do case-sensitive comparisons between the name we have and the name
we would derive from #'CLASS-NAME->PROTO. Case matters.
2) Do not downcase :name options when we're outputting them to a .lisp
file. Again, case matters.
3) Preserve names for PROTOBUF-SERVICEs, as necessary.
4) Preserve names, input-names, and output-names for PROTOBUF-METHODs,
as necessary.
Alejandro R Sedeño [Tue, 12 Feb 2013 17:56:20 +0000 (12:56 -0500)]
unit tests for case preservation
Alejandro R Sedeño [Mon, 11 Feb 2013 23:32:17 +0000 (18:32 -0500)]
printer.lisp: consume more arguments when appropriate
Here we should have been consuming both the thing we would be printing
and the indentation we would use on the next line, but in the case
where the printed thing was nil, we would only consume it, and not the
subsequent indentation. It worked out here, but the mistake could only
be made once, and only at the end.
Alejandro R Sedeño [Mon, 11 Feb 2013 23:31:34 +0000 (18:31 -0500)]
printer.lisp: ~*~* -> ~2*
Alejandro R Sedeño [Mon, 11 Feb 2013 18:23:15 +0000 (13:23 -0500)]
printer.lisp: don't export symbols not in our package
Alejandro R Sedeño [Fri, 4 Jan 2013 20:32:23 +0000 (15:32 -0500)]
parser.lisp: set up fall-back package names
Robert Brown's protobuf package falls back on the java_package option
as the lisp package name when there isn't a package declaration in the
schema. Emulate that behavior for better compatibility between code
generated by the packages.
Alejandro R Sedeño [Fri, 4 Jan 2013 20:32:04 +0000 (15:32 -0500)]
printer.lisp: Collect exports from messages defned in messages
Alejandro R Sedeño [Fri, 4 Jan 2013 20:31:34 +0000 (15:31 -0500)]
printer.lisp: qualify generated UNLESS, just like the rest of the COMMON-LISP functions
Alejandro R Sedeño [Fri, 4 Jan 2013 20:30:55 +0000 (15:30 -0500)]
printer.lisp: drop trailing whitespace on generated package definition
Alejandro R Sedeño [Thu, 3 Jan 2013 20:48:01 +0000 (15:48 -0500)]
Fix typo in comment
Alejandro R Sedeño [Thu, 3 Jan 2013 20:33:17 +0000 (15:33 -0500)]
Don't export RUN-ALL-TESTS if we have test-tools, as it won't be defined.
Alejandro R Sedeño [Thu, 3 Jan 2013 18:46:36 +0000 (13:46 -0500)]
generalize CCL fasl ignores
Alejandro R Sedeño [Mon, 17 Dec 2012 18:47:55 +0000 (13:47 -0500)]
Generate integer encoders and decoders with thought towards the size of a FIXNUM
Rather than hard-code assumptions about the size of a FIXNUM, check
the size of FIXNUM at compile time and generate code appropriate for
the number of bits we're working with, with FIXNUM optimizations
in place if appropriate.
Includes some changes from swmckay@gmail.com.
Alejandro R Sedeño [Thu, 3 Jan 2013 01:09:02 +0000 (20:09 -0500)]
integer encoding/decoding tests
Scott McKay [Thu, 3 Jan 2013 17:08:03 +0000 (12:08 -0500)]
Add a few more fasl types
Scott McKay [Thu, 3 Jan 2013 17:07:21 +0000 (12:07 -0500)]
Merge branch 'master' of git://common-lisp.net/projects/qitab/cl-protobufs
Conflicts:
tests/qtest.lisp
Scott McKay [Thu, 3 Jan 2013 16:56:08 +0000 (11:56 -0500)]
Fix some printers, etc
Paul Weiss [Wed, 2 Jan 2013 17:00:53 +0000 (12:00 -0500)]
define-proto: collect DEFTYPE forms before other forms
Signed-off-by: Alejandro R Sedeño <asedeno@google.com>
Alejandro R Sedeño [Mon, 17 Dec 2012 19:50:37 +0000 (14:50 -0500)]
Tweak definition of ASSERT-EQUAL
Alejandro R Sedeño [Mon, 17 Dec 2012 19:33:00 +0000 (14:33 -0500)]
Merge branches 'extend-logic' and 'type-aliases'
Alejandro R Sedeño [Mon, 17 Dec 2012 00:14:36 +0000 (19:14 -0500)]
The parent of an extended message is the context in which it was defined
Alejandro R Sedeño [Sun, 16 Dec 2012 23:01:45 +0000 (18:01 -0500)]
When extending, find extended message by type rather than unqualified name
Alejandro R Sedeño [Fri, 14 Dec 2012 19:05:29 +0000 (14:05 -0500)]
Test various extend scenario
Inspired by:
https://developers.google.com/protocol-buffers/docs/proto#extensions
Nested Extensions:
"A common pattern is to define extensions inside the scope of the
extension's field type – for example, here's an extension to Foo of
type Baz, where the extension is defined as part of Baz"
Alejandro R Sedeño [Fri, 14 Dec 2012 23:24:05 +0000 (18:24 -0500)]
honor type-aliases when looking up types
Alejandro R Sedeño [Fri, 14 Dec 2012 23:23:36 +0000 (18:23 -0500)]
Add a test for type-aliases
Alejandro R Sedeño [Sat, 15 Dec 2012 02:18:13 +0000 (21:18 -0500)]
Muffle style warnings when generating methods in optimized serialization tests
Alejandro R Sedeño [Sun, 16 Dec 2012 23:01:17 +0000 (18:01 -0500)]
Fix PRINT-OBJECT method for protobuf-extension to actually print range
Alejandro R Sedeño [Sat, 15 Dec 2012 02:21:53 +0000 (21:21 -0500)]
gitignore fasls
Alejandro R Sedeño [Sat, 15 Dec 2012 01:42:22 +0000 (20:42 -0500)]
Don't use the expanded type if it's a protobuf enum
This fixes the unit test that broke in the previous commit
Alejandro R Sedeño [Wed, 12 Dec 2012 18:40:59 +0000 (13:40 -0500)]
Merge branch 'type-expansion'
Alejandro R Sedeño [Mon, 10 Dec 2012 22:23:48 +0000 (17:23 -0500)]
expand types in clos transformation when necessary