Bug #79368 [Opn->Csd]: "Unexpected end of file" is not an acceptable error message

From: Date: Tue, 14 Apr 2020 09:28:28 +0000
Subject: Bug #79368 [Opn->Csd]: "Unexpected end of file" is not an acceptable error message
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-226568@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=79368&edit=1 ID: 79368 Updated by: nikic@php.net Reported by: php4fan at gmail dot com Summary: "Unexpected end of file" is not an acceptable error message -Status: Open +Status: Closed Type: Bug Package: *General Issues Operating System: all PHP Version: 7.4.4RC1 -Assigned To: +Assigned To: nikic Block user comment: N Private report: N Previous Comments: ------------------------------------------------------------------------ [2020-04-09 12:01:10] alexinbeijing at gmail dot com Turns out we *can* address this issue while using a generated parser! Yay! Please see the GitHub PR and comment on how to improve it. ------------------------------------------------------------------------ [2020-04-09 11:59:46] alexinbeijing at gmail dot com The following pull request has been associated: Patch Name: Syntax errors caused by unclosed {, [, ( mention specific location On GitHub: https://github.com/php/php-src/pull/5364 Patch: https://github.com/php/php-src/pull/5364.patch ------------------------------------------------------------------------ [2020-03-17 09:27:13] nikic@php.net The error message is generated by bison, and we have little control over how it looks like. This is a known disadvantage of using generated parsers, and I don't think we can address this short of switching to a recursive descent parser. ------------------------------------------------------------------------ [2020-03-15 19:40:42] rowan dot collins at gmail dot com All I was suggesting is that you could think about the tone you use, and how people are likely to react based on that tone. Imagine there are no eggs on the shelf in a shop, and the customer finds a member of staff. They could say: "Having no eggs on the shelf is NEVER acceptable. You have to make sure you're stocked up on eggs. It's unbelievable that you would let the eggs run out. You can easily stock enough eggs." Or they could say: "There seem to be no eggs on the shelf. Are there any more in the store room please?" Which do you think is most likely to get the customer their eggs? Which would you rather hear if you were the member of staff? Similarly, you might have got more productive replies if you had framed your original report more politely, for instance: The message "Unexpected end of file" for certain syntax errors is not very helpful - particularly in large files, where the actual error could be anywhere in the file. Would it be possible to include more details; for instance, if the error is an unmatched bracket or quote, could it say which, and perhaps even distinguish an unclosed if statement from an unclosed function definition? ------------------------------------------------------------------------ [2020-03-12 12:20:33] php4fan at gmail dot com > While bug reports and feature requests are always welcome, > please keep in mind that PHP is not a commercial product, I'm not sure what makes you think I'm not taking that in mind. > so you are asking people to volunteer their time and expertise > to improve it. I'm not asking anyone to do anything. I'm reporting a bug. Or a design flaw, or the lack of a feature that is usually expected of any modern programming language, call it what you want, but I'm just reporting it. Then someone tried to make a ridiculous argument that the issue I'm pointing out doesn't exist, or that the request doesn't make sense, so I object to that flawed reasoning. I'm not demanding that anybody starts working on fixing it ASAP, I'm just objecting to that reasoning. > If you help those volunteers understand your request, I think the "request" (or rather the report) is clear enough. > and make clear > that you appreciate their efforts, Oh ok sorry, my bad, I thought that was a given. I APPRECIATE YOUR EFFORTS. I'm serious. > you're more likely to get their help in return. I'm not asking for help. I'm reporting an issue. Regarding the likelihood of anybody eventually volunteering their time to fix the issue or make the improvement, I would be surprised if that was in any way affected by how much one given random person (i.e. me) shows appreciation for it. Of course I don't expect anybody in the PHP developer community to be willing to help me or do anything for me, but fixing an issue that I report or implementing a feature that I suggest has nothing to do with helping *me*. > The other thing to keep in mind is that PHP has been actively developed > for 25 years. That's why it's all the more astonishing that such an issue still exists. I guess there are priorities and some things remain unfixed for ages, then people get used to them and they become even less of a priority. PHP is not alone. Take for example MySQL, which still to this day has error messages that start with "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ..." (wasting more than 130 characters to say "syntax error" and then failing to unambiguously tell you where it is). OR it could be *incredibly* difficult to fix. I never said it can't be. ((( Wait, I did. I said "you can easily do better". My bad. I don't know that. But I do *bet* you can reasonably easily do *a bit* better than "unexpected end of file" with something like "unexpected end of file before closing <whatever was the last thing in my stack>" or "Expecting <whatever> at the end of input" (like Java does). ))) Anyway, I am just reporting the issue. You give it the priority it deserves taking into account the effort it requires. Just don't attempt to argue that it's not an issue or that it doesn't make sense. Other programming languages have done it. > If you know how the parser works and would like to contribute an improvement, > I'm sure it would be very welcome; Obviously that's not the case. I mean I don't know how the parser works, otherwise I'd love to contribute. The only contribution I can give is pointing out the issue which is what I've done. I don't expect to be thanked, but I'm surprised to be met with hostility as if I was talking nonsense. I could have expected a reply like "Don't you think we already know that!?", but I definitely didn't expect one like "What else would you expect!?". > if you don't, you may not be the best judge > of how easy it would be to do. I have no pretention to be the judge of that. > Just to be clear: I'm not an expert on the parser either; and I > agree the message could be more helpful. That is literally ALL I intended to report. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=79368 -- Edit this bug report at https://bugs.php.net/bug.php?id=79368&edit=1

« previous php.bugs (#226568) next »