Discussion:
[omniORB] back-end to serialize AST to file?
Tim Black
2009-07-01 00:48:16 UTC
Permalink
Has anyone written and tested a back-end that simply serializes the AST into
a file?

I am on Windows, and I want to be able to debug my python back-ends using
eclipse or some other debugger. Point is, I need to be in control of
starting the python process I want to debug. On windows, omniidl.exe starts
the python process that invokes my back-end, so I cannot debug. What I want
to do is sever my code-generation back-end from the omniidl.exe process by
visiting the AST using a single PickleVisitor which just pickles the idl
syntax tree and writes it to file. Then I just run (and debug!) a new python
script that reads the file, unpickles the AST, and passes it to my
code-generation back-end.

Anyone already done this? See any problems with this plan?

Thanks,
Tim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20090630/085a2ae2/attachment.htm
Tim Black
2009-07-01 03:18:37 UTC
Permalink
In theory this should work, bc the text pickling protocol was designed to be
backward compatible across all Python versions. I ran into a major problem,
however, bc the pickle module does not seem to be included in the omniORB
python library. The pickle module was added to Python very early, even
before Python 1.5. Also, I find it strange that pickle is not there, but
marshal is.. Can anyone confirm/deny/explain this?
Post by Tim Black
Has anyone written and tested a back-end that simply serializes the AST
into a file?
I am on Windows, and I want to be able to debug my python back-ends using
eclipse or some other debugger. Point is, I need to be in control of
starting the python process I want to debug. On windows, omniidl.exe starts
the python process that invokes my back-end, so I cannot debug. What I want
to do is sever my code-generation back-end from the omniidl.exe process by
visiting the AST using a single PickleVisitor which just pickles the idl
syntax tree and writes it to file. Then I just run (and debug!) a new python
script that reads the file, unpickles the AST, and passes it to my
code-generation back-end.
Anyone already done this? See any problems with this plan?
Thanks,
Tim
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20090630/e5cdc692/attachment.htm
Duncan Grisby
2009-07-02 15:27:10 UTC
Permalink
Post by Tim Black
I am on Windows, and I want to be able to debug my python back-ends using
eclipse or some other debugger. Point is, I need to be in control of starting
the python process I want to debug. On windows, omniidl.exe starts the python
process that invokes my back-end, so I cannot debug. What I want to do is
sever my code-generation back-end from the omniidl.exe process by visiting the
AST using a single PickleVisitor which just pickles the idl syntax tree and
writes it to file. Then I just run (and debug!) a new python script that reads
the file, unpickles the AST, and passes it to my code-generation back-end.
Anyone already done this? See any problems with this plan?
I don't think you'll get that to work, because various Python bits of
omniidl assume the C++ bits are available in the _omniidl module. On
Windows, _omniidl is built in to the executable, so it isn't available
to import by the normal Python interpreter.

If you want to do what you're talking about, you're going to have to
build omniidl as a separate extension by modifying the make rules.

Cheers,

Duncan.
--
-- Duncan Grisby --
-- ***@grisby.org --
-- http://www.grisby.org --
Loading...