Vcsn issueshttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues2019-08-19T17:49:16+02:00https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/217Some tests fail on Archlinux (Job Failed #58431)2019-08-19T17:49:16+02:00Paul Hervotpaul.hervot@epita.frSome tests fail on Archlinux (Job Failed #58431)Job [#58431](https://gitlab.lrde.epita.fr/vcsn/vcsn/-/jobs/58431) failed for 01ed1e73d22d37136bb6b1a6a58f6b59b89e8dae:
This may again be an external tool update that changes its behavior, the new behavior not being handled by the testsu...Job [#58431](https://gitlab.lrde.epita.fr/vcsn/vcsn/-/jobs/58431) failed for 01ed1e73d22d37136bb6b1a6a58f6b59b89e8dae:
This may again be an external tool update that changes its behavior, the new behavior not being handled by the testsuite.2.8Paul Hervotpaul.hervot@epita.frPaul Hervotpaul.hervot@epita.frhttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/216Undefined reference to static constexpr with clang with no optimisation (Job ...2019-08-28T16:35:30+02:00Paul Hervotpaul.hervot@epita.frUndefined reference to static constexpr with clang with no optimisation (Job Failed #58344)Job [#58344](https://gitlab.lrde.epita.fr/vcsn/vcsn/-/jobs/58344) failed for afaa9cd76176cc7c421b8edf8230d91fb5dc2006:
The problem is an undefined reference at link time for [this constexpr](https://gitlab.lrde.epita.fr/vcsn/vcsn/blob/m...Job [#58344](https://gitlab.lrde.epita.fr/vcsn/vcsn/-/jobs/58344) failed for afaa9cd76176cc7c421b8edf8230d91fb5dc2006:
The problem is an undefined reference at link time for [this constexpr](https://gitlab.lrde.epita.fr/vcsn/vcsn/blob/master/vcsn/core/tuple-automaton.hh#L133).
It looks like the issue described here: [as `indices` is an odr-used static constexpr, in C++14 it must have a namespace scope declaration, but C++17 makes static constexpr inline by default, making this declaration useless](https://stackoverflow.com/a/28846608).
What bothers me is that on my system, the undefined reference only happens with clang and with -O0, starting with -O1 vcsn compiles fine, gcc compiles fine also with any optimization level. I'm guessing that even in C++14 llvm inlines the constexpr as an optimization starting with -O1, and that gcc does it even with -O0, but I didn't confirm it.
I'm testing [this solution](https://gitlab.lrde.epita.fr/vcsn/vcsn/commit/01ed1e73d22d37136bb6b1a6a58f6b59b89e8dae#8aa26c6c2c075cee4351d7ae4f1e82975cd526c0), I will add it to !6 if the CI passes and I can find enough information to be confident it's indeed the problem and a correct solution.2.8Paul Hervotpaul.hervot@epita.frPaul Hervotpaul.hervot@epita.frhttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/215Build issue with lib/vcsn/dot/parse.cc on archlinux2019-08-28T16:35:04+02:00Paul Hervotpaul.hervot@epita.frBuild issue with lib/vcsn/dot/parse.cc on archlinuxBuild of %"2.8" on archlinux fails with compilation error of `vcsn/lib/vcsn/dot/parse.cc`.
This problem happens in pipeline archlinux jobs and not debian (see recent pipeline run https://gitlab.lrde.epita.fr/vcsn/vcsn/pipelines/11749). ...Build of %"2.8" on archlinux fails with compilation error of `vcsn/lib/vcsn/dot/parse.cc`.
This problem happens in pipeline archlinux jobs and not debian (see recent pipeline run https://gitlab.lrde.epita.fr/vcsn/vcsn/pipelines/11749). I also reproduce it locally on my archlinux on commit c71e8f7d (current master and %"2.8") but not using [the AUR package](https://aur.archlinux.org/packages/vcsn/) which compiles from [the release tarball of 2.8](https://www.lrde.epita.fr/dload/vcsn/2.8/vcsn-2.8.tar.xz).
`parse.cc` seems to be generated from [parse.yy](https://gitlab.lrde.epita.fr/vcsn/vcsn/blob/master/lib/vcsn/dot/parse.yy) with bison during the build process, recent archlinux environment seem to result in a botched generation of the file. The release tarball is distributed with the file already generated, hence the absence of that build failure using the AUR package.
Maybe bison introduced a behavior difference in a version between debian's and archlinux's that break vcsn build, I'll try to look into it.2.8Paul Hervotpaul.hervot@epita.frPaul Hervotpaul.hervot@epita.frhttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/214Build issue with Boost >= 1.692019-08-28T16:34:39+02:00Younes KhoudliBuild issue with Boost >= 1.69Hi Akim,
Hope all is well
Baptiste tried to build vcsn on an up to date Archlinux, which include Boost 1.69. They introduced an ADL barrier on boost::distance(), and that was making the build fail.
I wrote a fix on `yk/fix-boost-dista...Hi Akim,
Hope all is well
Baptiste tried to build vcsn on an up to date Archlinux, which include Boost 1.69. They introduced an ADL barrier on boost::distance(), and that was making the build fail.
I wrote a fix on `yk/fix-boost-distance`2.8https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/213labels: we don't parse 𝜀 like we do for \e2018-04-29T12:55:22+02:00Akim Demaillelabels: we don't parse 𝜀 like we do for \ehttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/212random_label: accept utf-82018-04-29T12:40:31+02:00Akim Demaillerandom_label: accept utf-8We must use `\e=...`, we cannot use the UTF-8 character.We must use `\e=...`, we cannot use the UTF-8 character.https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/211vcsn diagnose|check|doctor2018-04-29T10:15:47+02:00Akim Demaillevcsn diagnose|check|doctorWe need something to auto check the health of vcsn, and to gather logs that can help us understand user problems.
It should be a shell-script, so that we can use it even with a broken installation of vcsn.We need something to auto check the health of vcsn, and to gather logs that can help us understand user problems.
It should be a shell-script, so that we can use it even with a broken installation of vcsn.https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/210Simplify printing of [...]2018-04-28T14:13:10+02:00Akim DemailleSimplify printing of [...]We still display lan/lal as `[...]?`. We should drop the `?`.We still display lan/lal as `[...]?`. We should drop the `?`.3.0https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/209locations: beware of utf-82018-03-10T15:11:13+01:00Akim Demaillelocations: beware of utf-8Our locations (in Bison) consider 1 bytes = 1 character. As a result:
```python
# Invalid context.
xfail(r'''digraph
{
vcsn_context = "[...]? → unknown"
}
''', r'''3.18-37: expected weightset here:
[...]? → unknown
^_
vc...Our locations (in Bison) consider 1 bytes = 1 character. As a result:
```python
# Invalid context.
xfail(r'''digraph
{
vcsn_context = "[...]? → unknown"
}
''', r'''3.18-37: expected weightset here:
[...]? → unknown
^_
vcsn_context = "[...]? → unknown"
^^^^^^^^^^^^^^^^^^^^
while reading automaton''')
```
The first caret is too far, the second carets are too many.3.0Akim DemailleAkim Demaillehttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/208automaton::print: does not dynamic dispatch2018-03-11T15:11:08+01:00Akim Demailleautomaton::print: does not dynamic dispatchPrinting a conjunction for instance does not show the real state names.
`virtual` seems a good answer, but it does not work since `state_t` depends on the actual type of the automaton (to avoid that we mix states from different automato...Printing a conjunction for instance does not show the real state names.
`virtual` seems a good answer, but it does not work since `state_t` depends on the actual type of the automaton (to avoid that we mix states from different automaton types).3.0Akim DemailleAkim Demaillehttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/207Is-ambiguous: check whether the approach works with automata with spontaneous...2018-02-19T20:20:09+01:00Akim DemailleIs-ambiguous: check whether the approach works with automata with spontaneous transitionsThe code was not checking this precondition. See whether it actually works, or if a precondition must be added.
(Also applies to is-cycle-ambiguous).The code was not checking this precondition. See whether it actually works, or if a precondition must be added.
(Also applies to is-cycle-ambiguous).3.0Akim DemailleAkim Demaillehttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/206Conjunction: provide a special case for proper automata2018-02-11T15:06:49+01:00Akim DemailleConjunction: provide a special case for proper automataNot only is this faster, it also yields simpler (decorated) automata as they don't use `insplit`.
Once done, see if `is-ambiguous.hh` could be simplified to not have to deal with `insplit`.Not only is this faster, it also yields simpler (decorated) automata as they don't use `insplit`.
Once done, see if `is-ambiguous.hh` could be simplified to not have to deal with `insplit`.3.0https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/205Rat: Copy does not preserve physical sharing2018-03-20T20:12:26+01:00Akim DemailleRat: Copy does not preserve physical sharingCopying something like `a{5}`, which uses a single `a`, ends in five copies of `a`.
And we also need a test for this.Copying something like `a{5}`, which uses a single `a`, ends in five copies of `a`.
And we also need a test for this.3.0Akim DemailleAkim Demaillehttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/204Context: display string_letter2018-04-28T14:11:13+02:00Akim DemailleContext: display string_letterCurrently we display `lal<string>` and `lal<char>` the same way: `[...]`.Currently we display `lal<string>` and `lal<char>` the same way: `[...]`.3.0Akim DemailleAkim Demaillehttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/203Context: parse whether they are open2018-02-17T08:59:41+01:00Akim DemailleContext: parse whether they are openWhen round-tripping a context, it's a nuisance that we lose the fact that it's open.
I propose to use `...` to mean it's open: `[a]` is closed, `[...]` and `[a...]` are open.
See also #201 and #202.When round-tripping a context, it's a nuisance that we lose the fact that it's open.
I propose to use `...` to mean it's open: `[a]` is closed, `[...]` and `[a...]` are open.
See also #201 and #202.3.0Akim DemailleAkim Demaillehttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/202Don't print whether a context is open in automata2018-04-30T11:41:54+02:00Akim DemailleDon't print whether a context is open in automataWe have a number of issues wrt whether the context of an automaton is open or not (see #201 for instance). This should use specific API to test whether its context is open.
But it hardly makes sense to print that when displaying an aut...We have a number of issues wrt whether the context of an automaton is open or not (see #201 for instance). This should use specific API to test whether its context is open.
But it hardly makes sense to print that when displaying an automaton.
This causes problems in the test suite, see for instance `tests/python/complete.py`.3.0https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/201automatonset: complement produces an open context2018-02-03T14:31:47+01:00Akim Demailleautomatonset: complement produces an open contextIn `standard.py` we have:
```
check(qexp('[abc]*{c}'), zero('abc'))
```
It is commented because the lhs has an opened context, not the rhs. It was not seen before because we were not showing whether the context was open or not.In `standard.py` we have:
```
check(qexp('[abc]*{c}'), zero('abc'))
```
It is commented because the lhs has an opened context, not the rhs. It was not seen before because we were not showing whether the context was open or not.3.0https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/200Modernize the syntax for context2018-04-28T16:17:28+02:00Akim DemailleModernize the syntax for context- [x] separate the old parser in two: one for internal syntax, and a new one for the external one
- [x] implement a new parser for the new syntax
- [x] migrate the test suite to use the new syntax
- [x] migrate the documentation to phase...- [x] separate the old parser in two: one for internal syntax, and a new one for the external one
- [x] implement a new parser for the new syntax
- [x] migrate the test suite to use the new syntax
- [x] migrate the documentation to phase out the old syntax3.0Akim DemailleAkim Demaillehttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/199labelsets: factor and check2018-01-01T11:29:33+01:00Akim Demaillelabelsets: factor and checkThe relationship between labelsets and gensets is not clear. Sometimes the labelset bounces the function calls to the genset, and sometimes it implements the function although it could have been done in the genset.
Of course this can l...The relationship between labelsets and gensets is not clear. Sometimes the labelset bounces the function calls to the genset, and sometimes it implements the function although it could have been done in the genset.
Of course this can lead to mismatches, and it probably already does: for instance wordset implements its own `compare` (shortlex), but uses the genset's `less` which is not length-aware...https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/198random_label: a functor?2017-10-31T06:51:12+01:00Akim Demaillerandom_label: a functor?random_weight can be used with a functor, which saves the repeated parsing of the params, especially in places like random_automaton or random_expression.
random_label should be similar.random_weight can be used with a functor, which saves the repeated parsing of the params, especially in places like random_automaton or random_expression.
random_label should be similar.3.0Akim DemailleAkim Demaille