Skip to content
  1. Mar 17, 2017
  2. Oct 02, 2016
    • Francois-Rene Rideau's avatar
      Drop support for ASDF2, gain support for future ASDF 3.1.8 or so · bb5c018d
      Francois-Rene Rideau authored
      Use perform-lisp-compilation and drop support for ASDF2.
      asdf-support was full of things only meant to support the long gone ASDF2,
      including a bad old copy of the perform method for compile-op, instead of
      using perform-lisp-compilation as should be used in ASDF3. This probably
      already made cl-protobufs not work in some corner cases, but would have made it
      stop working at all when compile-op-flags will be dropped from ASDF in 3.1.x
      (for x > 7).
      
      Also minor cleanups of asd files.
      bb5c018d
  3. May 23, 2015
  4. Apr 02, 2013
  5. Apr 01, 2013
  6. Mar 20, 2013
  7. Mar 08, 2013
  8. Mar 07, 2013
  9. Mar 06, 2013
    • Alejandro R Sedeño's avatar
      asdf-support: rework import again · c7d626fa
      Alejandro R Sedeño authored
      * 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.
      c7d626fa
    • Alejandro R Sedeño's avatar
      asdf-support: more filename mangling · 309d03e9
      Alejandro R Sedeño authored
      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.
      309d03e9
  10. Mar 03, 2013
    • Scott McKay's avatar
      In the spirit of making CL-Protobufs represent exemplary modern Common Lisp code: · 7ed71234
      Scott McKay authored
       - 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.
      7ed71234
  11. Feb 28, 2013
  12. Feb 27, 2013
  13. Dec 06, 2012
  14. Dec 05, 2012
  15. Dec 04, 2012
    • Francois-Rene Rideau's avatar
      Add a proper input-files method for proto-to-lisp, · aef1afa3
      Francois-Rene Rideau authored
      which shall fix the issue that causes of these actions never being operation-done-p.
      However this does NOT handle recursive import dependencies,
      which requires further work.
      
      Tested: QRes doesn't always recompile the proto and all dependees anymore.
      Reviewer: asedeno
      aef1afa3
  16. Nov 27, 2012
    • Ben Wagner's avatar
      fix cross-package and forward references in cl-protobufs · 8520d6ef
      Ben Wagner authored
      * Previously, if a field in a .proto file referenced a message in
        another proto file using a different lisp package, the cl-protobufs
        library would silently fail to serialize the field.  A similar
        problem would occur if a message defined later in the file used the
        lisp_name option to override the name generated by cl-protobufs.
        This change fixes these issues and others.
      * Add conditions that are signaled when encountering an undefined
        type.
      * Delay assigning lisp classes/types to fields and methods until all
        possible forward references have been parsed.
         * This allows the class slot to be unbound, so check for that case
           in print-object methods.
         * Add a test for forward references to messages that override the
           lisp name.
         * Add a test for references to messages and enums defined in
           another proto file with a different lisp package.
         * Change color-wheel-stability test, because it used "string" as
           the input type for an rpc, which seems to be disallowed (although
           I haven't found this documented anywhere).
      * Signal errors during parsing for undefined types.
         * Add a test for these errors.  Add assert-error macro to qtest.
      * Signal a condition if we are unable to find the definition for a
        field's type during serialization, deserialization, determining an
        object's serialized size, printing text format, parsing text format,
        or generating code for one of the above.
      * Remove logic in find-qualified-name that indirects through lisp
        packages.  Proto packages and lisp packages do not necessarily map
        1-to-1.
      * Always use the schema's lisp package for any symbols generated when
        parsing proto files.
      * When generating lisp code using write-schema-as, set the package to
        the package used in the generated file, so that ~s will print the
        package prefix in the correct circumstances.
      * Remove broken proto1 "streams" parsing ("returns" comes before
        "streams" in every example I've found); replace with proto2 syntax.
      * In process-imports, the call to find-schema using a pathname was not
        giving the expected result.  Sidestep this issue by using the same
        logic to find the schema as is used earlier in the function.
      8520d6ef
  17. Oct 11, 2012
  18. Jun 26, 2012
  19. Jun 14, 2012
  20. Jun 13, 2012
  21. Jun 11, 2012
  22. Jun 05, 2012
  23. Jun 04, 2012
  24. May 30, 2012
  25. May 25, 2012
    • Scott McKay's avatar
      Fix a few more things discovered by the tests: · 67fc7299
      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
      67fc7299