Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
vOv
Feb 8, 2014

Coffee Mugshot posted:

I don't really see why reserving those names is that crazy tbh. Also naming a package/crate after a popular keyword sounds like a bad idea in general.

Because the only reason they're reserved is for backwards compatibility with software that was written before directories existed.

Adbot
ADBOT LOVES YOU

RandomBlue
Dec 30, 2012

hay guys!


Biscuit Hider

return0 posted:

Depends if it's clinical death or legal death.

If the column is a Postgres date (with a resolution of 1 day), then many people will share the same death date.

I typed up an actual response but instead: :rolleyes: :colbert:

SupSuper
Apr 8, 2009

At the Heart of the city is an Alien horror, so vile and so powerful that not even death can claim it.

vOv posted:

Because the only reason they're reserved is for backwards compatibility with software that was written before directories existed.
NUL is still pretty popular in batch files.

fishmech
Jul 16, 2006

by VideoGames
Salad Prong

vOv posted:

Because the only reason they're reserved is for backwards compatibility with software that was written before directories existed.

And all the software written since then that still uses them to access things.

vOv
Feb 8, 2014

fishmech posted:

And all the software written since then that still uses them to access things.

True. I guess they could've said "we're only going to support these special filenames at the root of each drive" but it's obviously far too late to make that change.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



return0 posted:

Is person to death date one to one?

I think it merely approaches 1:1 asymptotically

Pollyanna
Mar 5, 2005

Milk's on them.


Munkeymon posted:

I think it merely approaches 1:1 asymptotically

Well, we can solve that with a nice couple of meteors. :unsmigghh:

Soricidus
Oct 21, 2010
freedom-hating statist shill

vOv posted:

True. I guess they could've said "we're only going to support these special filenames at the root of each drive" but it's obviously far too late to make that change.

Yeah, but there must have been, what, hundreds of programs that would have needed to be rewritten to accommodate that kind of change

SupSuper
Apr 8, 2009

At the Heart of the city is an Alien horror, so vile and so powerful that not even death can claim it.

Soricidus posted:

Yeah, but there must have been, what, hundreds of programs that would have needed to be rewritten to accommodate that kind of change
Obligatory OldNewThing: https://blogs.msdn.microsoft.com/oldnewthing/20031022-00/?p=42073

Factor Mystic
Mar 20, 2006

Baby's First Post-Apocalyptic Fiction

Soricidus posted:

Yeah, but there must have been, what, hundreds of programs that would have needed to be rewritten to accommodate that kind of change

Doesn't matter how many programs if a) you don't have the source, or b) the source is impenetrable because it was written by a defunct contractor 20 years ago, or c) your business depends on it, or d) you're important enough, or e) that program is actually an OS library, and the risk/reward for refactoring that part of the OS isn't worth it

Bonfire Lit
Jul 9, 2008

If you're one of the sinners who caused this please unfriend me now.

Soricidus posted:

Yeah, but there must have been, what, hundreds of programs that would have needed to be rewritten to accommodate that kind of change
I'm sure whatever vendors relied on that would just have sent out new floppies to their customers instead of saying "no fault of ours, Microsoft broke everything with their new version of DOS, just keep using the old one" or "your version of Tool is too old but we're happy to sell you a new version for just $2999"

Kilson
Jan 16, 2003

I EAT LITTLE CHILDREN FOR BREAKFAST !!11!!1!!!!111!
I don't know why they don't just preserve that behavior in the shell, but remove the stupid restriction from the filesystem, or preserve the current semantics only for filenames without an extension.

It seems like there are some pretty easy ways to make almost everyone happy.

I ran into this while trying to examine a project we were trying to use (Opensips) at work. The source has files called con.c (and some other similar things). It makes it *really* difficult to work with the source on a Windows machine.

Bonfire Lit
Jul 9, 2008

If you're one of the sinners who caused this please unfriend me now.

Kilson posted:

I don't know why they don't just preserve that behavior in the shell, but remove the stupid restriction from the filesystem
The filesystem doesn't have the restriction. You can use the reserved names just fine if you tell CreateFile and its kin to pass the filename straight to NT. No application does this.

Simulated
Sep 28, 2001
Lowtax giveth, and Lowtax taketh away.
College Slice

Coffee Mugshot posted:

I don't really see why reserving those names is that crazy tbh. Also naming a package/crate after a popular keyword sounds like a bad idea in general.

There is never a better time to break backwards compatibility than today. Never ever fool yourself and think you can change it later. Every single day the odds of that happening decrease and the graph is a hockey stick.

The reason DOS didn't create a C:\Devices directory similar to /dev was to preserve compatibility for less than a million people easily, maybe less than a hundred thousand. Now billions are stuck with the bad tradeoff.

Why is Make is stupid about tabs vs spaces? Because Stuart Feldman didn't want to break the <100 makefiles that existed at the time he considered the bug so he left it alone. I'd argue that was the wrong tradeoff too.


Don't break compatibility arbitrarily, but if there is a good reason you should treat it like a bandaid: rip it off quickly or you and everyone who follows after you will suffer for eternity.

Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."
To play devil's advocate, consider this: how many of those projects would not have survived until today had they broken compatibility when they had a small userbase?

fishmech
Jul 16, 2006

by VideoGames
Salad Prong

Simulated posted:

The reason DOS didn't create a C:\Devices directory similar to /dev was to preserve compatibility for less than a million people easily, maybe less than a hundred thousand. Now billions are stuck with the bad tradeoff.

Then we'd have devices as the directory/file name we couldn't use. I don't see how that'd be better?

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

Kilson posted:

I don't know why they don't just preserve that behavior in the shell, but remove the stupid restriction from the filesystem, or preserve the current semantics only for filenames without an extension.
It's not necessarily just command scripts using the files.

People gotta get over the idea that it's every operating system's duty to copy the behavior of unix.

Gazpacho fucked around with this message at 16:57 on May 2, 2017

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



fishmech posted:

Then we'd have devices as the directory/file name we couldn't use. I don't see how that'd be better?

You really don't see how that'd be better than having a list of reserved names in every single directory instead?

Dr. Stab
Sep 12, 2010
👨🏻‍⚕️🩺🔪🙀😱🙀

fishmech posted:

Then we'd have devices as the directory/file name we couldn't use. I don't see how that'd be better?

It seems far more likely that someone will try to make a document called aux in their user folder than try to create it in a special folder their root directory.

fishmech
Jul 16, 2006

by VideoGames
Salad Prong

Munkeymon posted:

You really don't see how that'd be better than having a list of reserved names in every single directory instead?

Devices would be reserved in every directory in this system too - remember, DOS 1.0 didn't HAVE any real subdirectories! The only way to implement it would be to reserve "devices" as a name you couldn't use anywhere in the file system.

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
Raymond Chen has explained this at length and repeatedly. There is no point when it is OK to wantonly break compatibility for customers of a successful product that is marketed for business automation. People will sue you. Apple can do it to the extent that they target individuals over businesses.

Dr. Stab
Sep 12, 2010
👨🏻‍⚕️🩺🔪🙀😱🙀

fishmech posted:

Devices would be reserved in every directory in this system too - remember, DOS 1.0 didn't HAVE any real subdirectories! The only way to implement it would be to reserve "devices" as a name you couldn't use anywhere in the file system.

Uh, what? Yes, the proposed compatibility breaking change breaks compatibility. It also wouldn't have retroactively gone back and changed what the reserved names were in earlier versions of DOS.

VikingofRock
Aug 24, 2008




Gazpacho posted:

Raymond Chen has explained this at length and repeatedly. There is no point when it is OK to wantonly break compatibility for customers of a successful product that is marketed for business automation. People will sue you. Apple can do it to the extent that they target individuals over businesses.

So this might be a naive question, but has anyone ever actually been successfully sued over breaking backwards compatibility? I searched and couldn't find any examples of it, but maybe there's some famous case or something that I just haven't heard of / my googling skills are poor.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Gazpacho posted:

Raymond Chen has explained this at length and repeatedly. There is no point when it is OK to wantonly break compatibility for customers of a successful product that is marketed for business automation. People will sue you. Apple can do it to the extent that they target individuals over businesses.

And it pisses the gently caress out of people that use Apple products all the time; they're just too locked-in to do anything about it.

nielsm
Jun 1, 2009



The first (and best) chance DOS could have had of replacing the magic device names with something less intrusive would have been as soon as DOS 2.0 where a replacement for the CP/M-compatible FCBS API was added. That was also when support for (sub)directories was added. I.e. if your program used the FCBS API you got magic device names, if you used the new file access API you had to access special devices in another way.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



fishmech posted:

Devices would be reserved in every directory in this system too - remember, DOS 1.0 didn't HAVE any real subdirectories! The only way to implement it would be to reserve "devices" as a name you couldn't use anywhere in the file system.

It was implied that this would be a change in 2.0

(note that I'm not saying that this'd be good for sales of DOS 2.0, just that it'd be better for us now had it happened and somehow the rest of history hadn't changed at all)

VikingofRock
Aug 24, 2008




The best time to make a breaking change was 20 years ago. The second best time is now.

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

VikingofRock posted:

So this might be a naive question, but has anyone ever actually been successfully sued over breaking backwards compatibility? I searched and couldn't find any examples of it, but maybe there's some famous case or something that I just haven't heard of / my googling skills are poor.
A woman was running her travel agency on Windows 7. The forced Windows 10 upgrade hosed her applications and she got a $10,000 judgement in small claims. Microsoft declined to appeal and stopped forcing the upgrade. Another case regarding the Windows 10 upgrade, Watson et al. v. Microsoft, seeks class status and is still pending. That lawsuit specifically alleges failure to ensure compatibility.

Gazpacho fucked around with this message at 18:51 on May 2, 2017

fishmech
Jul 16, 2006

by VideoGames
Salad Prong

Dr. Stab posted:

Uh, what? Yes, the proposed compatibility breaking change breaks compatibility. It also wouldn't have retroactively gone back and changed what the reserved names were in earlier versions of DOS.

It was being specifically proposed to have happened in the early versions of DOS though. Also to actually propose to do that change now would be very stupid because introducing a new reserved folder name now would break a ton of things that aren't broken now...

Munkeymon posted:

It was implied that this would be a change in 2.0

(note that I'm not saying that this'd be good for sales of DOS 2.0, just that it'd be better for us now had it happened and somehow the rest of history hadn't changed at all)


If we'd actually done that in 2.0, then we would still have the problem of a pointlessly reserved name int he root of the file system. It does nothing to fix the problem (device names shouldn't block reasonable file names) it just makes it slightly less of a pain.

But then you'd say, have someone wondering why they have C:\projects with a "devices" directory in there, and they want to copy it to their floppy disk or in modern times a flash drive, and the copy fails because you can't have a devices directory in the root.

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
Incidentally, this is why Microsoft didn't start to fix the Internet Explorer brokenness until the European Commission threatened to clean their clock with fines.

VikingofRock
Aug 24, 2008




Gazpacho posted:

A woman was running her travel agency on Windows 7. The forced Windows 10 upgrade hosed her applications and she got a $10,000 judgement in small claims. Microsoft declined to appeal and stopped forcing the upgrade. Another case regarding the Windows 10 upgrade, Watson et al. v. Microsoft, seeks class status and is still pending. That lawsuit specifically alleges failure to ensure compatibility.

That's not really the same thing though. The suits aren't focused on the fact that Windows 10 is backwards-incompatible with Windows 7; they are focused on consumers being forced to upgrade to Windows 10. If Microsoft makes a breaking change between windows versions, but then doesn't force anyone to update, then it doesn't seem like it would matter legally.

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
In the Watson case the plaintiffs admit agreeing to the upgrade, so the forcing is not relevant there. And in both cases, what Microsoft neglected to do is as much an issue as what it actively did.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



fishmech posted:

If we'd actually done that in 2.0, then we would still have the problem of a pointlessly reserved name int he root of the file system. It does nothing to fix the problem (device names shouldn't block reasonable file names) it just makes it slightly less of a pain.

But then you'd say, have someone wondering why they have C:\projects with a "devices" directory in there, and they want to copy it to their floppy disk or in modern times a flash drive, and the copy fails because you can't have a devices directory in the root.

Hmm, I guess I was assuming Devices would only show up on systemroot, but then you could plug a second bootable drive in and plonk a Devices down on it, so then I guess when booting it the system would either clobber the directory or shadow it, which is also kinda gross...

Probably a reserved device root would have worked better. $:\NUL I guess

fishmech
Jul 16, 2006

by VideoGames
Salad Prong

Munkeymon posted:

Hmm, I guess I was assuming Devices would only show up on systemroot, but then you could plug a second bootable drive in and plonk a Devices down on it, so then I guess when booting it the system would either clobber the directory or shadow it, which is also kinda gross...

Probably a reserved device root would have worked better. $:\NUL I guess

Well I mean, the correct way to do it in the limited capabilities of old DOS was probably to require the device names to be otherwise marked. E.g. if they had just always been CON: instead of CON. The colon character was not an allowable disk file character, so there was no chance you'd make a CON: file and ahve issues with conflicting to the system console, and thus none of the names would have been disallowed as files or directories, when directories were added.

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



fishmech posted:

Well I mean, the correct way to do it in the limited capabilities of old DOS was probably to require the device names to be otherwise marked. E.g. if they had just always been CON: instead of CON. The colon character was not an allowable disk file character, so there was no chance you'd make a CON: file and ahve issues with conflicting to the system console, and thus none of the names would have been disallowed as files or directories, when directories were added.

Thought about that, but I'm guessing their code would have been more hostile to a multi-char device root than a 'fake' one that couldn't be user-assigned or changed.

Dr. Stab
Sep 12, 2010
👨🏻‍⚕️🩺🔪🙀😱🙀

fishmech posted:

It was being specifically proposed to have happened in the early versions of DOS though. Also to actually propose to do that change now would be very stupid because introducing a new reserved folder name now would break a ton of things that aren't broken now...

This post doesn't really make sense with that reading

Simulated posted:

The reason DOS didn't create a C:\Devices directory similar to /dev was to preserve compatibility for less than a million people easily, maybe less than a hundred thousand. Now billions are stuck with the bad tradeoff.

It's talking about introducing a change back when sub directories were introduced, not doing it differently initially or making the change right now.

fishmech
Jul 16, 2006

by VideoGames
Salad Prong

Dr. Stab posted:

This post doesn't really make sense with that reading


It's talking about introducing a change back when sub directories were introduced, not doing it differently initially or making the change right now.

You don't think literally the second major version of DOS, released in 1983, would be the early versions, or what?

Also again: mandating that you couldn't have a "devices" directory in the root of a drive would mean at least blocking it for all the drives on the systems, if not also blocking it in subdirectories. This would be a major problem!

The real problem is the fact that any otherwise valid file names and directory names must be locked off because they're reserved. Switching to reserving just one name in a drive root doesn't solve that, it just reduces the number of things that are blocked, and it implicitly blocks the names in other directories because someone might want to copy a file or directory with that name into the root of another drive, which itself might be bootable.

fishmech fucked around with this message at 20:04 on May 2, 2017

Dr. Stab
Sep 12, 2010
👨🏻‍⚕️🩺🔪🙀😱🙀

fishmech posted:

You don't think literally the second major version of DOS, released in 1983, would be the early versions, or what?

Also again: mandating that you couldn't have a "devices" directory in the root of a drive would mean at least blocking it for all the drives on the systems, if not also blocking it in subdirectories. This would be a major problem.

If you agree that it meant a change in 2.0, then what the hell did you mean by this:

fishmech posted:

Devices would be reserved in every directory in this system too - remember, DOS 1.0 didn't HAVE any real subdirectories! The only way to implement it would be to reserve "devices" as a name you couldn't use anywhere in the file system.

fishmech
Jul 16, 2006

by VideoGames
Salad Prong

Dr. Stab posted:

If you agree that it meant a change in 2.0, then what the hell did you mean by this:

If you were actually making the change in DOS back then, you'd probably increase the version number early to indicate a point where compatibility changed, meaning the new 2.0 is a 1.x with this change.

You also still have the problem of needing to reserve the directory name on every drive's root, and soft-reserve it in subdirectories because otherwise people would try to copy them to drive roots and have problems. It's a lovely solution that doesn't fix the problem.

Adbot
ADBOT LOVES YOU

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
Fishmech is right, path-based namespaces like /dev only work well on Unix because of the general convention that / is reserved for the system and users should never be touching it. DOS already has a somewhat reasonable namespacing scheme with drive/partition names; that design has both advantages and disadvantages relative to the Unix single-hierarchy scheme, but given that it exists, you might as well use it. There's no reason for device names to interfere with other hierarchies at all when they can be split off as CON: or DEV:CON or whatever.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply