HackerTrans
TopNewTrendsCommentsPastAskShowJobs

bigcheesegs

no profile record

comments

bigcheesegs
·vor 2 Jahren·discuss
UB is a choice in that we could require symbolic execution of of all code. This is incredibly slow, so we don't.

There are many cases of UB that would be cheap to check, but there are many more that are incredibly expensive to check.
bigcheesegs
·vor 2 Jahren·discuss
"state's monopoly on violence" means that a state's power to enforce its rules is rooted in its ability to use violence on those that refuse. Putting someone in jail is not physical violence, but what keeps them there (and why they even showed up to court) is the near guarantee of violence if they refuse.
bigcheesegs
·vor 3 Jahren·discuss
LLVM does this on x86 because partial register writes don't break dependency chains in many cases, meaning that you can get stalls due to false dependencies.

There's nothing in LLVM itself that makes it use larger sizes, it just depends on the ABI and what's fastest when ABI doesn't matter.
bigcheesegs
·vor 3 Jahren·discuss
https://en.wikipedia.org/wiki/Unreal_Tournament_3
bigcheesegs
·vor 3 Jahren·discuss
In C++ this violates the data race rules both with and without volatile, but because it's sig_atomic_t it has a special carve out _only_ if it's volatile. See https://eel.is/c++draft/basic#intro.races-22

C however states :

> When the processing of the abstract machine is interrupted by receipt of a signal, the values of objects that are neither lock-free atomic objects nor of type volatile sig_atomic_t are unspecified, [...] The representation of any object modified by the handler that is neither a lock-free atomic object nor of type volatile sig_atomic_t becomes indeterminate when the handler exits.

This wording is not present in C++, as it instead defines how signal handlers fit into the memory model.

This means that (with adjustments for C atomics):

  int val = 0;
  std::atomic<bool> flag{false};
  
  void handler(int sig) {
    if (!set) {
      val = 1;
      flag = true;
    }
  }

  int main(void) {
    signal(SIGINT, handler);
    while (!flag) { /* Spin waiting for flag */ }
    return val;
  }
Is valid in C++, but not in C.
bigcheesegs
·vor 3 Jahren·discuss
For 1) lock-free atomics are also allowed.

In C++ there's actually a lot more freedom. You can access non-atomic non-volatile-std :: sig_atomic_t variables as long as you don't violate the data race rules.
bigcheesegs
·vor 3 Jahren·discuss
libc++ was open sourced May 11th 2010. 13 years ago. https://blog.llvm.org/2010/05/new-libc-c-standard-library.ht...
bigcheesegs
·vor 4 Jahren·discuss
The LAION dataset, which SD was trained on, is just a list of URLs and textual descriptions. There's no illegal copying going on when StabilityAI trained SD. It's also not illegal for you to do the same thing.
bigcheesegs
·vor 4 Jahren·discuss
I think the much more likely outcome is further research on making the prompts smarter and more human like.
bigcheesegs
·vor 4 Jahren·discuss
Very surprised 17net only has 1.
bigcheesegs
·vor 4 Jahren·discuss
There's lots of overnight street parking in the bay area, but there are lots of other opportunities to charge. The actual hard case is someone that drives a significant amount during the day, doesn't have charging at work, and can't have charging overnight. Here really the only option is DC fast charging.

However, this is a reasonable rare circumstance, and it's only getting easier to charge.
bigcheesegs
·vor 4 Jahren·discuss
I'm surprised there's no 802.15.4/Thread support on a new IoT platform in 2022.

Also the power consumption makes this mostly useless for battery operation. Overall I'm still not impressed by the 2040. I'll stick with the NRF52840.
bigcheesegs
·vor 4 Jahren·discuss
No. The economics of Proof of Work mean that increases in compute per watt just lead to an increase in global hash rate. Total energy usage never goes down as long as it's sufficiently profitable to use the energy.
bigcheesegs
·vor 4 Jahren·discuss
Encoding space, not die space.
bigcheesegs
·vor 4 Jahren·discuss
> it seems very obviously a move to force miners to use more GPUs in parallel

This is very obviously wrong. The economics of crypto mining are almost entirely dominated by power cost. Nvidia's decision here simply means they will use other hardware, not more of the LHR hardware.

Nvidia already can't make enough GPUs to satisfy demand. Why would they try to increase undesirable demand (which is going away soon anyway, at least for ETH).
bigcheesegs
·vor 4 Jahren·discuss
Do you have any examples? std::launder fixes an issue that has existed since C++98.
bigcheesegs
·vor 4 Jahren·discuss
You don't actually want implementation defined behavior. There is no restriction on implementation defined behavior, it just needs to be documented. Suitable documentation includes "the optimizer assumes this never happens and optimizes accordingly.", or "Look at the source code."