Markdown Version

Session Date/Time: 24 Jun 2026 14:00

Paul Hoffman: I think a moment will be in a moment. Um, we may have everyone we're expecting, but let's give people a minute to uh fight with um MeetEcho. Uh, by the way, people are able to hear me? I'm trying EarPods uh AirPods for the first time.

Mikolai Gütschow: Yes.

Barry Leiba: Yes, we can hear you.

Paul Hoffman: Thank you. I'm always surprised when MeetEcho says which of these devices do you want, one of them is labeled default and it's not chosen. Okay. Um, let's get going. So, the agenda today is as you can see in the um, I guess it's the- that we are going to start with um, uh, talking about the EDN literals Working Group last call and next steps. Um, and then we're going to discuss serialization. So, the way that this has gone with the last call um, for those of you just as a reminder. The chairs asked for specific list of um, from anyone in the working group of parts uh, of the document that was in working group last call um, that they either wanted changed or wanted removed. Uh, we collected those um, and uh, or we collected the responses that we could understand. Um, and I missed one as Vadim pointed out. Um, and there are ones that still we are not sure if that was meant to be reflected in the last call or were just general comments, but uh, I made- I made a list. Uh, I sent it to the working group the other day and again, um, I will send another one because there were uh, at least two errors in it. Um, and I'll send it after the meeting today. And then we sent a- a request to the working group that says what you know, of the things that are on this list, which do you, um, do you, you know, does anyone want to second them or agree with them or whatever. Um, again, all we're trying to do right now is to find uh, rough consensus on the document. So um, and the intention is that within a week, in a week we had said, the chairs will go through the lists, first came and then any responses of people saying, yes, I want that. No, I don't want that of the things on the list. And we'll determine what is working group consensus from that. Um, and I'm sorry, what's working group rough consensus. We are in fact- we're in that part of rough consensus uh, that's difficult where we've heard from very few people um, on specifics. Um, we've heard from plenty of people that they are happy with the entire document as it is. We will figure that out in about a week. Um, so at this point uh, as I see over in my private chat, Christian is asking, should we go through um, the email? And I would say, no, we don't need to. Uh, we are not trying to have a discussion here of does everyone like this. This has to be done on the mailing list. Um, there- the fact that the mailing list is not being responsive does not mean that we spend our time here trying to make the mailing list responsive. Um, what I would like from the group today and before I send out the revised uh, copy is were there things that people did not send in that they meant to, such as what Laurence said yesterday. I will... It's very difficult, Laurence, because I asked for, please say which specific section you want, and um, you did that on some of them but not on the others. Um, I will try to suss that out um, and put those in um, and uh, oh, Mikolai, I see that you're there. Uh, you may have seen my response uh, to Vadim yesterday. It was not clear from your message um, on some of those whether you actually wanted those recorded as um, something or not. You said "bikeshedding", so I assumed not. Um, but I could be wrong. So if after this call, you can send something to the mailing list saying which of those issues you did. I will uh, resend the list this afternoon. We'll restart the timer um, for a week. And then we will simply decide, we the chairs, will simply decide on which issues is there rough consensus. If we are not clear on certain issues, we will ask the working group for that. And then uh, based on that, the- the end of that particular discussion on any particular item, we will then ask Carsten to update the document. Um, if in fact there is not working group consensus, rough consensus, on any of the items on the list, then we will call the last draft done and we will move it forwards to the IETF. Um, I'm the shep- shepherd, I'll have to write up the shepherd report and such like that. If there is agreement, and at this point I feel there is an agreement, a rough consensus agreement, to back out the change of what is- what is this called. Um, then again, we'll ask Carsten to do it, there'll be a new draft, and then I will move that forwards. But at this point, we are done with the draft unless there is rough consensus on particular parts of the draft. Given that, are there any questions for me on um, here in- in the working group on how is this process going? Hands?

Carsten Bormann: I I want to add something, sort of highlight a couple of things that Paul said. Um, we- the point about little specific feedback um, is important here. This is not a case where you can not comment on something and hope that it that it that the comment- that the comment that's already been made stays. If you agree with somebody's comment, we need to hear that. Um, the default is that you- silence means you agree with the document as it's currently written, and not with any changes that someone's proposed. So we really do need to hear if you support a comment someone else made. We need to hear that.

Paul Hoffman: Thank you. Thank you. Any other hands on process? And again, Mikolai, I would love for you to take a look at the response that I gave uh, to Vadim yesterday and see if you in fact expected me to have made those into the list. If I don't hear from you by the end of the day today, which is my day, I assume you're probably much later in the day, it's 7:00 in California here, um, then I will assume that you in fact are fine with my understanding that you didn't want those in. Um, and I will issue, like I said, I will issue a new list today, we'll restart the timer. And again, the request is: Do you, for any particular item, not the in general, any particular item, agree with that item saying something should be changed or something should be removed? And uh, the chairs will talk among ourselves in a week and try to figure out what to do next with this. Okay, seeing no hands. Oh, seeing Carsten's hands. Hi, Carsten.

Carsten Bormann: Hi, can you hear me?

Paul Hoffman: Yes, we can.

Carsten Bormann: So, uh, when we discussed this three weeks ago, we were aware that, uh, there is a lot of editorial work going on, both within the ABNF, which would- would be considered technical work, if it were really just editorial work, and, uh, in other, uh, places. In particular, there's material that needs to be shifted between sections. Um, there's terminology that needs to be simplified. I think most people in this call cannot really read "application-oriented extension", something, something, uh, anymore, and want shorter- shorter terms. So, how- how are we going to handle that?

Paul Hoffman: Uh, well, if- if people proposed those during the call for "what do you want changed", and some of them did- Rowan did a bunch of that, then other people should agree with that if they agree. If there is not- if we are not hearing from people, then we're going to leave the current text. Um, so there is, to our- in our mind, no difference between a proposal for editorial change and proposal for technical change, because as we've seen over the last 15 revs of this document, things that are called editorial changes, in fact, are received as technical changes. So, uh, please take a look at the list and see if some of those match... so, for example, uh, I believe without looking at it, Rowan had some things in the ABNF. If you believe those changes should be made, um, send that to the list saying "Rowen's comment in this section, I agree with", you know, and therefore we might see rough consensus for those changes. Does that make sense?

Carsten Bormann: Yes, I'm not sure that- that all the items that on the editorial list have been mentioned uh, by...

Paul Hoffman: So, we're not going to extend this. We're not- we're not going to ask for another round.

Carsten Bormann: Right. If there's something that's really critical in there, just bring it out soon, like today. Um, if it's not critical, let it go, because we need to finish this.

Paul Hoffman: And so- so, again, I know it's evening for you, Carsten, or I'm assuming it's evening, I don't... you're- you're not having your California hat on. Um, if you, since you did not contribute in the list, if there are ones that you feel very important to add now uh, to the list, send them to the list now, and I will try to incorporate them in this. Yeah.

Carsten Bormann: So, you said I didn't contribute, uh, actually I was forbid from contributing. So, I'm sorry about that, I didn't do that, so I will do it today. Thank you.

Paul Hoffman: Ah, you were forbidden from commenting on other people's criticisms. Uh, you were not forbidden from saying, "and I believe that this needs to be changed."

Carsten Bormann: Okay, commenting includes...

Paul Hoffman: So, there's- there's a large difference.

Carsten Bormann: ...suggesting, "I believe this needs to be changed."

Paul Hoffman: Yeah, so just if you, again today, if you believe that there are things, whether you call them editorial or- or technical, that need to be changed in the draft following the call that we made, send them to the list today. I will update the- I will update the list that I sent out the other day and send it out again tomorrow.

Carsten Bormann: Thank you.

Paul Hoffman: Yep, thanks. Laurence.

Laurence Lundblade: Yeah, the uh- the distinction between commenting, I mean, I- I basically thought we were all supposed to just send our comments and not respond to other people's comments, even with a +1.

Paul Hoffman: Correct.

Laurence Lundblade: Um, so- so, that- that was- that was contradictory instructions, in my opinion.

Paul Hoffman: Well, no, no, no, that- that was true for creating the list. Then we sent out the list the other day and asked for...

Laurence Lundblade: Okay.

Paul Hoffman: ...who supported it and such. So, during the creation of the list, we absolutely, and I had to remind people on the list, that this we were not- we explicitly did not want comments on what people had asked for because what we wanted was a clean list. We now have, well, we had a clean list the other day. I made some mistakes on it. We will have a cleaner list uh, tonight. Does that make sense?

Laurence Lundblade: Yeah, okay. Yeah, and then you- you basically want like +1 um, comments. And not much more than that.

Paul Hoffman: Correct, so that we can determine, because we are going to assume that if no one asked for a thing, then it's just fine in the draft. We're not going to go sentence by sentence through the draft and such like that. So, if- if someone asked for something to be removed, and you agree with that, please say +1 to it. If someone asked for something to be changed, and you agree with their change, please say +1 to that. Hearing none, as Barry said, means we're going to assume everything is fine. That's the only way we see that we can move forwards on this.

Carsten Bormann: And it's- it's also useful, rather than just a +1, if you think something is particularly important, say that. This is a really important one is- is useful input.

Paul Hoffman: Yep. Thanks. Rowan.

Rohan Mahy: Hello. Um, yeah, so I think uh, I liked the explanation that you just gave. I think um, you know, kind of the- the +1s or, you know, like raising the- like saying, "Okay, we have this list, we're talking about what's important in this list." Uh, it's important for us to stay focused on the- on the "what", like "Yes, I think this is an important issue, we need to solve, or we need to fix this thing", as opposed to the "how". And I think the "how" is where we've often gotten stuck with like, you know, like a train of, you know... like you go off to lunch and you come back and there are like 60 messages on the mailing list discussing the "how" instead of the like "what" we need to- what we need to solve, the issue.

Paul Hoffman: Well, and even- even more important, some- there has been some discussions on the list where four people had different "hows", and Carsten picked one. And that's not clear that- that you know, that the four were equal, that they would have been wanted the same way. You know, like we did not- because of- a lot of this is about language, we did not give Carsten um, direct, "Here is what you should do." And yet, he felt like he needed to do something there. So, this is why, to emphasize what you just said, Rowan, you need to say, "The- this is important and we're going to argue it later." I'm pretty much against that idea. We need to finish this. We have- we have a long history of, if we don't have something specific, that we're going to be five drafts later. And, um, I- so, I would only want things where someone says, "I only want this if it is changed to this." Or- or, "I want this removed, we'll figure out how to deal with this later." Does that make sense? Okay, thanks. Any other hands on the process? Not seeing any. Okay, Laurence, let's shift topics into yours. And um, he is being shared, excellent.

Laurence Lundblade: Okay. So, this is uh, I don't have too many details here, but uh, there's four issues that are kind of open for serialization. Um, and I'll go through- go through them one by one and we can discuss them as we go, I think there's time enough for that. Um, so, first issue is the control operators. Um, I'm sorry I don't have detailed slides for this. Uh, I didn't know what I was expecting, a long discussion on EDN rather than um, time for this. Um, so, the control operators, and this- this is a- uh, this is the CDDL control operators um, uh, definitely would like help with this. I don't consider myself a CDDL design person. Um, so, uh, the previous uh, draft had serialization operators uh, .pref-p and .dtrm. to indicate that the left hand side was preferred serialization or deterministic serialization. Um, that was wrong because the control operator uh, requires a right hand side. Um, so, I have uh, changed that to be a .ser-operator with uh, the control on the right hand side indicating what serialization uh, it should be. And that- that seems to fit the pattern of other CDDL control operators. Um, uh, the reason for the change is so that you could uh, specify the serialization for the whole uh, CDDL document and for arbitrary parts of the CDDL document. Where before, uh, the- the... if you go back to- to Carsten's CDE document, um, .cbor and .cbor-seq, um, you can't use those to specify the- the serialization for the whole document, they only work for byte string wrapped uh, CBOR. Um, so, uh, I mean, I'm definitely open-minded here. I don't have a strong feeling. Uh, if you look at the comments in the- in the GitHub discussion for this PR, you can see uh, Christian has proposed another uh, method here, where you apply something like uh, the right hand side for something like .cbor and .cbor-seq are any, rather than a byte string. Uh, I didn't put this in because it seemed uh, a bigger change and I'm not sure that's in the spirit of um, you know, CDDL control operators. Um, let's uh, I mean Carsten, I assume you have some comments here. Uh,

Paul Hoffman: Actually, I'm going to hop in first. Um, I'm not sure from what you just said if you assumed that in fact the CDDL modules document was moving forwards. At this point, it's not. So, uh, I mean, we may add it again later, but so, does the change that you're proposing here assume CDDL modules, or is it- would it stand alone even if CDDL modules never got completed?

Laurence Lundblade: Stand alone.

Paul Hoffman: Great. Thanks.

Carsten Bormann: Okay. Yeah, I think it's- it's uh, important to discuss this because uh, the- the- I haven't seen the change that- that is being proposed uh, only on this slide. Um, that doesn't quite look the- like the way CDDL works. Um, so, I would need to- to find out what is actually, uh, happening. And, uh, the- the proposal that I'm making and that Paul doesn't- doesn't want to discuss during this meeting um, actually uses directives uh, to provide this information. And directives is something that has been introduced for a different purpose in the modules, um, draft. Uh, I just learned that we are not pursuing that. Uh, that's pretty weird. Um, but, uh, independent of- of that, um, I'm not sure that- that the way .serial seems to look like is a correct use of- of CDDL. Um, so, I think we need to- to have a discussion on that. Um, as you may have noticed, uh, we have been quite busy with the, uh, EDN, uh, document, so I haven't actually entered that discussion. Um, but, uh, I certainly can do that now.

Rohan Mahy: Um, yeah, Rowan. Um, so, I don't have a super strong opinion on this, but this does seem like maybe this is something that we want to address later. Um, that you can go and implement you can go and implement things in this particular way, whatever we call this, like this- this document has has some like specific recommendations about what to do to CBOR and CBOR documents and CBOR sequences. Uh, and having this go and like define some stuff in CDDL land, you know, that's kind of tripped us up in the past. So, I wouldn't um... I don't have a strong- a strong preference, but I think I'd be- I'd be perfectly fine pulling this out and then like addressing this later as a CDDL extension that's a standalone thing.

Laurence Lundblade: Uh, question I have for the chairs, um, is it reasonable to discuss this on the list at this point?

Paul Hoffman: Absolutely.

Laurence Lundblade: I mean, I have not brought anything up on the list uh, quite intentionally because of the EDN discussion, so.

Paul Hoffman: Oh, at this point, um, sure. I- in the last couple of weeks, the list has gotten much better about being able to discuss two- two different things at once. Um, if you want to have more focus on this, uh, or any of these other things in the serialization draft, I hope you can- you can just wait a week. Um, and then everything will be all serialization. I think at this point, you can start these as long as there's not any overlap in your mind between what you're doing and EDN. Uh, so- so, that's up to you. I, like I said, it- it seems like the working group has gotten better about talking about multiple things at once.

Laurence Lundblade: Okay. Um, so, I will bring this up on the mailing list. Um, I'm open to a lot of different options here, including uh, you know, dropping it and um, uh, I'm also a little surprised about the CDDL modules document being dropped, but uh, that's a separate discussion.

Paul Hoffman: It's- just to be clear, it's not dropped. It is not currently in discussion, and it may be dropped in the future depending on how this working- and we've said this before, depending on how the working group can come to rough consensus on things. That will- that will change what, you know, what gets adopted- what actually gets continued in the working group in the future. And as we've seen this morning, rough consensus can sometimes get fairly rough, and that may have an effect on CDDL modules.

Laurence Lundblade: Okay. Okay, uh, any more comments on the control operators? Okay, uh, on to the next issue. Um, Carsten filed a PR for a bunch of changes to Section 1. Uh, I went through that- that PR line by line, um, and I picked up the things that I thought were uh, made sense in there and created a separate PR. Um, the- the two main issues I had with Carsten's PR was one that it was proposing a terminology- terminology change, um, from "serialization" to "serialization constraint" and that, I think, needed working group consensus and the, you know, discussion on the mailing list. Um, and then the other is um, uh, that a lot of that, you know, to me, Section 1, the intro, is trying to do very little work. It's just trying to, you know, frame up and say why, it's not trying to do any kind of exposition or details or anything like that, and a lot of what Carsten was doing was adding a lot of details to it. So, and that's just a very different writing style and goal, so that's what the other reason for that. Um, so, those PRs are- are up there for you to look at. Um, Paul?

Paul Hoffman: Uh, wearing my working group co-chair hat, I have a strong aversion to asking people to go into GitHub and comment off the list. Can I instead request that you send Carsten, you know, essentially Section 1 as if, with- with all of Carsten's PRs appended, you know, included in it, and Section 1 with your PR in it, as two alternatives in one email message, and see what the working group feels like of those two. Of course, since it is the introduction, there will probably be some later wordsmithing, but it sounds like your um, your alternate PR is um, responsive to some of Carsten's issues, um, but not fully doing it. So, please take it to the list, and again, even if the message is long, I know that Section 1 currently isn't that long, I don't think it should be bad. I think you can say, "Here is one suggestion, here is another suggestion, what do people think?"

Laurence Lundblade: Okay, let me think about that one. I'm- I'm not sure how to approach that, but I'll- I'll think about that.

Paul Hoffman: Thank you for thinking about it.

Laurence Lundblade: Yeah. Um, okay, uh, any other comments on this? All right. Um, then, uh, the other, there's another PR waiting um, to be merged, um, and that's the example source code for uh, encoding floats. Um, this- this is how to encode uh... how- how to do the- the conversion from double precision to single precision, and single precision to half precision. Um, and uh, there's- there's sample code for decoding in RFC 8949, but there's no sample code for encoding. And this is, I think, an important thing. Um, there was- there is sample code for encoding in the CDE draft. Um, uh, since this is uh, serialization draft, um, uh, the examples have to be uh, for Preferred Plus and deterministic as defined in the serialization draft. So, that um, affects how uh, non-trivial NaNs are- are handled. Um, so, the- the sample code I have here uh, only works on uh, non-trivial NaNs... no, only... oh, I've got this wrong. Only works on trivial NaNs. I'm sorry, I got that bullet point wrong. Um, so, it only handles quiet NaNs. Um, and uh, if you try to put a non-trivial NaN through it, it will error out. That's a different- difference from Carsten's uh, code in the CDE draft. Another difference between what I have and uh, Carsten's code in the CDE draft is that uh, I provide two functions, one that goes from double to single, and another that goes from single to half. And by having those two functions, you get the full conversion uh, that you might need, which could be uh, a double to a single, um, because you can't convert that single to half because, you know, it would lose precision, or it could- you can go double to all the way to half, or if your input, starting input is single, then you can do single to half. So, I kind of worked out the combinations and that- that seemed the best way to do it. It's also the way I've done it in my uh, my CBOR um, library. So, and then the- the code, Carsten's code in the CDE draft only does double to half, which is basically insufficient in that sometimes you do, you know, you even if you're starting with a double, sometimes you need to go double to single. Um, uh, so then the other thing, that's interesting to look at. Um, you know, Carsten's code in the CDE draft is uh, very terse and impressive in- in that way, um, there's about 10 interesting constants in there um, for amounts of shift and amounts of- and amounts of mask and additions, um, the code I've proposed is actually uh, probably four- four times longer, more- more than that, um, and uh, but it's inspired by Carsten's code. Um, and the point of being so much longer is so you can understand what those constants are and where they're coming from, so that if you're trying to do this in the- in another language, you can figure it out. Um, uh, the- both all of these- all of these the three implementations I've played with, the stuff that's in the PR, uh, Carsten's code and my internal implementation in- in QCbor, all compile to- to like 150 bytes of object code. There's very little difference in the object code size and all that, so. Um, so, that's uh, that's that PR. Uh, comments? Discussion on that? I think probably the next thing to do is just to publish the draft, an updated draft.

Carsten Bormann: Yeah, I appreciate the confirmation that the two-step makes sense.

Laurence Lundblade: Okay. Um, then uh, we're also just waiting for security considerations from Rohan. And I assume he's very been very busy with EDN, so that's, I assume.

Rohan Mahy: I've mostly been busy with my day job, but um, yes, um, I will I will get on it. Thanks for the reminder.

Laurence Lundblade: And these are the remaining issues in uh, the serialization draft. Um, once these are, there's nothing beyond these. So, okay, that's it for me.

Paul Hoffman: Okay, thank you. Um, so, and again, yes, if you want to bring these up this week, I think that's fine, especially um, because I think they're so clearly different than what's going on in the EDN draft. I think people can think of both of them. Um, we will uh, I again, please send those things either to me, to the list for EDN, um, this week, and then we can move both of these forwards, that is, we can finish the working group last call on EDN and uh, Laurence, it sounds like you believe we can possibly start a working group last call on serialization in a few weeks, does that sound right?

Laurence Lundblade: Uh, yeah.

Paul Hoffman: Okay, great. Excellent. That- that would be good. Um, and then looking forwards, let's remember that we do actually have a face-to-face uh, meeting, um, scheduled uh, for Vienna, uh, and of course there'll be remote participation available. Um, at this point, it doesn't look like that there are any bad conflicts in the agenda, and for those of us who are working group chairs, we normally see when the draft agenda comes out that, um, chairs who see horrible conflicts say something about it. We haven't seen any of that, so I'm sort of assuming on Friday we will have an agenda that pretty much matches what the draft agenda is, and for that we've got the uh, CBOR meeting at 11:30 to 12:30, um, Europe time on Thursday. Okay, if there's nothing else, um, or if there is something else, I would want to hear before we stick in on the agenda. Um, why don't we all go back to working on what we're doing. Great. Thanks very much.

Barry Leiba: Bye everybody. Take care.

Carsten Bormann: Bye.

Christian Amsüss: Bye.

Barry Leiba: Thank you.