469 karma · joined April 12, 2009
http://www.github.com/batterseapower http://blog.omega-prime.co.uk/
As for compiling to that pointer access: from what I know of Idris, yes it will. Since you know statically that the array access cannot be out of bounds, you can omit the usual out-of-bounds checks.
And of course Minsky's employer, Jane Street Capital, writes everything in OCaml.
There are plenty of commercial users outside the financial sector too but those users tend to be smaller companies.
Furthermore, for thunks of algebraic data types with only a few alternatives (e.g. booleans, the Maybe type) the tag will encode which of the alternatives the pointer actually points to. So if you are case scrutinising a boolean you can decide which branch to jump to by inspecting the pointer only with no memory access.
This last trick doesn't work if the number of alternatives is > 3 (for 2 byte alignment) because there aren't enough bits available.
Nonetheless, I'm totally blown away by the project! Amazing work!
This both reduces register pressure and means you don't have to marshal stuff to and from the integer registers at function boundaries.
The reason this hasn't happened before is because VFP is an optional part of the instruction set, and you can still configure compliant ARM cores without a FPU.
I'm not sure if their port uses NEON (the ARM SSE equivalent) at all.
The main danger is that the target notices that their machine is using 100% CPU and removes the bot. It is easier to notice CPU load (heat, fan noise, prominent position in Task Manager) than network load.
Also used as a pseudonym by Mencius Moldbug for his classic piece on gold: http://www.safehaven.com/article/5205/why-the-global-financi...
http://en.wikipedia.org/wiki/Double_precision
So using double is in fact perfectly OK in this case.
China is a very nice place to live, especially if you are a millionaire, and I would be surprised if a larger proportion of rich Chinese emigrated than do e.g. the USA-born rich.
So in the dollar economy, hoarding takes the form of purchasing USD so you can participate in seigniorage. In the bitcoin economy, hoarding takes the form of holding on to your balance. But they are both forms of hoarding, designed to protect value without actually making "useful" investments that affect the real world.
finally :: Either err a -> IO () -> (a -> IO (Either err b)) -> IO (Either err b)
finally (Left err) cleanup _k = cleanup >> return (Left err)
finally (Right x) _cleanup k = k x
You avoid having to unwind the stack because the user of finally has to manually convert into CPS in order to supply the higher order argument of type "a -> IO (Either err b)"It is definitely super annoying that this data is not free, but the reality is that it does cost a bit of money to gather and aggregate.
Furthermore, though I frequently take the train, I do consider it unfair that general taxation revenues are used to fund the train services -- especially considering that if you look at the stats they are principally used by the wealthy. Charging for data goes some way to shifting the cost burden of rail back onto the rail travellers themselves, as the person ultimately paying for this data is the traveller that uses the train time app/website.
See Kennedy's "Compiling with Continuations, Continued" for another perspective on the ANF/CPS choice: http://research.microsoft.com/en-us/um/people/akenn/sml/Comp...
GHC 7.01 was also a time of upheaval in the code base, with an almost total rewrite of the type checker. This was a bit buggy at first, but early experience with 7.01 means that it is much more polished in 7.02.
The full changelist from 7.0.1 is modest and available at http://www.haskell.org/ghc/docs/7.0.2/html/users_guide/relea...