Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
pbsd
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
47 ms
·
421.
▲
by
pbsd
12y ago
Do you guys only use OS X over there, or are there equivalent setups for other systems?
422.
▲
by
pbsd
12y ago
What those papers (or at least the ones I think you're talking about) deal with is something slightly more nuanced than what is being discussed here. They analyze how the pool recovers from a compromise, i.e., if you somehow manage to
423.
▲
by
pbsd
12y ago
Omitting `extra` is only valid in C++, not C. In C you have to get by with things like (void)extra; to shut the compiler up.
424.
▲
by
pbsd
12y ago
`inline` indicates to the compiler: "this function has external linkage, and no matter how many times it's defined it is to be defined only once in the final linked output". It's the same as if there was no inline, but w
425.
▲
by
pbsd
12y ago
`static` will result in a copy of f for every translation unit (without LTO, at least). `inline` will not. `static inline` is effectively the same as `static`, with a slight hint to the compiler to inline the call. `inline` is used extensiv
426.
▲
by
pbsd
12y ago
`inline` has a different meaning in C++. The compiler is free to inline the call if it wishes to, but `inline` means that the same function can be defined in multiple translation units without breaking the one definition rule. Example:
427.
▲
by
pbsd
12y ago
From [1], page 8: There is no doubt that the grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts a
428.
▲
by
pbsd
12y ago
Skipping ahead is not new; it is a well-known fact that any linearly recurrent generator, such as WELL, Xorshift, or Mersenne Twister can skip ahead via matrix exponentiation. And it is not the only way to get good independent streams eithe
429.
▲
by
pbsd
12y ago
There is one solution that would keep the crazy semantics of C, but would still allow for 2's complement arithmetic to be well-defined when one wants to. C99 defines int8_t, if it exists, to be a 2's complement signed integer of e
430.
▲
by
pbsd
12y ago
The max macro in Section 4 is using two separate GCC extensions: typeof and statements in expressions.
431.
▲
by
pbsd
12y ago
> although it will still be missing make_unique<T[]> This is not true -- see §20.9.1.4 of the C++14 draft [1]. make_unique is defined for array types with unknown bound (i.e., T[]), but it is deleted for array types of known bound
432.
▲
by
pbsd
12y ago
Correct. They only made rdtsc constant-rate with Nehalem and later chips, IIRC.
433.
▲
by
pbsd
12y ago
That link gives me a 403 error? In any case, I've put an email in my HN profile.
434.
▲
by
pbsd
12y ago
> If you disagree, you're invited to take a look at End-To-End, find a side-channel leak and write an exploit for it. You could earn serious cold cash with that finding. For one thing, the IDEA implementation seems to be incorrect.
435.
▲
by
pbsd
12y ago
Have you actually tried your example? Even at -O0, it results in the exact same code: http://goo.gl/kDEFnU
436.
▲
by
pbsd
12y ago
Academics do love their new fancy stuff. Here's the thing: elliptic curve cryptography is not particularly new anymore. I'd buy this neophilia argument if it were concerning pairings, ideal lattices, or the stuff people are doing
437.
▲
by
pbsd
12y ago
See also the recent followups [1, 2]. [1] http://events.ccc.de/congress/2011/Fahrplan/attachments/2007... [2] https://131002.net/siphash/siphashdos_29c3_slides.pdf
438.
▲
by
pbsd
12y ago
Nice! Is this going into the standard library? I've looked at the output of both inner loops, and it seems I put too much faith in std::valarray's expression templates. Changing the distance function to int distance(std::val
439.
▲
by
pbsd
12y ago
For the sake of reproducibility, transparency and all that, here's the C++ version: http://pastebin.com/5pMka6ZJ
440.
▲
by
pbsd
12y ago
Well Rust is checking for null pointers at the assembly level: http://goo.gl/eh2aqc (lines 22--27).
441.
▲
by
pbsd
12y ago
For reference, a straightforward translation of the Rust code to C++, compiled using clang, halves the running time. There are two reasons for this: - `int` is the fastest available integer type in C(++), whereas in Rust it is defined to be
442.
▲
by
pbsd
12y ago
The correct thing to do is also to check the carry and overflow flags after (I)MUL, which does the right thing even when only the lower bits of the multiplication are saved. Here's an example where there is overflow, but your suggestio
443.
▲
by
pbsd
12y ago
x86-64 could repurpose the Adjust flag (bit 4 of EFLAGS) for this. It is not longer used, since BCD instructions were deprecated in the x86->x86-64 transition. There is also precedent in the last few years for new instructions that chang
444.
▲
by
pbsd
12y ago
I was hoping the italics spoke for themselves, but I'd better clarify it's the latter. It seems to be an Internet-wide phenomenon to jump to the most bombastic possible conclusion given a limited set of facts.
445.
▲
by
pbsd
12y ago
It's clearly a ploy to get everyone backdoored. Just look at Crypto AG.
446.
▲
by
pbsd
12y ago
There is another more fundamental limit, credited to Margolus and Levitin [1], which puts the maximum speed of a (quantum) gate at 2E / h operations per second for a system of energy E and Planck constant h. Given the energy of the su
447.
▲
by
pbsd
12y ago
The argument that 128 bits of security are enough is quite reasonable [3]. There are, however, a couple technicalities with using 128-bit security primitives and/or keys: - Multi-target attacks. In the case of symmetric ciphers, one ha
448.
▲
by
pbsd
12y ago
'The Design of Rijndael', plus errata, is available in Joan Daemen's page [1]. As an addition, 'The Block Cipher Companion' [2] is a more recent, less AES-centric, overview on block ciphers. As for elliptic curves,
449.
▲
by
pbsd
12y ago
FTR, hcrypt predates indistinguishability obfuscation by a couple of years. As far as I can tell this really is a straightforward VM working with homomorphically-encrypted opcodes and data, and not an implementation of Garg and friends&#x
450.
▲
by
pbsd
12y ago
Speed is not a good reason. While RC4 is great for weak chips, like microcontrollers and such, it is actually not that fast in modern hardware, needing at least 4 cycles per byte. The fastest combination of RC4 and MD5 in OpenSSL manages 6
More ›