Releases: anoma/juvix
v0.3.4
v0.3.4 (2023-05-22)
Implemented enhancements:
- Allow symbol renaming inside
using {..}
#2109 (janmasrovira) - Scope check symbols inside
using {..}
andhiding {..}
#2108 (janmasrovira) - Pass through compile optimization flag to C compiler and disable optimization for --debug #2106 (paulcadman)
- Add syntax for Judoc blocks #2102 (janmasrovira)
- Add dangling judoc error #2099 (janmasrovira)
- Modify
open import
syntax #2098 (janmasrovira) - Improve error message when input path doesn't exist #2092 (paulcadman)
- Partial incremental highlighting #2053 (janmasrovira)
- Normalization by Evaluation #2038 (lukaszcz)
- Inlining #2036 (lukaszcz)
Merged pull requests:
- Use PrettyCode instance instead of obsolete ppUsingItem in Print.Base #2115 (janmasrovira)
- Add
syntax
keyword #2107 (lukaszcz) - Simplify formatting of lambdas with a single clause #2105 (janmasrovira)
- Fix extra whitespace in text rendering of indented empty lines #2101 (paulcadman)
- Reachability analysis in Core #2097 (lukaszcz)
- Slightly improve prettyprinting for Core #2094 (janmasrovira)
- Bump to LTS Haskell 20.21 (ghc-9.2.7) #2093 (jonaprieto)
- Direct translation from normalized JuvixCore to VampIR #2086 (lukaszcz)
- ci: clean .juvix-build directory before formatting/typechecking examples #2079 (paulcadman)
- Fix format on projects that contain subprojects #2078 (paulcadman)
- Implement core transformation
let-hoisting
#2076 (janmasrovira) - Allow nested block comments #2075 (janmasrovira)
- Fix topCommandInputFile for Format command #2063 (vrom911)
- Fix reachability analysis with imports in unreachable nested modules #2062 (lukaszcz)
- Fix devcontainer juvix install #2061 (paulcadman)
- Fix Makefile target bugs for formatting and type Checking Juvix files #2057 (jonaprieto)
- Fix a bug in the positivity checker (#1943) #2054 (jonaprieto)
- Arity check types and functions (->) #2049 (janmasrovira)
- Fix ordering of statements in Abstract -> Internal #2040 (janmasrovira)
v0.3.3
v0.3.3 (2023-05-08)
Implemented enhancements:
- Update to latest stdlib #2048 (paulcadman)
- Support module imports in Juvix REPL #2029 (paulcadman)
- Make format command's filepath optional #2028 (vrom911)
- format long lambda clause body on a new line #2015 (paulcadman)
- Support more paths #2000 (janmasrovira)
- Add: pragma support #1997 (lukaszcz)
Merged pull requests:
- Fix pipeline setup in the repl #2046 (janmasrovira)
- Fix HasExpressions ConstructorApp #2044 (paulcadman)
- Fix fromSource behaviour when both stdin and filename #2043 (vrom911)
- Return endLine info in highlighting command #2042 (vrom911)
- Enable self-application test #2041 (janmasrovira)
- Add bank example #2037 (janmasrovira)
- Substitute calls after lambda lifting #2031 (janmasrovira)
- Add delimiter face #2027 (janmasrovira)
- Propertly register top module name in scoper #2026 (janmasrovira)
- Add judoc code annotation and face #2025 (janmasrovira)
- Fix dependencies suggestion in missing module error #2024 (paulcadman)
- Remove docs related files #2023 (jonaprieto)
- Improve formatting of comments #2022 (janmasrovira)
- Support positive arity typealias in arity checker #2021 (paulcadman)
- Add format stdin smoke tests #2019 (vrom911)
- Add
juvix clean
to remove project build artifact directory #2018 (paulcadman) - Sync stdlib #2012 (janmasrovira)
- Ide improvements #2009 (janmasrovira)
v0.3.2
v0.3.2 (2023-04-18)
Implemented enhancements:
- Qualified imports #2004 (janmasrovira)
- Pretty print JuvixCore values consistently with Juvix syntax #1988 (lukaszcz)
- Add: the 'seq' builtin (>>>) #1982 (lukaszcz)
- Fix: pprint positive kw for data types #1980 (jonaprieto)
- Fix: format juvix files in test/positive #1978 (jonaprieto)
- Add syntax highlighting for juvix code blocks in docs #1971 (jonaprieto)
- Add juvix global project under xdg directory and other improvements #1963 (janmasrovira)
- Add builtin integer type to the surface language #1948 (paulcadman)
Merged pull requests:
- Preserve escaped " in String literals #2011 (paulcadman)
- Fix: broken links of Example programs #2003 (jonaprieto)
- Write compile output file to invoke dir by default #1999 (paulcadman)
- Add minor improvements to the docs #1995 (vrom911)
- ci: Specify llvm version in brew prefix command #1990 (paulcadman)
- Fix location for case expressions #1987 (lukaszcz)
- Fix: add supported targets as option for compile commands #1983 (jonaprieto)
- Fix: Stop 'make check' at first failure #1981 (jonaprieto)
- Test numbering #1977 (lukaszcz)
- Refactor Core datastructures #1975 (lukaszcz)
- Add Juvix to all benchmarks #1974 (lukaszcz)
- Check for the executable (WASM/native) pipeline prerequisites #1970 (lukaszcz)
- Print quoted strings in the runtime #1969 (lukaszcz)
- Update the tutorial #1967 (lukaszcz)
- Fix PrettyCode (Maybe a) instance "Just" case #1966 (paulcadman)
- Documentation for projects and modules #1962 (janmasrovira)
- repl: Run disambiguateNames on result node #1961 (paulcadman)
- Add FoldTypeSynonyms Transformation to Geb Pipeline and more Geb Tests #1956 (lukaszcz)
- Support local modules #1872 (janmasrovira)
v0.3.1
v0.3.1 (2023-03-31)
This new version comes with several enhancements and bug fixes. A key goal for
this release was to rigorously test the new compiler pipeline, placing special
emphasis on the GEB backend (STLC fragment). To accomplish this, we have
integrated end-to-end tests, an unroll mechanism for recursive function calls,
and implemented changes to the Juvix GEB IR.
Now, users can now seamlessly write Juvix code, compile it to GEB, and execute
it using the built-in GEB evaluator or its REPL. Give it a try and feel free to
report any bugs you encounter to help us improve!
On the tooling side, we have added a new command to the Juvix CLI, juvix format,
so forget about the hassle of manually formatting your code, yey!
Implemented enhancements:
- Option
--show-args-num
#1946 (lukaszcz) - Preserve the target type in letrec lifting #1945 (janmasrovira)
- Add syntax highlighting to Core error messages #1938 (lukaszcz)
- Add the
--unroll
option #1935 (lukaszcz) - Preserve name and location information in Internal-to-Core #1933 (lukaszcz)
- Polymorphic type inference in Core #1931 (lukaszcz)
- Update README.md with Juvix nightly builds badge #1923 (jonaprieto)
- Create clean-up-cache.yaml #1915 (jonaprieto)
- Update GitHub pages deployment using deploy-pages action #1910 (jonaprieto)
- Check for recursive inductive types in the GEB pipeline #1909 (lukaszcz)
- CI pre-commit maintenance #1905 (jonaprieto)
- Add new README and md files #1904 (jonaprieto)
- Print JuvixCore correctly #1875 (lukaszcz)
- Pattern matching compilation #1874 (lukaszcz)
- CI Haskell maintenance #1797 (jonaprieto)
Merged pull requests:
- Let-folding after lifting #1955 (lukaszcz)
- Fix removal of polymorphic type arguments #1954 (lukaszcz)
- Fix a bug in closure traversal #1953 (lukaszcz)
- Update typecheck command to check for coverage #1952 (janmasrovira)
- CI: Ignore errors linux typecheck / format examples step #1950 (paulcadman)
- Filter out type synonyms in RemoveTypeArgs #1949 (lukaszcz)
- Add fail nodes to Geb #1947 (lukaszcz)
- End-to-end Geb compilation tests #1942 (lukaszcz)
- Add juvix dev repl command #1941 (paulcadman)
- Refactor Geb values #1940 (lukaszcz)
- Avoid capturing the same free variable multiple times in letrec lifting #1939 (janmasrovira)
- Add Judoc syntax reference #1934 (janmasrovira)
- Fix spacing of judoc in the formatter #1932 (janmasrovira)
- bench: Fix juvix compile flag for wasm #1925 (paulcadman)
- Fix memory count for string operations #1924 (lukaszcz)
- Let folding #1921 (lukaszcz)
- Add a test suite for milestone examples #1920 (paulcadman)
- Add --numeric-version flag #1918 (jonaprieto)
- Fix bug with unregistered builtin bool #1917 (lukaszcz)
- Recursion unrolling for functions #1912 (lukaszcz)
- Fix REPL state to include enough information to rerun the pipeline #1911 (janmasrovira)
- CI Haskell fix for macOS build #1908 (jonaprieto)
- Fix bug in IO runtime #1906 (lukaszcz)
- Fix JuvixAsm validation #1903 (lukaszcz)
- Fix registration of builtin inductive axioms #1901 (paulcadman)
- internal-to-core: Fix index shifting of pattern arguments #1900 (paulcadman)
- Fix de Bruijn indices in rmap #1898 (lukaszcz)
- Normalize types in repl #1897 (janmasrovira)
- Add MidSquareHash.juvix and fix types in MidSquareHash.jvc #1896 (lukaszcz)
- Automatically detect and split mutually recursive blocks in let expressions #1894 (janmasrovira)
- The
rmap
recursor #1893 (lukaszcz) - Add
juvix format
command #1886 (paulcadman) - Make keyword
end
optional for top modules #1883 (janmasrovira) - Add errors to the Core pipeline and check GEB prerequisites #1871 (lukaszcz)
- Test core to geb translation #1865 (jonaprieto)
v0.3.0
What's Changed
- Fix macOS CI build by @paulcadman in #1747
- Fix link in README for the new docs by @lukaszcz in #1745
- Adapt Juvix programs to the new pipeline by @lukaszcz in #1746
- Move juvix-mode to a separate repository by @jonaprieto in #1744
- Fix demo example build by @paulcadman in #1757
- Update CI to install Smoke, Github actions, and Makefile fixes by @jonaprieto in #1735
- Remove hlint from the CI and pre-commit config by @jonaprieto in #1759
- Translate Nat builtins to the correct Core Ops by @paulcadman in #1760
- Print comments when pretty printing concrete syntax by @janmasrovira in #1737
- Improve arity inference for repl expressions by @janmasrovira in #1762
- Fix broken links and other improvements by @jonaprieto in #1761
- Fix let expressions in the repl by @janmasrovira in #1763
- Run the new Juvix formatter for all the Juvix examples by @jonaprieto in #1764
- Install wasmer binary from Github releases by @jonaprieto in #1765
- Lazy boolean operators by @lukaszcz in #1743
- Use absolute path in Core Evaluator to generate source file location by @paulcadman in #1769
- Parse JuvixCore with absolute paths by @paulcadman in #1770
- Add debugging builtin functions
trace
andfail
by @jonaprieto in #1771 - Keep regular comments in html output by @janmasrovira in #1766
- Update pre-commit by @jonaprieto in #1772
- Add builtin nat and bool types as start nodes in reachability analysis by @paulcadman in #1775
- Fix minor issue with ==% for type equality by @jonaprieto in #1780
- Pipes for lambda clauses by @janmasrovira in #1781
- Track builtins in the Core InfoTable by @paulcadman in #1782
- Allow type signatures to have a body by @janmasrovira in #1785
- Translate as-pattern binders to Core PatternBinders by @paulcadman in #1789
- Fix termination with as-patterns by @janmasrovira in #1787
- String builtins by @lukaszcz in #1784
- Use restore/save github action to speed up the CI testing by @jonaprieto in #1783
- Basic Geb integration by @lukaszcz in #1748
- Use the reader effect by @janmasrovira in #1791
- Add REPL option to apply Core transformations by @paulcadman in #1796
- Adapt benchmarks to the new pipeline by @lukaszcz in #1795
- Remove braces from let expressions by @janmasrovira in #1790
- Support letrec lifting without lambda lifting by @janmasrovira in #1794
- Autocompletion for
dev core compilation --target
by @janmasrovira in #1803 - Support integers in the GEB backend by @lukaszcz in #1778
- Mid-square hashing implemented in JuvixCore by @lukaszcz in #1804
- Remove the usage annotation syntax by @lukaszcz in #1805
- Special syntax for case by @janmasrovira in #1800
- Short syntax for sequences of function and datatype parameters by @lukaszcz in #1809
- Documentation: how to compile Juvix programs by @lukaszcz in #1813
- Output proper GEB Lisp programs by @lukaszcz in #1810
- Comments about the usage of the JuvixCore recursors by @lukaszcz in #1818
- Workaround ghcup issue on CI runner by @paulcadman in #1821
- Add internal core-eval option to evaluate named function identifier by @paulcadman in #1819
- Update the Juvix tutorial for 0.3 by @lukaszcz in #1822
- Apply CI ghcup workaround to docs build by @paulcadman in #1823
- Make '>>' lazy by @lukaszcz in #1812
- Emacs mode and VSCode extension tutorials by @lukaszcz in #1815
- The formatter respects the ascii function arrow by @janmasrovira in #1834
- Add
dev core from-concrete
command by @janmasrovira in #1833 - Respect the
juvix dev highlight --format
flag when outputting errors by @janmasrovira in #1820 - Respect lambda Ascii/Unicode by @janmasrovira in #1838
- Documentation: update language reference by @lukaszcz in #1829
- Fix
juvix init
by @janmasrovira in #1835 - Give proper errors for incorrect application of lazy builtins by @lukaszcz in #1830
- Add lambda type info by @janmasrovira in #1845
- Improve formatter by @janmasrovira in #1840
- Improve comma formatting by @janmasrovira in #1842
- Add compilation of complex pattern matching to case by @paulcadman in #1824
- Remove module parameters by @janmasrovira in #1848
- Add type annotation to case expression by @janmasrovira in #1849
- Preserve single wildcards pretty printing function parameters by @paulcadman in #1851
- Add type info to the mid-square hashing function by @lukaszcz in #1853
- Sort the identifiers topologically in the Core-to-GEB translation by @lukaszcz in #1854
- Use APE mechanism to format Function expressions by @paulcadman in #1852
- Format examples by @janmasrovira in #1856
- Allow shadowing local variables with let function definitions by @janmasrovira in #1847
- remove old minihaskell files by @jonaprieto in #1859
- Add Geb Backend Evaluator with some extra subcommands by @jonaprieto in #1808
- Move
substEnv
to its own module by @janmasrovira in #1861 - Add
_caseTypeWholeExpression
to Internal by @janmasrovira in #1860 - Fix bugs in the Case translation in Core-to-Geb by @lukaszcz in #1858
- Fix Core-To-Geb translation by @jonaprieto in #1863
- Use Ape to format patterns by @janmasrovira in #1870
- Update stack resolver to lts-20.12 by @paulcadman in #1873
- Fix type synonym in let by @janmasrovira in #1880
- New compilation pipeline by @lukaszcz in #1832
- Remove the old C backend by @lukaszcz in #1862
- Remove dead code in
Internal
by @janmasrovira in #1891 - Remove missing Juvix examples and webapp example from docs build by @paulcadman in #1890
- Prepare Release 0.3.0 by @paulcadman in #1892
Full Changelog: v0.2.9...v0.3.0
v0.2.9
Implemented enhancements:
- Refactor
html
command with extra options #1725 (jonaprieto) - Add initial setup for codespaces #1713 (jonaprieto)
- Typecheck let expressions #1712 (janmasrovira)
- Use Smoke instead of shelltestrunner #1710 (jonaprieto)
- Replace --output-dir flag by --internal-build-dir #1707 (jonaprieto)
- Compiler output #1705 (jonaprieto)
- Allow optional pipe before the first constructor for inductive type declarations #1699 (jonaprieto)
- Nat builtins #1686 (lukaszcz)
Merged pull requests:
- Demo #1736 (lukaszcz)
- Update stack.yaml #1734 (jonaprieto)
- Fix Nat builtins #1733 (lukaszcz)
- Script to count LOC #1732 (lukaszcz)
- Give a proper type to literal Strings #1730 (paulcadman)
- Do not filter implicit args in internal to core translation #1728 (paulcadman)
- Fix de Brujin indexing of lambda arguments #1727 (paulcadman)
- Fix inference loop #1726 (janmasrovira)
- Remove wildcard patterns from Internal #1724 (janmasrovira)
- Restructure the documentation and add a tutorial #1718 (lukaszcz)
- Improve error message for confusing ':=' with '=' #1715 (lukaszcz)
- Fix #1704 #1711 (janmasrovira)
- Fix #1693 #1708 (janmasrovira)
- Tests for the new compilation pipeline #1703 (lukaszcz)
- Add printString and printBool support to legacy C backend #1698 (paulcadman)
- Add --show-de-bruijn option to
juvix repl
#1694 (lukaszcz) - Allow 'terminating' keyword with builtins #1688 (lukaszcz)
- Remove unicode cons symbol #1687 (lukaszcz)
- Change syntax for ind. data types and forbid the empty data type #1684 (jonaprieto)
- Convert Nat literals to Core integers #1681 (lukaszcz)
- Less verbose output from running
make check
#1675 (jonaprieto) - Remove where syntax #1674 (jonaprieto)
- Benchmarks #1673 (janmasrovira)
- JuvixCore to JuvixAsm translation #1665 (lukaszcz)
v0.2.8
Implemented enhancements:
- Support basic dependencies #1622 (janmasrovira)
Merged pull requests:
- Refactor hie.yaml and add entry in the readme #1672 (janmasrovira)
- Fix inline monospace formatted text in README #1671 (paulcadman)
- Pin mdbook to version 0.4.22 in docs build #1670 (paulcadman)
- Add option to specify Core transformations to
dev internal core-eval
#1669 (paulcadman) - Add configuration files so the project can be built with cabal #1667 (paulcadman)
- Add documentation for compiling/running the TicTacToe example #1664 (paulcadman)
- Conversion of Nat representation to JuvixCore integers #1661 (lukaszcz)
- Move applications inside Lets and Cases #1659 (lukaszcz)
- Run shelltests on macOS build #1658 (paulcadman)
- Restore macOS CI build/test #1657 (paulcadman)
- Remove type arguments and type abstractions from Nodes #1655 (lukaszcz)
- Pretty printing of JuvixAsm code #1650 (lukaszcz)
- Remove NameId from Core #1649 (lukaszcz)
- Translation from JuvixAsm to C #1619 (lukaszcz)
v0.2.7
v0.2.7 (2022-12-05)
Implemented enhancements:
- Add juvix-repl-mode for emacs #1612 (paulcadman)
- Make lambda lifting correct when free variables occur in the types of binders #1609 (janmasrovira)
Merged pull requests:
- Files pure refactor #1652 (janmasrovira)
- Use the same stack version in all CI jobs and remove
stack setup
step #1651 (paulcadman) - Fix 'not a primitive type' error message #1648 (lukaszcz)
- Upgrade stack snapshot to use ghc-9.2.5 #1621 (janmasrovira)
- Add an emacs function to restart the REPL #1618 (paulcadman)
- Add types to Core functions and constructors when translating from Internal #1617 (paulcadman)
- Auto complete argument of 'dev core read -t' #1616 (janmasrovira)
- Compute new entrypoint root when loading a file in the REPL #1615 (paulcadman)
- Compute maximum runtime stack height in JuvixReg #1613 (lukaszcz)
- Remove shelltest threading #1611 (paulcadman)
- Use StackInfo and recurseS in the JuvixAsm to JuvixReg translation. #1610 (lukaszcz)
- Precompute maximum heap allocation #1608 (lukaszcz)
- Improvements to Juvix REPL #1607 (paulcadman)
- Fix discrepancy between Juvix and WASM pages #1605 (lukaszcz)
- Compute JuvixAsm stack usage info #1604 (lukaszcz)
- Improve As-Pattern parsing #1603 (ii8)
- Juvix core recursors should descend into nodes stored in infos #1600 (janmasrovira)
- Add docs for installing the linux binary #1599 (paulcadman)
- Binder refactor #1598 (janmasrovira)
- Juvix C runtime #1580 (lukaszcz)
- As-patterns #1576 (ii8)
- Eta expansion at the top of each core function definition (#1481) #1571 (janmasrovira)
- Add translation from Internal to Core #1567 (paulcadman)
v0.2.6
v0.2.6 (2022-10-26)
Implemented enhancements:
- Support go to definition for the standard library #1592 (paulcadman)
- Add builtin if #1585 (paulcadman)
- Add builtin boolean #1582 (paulcadman)
- Add lambda expressions to internal and add typechecking support #1538 (janmasrovira)
Fixed bugs:
- Fix arity checker bug #1546 (janmasrovira)
- Look in patterns when building the dependency graph #1536 (janmasrovira)
Merged pull requests: 🎉
- Update language reference to match current state of Juvix #1594 (paulcadman)
- Fix letrec printing #1591 (janmasrovira)
- Update stdlib submodule with builtin changes #1589 (paulcadman)
- Rename builtin natural to nat and boolean to bool #1588 (paulcadman)
- Improve the test for eta-expansion of constructors and builtins #1583 (lukaszcz)
- Properly newline expressions in the pretty printer #1581 (janmasrovira)
- Letrec lifting #1579 (janmasrovira)
- Add softlines between applications and hang definitions #1578 (janmasrovira)
- Parse optional type info in JVC files #1575 (lukaszcz)
- Fix symbol numbering bug #1574 (lukaszcz)
- Rewrite the test for lambda lifting to use evaluation #1572 (janmasrovira)
- Remove lambda from reservedSymbols #1568 (lukaszcz)
- Keywords refactor #1566 (janmasrovira)
- remove ≔ from the language and replace it by := #1563 (janmasrovira)
- JuvixReg #1551 (lukaszcz)
- Remove duplicate function in concrete analysis #1550 (ii8)
- Evaluator minor style refactor #1547 (janmasrovira)
- Properly handle top lambdas in the termination checker #1544 (janmasrovira)
- Mutual inference #1543 (janmasrovira)
- Autocomplete ".jvc" input files for core {eval, read} commands #1542 (paulcadman)
- Add --show-de-bruijn to
core eval
command #1540 (paulcadman) - Inductive types should depend on the types of their constructors #1537 (lukaszcz)
- Parser labels #1535 (janmasrovira)
- JuvixAsm #1432 (lukaszcz)
v0.2.5
v0.2.5 (2022-09-14)
Fixed bugs:
- Properly type check patterns that need normalization #1472 (janmasrovira)
- Detect nested patterns as smaller in the termination checker #1524
- Fix developBeta in Core/Extra.hs #1487 (lukaszcz)
- Core/Extra/Recursors/Collector bugfix #1510 (lukaszcz)
Merged pull requests:
- Replace -> by := in lambda syntax #1533 (janmasrovira)
- 'Match' with complex patterns in Core #1530 (lukaszcz)
- Refactor CLI #1527 (janmasrovira)
- Add CanonicalProjection #1526 (janmasrovira)
- Make comma a delimiter #1525 (lukaszcz)
- Detect nested patterns as smaller in the termination checker #1524 (janmasrovira)
- Disallow tab characters as spaces #1523 (janmasrovira)
- Refactor
destruct
in Core/Extra/Base #1522 (lukaszcz) - JuvixCore primitive types #1521 (lukaszcz)
- Enable autocompletion for the –theme flag #1519 (janmasrovira)
- Stripped version of Core Node datatype #1518 (lukaszcz)
- Add
internal core read
command #1517 (janmasrovira) - Implement some instances for BinderList #1515 (janmasrovira)
- Back recursor types with type families #1514 (janmasrovira)
- Eager evaluation of Constr arguments #1513 (lukaszcz)
- Dynamic type in Core #1508 (lukaszcz)
- LetRec in Core #1507 (lukaszcz)
- Add Haddock and Agda licenses #1506 (janmasrovira)
- Fix docs webapp examples CI build #1505 (paulcadman)
- Add CLI usage examples doc and integrate with README #1504 (paulcadman)
- Refactor BinderInfo #1503 (lukaszcz)
- Make
juvix compile
default to native target #1502 (paulcadman) - Refactor Node datatype #1501 (lukaszcz)
- Clean up import list in Pipeline #1499 (jonaprieto)
- Remove mono #1497 (jonaprieto)
- Remove Haskell support #1496 (jonaprieto)
- Implement lambda lifting #1494 (janmasrovira)
- Document Emacs installation and the 'exec-path' problem #1493 (lukaszcz)
- Add –allow-different-user to workflow stack command #1492 (paulcadman)
- Stack with github actions permissions workaround #1490 (paulcadman)
- Restructure recursors and add some lens interfaces #1489 (janmasrovira)
- Add a github action to build a static linux binary #1488 (paulcadman)
- Fix developBeta in Core/Extra.hs #1487 (lukaszcz)
- Add an option to show name ids in errors #1486 (lukaszcz)