15:24 | <bradleymeck> | have we had a "vote" in recent memory on a proposal? |
15:24 | <bradleymeck> | do we even have a process? |
15:32 | <shu> | ecma does |
15:33 | <shu> | tc39 itself in general is allergic to voting |
15:33 | <shu> | i also cannot recall where we actually voted on proposal advancement |
15:35 | <bradleymeck> | shu: that is why I ask |
15:36 | <bradleymeck> | I'm interested in taking up Collection normalization again, but not if I can't call a vote if we get stuck on naming again |
16:14 | <shu> | my understanding of "can't" has always been social pressures and political capital cost |
16:14 | <shu> | so you _can_, if that's the cost you're willing to bear |
16:15 | <bradleymeck> | it was a pure block, no discussion last time |
16:15 | <bradleymeck> | the statement was that I could change the name to what Waldemar wanted or I could not advance I even gave a presentation on why we shouldn't change that name |
16:16 | <bradleymeck> | so... need to be able to call a vote if we cannot even discuss it |
16:49 | <ljharb> | bradleymeck: i talked to waldemar after that, and we came up with a compromise that you rejected, iirc |
16:50 | <bradleymeck> | ljharb: the double property/reject if both form doesn't work since the argument was about reusability and reusing a Map would always reject |
16:50 | <ljharb> | that was only for Set |
16:50 | <bradleymeck> | the problem is people treating these things as if they can be passed between the 2 Set/Map types |
16:51 | <ljharb> | yes, that is where waldemar's objection came from |
16:51 | <bradleymeck> | which somehow naming the set property to keys() satisfies but not values() |
16:51 | <ljharb> | but just like anything else in committee, delegates' concerns are all valid even if you don't agree with them |
16:51 | <bradleymeck> | which is why I gave a presentation on why to use values() |
16:51 | <ljharb> | sure, and i happen to agree with your position |
16:51 | <bradleymeck> | ljharb: indeed, but I would like to call a vote |
16:51 | <ljharb> | but the compromise was "for Set, you can pass key xor value" |
16:51 | <bradleymeck> | if we cannot |
16:51 | <ljharb> | i would vote no on principle, a vote is a process failure |
16:52 | <ljharb> | even for something i want |
16:52 | <ljharb> | it'd be better to never have it than to have to vote on it imo |
16:52 | <bradleymeck> | key xor value causes the problem that was the argument |
16:52 | <bradleymeck> | i will call a vote if we get to that point, i just want to know the process |
16:53 | <bradleymeck> | for now we can continue discussion but it is perfectly valid to call a vote in our process just unclear how |
16:53 | <ljharb> | i think only chairs get to "call a vote" |
16:53 | <bradleymeck> | unclear |
16:53 | <ljharb> | it's valid for committees to have votes and to set their own process |
16:53 | <ljharb> | ours is "no votes, just consensus" |
16:53 | <bradleymeck> | that is not true |
16:53 | <ljharb> | so it takes the chairs to override that |
16:53 | <bradleymeck> | thats informal? |
16:53 | <ljharb> | which part |
16:53 | <bradleymeck> | the no votes, just consensus |
16:54 | <ljharb> | i mean, i don't think this is even productive. if you have to rules lawyer to get your proposal in, it's not a good proposal |
16:54 | <ljharb> | if someone is immovable, then that's that |
16:54 | <bradleymeck> | because of property naming |
16:54 | <ljharb> | because of *literally any reason* |
16:54 | <bradleymeck> | you can call my proposals not good if you want |
16:54 | <bradleymeck> | that doesn't change them |
16:54 | <bradleymeck> | discussion changes them |
16:55 | <bradleymeck> | right now we have a hard blocker where 2 people are blocking on a bikeshedding issue |
16:55 | <bradleymeck> | i believe a bikeshed level issue is perfectly good to call a vote on |
16:55 | <bradleymeck> | if compatibility concerns can be shown thats different |
16:56 | <ljharb> | i love your proposal |
16:56 | <ljharb> | but i don't think *any* proposal is worth a vote |
16:56 | <ljharb> | it's not just a bikeshed issue tho. his concern is the runtime interchangeability, which even if you (and i) don't think that's sensible, isn't just about naming |
16:57 | <ljharb> | and again, waldemar compromised, so at the moment, you're the only one refusing to do so |
16:57 | <bradleymeck> | the compromise does not address the issue raised so it should not be taken to address the issue |
16:58 | <bradleymeck> | that would be just taking the change to move it forward |
16:58 | <ljharb> | waldemar thinks it addresses waldemar's issue |
16:58 | <bradleymeck> | even if the reason isn't sensical and it persists the issue |
16:58 | <bradleymeck> | i believe it causes the issue |
16:58 | <ljharb> | ok but it was waldemar's issue |
16:58 | <bradleymeck> | and the compromise causes the issue raised |
16:58 | <ljharb> | only if you treat maps and sets interchangeable |
16:59 | <bradleymeck> | so it isn't really a solution even if it is a political standpoint |
16:59 | <ljharb> | which you and i both won't be doing |
16:59 | <bradleymeck> | treating sets/maps as reusing that object bag was the issue |
16:59 | <ljharb> | if waldemar's the only one who will run into it, and he's happy with the compromise, why does it matter if you think it solves it for him or not? |
16:59 | <bradleymeck> | because it causes the API to go from partial reusability to a very odd non-reusability matrix |
17:00 | <ljharb> | it's either "for maps, you can pass key and/or value" and "for sets, you can pass key xor value" |
17:00 | <ljharb> | so you can reuse any object with key xor value |
17:00 | <ljharb> | and you can't reuse any object with key and value |
17:00 | <ljharb> | which would be true with your proposal anyways, if set didn't take "key" |
17:00 | <bradleymeck> | and it causes more confusion on the issue of what does what, things like {...ObjWithKey, ...ObjWithValue} would both be valid in isolation but not when merged in that object bag |
17:00 | <ljharb> | (silently not mapping the keys isn't "reusable", that's a footgun) |
17:01 | <bradleymeck> | sets don't have keys so 🤷 on that point |
17:01 | <ljharb> | iow, i'd say even if Set only took value, it should still throw on key |
17:01 | <ljharb> | means the "reusability" of the options bag would be the same either way |
17:01 | <ljharb> | it's just about whether you can use *either* name with set, or just one |
17:01 | <bradleymeck> | we don't have any precedent on that eager throwing in the spec due to reuse nor any standard API that I know of |
17:02 | <bradleymeck> | adding a one off design pattern is very confusing |
17:02 | <ljharb> | throwing when you pass conflicting things? |
17:02 | <ljharb> | i'm pretty confident Intl has tons of it, for one |
17:02 | <ljharb> | also i'm quite sure we have a few in 262, let me hunt them down |
17:02 | <bradleymeck> | throwing when both are mutually exclusive yes, not when you provide a value that wouoldn't be used |
17:03 | <ljharb> | ah |
17:03 | <ljharb> | well, fair, but if people think it's sensible to reuse the options bag across types, then i think it's a hazard we don't want to create |
17:03 | <ljharb> | iow if there's no protections, i'd want the option names to have no overlap |
17:03 | <ljharb> | iow if map uses "value" then set can't, and vice versa |
17:04 | <bradleymeck> | i was fine with renaming it elements but that was another discussion about the names needing to be reused |
17:04 | <bradleymeck> | for sets* |
17:04 | <bradleymeck> | so we got dragged back into only having toKey or toValue |
17:04 | <ljharb> | right, so this is in no way bikeshedding |
17:04 | <bradleymeck> | we even showed all those languages that call them elements |
17:05 | <ljharb> | this is about "is it meant to be reused, or not" |
17:05 | <bradleymeck> | the demand was it must be reused |
17:05 | <ljharb> | if it is, then imo it needs to either work as intended, or throw |
17:05 | <ljharb> | otherwise people will reuse it and get the wrong answer |
17:05 | <bradleymeck> | reuse was not intended but familiarity was |
17:05 | <bradleymeck> | the demand of reuse is the problem and there is no room afforded |
17:06 | <bradleymeck> | so, I would like to present on the issues, and be able to call a vote |
17:06 | <bradleymeck> | i'm unclear on if the vote will be anything more than "must we allow reuse of these objects" |
17:07 | <bradleymeck> | the vote wouldn't be on advancement |
17:07 | <ljharb> | why would we vote on anything that's not advancement |
17:07 | <ljharb> | it makes no sense to me to vote on silencing someone's concerns |
17:08 | <ljharb> | progress is not more important than enfranchisement |
17:08 | <bradleymeck> | ljharb: just because a topic prevents advancement does not mean we should advance something if that topic is removed from the discussion |
17:08 | <ljharb> | right but no topic can ever be removed from discussion entirely (separate from, moving the venue between plenary and elsewhere) without effectively oppressing those who wish to discuss it |
17:09 | <bradleymeck> | they still have the right to vote and present their case to sway the vote in either direction |
17:09 | <ljharb> | they have the right to block advancement forever even if they don't persuade anyone else, that's how tc39 operates |
17:09 | <bradleymeck> | they are welcome to discuss things, but not mandate things |
17:09 | <bradleymeck> | ljharb: that is not in our by laws |
17:10 | <bradleymeck> | i can mandate we never advance any proposal indefinitely |
17:10 | <bradleymeck> | but that doesn't mean the committee must never move JS forward |
17:14 | <ljharb> | i think it does and also should mean that |
17:15 | <bradleymeck> | well we don't have consensus on that heh |
17:15 | <ljharb> | lol |
17:15 | <ljharb> | we used to, and previous consensus lasts forever until new consensus changes it |
17:15 | <ljharb> | again, i think if you have to resort to rules lawyering then you're basically trying to destroy the process that's kept things working since ES4 failed |
17:15 | <bradleymeck> | but as a test, i can do this for the next few meetings but this mimics what happened in Munich |
17:15 | <ljharb> | and i think if it happens, it will open the gates to many more such votes. |
17:15 | <ljharb> | how so |
17:15 | <bradleymeck> | correct |
17:16 | <ljharb> | which would be bad |
17:16 | <ljharb> | there weren't any votes in munich i can recall |
17:16 | <bradleymeck> | me breaking consensus on purpose for political reasons as a means of using our process against itself |
17:17 | <bradleymeck> | i mean, i could |
17:17 | <ljharb> | right but why would you want to |
17:17 | <bradleymeck> | but as it stands there is little actual discussion if a mandate is placed down since there is no counter argument nor balance to a mandate/demand |
17:17 | <ljharb> | how is *this proposal* that important to be worth risking the entire way tc39 works |
17:18 | <bradleymeck> | ljharb: because thats how oour process works and I want to show something about the process itself |
17:18 | <ljharb> | so you're setting fire to everything to make a point? |
17:18 | <bradleymeck> | ljharb: indeed, but to me votes are not necessarily as risky |
17:18 | <ljharb> | i don't think the devil needs an advocate |
17:18 | <bradleymeck> | i think the way we discuss things has become increasingly black and white and it isn't good |
17:18 | <ljharb> | it is a *good thing* that any proposal can be forever blocked by even one person, and many bad proposals have been prevented that way |
17:18 | <ljharb> | ok so then, have that discussion in good faith |
17:19 | <ljharb> | you don't need to attempt to manipulate everyone into understanding your point to do that |
17:19 | <bradleymeck> | i intend to, but with the ability to vote determined |
17:19 | <bradleymeck> | i am not seeking to manipulate anyone on my proposal |
17:19 | <ljharb> | if you are even attempting to bring about a vote, you are |
17:19 | <bradleymeck> | how so? we are allowed to bring votes |
17:20 | <ljharb> | what is allowed is irrelevant |
17:20 | <ljharb> | we're allowed to do lots of things. the social contract sits above that. |
17:20 | <bradleymeck> | but ignoring the issues of how we reach consensus is bad |
17:20 | <ljharb> | sure. and destroying the consensus process leaves those issues ignored |
17:20 | <bradleymeck> | destroying it seems like it might be the only way to bring balance to aspects of it |
17:21 | <bradleymeck> | since we cannot have any affect on demands otherwise |
17:21 | <bradleymeck> | so, showing demands consistently is a way to highlight that |
17:21 | <ljharb> | we'll never have it again if it's destroyed. |
17:21 | <ljharb> | and the "balance" we have *is* our consensus process |
17:22 | <ljharb> | i think you are sorely underestimating the damage that will be caused by moving to votes |
17:22 | <bradleymeck> | that doesn't seem balanced if single party can hold hostage the rest |
17:22 | <ljharb> | that is the balance |
17:22 | <ljharb> | convince everyone, or it doesn't deserve advancement |
17:22 | <bradleymeck> | so it is fair that I prevent all progress |
17:22 | <bradleymeck> | ? |
17:22 | <ljharb> | yep |
17:22 | <ljharb> | go for it |
17:23 | <ljharb> | better to prevent all progress forever than to let *one* bad proposal in |
17:23 | <ljharb> | (obviously, someone who obstructs in bad faith repeatedly would likely find themselves removed from the committee) |
17:23 | <bradleymeck> | i do not find it to be in bad faith, i just have to present arguments for each |
17:23 | <ljharb> | but in this case, as in most others, the lone objector is doing it in good faith. |
17:24 | <ljharb> | if you *have* those arguments, then you should definitely present them, always |
17:24 | <bradleymeck> | good faith is not the sole quantity needed for meaningful discussion |
17:24 | <ljharb> | if that means nothing proceeds, then good! you blocked bad things |
17:24 | <ljharb> | no, but it's the foundational one |
17:24 | <bradleymeck> | i mean, all i have to do is demand things really |
17:25 | <bradleymeck> | which isn't hard |
17:25 | <bradleymeck> | i mean we block on growing the STDLIB too large |
17:25 | <bradleymeck> | just stating that something adds too much complexity is semi-common |
17:26 | <bradleymeck> | this is all tangential though |
17:26 | <bradleymeck> | there was a fun Monk episode about a juror who was always voting the opposite of the rest to intentionally prevent a conclusion |
17:27 | <bradleymeck> | i see it as somewhat similar, preventing a conclusion in itself may be the point |
17:27 | <devsnek> | I remember in the modules group |
17:27 | <devsnek> | it would turn to a vote without consensus |
17:27 | <devsnek> | in which case why bother having the consensus check |
17:27 | <bradleymeck> | well without 2 way communication consensus breaks down |
17:28 | <bradleymeck> | my stand is that this issue has reached the end of 2 way communication. I got angry enough that I wanted to drop the proposal for quite some time |
17:29 | <bradleymeck> | satisfying one blocking point doesn't mean no new points come up due to that |
17:29 | <devsnek> | how far does the idea that a set is a map of T => null go in js |
17:29 | <bradleymeck> | for example with my complaint about how we cannot take that compromise due to it causing the exact issue that it tries to stop |
17:30 | <bradleymeck> | devsnek: not very far in the spec itself |
17:30 | <devsnek> | lol fair, I meant observably |
17:30 | <devsnek> | different method names at least |
17:30 | <bradleymeck> | not very far since values are the "keys" |
17:31 | <bradleymeck> | it kinda is like a T => T |
17:31 | <bradleymeck> | observably they are quite similar but it isn't like you can call Map methods on a Set nor are the APIs the same for get/set ops |
17:32 | <bradleymeck> | they just have a similar collection interface |
17:32 | <bradleymeck> | not necessarily generic to those 2 types, if we introduced a RadixTree or something it could have the same level of overlap probably |
17:44 | <bradleymeck> | if you consider Arrays our Queue/Stack collections it gets a bit weirder too |
18:01 | <ljharb> | ftr, again, i agree that trying to reuse between Map and Set doesn't make much sense |
18:01 | <ljharb> | but the compromise waldemar and i came up with is something that allows him to do it, and doesn't interfere with the rest of us who won't be |
18:01 | <ljharb> | so i'm still hopeful that's what we can go with |
18:21 | <bradleymeck> | it causes the issue it sought to avoid, we should not go with it |
18:26 | <ljharb> | i don't agree |
18:26 | <ljharb> | and neither does the only person with the issue, waldemar |
18:27 | <ljharb> | it seems pretty ridiculous that you're going to block a compromise because you don't think it solves "not your issue" |
18:27 | <bradleymeck> | i think it causes a new issue? |
18:27 | <bradleymeck> | of the same nature |
18:28 | <bradleymeck> | it isn't that it doesn't solve the issue requested, it is that it causes the issue requested |
18:29 | <bradleymeck> | i stand somewhat in the same boat of don't pass through proposals if they may be bad here |
18:30 | <bradleymeck> | that design would make part of the proposal have a problem from my viewpoint, oddly enough the exact same problem that is the reason to adopt the design |
18:30 | <ljharb> | only if you're attempting to reuse an object bag that has both key and value in it |
18:30 | <ljharb> | which can't ever work in any design |
18:31 | <ljharb> | the difference is that in the compromise, it throws for that case - in your preferred proposal, it silently does the wrong thing. |
18:31 | <ljharb> | since it can't ever do the right thing, it's just a question of whether it's a hazard, or a helpful exception |
18:31 | <ljharb> | for some reason you're arguing for it being a hazard. |
18:33 | <bradleymeck> | i'm arguing a variety of things, notably that the exception isn't helpful nor is the xor like behavior |
18:33 | <bradleymeck> | and those come from that design choice |
18:33 | <bradleymeck> | and that design choice comes from a mandate of reuse |
18:34 | <ljharb> | i think a vote to silence anyone's mandate will lead to a world where anyone's can be silenced, and i simply don't think it should be on the table. if you call for a vote for this, i'll call for another one asking to never again permit us to do so. |
18:35 | <ljharb> | (even it's allowed in the first place, which i suspect/hope it's not) |
18:36 | <bradleymeck> | not to silence, but to force a choice. it may not go in my favor |
18:36 | <bradleymeck> | modules wg stuff in node certainly didn't always go in my favor |
18:37 | <ljharb> | yes, i'll then be calling for a vote to disallow ever again forcing a choice |
18:37 | <ljharb> | every block matters, or none of them do |
18:37 | <ljharb> | even the ones i think are stupid |
18:37 | <bradleymeck> | we can argue about that certainly |
18:48 | <Bakkot> | ljharb, I don't think ECMA's rules give us enough flexibility to vote on never voting |
18:49 | <Bakkot> | one of the things - really the main thing - that you get from joining ECMA is the ability to vote on things |
18:50 | <ljharb> | not never voting |
18:50 | <ljharb> | never voting on silencing blocks to consensus |
18:51 | <bradleymeck> | even if we vote we don't need to have these be reusable that doesn't give us consensus |
18:51 | <ljharb> | but also, tc39's consensus rules mean you don't actually need to vote to have an impact |
18:51 | <ljharb> | bradleymeck: voting to allow advancement without consensus is the problem |
18:51 | <ljharb> | whether you're asking for advancement yet or not isn't the point |
18:51 | <bradleymeck> | it doesn't allow advancement |
18:51 | <ljharb> | then it doesn't mean anything |
18:51 | <bradleymeck> | it constrains design |
18:51 | <ljharb> | then it's just a straw poll |
18:51 | <bradleymeck> | how so? you have eliminated a design space |
18:52 | <ljharb> | the only thing we make decisions on is advancement |
18:52 | <bradleymeck> | that isn't true, we also vote on by laws and various other things |
18:52 | <ljharb> | ok sure |
18:52 | <ljharb> | but "design space" isn't part of that |
18:52 | <ljharb> | the design space is always whatever we all think it is |
18:52 | <bradleymeck> | we had a bunch of this regarding the allowance of the incubator calls at all |
18:52 | <bradleymeck> | which are about designs being done |
18:52 | <ljharb> | because there was concern about advancement happening there |
18:52 | <bradleymeck> | not just advancement but decisions |
18:53 | <ljharb> | design has already been happening outside plenary, and will continue to do so no matter who wishes otherwise |
18:53 | <ljharb> | and the only decisions the committee makes about proposals is advancement |
18:53 | <ljharb> | design decisions aren't binding |
18:53 | <bradleymeck> | agreed, but design is often a central part of our meetings about if a design is something we want to approach |
18:53 | <ljharb> | sure |
18:53 | <bradleymeck> | design decisions aren't binding why? |
18:54 | <ljharb> | but the outcome of that doesn't bind anything |
18:54 | <ljharb> | because they can change at any time? |
18:54 | <bradleymeck> | i mean, we could change the JS spec anytime |
18:54 | <ljharb> | decorators had lots of design decisions, that were presented to the committee, that when asking for stage 3 advancement got rejected |
18:54 | <ljharb> | design decisions are just attempts to make advancement more persuasive |
18:54 | <bradleymeck> | sure, but they got constrained designs in order to ask for that |
18:54 | <ljharb> | sure. from consensus. |
18:54 | <ljharb> | since consensus is required for advancement |
18:55 | <ljharb> | voting to "unconstrain" a design is voting to not require consensus for advancement |
18:55 | <ljharb> | otherwise it doesn't mean anything |
18:55 | <bradleymeck> | sure, but consensus on advancement is not the same as design constraints |
18:55 | <bradleymeck> | i'm not voting to unconstrain, unconstrain doesn't make sense to me |
18:55 | <ljharb> | they're pretty tightly related |
18:55 | <bradleymeck> | we have 2 competing design constraints |
18:55 | <ljharb> | sure |
18:56 | <ljharb> | and the options are either, pick one, or, deadlock |
18:56 | <bradleymeck> | that is my summation of the scenario, correct |
18:56 | <ljharb> | any vote would be to force one of those three options through advancement, which would be overriding consensus |
18:57 | <bradleymeck> | it doesn't force it through advancement? if it cannot advance it cannot advance |
18:57 | <bradleymeck> | i can keep bringing it to the committee but to my knowledge Waldemar doesn't participate out of plenary that I've noted |
18:58 | <Bakkot> | ljharb I don't think ECMA's rules give us enough flexibility to vote on not voting on any particular topic, if a member wants to call for a vote |
19:01 | <ljharb> | i mean sure, but what’s the point of voting on something that doesn’t actually change anything |
19:02 | <ljharb> | i can call for a vote on the committee’s favorite color, but it’d just be a waste of time |
19:02 | <bradleymeck> | it seems like it does change what can be discussed to me at least |
19:02 | <ljharb> | everything can always be discussed |
19:02 | <ljharb> | a vote can’t change that |
19:02 | <ljharb> | otherwise every “banned topic” will just be another call for a vote, over and over |
19:02 | <bradleymeck> | a vote can certainly change what affect discussions can have |
19:02 | <ljharb> | but it can’t stop me calling for a vote |
19:03 | <ljharb> | so we can vote on the outcome of the same decision a thousand times in a row |
19:03 | <bradleymeck> | if a discussion cannot affect the design that means you have to evaluate the existing design to see if it is +/- |
19:03 | <bradleymeck> | could remain - |
19:03 | <ljharb> | that’s a straw poll, something that delegates have considered harmful in the past when requested |
19:05 | <bradleymeck> | it doesn't seem like a straw poll since it does constrain things |
19:06 | <bradleymeck> | the proposal for example may lose its utility or capability that makes it worth advancement by making such a choice |
19:06 | <bradleymeck> | but currently we are arguing that a capability must be included regardless of the rest of the proposal |
19:07 | <bradleymeck> | any vote hurts the proposal's viability |
19:07 | <bradleymeck> | but it seems to me a path towards more progress than no vote |
19:09 | <bradleymeck> | understanding why no progress is being made could be useful, but that wouldn't by itself lead towards progress |
19:09 | <bradleymeck> | hence me wanting to know how to properly call a vote before investing in something that doesn't appear to have a path forward in the status quo without a vote |
19:10 | <bradleymeck> | progress could simply be we don't want such a proposal |
19:12 | <bradleymeck> | then again i've had talks with people about voting that make me feel that my opinion may differ. i was shocked to learn abstain was treated as a nay regarding spec publication |
19:17 | <ljharb> | sure, because “no progress” is fine, “progress” may not be. |
19:17 | <ljharb> | this is a standard, not a product |
19:18 | <bradleymeck> | progress of dropping a proposal is fine |
19:18 | <bradleymeck> | progress can still happen even if the standard doesn't adopt things |
19:35 | <ljharb> | indeed. so why is it that important that you need a vote to make progress? |
19:37 | <bradleymeck> | i feel a great desire to move this proposal, if I move it such that we don't want to see it again that is preferable to the current state in my perspective. |
19:37 | <bradleymeck> | such a feeling might not be shared or considered important by others |
19:38 | <ljharb> | your desire to move it is outweighed, though, by your belief that the compromise i've mentioned is a bad idea |
19:38 | <bradleymeck> | moving it isn't simply forward towards advancement to me |
19:38 | <ljharb> | then withdraw it |
19:39 | <bradleymeck> | the compromise causes issues as I've stated in my perspective and repeating that you gave me a choice isn't going to remove my concerns about it |
19:39 | <ljharb> | i'd much rather see this proposal that i strongly desire withdrawn, than see a vote on it |
19:39 | <bradleymeck> | i'd rather see a vote and go from there |
19:40 | <ljharb> | tbh this just seems spitefully stubborn to me; you don't like someone else's intransigence, so you'll be just as intransigent. |
19:40 | <bradleymeck> | i'd be fine using toElement |
19:40 | <bradleymeck> | but that was also blocked |
19:40 | <ljharb> | we all have to do this all the time, decide between "forever stalemate", or, be the first one to cave |
19:41 | <bradleymeck> | i don't think that is a healthy perspective |
19:41 | <ljharb> | whether you think the way the committee has always operated or not is healthy doesn't give you license to disrupt it. |
19:41 | <ljharb> | if you want a different process, let's discuss proposals for one in good faith |
19:41 | <bradleymeck> | it is not a disruption, it is still part of our current form of governance |
19:42 | <ljharb> | that voting is technically allowed in no way means voting is a part of how we choose and have chosen to operate |
19:42 | <ljharb> | the only reason we vote on the spec itself is because ecma makes us |
19:42 | <ljharb> | again, you're focusing on a literal evaluation of rules, and i'm saying that's irrelevant in the face of the more important governance, the social contract. |
19:43 | <ljharb> | which is vague and nuanced and undocumented but still is how things are done |
19:43 | <bradleymeck> | i do not agree with the social contract being the highest priority |
19:43 | <bradleymeck> | i agree that votes are not what we desire to do |
19:43 | <bradleymeck> | but they are something we are allowed to do |
19:43 | <ljharb> | *technically* yes |
19:43 | <bradleymeck> | and i think we should do in this situation |
19:44 | <ljharb> | but in any context, i'd say winning a debate on a technicality is a dishonorable way to win |
19:44 | <ljharb> | even if it's necessary at times |
19:44 | <bradleymeck> | i do not see it as such, but you can see it as dishonorable if you wish |
19:44 | <ljharb> | i'm more concerned about the precedent it definitely will set, then about this specific topic |
19:45 | <bradleymeck> | well we are in a situation of stalemate like you said and I find it compelling enough to call a vote to break out of it |
19:46 | <bradleymeck> | repeating the various options doesn't seem to get us a direction to go with |
19:48 | <bradleymeck> | convincing me to not call a vote would be difficult given my options of how the API is being pulled in different design directions, helping me phrase a question to give to the committee would be helpful and likely be a different meeting than me discussing the state of the proposal |
19:48 | <ljharb> | why this stalemate and none of the previous ones? |
19:51 | <bradleymeck> | my personal desire for this proposal and/or being relieved of it is higher and the design constraints themselves appear to be in conflict rather than semantic problems |
19:52 | <bradleymeck> | I do not want to give it up as I fear that the xor design would be pushed forward which I find to have its own issues |
19:52 | <bradleymeck> | so I don't think abandonment is a discrete option I'd like to take either |
19:52 | <ljharb> | if you don't destroy consensus by calling a vote, you don't have to be a champion to ensure that doesn't happen |
19:52 | <bradleymeck> | we have passed things in the past due to absence of objectors and I have no desire for that |
19:52 | <ljharb> | when objections have been made clear in the past, the absence of that objector generally doesn't mean the objection fades |
19:53 | <ljharb> | iow, i don't think you'd have to be present for your objection on this proposal to stand |
19:54 | <bradleymeck> | that has not been true to my memory |
19:54 | <bradleymeck> | we don't actively even track those when calling a vote |
19:54 | <bradleymeck> | for consensus* |
19:56 | <ljharb> | no, but people bring them up in good faith |
19:56 | <ljharb> | i certainly have, at least |
19:58 | <bradleymeck> | mind you i might never even call a vote in this but i would want to know how to properly do so |