backwards-compatibility

Would unused private virtual methods allow future expansion without breaking ABI compatibility?

半腔热情 提交于 2019-12-05 02:54:34
问题 I'm developing a shared library. Let's say I have the following class definition: class MyClass { public: //public interface private: virtual void foo1(int); virtual void foo2(int, bool); virtual void foo3(double); virtual void reserved1(); virtual void reserved2(); virtual void reserved3(); class Impl; Impl* impl_; }; The reserved# virtual methods are not overridden in the client code and not called from anywhere. They serve as placeholders for future expansion. Let's say I replace one of

Making Backward-Compatible WCF Services

此生再无相见时 提交于 2019-12-05 02:39:19
TLDR: How do I create WCF services that are backward compatible -- that is, when I deploy a new version of the service on the server-side, all the clients on the older versions can still use the service. I'm creating a web service that will allow the client applications to fetch a listing of plugins. I will at least have one operation like FindPlugins(string nameOrDescription) which will, on the server, do a search and return a list of objects. Unfortunately, I cannot guarantee that my clients will all be updated with each new release of my service; nay, I am sure that many of them will be

Will visual studio 2015 projects and solutions be backward compatible with 2013?

℡╲_俬逩灬. 提交于 2019-12-04 23:41:07
Now that Visual Studio 2015 RC is out, has anyone installed it and opened Visual Studio 2013 projects/solutions? Does it ask the files to be changed? If yes, are the changes it makes backward compatible? Take a look at the Porting, Migrating, and Upgrading Visual Studio Projects article for Visual Studio 2015. All of the various caveats are described there. Kenneth Li Not all types of project are supported. I tried the following 4 project types: Vb.net Class project, OK. Vb.net Web Services project, OK. Cordova JS project, not OK, need to migrate manually, by moving the sources from root

Android issues reading images from persistent Uri

风格不统一 提交于 2019-12-04 21:11:17
My app lets the user select images and then it animates the images. It's a simple thing and I want it to run on 4.2 and onwards. It works perfectly now. The app is supposed to remember the chosen images and let these be default the next time the user runs the app - when the app is restarted. This works beautifully on my Galaxy Nexus (4.2.1) but not so well on my Galaxy S8+ (7.0). Since I love how it works on 4.2.1, it's a bit frustrating that it can't simply run the same on later platforms. This is inside onCreate() : ((ImageButton) findViewById(R.id.imagex)) .setOnClickListener(new View

do we need to recompile libraries with c++11?

时光怂恿深爱的人放手 提交于 2019-12-04 19:37:19
问题 This is a very uninformed question, but: I would like to start using C++11. Can I continue to use my large collection of libraries which were compiled with my old gcc 4.2.1 compiler or do I need to recompile them all with a new compiler? I would think (or hope) the answer is no, but I am only a dabbler. So that I may have at least part of my ignorance removed, can you explain why in either case? Thanks 回答1: Yes, you should. The weaker reason is not binary compatibility, the problem is about

Old projects compatible with Java 7

强颜欢笑 提交于 2019-12-04 17:53:39
问题 My old projects use Java 6 (1.6), and I don't know when I update (Java 7), they can run fine ? 回答1: There is an official list of known incompatibilities between java 6 and java 7 from Oracle (including descriptions of both binary and source-level incompatibilities in public APIs). Also you can look at the independent analysis of API changes in the Java API Tracker project: http://abi-laboratory.pro/java/tracker/timeline/jre/ The report is generated by the japi-compliance-checker tool. 回答2:

How can I test the backward compatibility of API between .net assemblies

自作多情 提交于 2019-12-04 11:34:20
问题 I have an assembly that provides an API and is used by some other assemblies. I need to verify that a newer version of API dll is still compatible with the older assemblies that were using the older version of API. I've found a couple of questions that ask the same, but there are no answers that resolve my problem: Tool to verify compatibility of a public APIs Tool for backwards compatibility for the C#/.NET API Suggested tools can only compare two assemblies and say if there are possible

Photo Mosaic in Mathematica: an example from 2008 doesn't work in Mathematica 8

匆匆过客 提交于 2019-12-04 07:48:30
I'm trying to get a Mathematica example working. It's the one on Theo Gray's blog . I think that Mathematica must have changed since he wrote that code (May 2008), since I'm unable to get anything reasonable out of it, despite changing nearly everything. Do I use ImageData instead of Import? Can anyone suggest a version of this code that works for Mathematica 8? imagePool = Map[With[{i = Import[#]}, {i, Mean[Flatten[N[i[[1, 1]]], 1]]}] &, FileNames["Pool/*.jpg"]]; closeMatch[c_] := RandomChoice[Take[SortBy[imagePool, Norm[c - #[[2]]] &], 20]][[1]]; Grid[Reverse[ Map[closeMatch, Import[

Pitfalls when writing an iOS app supporting iOS 3.1.3 and iOS 4.x

╄→尐↘猪︶ㄣ 提交于 2019-12-04 05:39:27
I would like to write an app which can be run on iOS 3.1.3 up to iOS 4.1. I know how to set up the deployment target and the base SDK. After reading the Apple docs it heavily relies on checking if the class is available and/or if an instance responds to a specific selector. Now my questions: What happens if Apple made a class public from 3.1.3 to 4.x ? When just checking for the class name it would be available on iOS 3.1.3, too? So on this version I would be using a private API, which I do not want. How would you check that? Is this really a problem or am I worrying too much? Would you also

g++ -std=c++0x and compatibility

送分小仙女□ 提交于 2019-12-04 05:36:24
I'm using g++ 4.4 to compile a shared library on linux. I would like to use some C++11 features if I can in the library, but I cannot update the version of the compiler or require any special compiler switches for users of my library. I have two questions and I'm having trouble finding a definitive answer. If I compile a shared library with -std=c++0x or -std=g++0x, am I guaranteed that a program that uses my library doesn't need those switches (provided I have no c++0x features in the header files)? It seems to work, but I don't want to be signing up for subtle problems down the road. The