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 - 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?
<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>
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.
<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