Closed michaeldelago closed 1 week ago
I've never used qlot, so I cannot say. @cgay ?
No idea. Haven't used modern Lisp "in anger" outside of Google yet.
qlot
generally handles dependency management, but it's definitely worth a shot to test without it. I wrote this short script as load.lisp
:
and then ran it as sbcl --load load.lisp
Error output remains roughly the same:
Okay, I've figured it out. It seems that the file descriptor for common.proto isn't being properly added to the file-descriptors hash table. In asdf.lisp
, it looks like the filename is passed into protoc
, meaning the generated lisp file contains (add-file-descriptor #P"common.proto" 'common)
. This doesn't properly get returned during the validate-imports
function call for resource.proto
, where the import is trying to import path relative to the root, opentelemetry/proto/common/v1/common.proto
At the moment, my workaround is to disable the check in the validate-imports
function of define-proto.lisp
:
176,177c176
< (unless imported
< (protobuf-error "Could not find file ~S imported by ~S" import file-descriptor)))))
---
> )))
Not really sure how to concisely implement a meaningful unit test for this at the moment (past my bedtime :upside_down_face:), but that's where I've gotten thus far
At the moment, I'm unable to compile the proto files for opentelemetry. I have an asd like so:
opentelemetry-proto is cloned to a subdirectory, which can be done with this command:
I'm using qlot as well:
When attempting to load the system, I receive an error the following error message:
It's saying that it can't find the proto file for
common.proto
, but as far as I can tell, the search path is setup correctly. It's failing in thevalidate-imports
function, but it's not exactly clear to me what I need to do to getcommon.proto
to resolve in*file-descriptors*
.A few things I've noticed:
resource
component seems to have successful compilation (as in, only compilingcommon
)protoc
to create generate the lisp files seems to work without issues:Is there anything obvious that I may be doing wrong?
Thanks in advance.