ETSI's Bug Tracker - Part 01: TTCN-3 Core Language
View Issue Details
0008156Part 01: TTCN-3 Core LanguageNew Featurepublic12-12-2022 14:3626-01-2024 16:28
Matthias Simon 
Jens Grabowski 
normalminorhave not tried
assignedopen 
 
 
16.4 -- Methods
Nokia - Matthias Simon
0008156: Introduce user defined methods
This CR is a part of splitting http://oldforge.etsi.org/mantis/view.php?id=8113 [^]
No tags attached.
docx CR8156.docx (127,086) 16-12-2022 11:53
http://oldforge.etsi.org/mantis/file_download.php?file_id=4101&type=bug
docx CR8156-2.docx (162,277) 20-12-2022 10:19
http://oldforge.etsi.org/mantis/file_download.php?file_id=4108&type=bug
Issue History
12-12-2022 14:36Matthias SimonNew Issue
13-12-2022 20:50Matthias SimonFile Added: CR8156.docx
16-12-2022 11:50Matthias SimonAssigned To => Matthias Simon
16-12-2022 11:50Matthias SimonStatusnew => assigned
16-12-2022 11:53Matthias SimonFile Deleted: CR8156.docx
16-12-2022 11:53Matthias SimonFile Added: CR8156.docx
19-12-2022 13:19Matthias SimonNote Added: 0016429
19-12-2022 13:19Matthias SimonAssigned ToMatthias Simon => Tomas Urban
19-12-2022 13:19Matthias SimonStatusassigned => confirmed
20-12-2022 10:19Tomas UrbanFile Added: CR8156-2.docx
20-12-2022 10:23Tomas UrbanNote Added: 0016433
20-12-2022 10:23Tomas UrbanAssigned ToTomas Urban => Matthias Simon
20-12-2022 11:08Matthias SimonNote Added: 0016435
20-12-2022 12:26Jens GrabowskiNote Added: 0016438
20-12-2022 12:26Jens GrabowskiStatusconfirmed => assigned
03-01-2023 12:13Matthias SimonNote Added: 0016447
07-11-2023 15:10Jens GrabowskiNote Added: 0016540
07-11-2023 15:10Jens GrabowskiAssigned ToMatthias Simon => Jens Grabowski
08-11-2023 11:19Matthias SimonNote Added: 0016547
26-01-2024 16:28Olivier GenoudNote Added: 0016609

Notes
(0016429)
Matthias Simon   
19-12-2022 13:19   
Uploaded initial proposal for methods, please review.

Please note, after a good while of consideration I finally went with the free-floating syntax. Because it's the least intrusive. It doesn't fit perfectly with the OOP extension, but with the rest of the standard, though.

What I also value high is that free-floating syntax makes it easy to retro-fit existing operations and demote them to some kind of a standard library, without breaking compatibility. For example:

    external function start(in float duration) extends timer;
    external function stop() extends timer;
(0016433)
Tomas Urban   
20-12-2022 10:23   
I made some changes in the document, adding an explanatory rule for imports and a couple of rules for type synonyms.

The document also references a new clause 6.2.1.4 (promoted methods). Could you please add a reference to a CR where this clause was introduced?

If you are happy with the changes I made or make just minor corrections, please assign the document to Jens for final reading.
(0016435)
Matthias Simon   
20-12-2022 11:08   
Good catch on the rule for imports, thanks.

I'd like to discuss about the additional rule for type synonym, though.

Embedded fields are proposed in this CR: http://oldforge.etsi.org/mantis/view.php?id=8154 [^]
(0016438)
Jens Grabowski   
20-12-2022 12:26   
TTF discussion: Open questions: (1) Is the same thing as methods in OO extension package? (2) In case a component type extends another component: How do methods behave? TTF requires answers before the feature can be introduced.
(0016447)
Matthias Simon   
03-01-2023 12:13   
The method specifications differ in various aspects, such as visibility, receiver type semantics or applicability.

Proposal should be discussed during the next TTF.
(0016540)
Jens Grabowski   
07-11-2023 15:10   
TTF discussion: Further discussions regarding OO features in TTCN-3 are needed. Discussion should be done in the context of new major revision.
(0016547)
Matthias Simon   
08-11-2023 11:19   
For documentation purposes:

The method proposal has some benefits:
* methods for all TTCN-3 types (not only objects)
* simple syntax and semantics (no new rules for visibility, importing, ...)
* it's possible bind behaviour to a type without changing its representation.

This proposal has to be harmonized with the OOP-extension, because introducing a second, slightly different OOP-style is counter to our efforts in unifying and simplifying TTCN-3.
(0016609)
Olivier Genoud   
26-01-2024 16:28   
OO features shall be kept out of the core language but kept as extension packages (e.g. OO extension).