Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Standard
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Model registry
Monitor
Service Desk
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
MTS
TTCN-3
Standard
Commits
01bf7462
Commit
01bf7462
authored
3 weeks ago
by
Matthias Simon
Browse files
Options
Downloads
Patches
Plain Diff
Fix some typos
parent
430e81c2
Branches
main
No related tags found
No related merge requests found
Pipeline
#12628
passed
3 weeks ago
Stage: build
Stage: test
Stage: deploy
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
meetings/2025-03-11.md
+30
-32
30 additions, 32 deletions
meetings/2025-03-11.md
with
30 additions
and
32 deletions
meetings/2025-03-11.md
+
30
−
32
View file @
01bf7462
...
...
@@ -2,15 +2,14 @@
## Range-based loop alignment
We discussed proposed changes for issue #23 and and #30 and came to a
resolution that fixes most misalignments with only minor changes to the current
behaviour:
We discussed proposed changes for issue #23 and #30 and came to a resolution
that fixes most misalignments with only minor changes to the current behaviour:
-
Automatic type inference will be included, but no new BNF productions will be
added.
-
Templates will not be included in for-range-loop declarations, to avoid open
edge cases with
`lengthof`
.
-
The
perce
ption for assignment of an uninitialized iterator variable will be
-
The
descri
ption for assignment of an uninitialized iterator variable will be
added.
-
The examples will be reorganized to reflect above changes.
...
...
@@ -32,12 +31,12 @@ and compile a proposal.
We discussed the current state of template evaluation and its implementation in
different tools. We recognized the validity of the different use-cases for
all different types of template and ag
g
reed that the current specification is
all different types of template and agreed that the current specification is
not clear enough and needs to be revised.
One cause for confusion is the meaning of "parameterization". It is not clear
if this means parameterization in the sense of formal and actual parameters or
if it is used a general term for any kind of referring to a source of values
if it is used
as
a general term for any kind of referring to a source of values
(constants, functions, ...).
Issue #49 will be used to identify and clarify the different usage of the term
parameterization.
...
...
@@ -49,7 +48,7 @@ Further discussion and proposals for template evaluation and deprecation of
## Type Terminology
We agreed that the current terms do not serve us well and should be revised.
Harmonization of charstring should be tak
ing
into account and its consequences
Harmonization of charstring should be tak
en
into account and its consequences
need to be studied.
Issue #50 will be used to track the progress on this topic.
...
...
@@ -57,7 +56,7 @@ Issue #50 will be used to track the progress on this topic.
## Structured Types
The discussion the following structured types will be tracked by issue #51.
The discussion
of
the following structured types will be tracked by issue #51.
### `set` and `set of`
...
...
@@ -69,9 +68,9 @@ specification.
We discussed use-cases and limitations of
`anytype`
and
`any`
.
`anytype`
is widely used various language mapping but has the limitation to be
contrained to a single module.
`any`
is more flexible, but does not allow
explicit selection of types and it
'
s use is limited to external functions only.
`anytype`
is widely used
in
various language mapping but has the limitation to be
con
s
trained to a single module.
`any`
is more flexible, but does not allow
explicit selection of types and its use is limited to external functions only.
We agreed to merge
`any`
and
`anytype`
. The new open type will be called
`anytype`
since it is older and more established.
...
...
@@ -115,7 +114,7 @@ b := 1; // ERROR: integer is not part of the subtype
```
This new behaviour models what is known as "sum types", "variant types",
"tagged unions", ... and helps to specif
i
y polymorphic functions such as
`substr`
:
"tagged unions", ... and helps to specify polymorphic functions such as
`substr`
:
```
ttcn3
type
anytype
listtype
(
hexstring
,
octetstring
,
bitstring
,
charstring
);
...
...
@@ -141,7 +140,7 @@ type record R {
}
```
This proposal was rejected, since
it
people are used to it and the benefit of
This proposal was rejected, since people are used to it and the benefit of
this restriction is not convincing.
### Map-types
...
...
@@ -153,8 +152,8 @@ implementation" without special syntax (like it was done with containers in
C++).
We could not see the benefits of changing the current specification and decided
to keep it as it is
, b
ut at least review the specification of
`unmap`
to delete
elements.
to keep it as it is
. B
ut at least
we want to
review the specification of
`unmap`
to delete
elements.
## Automatic types
...
...
@@ -166,8 +165,8 @@ such feature would create unnecessary implementation effort for tool vendors.
Speaking in favor of automatic typing, it was argued that implementation effort
is only minimal since type inference is already implemented in every tool
anyway. It was also argued that automatic typing can
also
lead to
higher code quality by improving readablity and preventing potential errors
anyway. It was also argued that automatic typing can lead to
higher code quality by improving readab
i
lity and preventing potential errors
rooted in type compatibility during assignment:
```
ttcn3
...
...
@@ -202,11 +201,11 @@ We postponed the decision for now, since it is not a critical issue.
## Type Semantics
During discussion if its possible to import the same module twice (no, it's
not), it became apparent that we need to introduce new concepts to the language
During discussion if it
'
s possible to import the same module twice (no, it's
not), it became apparent that we need to introduce new concepts to the language
's
type system.
The definition of __type synonym__, __type alias__, __subtype__ need to be reviewed.
The definition of __type synonym__, __type alias__, __subtype__ need
s
to be reviewed.
This could include __type compatibility__, __type equivalence__ and __strong typing__.
...
...
@@ -216,7 +215,7 @@ Currently there are two uses for __strong typing__:
value is not changed.
-
in port communication to ensure that the encoding of a value is as expected.
Issue
$
52 will be used to track the progress on this topic.
Issue
#
52 will be used to track the progress on this topic.
## Expressions
...
...
@@ -240,12 +239,12 @@ Further work on this topic will be continued in issue #53.
## Definition of Templates
Templates are
_
_the_
_
central concept of TTCN-3.
The e
volution of the language,
Templates are _the_ central concept of TTCN-3.
E
volution of the language,
however, has led to a situation where the standard has become difficult to
understand. For example, when talking about "values" sometimes the term refers
to a concrete value without matching symbols, sometimes to
a concrete value or
to a concrete value without matching symbols,
but
sometimes to
the value of a template. When talking about "templates" sometimes the term
refers to a value of template
type
, sometimes just to the template-type.
refers to a value of template, sometimes just to the template-type.
For the next major release we agreed to refine the terminology and how
templates are specified.
...
...
@@ -258,7 +257,6 @@ Issue #54 will be used to track the progress on this topic.
Index-access, length, concatenation, value list assignment, assignment-lists,
handling of uninitialized elements and templates needs harmonization.
Issue #22 will track that progress.
...
...
@@ -266,7 +264,7 @@ Issue #22 will track that progress.
Interleave is required for certain used cases. Waiting for some messages to
arrive during error-handling, to name one example. However in its current state
it's too easy to create extremly complex and opaque behaviour.
it's too easy to create extrem
e
ly complex and opaque behaviour.
Issue #55 will be used to discuss possible improvements.
...
...
@@ -282,12 +280,12 @@ Issue #56 will be used to track the progress on this topic.
## `with` statements and attributes
Similar to the import statment, the
`with`
statement should be simplified.
Similar to the import stat
e
ment, the
`with`
statement should be simplified.
We discussed that the
`with`
statement is use
e
d for attaching attributes to
We discussed that the
`with`
statement is used for attaching attributes to
module-definitions of modules or groups and to types and their fields directly.
"All
r
efs" seem not to be used in practice, as is the
`display`
attribute and
"All
R
efs" seem not to be used in practice, as is the
`display`
attribute and
multi-encodings.
Issue #57 will provide a proposal for simplification without losing
...
...
@@ -324,7 +322,7 @@ since the standard already provided a way to break out of nested loops using
After extensive discussion we came to the conclusion that preprocessing macros
should stay part of the core language specification.
It should be reviewd, though, since the some macros (
`__SCOPE__`
and
It should be review
e
d, though, since the some macros (
`__SCOPE__`
and
`__MODULE__`
) cannot be used as macro but rather as a predefined constant.
## Goto
...
...
@@ -333,13 +331,13 @@ We had mixed feelings about `goto`. On the one hand its use is discouraged in
many environments, on the other hand, it can a be a powerful tool (given it's
properly specified and used).
Goto could be a candidate
for previously mentioned
convenience extension.
Goto could be a candidate
a
convenience extension.
Further discussion is needed.
## Convenience extension
Many language features strictly speaking are not necessary, but provide the
Many language features
,
strictly speaking
,
are not necessary, but provide the
convenience of writing less code, providing modern programming patterns, ...
An extension package could help us providing the best of both worlds: A core
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment