From: "softworkz ." <softworkz-at-hotmail.com@ffmpeg.org> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] On errors, asserts and crashing (was: Shaping the AVTextFormat API Surface) Date: Fri, 25 Apr 2025 13:05:08 +0000 Message-ID: <DM8P223MB0365E5870A047DF1B641E44ABA842@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> (raw) In-Reply-To: <aApO93t0mv_talsa@phare.normalesup.org> > -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of > Nicolas George > Sent: Donnerstag, 24. April 2025 16:47 > To: FFmpeg development discussions and patches <ffmpeg- > devel@ffmpeg.org> > Subject: [FFmpeg-devel] On errors, asserts and crashing (was: Shaping > the AVTextFormat API Surface) > > softworkz . (HE12025-04-22): > > At the implementation level, I sensed that "you" ("FFmpeg") > > are following some principles which are somewhat contradictive to > > those that I'm usually adhering to (e.g. "parameter validation > > being a responsibility of the call site, crashing otherwise > > being acceptable"). Nonetheless, I'm the one who has to adapt, > > and I'm not going to question that. > > I am feeling didactic, so I will write what I have to say on the topic > in full details, so that it can also serve as future reference. > > Crashing immediately when some unexpected condition happens is not a > quirk of a few FFmpeg developers, it is very often the only way to do > things and also often better than any available alternative. Knowing > what to do when it is only an option is not always obvious, but this > is > FFmpeg, not some management software project developed by engineers > fresh from an average school. Once and for all, just GTFO from those kinds of comments. I do have an academic background and the university were considered to be among the top 10 in the world for Computer Science at that time. The only reason why I haven't become "Dr. Softworkz" is because I had no interest in teaching other students and I already had a running business with earnings way above, hence I had rejected the offer. I'm showing interest in your views of parameter validation in the context of Ffmpeg - nothing less, but also nothing more, so we can skip fundamentals. […] > So: do nothing / assert, or return an error? This is the point where > there is no longer an easy answer. Which is why I'm asking about it. > It requires weighting the pros and > the cons. The only thing I can do is make a list of a few > considerations > that affects the weighting of the pros and cons. Sure. But what I've been asking about are some very specific cases only. > To summarize: Deciding what to do when invalid values are met requires > properly understanding the invariant requirements of the program and > doing a cost-analysis of the options, including whether the rest of > the > code can easily enforce those invariants and whether it can do > something > graceful with an error. I have nothing to object about your elaboration, besides that it's missing out on the concept of structured exception handling, which is an intrinsic feature of many programming languages, offering the undeniable advantage of being able to recover from "exceptional" situations instead of crashing. Thanks sw _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2025-04-25 13:05 UTC|newest] Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top 2025-04-22 4:20 [FFmpeg-devel] [RFC] Shaping the AVTextFormat API Surface softworkz . 2025-04-24 14:47 ` [FFmpeg-devel] On errors, asserts and crashing (was: Shaping the AVTextFormat API Surface) Nicolas George 2025-04-25 13:05 ` softworkz . [this message] 2025-04-25 14:04 ` Nicolas George 2025-04-25 14:37 ` softworkz . 2025-04-25 14:41 ` Nicolas George 2025-04-25 14:53 ` softworkz . 2025-04-25 14:43 ` [FFmpeg-devel] On errors, asserts and crashing James Almer 2025-04-25 14:49 ` softworkz . 2025-04-25 16:04 ` Michael Niedermayer 2025-04-24 17:12 ` [FFmpeg-devel] [RFC] Shaping the AVTextFormat API Surface Nicolas George 2025-04-25 13:24 ` softworkz . 2025-04-25 13:32 ` softworkz . 2025-04-25 14:05 ` Nicolas George 2025-04-25 14:26 ` softworkz . 2025-04-27 10:07 ` Stefano Sabatini 2025-04-29 8:30 ` Nicolas George 2025-04-29 18:07 ` softworkz . 2025-04-30 2:56 ` softworkz . 2025-05-04 15:32 ` Stefano Sabatini 2025-05-04 20:38 ` softworkz . 2025-05-05 14:32 ` Nicolas George 2025-05-06 10:45 ` softworkz . 2025-05-07 23:18 ` Stefano Sabatini 2025-04-24 18:34 ` Rémi Denis-Courmont 2025-04-25 13:16 ` softworkz . 2025-04-27 10:42 ` Stefano Sabatini 2025-04-27 17:54 ` softworkz . 2025-04-28 22:26 ` Stefano Sabatini 2025-04-28 23:24 ` softworkz . 2025-05-03 8:55 ` softworkz . 2025-05-07 23:30 ` Stefano Sabatini 2025-05-07 23:42 ` softworkz . 2025-05-08 21:26 ` Stefano Sabatini
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=DM8P223MB0365E5870A047DF1B641E44ABA842@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM \ --to=softworkz-at-hotmail.com@ffmpeg.org \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git