Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 113 lines (76 sloc) 3.871 kb
5d1a426 Initial commit of Common Lisp protocol buffer project.
Robert Brown authored
1
98a7efc @brown update TODO file
authored
2 high priority
3 =============
41515f4 TODO: add a few items
Robert Brown authored
4
edb056f @brown Increment year in copyright notices. Add a todo. Increment protobuf
authored
5 Update the web site to reflect the new installation instructions.
079b6a3 @brown Remove google-protobuf. The protobuf compiler now lives in protoc/lisp.
authored
6
edb056f @brown Increment year in copyright notices. Add a todo. Increment protobuf
authored
7 Use autoconf/automake to configure protoc/lisp and protoc/sexp.
079b6a3 @brown Remove google-protobuf. The protobuf compiler now lives in protoc/lisp.
authored
8
b1caddc @brown Add some more things to do.
authored
9 Fix generated code so that unknown proto fields are collected into a data
10 structure.
11
12 Remove all references to the BASE package in generated code. Make generated
13 files independently loadable.
add374a @brown Add Lispworks floating point support using an FLI technique by
authored
14 Use base::vector-index or eliminate it in protobuf Lisp files?
b1caddc @brown Add some more things to do.
authored
15
add374a @brown Add Lispworks floating point support using an FLI technique by
authored
16 Add more tests for merging from a protobuf instance.
41515f4 TODO: add a few items
Robert Brown authored
17
98a7efc @brown update TODO file
authored
18 Implement extensions
19 Add tests
20
21 Look at all XXXX comments in the compiler source and remove them.
22 involves filing some bugs against C++ code
23
24
25 General stuff
26 =============
27
28 5. read the binary description of a protocol buffer into RAM
29 output S-expression protobuf forms
30 Compare output to S-expression backend of compiler on all Google protobufs.
31 Talk to Kenton about which approach he prefers -- backend or binary reader.
32
33 6. read S-expression protobuf forms
34 create internal protobuf data structures that represent the messages
35 generate Lisp code that uses proto form to read and write binary data
36 generate Lisp code that directly reads and writes binary data
37
38 Look at the Java unit tests for unittest.proto
39 Maybe the Java semantics are what we want, since protos are more
40 immutable in the Java world.
41
42 What do we do with strings?
43 Some are declared as byte(octet) arrays, others as strings.
44
45 add slick check-several bits code to clear / is-initialized
46
47 implement RPC service stubs ??
48
49
50 protobuf
51 ========
52
53 move more unit test code from google-protobuf/src/google/protobuf into protobuf
54
55 review proto-lisp-test code ... remove it ?
56
57 move the package decl for protocol-buffer into each compiled file?
58 would be nice of users could just load a compiled protobuf
59
60 pick a testing framework
61 Port the tests to the unit test framework.
62 look at all tests in google-protobuf/src/google/protobuf
63 start migrating them here
64
65 create a testing directory?
66
67 Figure out a strategy for specifying Common Lisp optimization levels and
68 apply it uniformally. There's some support for this in optimize.lisp, and
69 there are some #+opt conditionalizations sprinkled around the code.
70
71
72 google-protobuf
73 ===============
74
75 primitive field octet size and serialize do not work with packed
76 repeated data ...
77 search for "packed" in at lease cpp_primitive_field.cc and
78 cpp_enum_field.cc
79
80 add extensions and other features needed to load protobuf files
81
82 add README file to the top level explaining the Lisp changes
83
84 merge in latest Google changes
85
86
87 other
88 =====
5d1a426 Initial commit of Common Lisp protocol buffer project.
Robert Brown authored
89
41515f4 TODO: add a few items
Robert Brown authored
90 Implement a protocol buffer compiler. There are several ways to do this.
91 Here are my favorites:
5d1a426 Initial commit of Common Lisp protocol buffer project.
Robert Brown authored
92
f7af243 Add text to the README file describing ways of implementing
Robert Brown authored
93 a. Implement a new backend for Google's protocol buffer compiler that
94 generates CLOS classes from protobuf descriptions. It is unlikely that
95 Google will integrate this change into their code, and it requires Lisp
96 developers to use Google's protobuf syntax.
97
98 b. Implement a new backend for Google's protocol buffer compiler that
99 outputs protobuf descriptions in s-expression form. Write a compiler in
100 Lisp that translates the s-expressions into CLOS classes. Google may be
101 more receptive to integrating this change into their code, since it is
102 useful for any language in the Lisp family. Also, the change is much
103 smaller, amounting to just a pretty printer. Lisp developers can write
41515f4 TODO: add a few items
Robert Brown authored
104 protobuf descriptions as s-expressions. The disadvantage is that this
105 approach is a bit more work.
106
107 c. Implement a compiler via either of the methods above that converts
108 protobuf descriptions into run-time data structures. The programmer
109 decides which protobufs are translated into code at compile time and which
110 are translated at run time. In the second case, the CLOS generic
111 functions for a protobuf would just be small stubs. When they are ever
112 called, they replace themselves with the right access code.
Something went wrong with that request. Please try again.