tpb has quit [Remote host closed the connection]
tpb has joined #symbiflow
az0re has quit [Remote host closed the connection]
az0re has joined #symbiflow
az0re has quit [Remote host closed the connection]
az0re has joined #symbiflow
maartenBE has quit [Ping timeout: 265 seconds]
maartenBE has joined #symbiflow
Degi_ has joined #symbiflow
Degi has quit [Ping timeout: 256 seconds]
Degi_ is now known as Degi
DonQuezz has quit [Ping timeout: 245 seconds]
citypw has joined #symbiflow
_whitelogger has joined #symbiflow
cjearls has quit [Quit: Leaving]
_whitelogger has joined #symbiflow
kgugala__ has joined #symbiflow
kgugala has quit [Ping timeout: 246 seconds]
kgugala__ has quit [Read error: Connection reset by peer]
kgugala has joined #symbiflow
_whitenotifier has joined #symbiflow
<_whitenotifier> [fpga-tool-perf] acomodi opened issue #291: Add CI check for check-env and list-combination functionalities - https://git.io/JIRpx
<_whitenotifier> [symbiflow-arch-defs] acomodi opened issue #1859: Consistently use XDC constraints in all tests - https://git.io/JI0fS
<_whitenotifier> [symbiflow-arch-defs] mkurc-ant opened issue #1861: Undocumented POWER_REG content of MMCM - https://git.io/JI0Nk
<_whitenotifier> [symbiflow-arch-defs] mkurc-ant opened issue #1862: Unknown bit in A35T - https://git.io/JI0p8
<_whitenotifier> [yosys-symbiflow-plugins] rw1nkler opened issue #62: Fix curly brackets support in get_ports commands - https://git.io/JIEfV
maartenBE has quit [Ping timeout: 264 seconds]
citypw has quit [Ping timeout: 240 seconds]
maartenBE has joined #symbiflow
<_whitenotifier> [symbiflow-arch-defs] acomodi opened issue #1863: Routing on Zynq with PS7 takes a long time on the first iteration - https://git.io/JIEGD
<tpb> Title: python - Difference between extras_require() and install_requires() in setup.py? - Stack Overflow (at stackoverflow.com)
<mithro> HackerFoo: If you have ever seen `<packagename>[<option>]` that is what we want
<HackerFoo> mithro: Thanks.
maartenBE has quit [Ping timeout: 256 seconds]
mkru has joined #symbiflow
maartenBE has joined #symbiflow
<mithro> @HackerFoo Ideally there would be a `fasm[antlr]` type option which enabled the faster antlr backend parser
<HackerFoo> I can't find a way to read the extras in setup.py
<HackerFoo> So I've added the textX parser as a fallback, which also works at runtime if there is a missing library.
<tpb> Title: python - How to get extras from pip install in custom cmdclass command? - Stack Overflow (at stackoverflow.com)
<mithro> @HackerFoo Why do you need to "get extras"?
<HackerFoo> Because the CMake build will fail, blocking setup.py build
<HackerFoo> If there are missing dependencies.
<HackerFoo> So I wrap that in try/except, but then it's probably best to just require textX in `install_requires` so that the fallback is there.
<mithro> HackerFoo: I guess you could split it into three packages, `fasm-textx`, `fasm-antlr` and `fasm` with `fasm` depending on `fasm-textx` or `fasm-antlr`?
<HackerFoo> The problem I have is that there doesn't seem to be a way to express the dependency on non-Python things.
<mithro> HackerFoo: you are correct
<HackerFoo> So the only way to detect a missing dependency for the ANTLR version is to try it.
<mithro> HackerFoo: That is where conda comes in
<HackerFoo> Conda works until you need something outside of that as well.
<HackerFoo> So it's a never ending stack of package managers.
<mithro> HackerFoo: If you need something outside of conda, the correct solution is to pull it inside conda
<mithro> HackerFoo: But splitting it into three packages might work? Then you just do a `try: import fasm.antlr as fasm_paster\nexcept ImportError: import fasm.textx as fasm_paser`inside the `fasm` package?
<HackerFoo> I almost have it working.
<mithro> HackerFoo: I think that is pretty much what I'm suggesting if you take it one step further and change `from fasm.parse_fasm import parse_fasm_filename, parse_fasm_string, parser_implementation` to `from fasm.parse.antlr import parse_fasm_filename, parse_fasm_string, parser_implementation`
<mithro> And maybe having `fasm.parse.antlr` and `fasm.parse.textx` shipped separately from `fasm`?
<HackerFoo> Do I need 3 repos then? Or just 3 subdirectories.
<mithro> HackerFoo: You could even go as far as creating a `fasm.parse.interface` module which `fasm.parse.textx` and `fasm.parse.antlr` use?
<mithro> HackerFoo: Three subdirectories should work I think
<HackerFoo> I think using pip to install from a git repo requires setup.py to be at the root.
<mithro> `python -m pip install -e "vcs+protocol://repo_url/#egg=pkg&subdirectory=pkg_dir"`
<mithro> HackerFoo: Actually maybe there can just be a `--with-antlr` / `--without-antlr`command line switches to `setup.py` in some way?
<tpb> Title: pip install - pip documentation v20.3.1Contents (at pip.pypa.io)
<mithro> That might be a bad idea, unsure...
<HackerFoo> I'd like the previous pip install commands to just work.
<mithro> HackerFoo: I agree with that -- Maybe something like `--antlr=[enabled|disabled|auto]` with `auto` being the default?
<tpb> Title: 2. Writing the Setup Script Python 3.9.1 documentation (at docs.python.org)
<mithro> The `optional` option is a boolean; if it is true, a build failure in the extension will not abort the build process, but instead simply not install the failing extension.
<HackerFoo> I like `--parser=[python|native|auto]`
<mithro> HackerFoo: Yeah, that could work
mkru has quit [Quit: Leaving]
maartenBE has quit [Ping timeout: 272 seconds]
<mithro> @HackerFoo You can leave the publishing to PyPi of the fasm binary to me, make sure you log a github issue and assign it to me
<HackerFoo> Okay, thanks.
<HackerFoo> I have the auto version working.
<HackerFoo> It issues a warning on import if textX is used, and fasm.parser_implementation is either 'ANTLR' or 'textX'.
_whitelogger has joined #symbiflow
maartenBE has joined #symbiflow
_whitelogger has joined #symbiflow
<_whitenotifier> [fasm] HackerFoo opened issue #32: Publish to PyPI - https://git.io/JIEy2
alexhw has joined #symbiflow
alexhw_ has quit [Ping timeout: 260 seconds]
az0re has quit [Remote host closed the connection]
az0re has joined #symbiflow
<HackerFoo> mithro: I've moved the parser implementations into fasm.parser, so that you can `import fasm.parser` and it will select an implementation, which can be checked with `fasm.parser.implementation`.
<HackerFoo> mithro: Do you think we need a setup flag? The auto selection seems to work pretty well.
<HackerFoo> > The `optional` option is a boolean; if it is true, a build failure in the extension will not abort the build process, but instead simply not install the failing extension.
<HackerFoo> I have overridden the class that handles this, so it doesn't apply.
<tpb> Title: pip install - pip documentation v20.3.1Contents (at pip.pypa.io)
<HackerFoo> > This disables the use of wheels (cached or otherwise) for that package, as setup.py does not exist for wheels.
maartenBE has quit [Ping timeout: 240 seconds]
maartenBE has joined #symbiflow
<mithro> @HackerFoo You might also want a `fasm.parser.available` which lists which parsers are available?
<HackerFoo> I can do this, but how would it be used? Should the options match the submodule names?
<mithro> HackerFoo: yeap? Same as `fasm.parser.implementation` value?
<HackerFoo> Okay, then I need to change those values to lower case names.
<mithro> HackerFoo: Because if you don't have Antlr installed when installing the module you end up with an installation which can only use textx right?
<HackerFoo> Yes.
<HackerFoo> But if you just use fasm.parser, you get ANTLR unless that fails, then you get textX.
<mithro> Yeap, unless you deliberately import the textx parser directly, right?
<HackerFoo> I suppose you can use fasm.parser.{antlr,textx} directly, though. Yeah.
<mithro> Which you might want when explicitly testing that your thing works with both parsers or something
<HackerFoo> Okay.
kgugala has quit [Quit: -a- Connection Timed Out]
kgugala has joined #symbiflow