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/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/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/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/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 Demaillehttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/197is_proper_tape2017-10-31T06:49:12+01:00Akim Demailleis_proper_tapeThis property is weird. Do we really need it? It appears to be used in `is_free(automaton)`This property is weird. Do we really need it? It appears to be used in `is_free(automaton)`3.0https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/196is deterministic, etc.2018-05-01T07:09:31+02:00Akim Demailleis deterministic, etc.In the process of moving to lal/lan, we now have algorithms that used to require a free labelset that no longer do. So for instance, `is_deterministic` used to refuse to work on lan, which was a problem btw when this lan automaton was p...In the process of moving to lal/lan, we now have algorithms that used to require a free labelset that no longer do. So for instance, `is_deterministic` used to refuse to work on lan, which was a problem btw when this lan automaton was proper. But now we have the converse issue: is_deterministic returns true on automaton which is deterministic if `\e` is viewed as a letter.
This is not acceptable. OpenFST does have this behaviour, but it would be a real nuisance when Vcsn is used for teaching: if you are not proper, you cannot be deterministic.
So we need an intermediate property, and make sure is-deterministic answers properly.
This applies to other properties. See in particular what `automaton.info` returns.3.0https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/195expansions: stop denormalisation?2017-10-28T10:50:09+02:00Akim Demailleexpansions: stop denormalisation?3.0https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/194expansion: derived_term?2017-10-31T06:49:52+01:00Akim Demailleexpansion: derived_term?It would be nice to be able to display the derived-term automaton from an expansion. And actually the derived-term of an expression is the derived-term of its expansion.
That would sometimes help when working with expansions.It would be nice to be able to display the derived-term automaton from an expansion. And actually the derived-term of an expression is the derived-term of its expansion.
That would sometimes help when working with expansions.https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/192expansions: do we really need commutativity?2017-09-26T21:27:37+02:00Akim Demailleexpansions: do we really need commutativity?Our implementation of expansions for `&` and `\` rely on some identities such as `s&kt => k(s&t)` which do not work for noncommutative semirings.
But do we really need that in the implementation? Should it be something left to the iden...Our implementation of expansions for `&` and `\` rely on some identities such as `s&kt => k(s&t)` which do not work for noncommutative semirings.
But do we really need that in the implementation? Should it be something left to the identities? Hence, they would be able to depend on the commutativity of the semiringhttps://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/190build: visibility=hidden2017-07-09T11:57:24+02:00Akim Demaillebuild: visibility=hiddenIt never worked with Clang, and it seems that now (GCC7) it no longer works with GCC either when we try to use it from Boost.Python. At runtime, we get:
```
Traceback (most recent call last):
File "/srv/teamcity-agent/work/9fc823827e...It never worked with Clang, and it seems that now (GCC7) it no longer works with GCC either when we try to use it from Boost.Python. At runtime, we get:
```
Traceback (most recent call last):
File "/srv/teamcity-agent/work/9fc823827e961a53/tests/python/accessible.py", line 3, in <module>
import vcsn
File "/srv/teamcity-agent/work/9fc823827e961a53/python/vcsn/__init__.py", line 21, in <module>
from vcsn.automaton import automaton
File "/srv/teamcity-agent/work/9fc823827e961a53/python/vcsn/automaton.py", line 8, in <module>
from vcsn_cxx import automaton, label, polynomial
ImportError: dynamic module does not define module export function (PyInit_vcsn_cxx)
```
or
```
terminate called after throwing an instance of 'vcsn::dyn::jit_error'
what(): failed command:
vcsn compile -shared '/srv/teamcity-agent/.vcsn/plugins/contexts/context<lat<nullableset<letterset<char_letters>>, nullableset<letterset<char_letters>>>, rmin>.cc'
compiler error messages:
Traceback (most recent call last):
File "/srv/teamcity-agent/work/9fc823827e961a53/libexec/vcsn-compile", line 13, in <module>
from vcsn_cxx import configuration
ImportError: dynamic module does not define module export function (PyInit_vcsn_cxx)
```
Try to find if we can restore this.https://gitlab.lre.epita.fr/vcsn/vcsn/-/issues/188random_expression: issues with tuple sets2017-06-10T07:24:22+02:00Akim Demaillerandom_expression: issues with tuple sets- [ ] we can still generate '\e|\e' as a label, even if we did not ask for \e.
- [ ] this should be also checked for lan
- [ ] when we generate for lat, we generate tuple operators even if we did not ask for it.
The reason is that w...- [ ] we can still generate '\e|\e' as a label, even if we did not ask for \e.
- [ ] this should be also checked for lan
- [ ] when we generate for lat, we generate tuple operators even if we did not ask for it.
The reason is that we generate multitape labels, and pretty-print them, which turns them into multitape expressions. And with identities = none, that's all we have left: tupling operator on single-tape labels.