Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GNU Radio 3.8 support #14

Open
ncorgan opened this issue Jun 24, 2019 · 12 comments
Open

GNU Radio 3.8 support #14

ncorgan opened this issue Jun 24, 2019 · 12 comments
Assignees

Comments

@ncorgan
Copy link
Member

ncorgan commented Jun 24, 2019

Currently on master and for GNU Radio 3.8, whenever that comes along, GRC has moved over to using YAML files to describe GNU Radio blocks, and gr_modtool generates these for new OOT modules.

For compatibility with GNU Radio 3.8, GrPothosUtil.py will need to be able to parse these.

@ncorgan ncorgan changed the title Support 3.8-style GRC YAML files Support GNU Radio 3.8-style GRC YAML files Jun 24, 2019
@guruofquality
Copy link
Contributor

I knew this day would come, but I have dreaded its arrival. Its the yaml format basically just the same crap, same file name different extension? Same data layout when parsed, dictionaries, keys and lists?

@ncorgan
Copy link
Member Author

ncorgan commented Jun 24, 2019

The filenames seem to be the same (extension aside). From a data layout perspective, as an example, here's how gr::blocks::add_xx has changed:

From using it in some WIP OOT modules, I prefer the new usage, but I can't speak to the difficulty of parsing for gr-pothos.

@ncorgan ncorgan self-assigned this Sep 11, 2019
@ncorgan
Copy link
Member Author

ncorgan commented Sep 15, 2019

@ncorgan
Copy link
Member Author

ncorgan commented Jan 8, 2020

There are a few steps to doing this while maintaining compatibility with 3.7, so I'll make a project to make tracking easier.

@guruofquality
Copy link
Contributor

No big deal if master does 3.8 only

@ncorgan
Copy link
Member Author

ncorgan commented Aug 16, 2020

Looks like they did the job for us in 3.8: https://github.com/gnuradio/gnuradio/tree/master/gr-utils/blocktool

No need for ugly GRC file parsing, they output a super-convenient JSON file. Minus the PothosFlow docs, this is essentially a weekend project now.

@ncorgan ncorgan changed the title Support GNU Radio 3.8-style GRC YAML files GNU Radio 3.8 support Aug 16, 2020
@guruofquality
Copy link
Contributor

well thats helpful 👍

@ncorgan
Copy link
Member Author

ncorgan commented Aug 16, 2020

The only downside is now it's seconds per file. They're using pygccxml under the hood. I have no idea what makes it so slow, but it may be worth just storing the JSON output. It's what they do for their blocktool usage.

@guruofquality
Copy link
Contributor

@ncorgan I was thinking of getting one more windows installer build out this year (as we speak), and moving the whole windows installer thing over to recent msvc and gr 3.8. Its a ton of brand new build issues and dependency changes, etc, pandoras box. I think its reasonable to move this project over to 3.8+ permanently. How far along were you, and is it something you wanted to tackle?

@ncorgan
Copy link
Member Author

ncorgan commented Dec 28, 2020

https://github.com/pothosware/gr-pothos/tree/wip/gr3.8

This is what I had so far. If I recall, I think the major thing left is generating the block functions from BlockTool's output. I put some TODOs in for some other stuff, as well as a file listing obsolete build-time stuff to remove once this is done. If you're already on this, would you mind taking this part?

@guruofquality
Copy link
Contributor

I was going to jump strait to requiring 3.9 The odd number releases were always better anyway

Wow, blocktool is like walking through molasses with concrete boots on using dial up. What is blocktool's output giving us that cppheaderparser was not?

I can see checking in blocktool output though. It looks like it uses clang++ or something, and im worried to make the generation take too much time or have too many dependencies (I want to build on windows as well). Even requiring gnuradio to actually show up in the python path and import correctly may be a bit too much :-)

@ncorgan
Copy link
Member Author

ncorgan commented Jan 29, 2021 via email

@ncorgan ncorgan assigned guruofquality and unassigned ncorgan Mar 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants