diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8365182..2cf5590 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,7 @@ name: release on: - create: + push: tags: - '[0-9]+.[0-9]+.[0-9]+' diff --git a/Makefile b/Makefile index 72b28b6..252814a 100644 --- a/Makefile +++ b/Makefile @@ -64,6 +64,10 @@ doxy: grammar: @for i in `grep "#+html: {{page>.:grammar:" lib/casm-fe/src/various/Grammar.org | sed "s/#+html: {{page>.:grammar:/doc\/language\/grammar\//g" | sed "s/&noheader&nofooter}}/.org/g"`; do if [ ! -f $$i ]; then echo "Documentation of '$$i' is missing!"; fi; done + @echo "Grammar Rules" + @grep "#+html: {{page>.:grammar:" doc/language/syntax.org | wc -l + @echo "Grammar Descriptions" + @ls doc/language/grammar/ | wc -l GITHUB_PATH = $(subst ., $(CONFIG), $(UPDATE_PATH)) diff --git a/app/casmd b/app/casmd index aa8b0a9..b2d4f5b 160000 --- a/app/casmd +++ b/app/casmd @@ -1 +1 @@ -Subproject commit aa8b0a9c69c1bf146792c464939b7e29fe333670 +Subproject commit b2d4f5b31865f343d6cf29de33b9197b56d35b96 diff --git a/app/casmf b/app/casmf index 1e115fe..5beb829 160000 --- a/app/casmf +++ b/app/casmf @@ -1 +1 @@ -Subproject commit 1e115fee7d2ec8110a44295d3eec46db79ff40c2 +Subproject commit 5beb8298fc8fbb9d8a56b442e5cbd8642b0d628e diff --git a/app/casmi b/app/casmi index c3d8eb5..e18bebe 160000 --- a/app/casmi +++ b/app/casmi @@ -1 +1 @@ -Subproject commit c3d8eb5e3547709bbf48af008d6732bf50849dce +Subproject commit e18bebec026a27c7c5ac6fdec4ad3c616acf5fb5 diff --git a/doc/language/grammar/AttributedLocalFunctionDefinition.org b/doc/language/grammar/AttributedLocalFunctionDefinition.org new file mode 100644 index 0000000..700e712 --- /dev/null +++ b/doc/language/grammar/AttributedLocalFunctionDefinition.org @@ -0,0 +1,5 @@ +#+options: toc:nil + +* AttributedLocalFunctionDefinition + +An attributed local function definition which can have optionally =Attributes=. diff --git a/doc/language/grammar/LocalFunctionDefinition.org b/doc/language/grammar/LocalFunctionDefinition.org new file mode 100644 index 0000000..302a6c1 --- /dev/null +++ b/doc/language/grammar/LocalFunctionDefinition.org @@ -0,0 +1,9 @@ +#+options: toc:nil + +* LocalFunctionDefinition + +The same as a traditional =FunctionDefinition= without a =function= keyword. + +#+html: +This definition is introduced in version =0.5.0=. +#+html: diff --git a/doc/language/grammar/LocalFunctionDefinitions.org b/doc/language/grammar/LocalFunctionDefinitions.org new file mode 100644 index 0000000..00bf179 --- /dev/null +++ b/doc/language/grammar/LocalFunctionDefinitions.org @@ -0,0 +1,5 @@ +#+options: toc:nil + +* LocalFunctionDefinitions + +LocalFunctionDefinitions consist of one or more attributed =LocalFunctionDefintions=. diff --git a/doc/language/grammar/LocalRule.org b/doc/language/grammar/LocalRule.org new file mode 100644 index 0000000..25675ba --- /dev/null +++ b/doc/language/grammar/LocalRule.org @@ -0,0 +1,10 @@ +#+options: toc:nil + +* LocalRule + +The =local= rule defines a function definition in the current rule scope. +Therefore, it represents a local state inside a given rule. + +#+html: +This definition is introduced in version =0.5.0=. +#+html: diff --git a/doc/language/grammar/UsingPathDefinition.org b/doc/language/grammar/UsingPathDefinition.org new file mode 100644 index 0000000..3c2f90a --- /dev/null +++ b/doc/language/grammar/UsingPathDefinition.org @@ -0,0 +1,10 @@ +#+options: toc:nil + +* UsingPathDefinition + +A =using= path definition makes symbols of imported module determined by its =IdentifierPath= visible in the current specification. +If the symbol path ends with an star (=*=), then all symbols of the specified module path are made visible in the current specification. + +#+html: +This definition is introduced in version =0.5.0=. +#+html: diff --git a/doc/release/0.5.0.org b/doc/release/0.5.0.org new file mode 100644 index 0000000..cf8c04b --- /dev/null +++ b/doc/release/0.5.0.org @@ -0,0 +1,57 @@ +# +# Copyright (C) 2014-2020 CASM Organization +# All rights reserved. +# +# Developed by: Philipp Paulweber +# Emmanuel Pescosta +# +# +# This file is part of casm. +# +# casm is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# casm is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with casm. If not, see . +# +# + +#+options: toc:nil +#+html: {{tag>release}} + +*** 0.5.0 + +#+html: +[[https://github.com/casm-lang/casm/releases/tag/0.5.0][{{fa>github?lg}}]] April 5, 2020 + +The release identifier [[http://www.behindthename.com/name/epiktetos][epiktetos]] +is derived from the Greek name Επικτητος (Epiktetos) and means "newly acquired". +#+html: + +#+html: +#+html: +#+html: +This is the fives official release of the CASM project. +It introduces two improvements and all are language related. +The last release introduced a module import concept and we have added a =using= path namespace concept to make symbols visible and shorted their symbol name path. +Besides the =using= path syntax, we support the =local= rule definition now. +This rule allows a specifier to defined (nested) local state functions inside given rule scopes. + +#+html: +#+html: +#+html: + +| {{fa>file-alt?lg}} | *Language* | We introduced a new language syntax [[./../syntax#UsingPathDefinition][definition element]] to make module symbols visible under shorter name. | +| | | | +| {{fa>file-alt?lg}} | *Language* | Provided support for the [[./../syntax#LocalRule][local rule]] to defined nested local states. | +| | | | + +#+html: +#+html: diff --git a/lib/asmjit b/lib/asmjit index 019811d..0b2e81c 160000 --- a/lib/asmjit +++ b/lib/asmjit @@ -1 +1 @@ -Subproject commit 019811d1f0d7a9808a61edffee5d9f22c9986eaa +Subproject commit 0b2e81ca745b59ed4be15e1e66335bf7e56adcfe diff --git a/lib/casm-fe b/lib/casm-fe index d57cdde..5ac70eb 160000 --- a/lib/casm-fe +++ b/lib/casm-fe @@ -1 +1 @@ -Subproject commit d57cdded09feeae11959103681f941aa13d37098 +Subproject commit 5ac70eb81c7aa6cdf70145fe588abea171f7cce2 diff --git a/lib/casm-ir b/lib/casm-ir index c7ba739..a56a030 160000 --- a/lib/casm-ir +++ b/lib/casm-ir @@ -1 +1 @@ -Subproject commit c7ba739818ecdf69ef2156e7d6cea1a22de0c983 +Subproject commit a56a0308f87e7ba3d2e938a67a58bd8282b26b0b diff --git a/lib/casm-rt b/lib/casm-rt index 0ee9bed..a5baa01 160000 --- a/lib/casm-rt +++ b/lib/casm-rt @@ -1 +1 @@ -Subproject commit 0ee9bed7fdf6500c8179650ec0b85e88109719ed +Subproject commit a5baa01e4c50c2d8c685804aecf68721d2571571 diff --git a/lib/casm-tc b/lib/casm-tc index a405dd7..f77b063 160000 --- a/lib/casm-tc +++ b/lib/casm-tc @@ -1 +1 @@ -Subproject commit a405dd735b09d1d4dd77bba5864cb8fef85fd3f1 +Subproject commit f77b0638882d0c028c73202f223c9548ff076a37 diff --git a/lib/pass b/lib/pass index 1121c39..2a9cd77 160000 --- a/lib/pass +++ b/lib/pass @@ -1 +1 @@ -Subproject commit 1121c395b49de1500dacc82ad6574272a0d01fd5 +Subproject commit 2a9cd771dc8c856f64e2c8aeb6338d7645851ee6 diff --git a/lib/stdhl b/lib/stdhl index d009afd..a26678e 160000 --- a/lib/stdhl +++ b/lib/stdhl @@ -1 +1 @@ -Subproject commit d009afd4812a7cf767c45f85558d17e28476d876 +Subproject commit a26678e7ed02323f9e20a2509682c23d84996a49 diff --git a/lib/tptp b/lib/tptp index c1ecad0..113a3b0 160000 --- a/lib/tptp +++ b/lib/tptp @@ -1 +1 @@ -Subproject commit c1ecad0f0c555364f7e4aa6d6ef157455fb57838 +Subproject commit 113a3b0e90f79b63e315637126c7f6b562e4a21b diff --git a/lib/z3 b/lib/z3 index e550424..26192e8 160000 --- a/lib/z3 +++ b/lib/z3 @@ -1 +1 @@ -Subproject commit e5504247e9533d10b9a53a842715447a415ac61b +Subproject commit 26192e848c91cd189fcfb1b68e83371eec9d0462