Hacker Newsnew | past | comments | ask | show | jobs | submit | vrfcodf's commentslogin

I agree, I think this part makes it clear: except as modified by the unknown factors mentioned previously.

Although this is quite contradicting:

5.1.2.3. p4: In the abstract machine, all expressions are evaluated as specified by the semantics. An actual implementation need not evaluate part of an expression if it can deduce that its value is not used and that no needed side effects are produced (including any caused by calling a function or accessing a volatile object)


What both ends? :-) This is a rocket, not a plastic tube.

And who plugs them, and where. In space, before landing?


This made me laugh out loud.

I think that one of the great things that comes out of this is that we start using our imaginations and trying to understand the whys and hows of space travel. It's really exciting to see.


That code is well defined.


Doesn't *t = 1 invoke UB if t is null?

Edit: I'm a moron, thanks for pointing out the obvious to me :)


Yes, but note that the assignment occurs after the NULL check. If the grandparent did mean to put it before, then the code snippet would be undefined, but it wouldn't be surprising either.


I guess one could still be evil and pass a pointer to a non-int type to the function. That example is really bad, you don't need a void pointer to show this ub 'optimization'.


That'd still be defined though. It'd just be defined to set the first sizeof(int) bytes of `* p` to 1. ;) void * and (char * ) can alias to anything and the compiler has to make it work.

Of course if you pass a pointer to a type smaller than sizeof(int)-1 bytes then it accesses uninitialized memory which is UB, but that's a different issue.

EDIT: Aaaand I wasn't thinking.

̶E̶D̶I̶T̶ ̶E̶D̶I̶T̶:̶ ̶N̶o̶t̶ ̶o̶n̶l̶y̶ ̶d̶i̶d̶ ̶I̶ ̶m̶i̶s̶-̶r̶e̶a̶d̶,̶ ̶b̶u̶t̶ ̶v̶o̶i̶d̶ ̶p̶o̶i̶n̶t̶e̶r̶ ̶c̶a̶n̶'̶t̶ ̶a̶l̶i̶a̶s̶ ̶a̶n̶y̶t̶h̶i̶n̶g̶ ̶i̶n̶ ̶s̶t̶a̶n̶d̶a̶r̶d̶ ̶C̶ ̶a̶n̶y̶w̶a̶y̶ ̶(̶t̶h̶o̶u̶g̶h̶ ̶I̶I̶R̶C̶ ̶G̶C̶C̶ ̶t̶r̶e̶a̶t̶s̶ ̶i̶t̶ ̶l̶i̶k̶e̶ ̶c̶h̶a̶r̶ ̶p̶o̶i̶n̶t̶e̶r̶ ̶w̶r̶t̶ ̶a̶l̶i̶a̶s̶i̶n̶g̶)̶.

EDIT EDIT EDIT: Actually maybe it can and I shouldn't be reading technical docs at 2am.


That is not correct. The type used to write to the memory is int, not void or char. If the object, whose address is passed to the function is not compatible with int, the behavior is undefined.

You should read about strict aliasing, you will be surprised.


You're right, I misread and misinterpreted that! Thanks.

Somehow I wasn't thinking and didn't realize that `t` aliases whatever was passed as `p`, and dereferencing a non int or char pointer would be undefined there.


On Firefox your edit strikethrough makes the page very very wide.


Maybe you should familiarize yourself with the standard before preaching about how easy it is to comply with it.


This is what I'm thinking too. The lack of dashboard is not because the car will be autonomous, it will be but only on the freeway, but because there will be a HUD.


> it will be but only on the freeway

You're not thinking far enough into the future. We already had that, in 2015.

These cars won't exist until late 2017, so you have to improve on what we've got, today, by more than 2 years.


How could it be? The regulations don't allow it. I don't see it happening sooner than 10 years. If so, what is their plan?


There are already draft regulations in California [1] for exactly this. I expect that at least some states will have cleared the way by 2018, though obviously not all. Autonomous driving will likely be location-restricted to start with as a result. Remember, there is a lot of pressure on politicians from many companies and people to get autonomous vehicles on the road as soon as possible.

[1] https://www.dmv.ca.gov/portal/dmv/detail/vr/autonomous/auto


NHTSA is scrambling to make it possible, this is the biggest safety innovation in cars since the seat belt. And as long as they have the hardware capabilities, Tesla wouldn't have to launch it with full autonomous mode available.


Just imagine how safe we will be if we reach Level 5 autonomy, no driver control possible? I think the Model 3 is going to be the first production car to reach Level 4. I'm hoping that's what the "part 2" update is.


As a future dev it makes me sick. I have to choose either to support a business like that or never make any money.


Am I not saying in effect that I grant anyone that comes along a...

With the MIT license you grant those permissions for your own work, not for their work back to you.


I'm not sure I understand your point.

I'm not saying anything in conflict with that statement. The MIT License does not require reciprocal licensing nor does the Oculus terms of service. You can only ever license your own work (the "I grant" from my original post) and sub-license the work of others according to the terms you've agreed to with them.

Only do certain open source licenses require re-licensing and re-distribution of derivative products back to the public. That's why I did not mention restrictive open source licenses like the GPL and picked a permissive license in my example.


I think you're trolling but here goes:

Oculus terms of service require (among other things) of the user this: By submitting User Content through the Services, you grant Oculus a worldwide, irrevocable, perpetual (i.e. lasting forever), non-exclusive, transferable, royalty-free and fully sublicensable (i.e. we can grant this right to others) right to use, copy, display, store, adapt, publicly perform and distribute such User Content in connection with the Services... and so on

This is absolutely not the case with the MIT license, which only requires the licensee to do this: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. and nothing else. Oculus license (terms of service) requires the licensee give to Oculus right to his/her User content if he/she agrees to the Oculus license (terms of service).


A couple of things...

First a clerical error, in your italicized quote from the Oculus Terms of Service (which aren't even the developer terms of service, it turns out... see https://share.oculus.com/developer-distribution-agreement for the actual developer terms.) You are including the commentary of the article's author; true he/she didn't clearly indicate that they interspersed their commentary in the terms they quoted, but still...

Second, my criticism of the original article (now deleted evidently) was that the author was being hypersensitive and using unwarranted hyperbole to describe a situation they didn't like (and which we now know they misread). My goal is to demonstrate that people, even online, should put forth well reasoned and balanced arguments when stating their case rather than making ham-handed efforts to evoke emotional responses in the absence of any real insight. I bet that author would have been not only fine with, but supportive of certain open source licenses that, really do result in granting the same rights as Oculus was asking for.

Third, you're comparing apples and oranges leading to a completely invalid analysis. you're comparing the rights being granted by the Licensor (the terms you quote from Oculus user terms) and the requirements of the Licensee in the MIT License. Of course they're different... because they're addressing different parties in the agreement. To make the comparison accurate, compare the Licensee terms of the Oculus and those of the MIT License:

Oculus (User TOS): By submitting User Content through the Services, you grant Oculus a worldwide, irrevocable, perpetual, non-exclusive, transferable, royalty-free and fully sublicensable right to use, copy, display, store, adapt, publicly perform and distribute such User Content in connection with the Services.

MIT License: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so[clip]

So consider this: I write some fancy-shmancy application and put it on GitHub under the MIT License. Someone comes along... hell, let's say someone acting on behalf of Oculus, and forks that repo and uses the application (perhaps even without modification) in the Oculus store. Well, so long as they comply with the one requirement (reposting of the MIT License in the code) do they not get the same rights? Can I revoke the rights under MIT License... nope. Can I stop them from sublicensing or reselling my software, even if I don't get a cut? Nope. Oh wait... they have to make public any changes they make and publish full source... oh... nope.

In practice, what you give up by even agreeing to the Oculus terms as posted by the article author isn't all that different in practice to what you give up as an IP owner when you choose a permissive open source license. The only real difference is in how the license originates: one case you're offering terms (MIT License) which can be accepted by a Licensee and in the Oculus case they are telling you on which terms they will be your Licensee, take it or leave it. And moreover, I see nothing in the original terms posted that would prevent the IP owner from also licensing the content under any sort of open source license (restrictive or permissive).

The contrast was intended to point out how people get all huffy when a company wants you to agree to permissive rights ("evil", "nondemocratic"[sic], etc)... but then find it just fine when you give essentially the same rights when you license something as open source. To me, this is something of a double standard.

Finally, when someone disagrees with you they are not trolling. You're welcome to argue the case otherwise, but calling my points trolling out-of-hand furthers my arguments about the loss of perspective in online forums.

(Last caveat... I have not really read the actual terms of services for developers since that link has now appeared in the comments).


Read it again. Author is concerned about how Oculus threats their users, therefore as a developer he/she decided to not contribute to that system.


And from their privacy policy https://www.oculus.com/en-us/legal/privacy-policy/:

Information Automatically Collected About You When You Use Our Services: -Information about your physical movements and dimensions when you use a virtual reality headset.

So even if I play single player games in my home I have no expectation of privacy anymore.


Oh come on. That's clearly reasonable data to collect to improve future products. They should probably ask you if you want to do that but still...

You probably wouldn't be happy to know that many many mobile apps track every click you make.


I have no problem with that if it is an opt-in. Otherwise I expect privacy in my home.

No mobile app is tracking me. The only information stored by the use of my phone is the cell tower location, the use of that information requires a court order in my country (although it is possible that even that isn't stored anymore, I would have to check).


I agree with you, although it is incorrect to assume that batteries will be always lithium based.


I know that, though what I meant is that battery manufacturing can be limiting factor for EVs if they are dependent on limited resources.


Limiting resources are a limiting factor, kinda a tautology.


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: