Clojure's built in PersistentVector does not support O(log(n)) inserts/removes from the middle/front, but there is another implementation that shares a lot of it's implementation with some extensions that does: https://github.com/clojure/core.rrb-vector/
Overflow protection is fail-fast behaviour, similar to array bounds checking. It allows you to more quickly find the source of errors. I believe everybody agrees it's a good thing, at least in the array bounds checking case.
> Optimization flags in general should not change visible program behavior, except for performance.
The only behavior you would be able to observe before, that you wouldn't after disabling overflow behaviour, is a crash, and you would have fixed that anyway as soon as you observed it.
Of course, if there is $370 Million on the line, maybe just disable it and hope for the best :-)
Be careful, in the country I live in (Austria) it is illegal to import prescription drugs. Customs made me pay a fine of about 60$ for trying to import Melatonin (and I didn't get the Melatonin either).
Amazing. In the US, melatonin just sits there right on the shelf where anybody who feels like can buy it for a couple bucks. No prescription, no ID, and extremely cheap.
The U.S. is somewhat idiosyncratic in classifying melatonin as not being a drug at all, but rather a dietary supplement, akin to natural/alternative-health stuff like St John's wort, fish-liver oil, or the various herbs used in traditional Chinese medicine. Therefore it doesn't even get to the prescription vs. OTC decision, since dietary supplements are basically unregulated, as long as they don't make medical claims on the label or in advertising.
My colleagues and I learnt that lesson the hard way. We are working on a WYSIWYG editor (Aloha-Editor) and the first version did depend on jQuery (and jQuery UI for that matter). That caused a lot of trouble for people integrating the editor in their websites, especially if they were already using jQuery. For our particular case we really didn't need it, as it's just as easy to say .getAttribute() instead of .attr(), and we didn't use selectors much, if at all. Effort is underway to get rid of the dependency from the core library in the next major release.
> Actually, most of the people working in those organizations are children of party officers or executives of wealthy foreign currency-earning organizations.
I expect he had connections and/or was able to bribe his way towards becoming a tour guide. Tourism, after all, is a foreign currency earning industry.
Clojure's standard persistent vectors don't allow insertion in the middle without copying the entire vector, they only allow fast insertion at the end. There is an alternative implementation here [1] which does allow insertion (anywhere) without copying the entire vector.