- Nov 07, 2012
-
-
Francois-Rene Rideau authored
Avoid SUBTYPEP during macroexpansion, it can be very expensive on SBCL. Actually recognize LIST-OF:LIST-OF constructs. In DEFINE-SCHEMA, don't nest the DEFMETHODs inside the LET, this also can cause SBCL's control flow analysis to blow up. Work done with Steven Spitz for QPX. Tested: (asdf:test-system :cl-protobufs)
-
- Aug 31, 2012
-
-
Scott McKay authored
Testing : precheckin --full --strict-errors Reviewer: Fare (please) JTB impact: No Ops impact: No Change to config : No Change to XML schema : No Change to DB schema : No Change to transport (timeouts, headers) : No Any change (or new use) of OAQs : No Change to inter-component transactions : No Depends on any other checkin / bug : No Tests that will verify: The CL-Protobufs tests Description: Add type aliases to CL-Protobufs. It's a Lisp-only feature that allows you define a new Protobufs type in terms of a Lisp type, a serializer and a deserializer. - Add a new model class, 'protobuf-type-alias'. - Extend schemas and messages so that they can hold a set of type aliases; add 'find-type-alias'. - Add 'define-type-alias'. - Factor out 'lisp-type-to-protobuf-type' from 'clos-type-to-protobuf-type', I need it for the 'define-type-alias' macro. - Fix the schema printer to print 'define-type-alias' for .lisp schemas, and to add a comment describing the type alias in .proto schemas. - Extend the wire format (de)serializer to know about type aliases; it just (de)serializes the Lisp type as the Protobufs primitive type using the provided (de)serializer functions. There's zero cost to this if you don't use aliases. - Update the optimized serialization generation. - Similarly extend the text format (de)serializer to know about type aliases. - Change an example to use a type alias for 'date'. - Update the documentation. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/libs/cl-protobufs@559861 f8382938-511b-0410-9cdd-bb47b084005c
-
- Aug 28, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/libs/cl-protobufs@559296 f8382938-511b-0410-9cdd-bb47b084005c
-
- Jun 28, 2012
-
-
Scott McKay authored
makes my CL-Stubby client code simpler. So, fill in the 'parent' slot for more than just messages. No cost at runtime, so WTH. Passes 'precheckin' with the new Protobufs unit tests in place. CL-Stubby tests pass in Google3 environment. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/libs/cl-protobufs@551616 f8382938-511b-0410-9cdd-bb47b084005c
-
- Jun 20, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/libs/cl-protobufs@550121 f8382938-511b-0410-9cdd-bb47b084005c
-
- Jun 13, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/libs/cl-protobufs@548806 f8382938-511b-0410-9cdd-bb47b084005c
-
- Jun 11, 2012
-
-
François-René Rideau authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/quux/protobufs@548441 f8382938-511b-0410-9cdd-bb47b084005c
-
- May 25, 2012
-
-
Scott McKay authored
- 'reinitialize-slot' didn't quite work. - Add a geodata example that uses vectors for repeated fields, which uncovered a bug in the optimized deserializers. - Importing the geodata CLOS classes revealed a bug in default handling when the default is provided only in 'defclass'. - Fix the knock-on bug in deserialization and the optimized (de)serialization caused the above. - Add tighter types in 'decode-uint32' and 'decode-uint64'. Passes 'precheckin'. Even with the new unit tests in place. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/quux/protobufs@545865 f8382938-511b-0410-9cdd-bb47b084005c
-
- May 23, 2012
-
-
Scott McKay authored
some additions to the macrology and to the (de)serialization code. No runtime performance cost to being able to have things both ways. Fix a bug that caused unprocessed options to get dropped. Improve some of the unit tests. Passes 'precheckin'. Even with the new unit tests in place. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/quux/protobufs@545367 f8382938-511b-0410-9cdd-bb47b084005c
-
- May 22, 2012
-
-
Scott McKay authored
- Behavior of ':default xxx'/[default=xxx] was not stable, so add an "empty default" marker and respect it during parsing and printing. - 'find-option' now returns a third "found-p" value, useful for the better handling of defaults. - Don't print slot readers/writers if they have the same name as what would be (silently) generated by the macrology. - Don't print 'import descriptor.proto' lines if there are no 'lisp_xxx' options in the generated code. - Add 'clear-field' to the API; add the functions it needs. - Be more careful about how :conc-name interacts with the generation of readers/writers. - When parsing from a .proto file, force the conc-name to be "" unless requested explicitly not to. This has the effect of generating readers/writers for all the fields of imported Protobufs messages, which I think is probably the desired behavior. - Add 'make-byte-vector' for convenience. Passes 'precheckin'. Even with the new unit tests in place. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/quux/protobufs@545177 f8382938-511b-0410-9cdd-bb47b084005c
-
- May 18, 2012
-
-
Scott McKay authored
- Don't generate warnings for anonymous enums, they're harmless and ubiquitous. - 'member' types where are all the members are keywords, is a symbol, which got converted to a Protobufs 'string'. Wrong. - If a field has an enum type, the (Lisp) default value should be treated as a keyword. - When parsing a .proto file or using the 'define-xxx' macros, any options that are handled specially should be trimmed from the options list so that they don't get printed twice. - Add 'remove-options' for the above. - Make the options printer be more type-aware. - Clean up examples.lisp - 'schemas-equal' can ignore the schema name/class if they're null. Passes 'precheckin'. Even with the new unit tests in place. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/quux/protobufs@544737 f8382938-511b-0410-9cdd-bb47b084005c
-
- May 16, 2012
-
-
Scott McKay authored
- 'define-proto' -> 'define-schema' - 'protobuf' (class name) -> 'protobuf-schema' - 'find-protobuf' -> 'find-schema' - 'parse-protobuf-from-file' -> 'parse-schema-from-file' - 'parse-protobuf-from-stream' -> 'parse-schema-from-file' - 'write-protobuf' -> 'write-schema' - 'write-protobuf-as' -> 'write-schema-as' - 'ensure-all-protobufs' -> 'ensure-all-protobufs' - 'ensure-protobuf' -> 'ensure-protobuf' - 'protobuf-upgradable' -> 'schema-upgradable' - 'protobufs-equal' -> 'schemas-equal' - 'generate-protobuf-schema-for-classes' -> 'generate-schema-for-classes' - 'write-protobuf-schema-for-classes' -> 'write-schema-for-classes' Update the Quake Protobufs schema generator to use the new names. The Protobufs documentation doesn't say so, but enums can be packed. - Update the wire-level protocol to (de)serialize packed enums. - Update the serialization code to use the new wire functions. Passes 'precheckin'. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/quux/protobufs@544299 f8382938-511b-0410-9cdd-bb47b084005c
-
Scott McKay authored
edge case problems, but it's good enough to continue the Stubby work. The critical .proto files (descriptor.proto, etc) all appear to work. More precise mapping of (mainly integer) types from .lisp to .proto files so that we can a truly exact model once we compile the .lisp file. It may not make any difference, but better safe than sorry. - Introduce Lisp type 'int32', 'int64', 'uint32', etc - Make Lisp->Protobufs recognize the new Lisp types - Make Protobufs schema printers recognize the new types Fix up the handling of imports and namespaces. - Always use truenames to record schemas - Fix typo in 'find-enum' that caused it never to search other schemas - Record the schema in *all-protobufs* at exactly the right time, and simplify 'make-load-form' methods A few tweaks to (de)serialization. - Make the bodies for empty messages not generate compiler warnings - Don't make ':packed t' be the default, the user has to say so - The user documentation doesn't say so, but booleans can be packed. Passes 'precheckin'. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/quux/protobufs@544222 f8382938-511b-0410-9cdd-bb47b084005c
-
- May 13, 2012
-
-
Scott McKay authored
completely and produces what appears to be a correct model. Next up, ensure (de)serialization works with this complex beast, which sets the stage for running the (very complete) Google tests. - Be much more careful to preserve type information in option values and field defaults, both in the macros and the parser. Make the slots in their model objects be untyped. - This makes it easier for the Proto and Lisp printers to produce exactly the right output, so fix them, too. Be extra careful with booleans. - Fix the printer to recognize more of the standard options so that their values get printed with the correct type. - Learn to parse more complicated numeric and integer constants. - Learn to parse escaped strings. - Learn to parse comma-separated options. - Learn to parse extensions with no 'to' specifier. - Fix the places that used (deprecated) :single instead of :float. - Proto enum values always map to Lisp keywords, so don't futz with packages for them. - Add some more doc strings. - Add some more examples-that-will-become-tests. Passes 'precheckin'. Passes my by-hand tests. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/quux/protobufs@543727 f8382938-511b-0410-9cdd-bb47b084005c
-
- May 11, 2012
-
-
Scott McKay authored
a few more bugs are showing up: - Add basic handling for namespaces - A typo in my own tests caused me to miss the fact that negative signed integers did not deserialize correctly (thanks, Shaun!) - Just dike out the rest of the Quux dependencies, since it's pretty clear non-QRes folks will be using it Passes 'precheckin'. Passes my by-hand tests. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/quux/protobufs@543610 f8382938-511b-0410-9cdd-bb47b084005c
-
- May 08, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/quux/protobufs@543004 f8382938-511b-0410-9cdd-bb47b084005c
-
Scott McKay authored
In particular, uninitialized optional boolean fields whose Lisp type is (or (member t nil) null) now work. Implement 'object-initialized-p' and 'slot-initialized-p' and their Python lookalikes, 'is-initialized' and 'has-field'. Update the documentation. Passes 'precheckin --full+', which makes sense since none of this is called in normal use yet. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/quux/protobufs@542953 f8382938-511b-0410-9cdd-bb47b084005c
-
- May 04, 2012
-
-
Scott McKay authored
to fully serialize a LegacyPnr aggregate. Fix 'skip-element' to ignore (deprecated) groups. Passes 'precheckin --full+', which makes sense since none of this is used in normal use yet. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/quux/protobufs@542375 f8382938-511b-0410-9cdd-bb47b084005c
-
- Apr 25, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/trunk/qres/lisp/quux/protobufs@541044 f8382938-511b-0410-9cdd-bb47b084005c
-
- Apr 24, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@540753 f8382938-511b-0410-9cdd-bb47b084005c
-
- Apr 23, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@540527 f8382938-511b-0410-9cdd-bb47b084005c
-
- Apr 18, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@539843 f8382938-511b-0410-9cdd-bb47b084005c
-
- Apr 12, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@538929 f8382938-511b-0410-9cdd-bb47b084005c
-
- Apr 11, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@538769 f8382938-511b-0410-9cdd-bb47b084005c
-
- Apr 03, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@537485 f8382938-511b-0410-9cdd-bb47b084005c
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@537349 f8382938-511b-0410-9cdd-bb47b084005c
-
- Apr 02, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@537186 f8382938-511b-0410-9cdd-bb47b084005c
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@537125 f8382938-511b-0410-9cdd-bb47b084005c
-
- Mar 22, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@535612 f8382938-511b-0410-9cdd-bb47b084005c
-
- Mar 21, 2012
-
-
Scott McKay authored
and 'proto:define-enum' can be used to fully model existing Lisp classes and types. This will make it much easier to reuse QRes objects for its Protobufs API. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@535300 f8382938-511b-0410-9cdd-bb47b084005c
-
- Mar 20, 2012
-
-
Scott McKay authored
- The default syntax should be "proto2" - Always emit the syntax in .proto files - Parse syntax lines (how did I miss this?) - .proto package names can't contain dash chars; use underscore git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@534966 f8382938-511b-0410-9cdd-bb47b084005c
-
- Mar 16, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@534504 f8382938-511b-0410-9cdd-bb47b084005c
-
- Mar 15, 2012
-
-
Scott McKay authored
git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@534238 f8382938-511b-0410-9cdd-bb47b084005c
-
- Mar 13, 2012
-
-
Scott McKay authored
The .proto parser should try to put symbols in the right package. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@533822 f8382938-511b-0410-9cdd-bb47b084005c
-
- Mar 12, 2012
-
-
Scott McKay authored
Rename a few things to make the code a bit easier to read. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@533572 f8382938-511b-0410-9cdd-bb47b084005c
-
- Mar 07, 2012
-
-
Scott McKay authored
Make 'print-text-format' be a generic function. Make 'write-protobuf[-as]' specialize on a formatting type, i.e., :proto or :lisp. Add a Lisp printer, this so that the upcoming parser can read .proto files and generate .lisp files. Add lots and lots of doc strings. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@532695 f8382938-511b-0410-9cdd-bb47b084005c
-
- Mar 06, 2012
-
-
Scott McKay authored
Make it possible to deserialize objects that were serialized from a previous, compatibile version of a message. Add 'protobuf-upgradable' predicate, which returns true iff a new version of a .proto schema is compatible with an older version. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@532501 f8382938-511b-0410-9cdd-bb47b084005c
-
Scott McKay authored
Figure out how to open-source this later. git-svn-id: http://svn.internal.itasoftware.com/svn/ita/branches/qres/swm/borgify-1/qres/lisp/quux/protobufs@532395 f8382938-511b-0410-9cdd-bb47b084005c
-