Skip to main content

Timeline for answer to Switch between source code and precompiled binaries by Hooman Bahreini

Current License: CC BY-SA 4.0

Post Revisions

31 events
when toggle format what by license comment
May 24, 2021 at 11:08 history edited Hooman Bahreini CC BY-SA 4.0
deleted 2 characters in body
May 11, 2020 at 11:39 comment added Chris F Carroll In the managed world of .Net / C#, I think an API break is exactly equal to an ABI break?
May 10, 2020 at 6:23 vote accept TarmoPikaro
May 10, 2020 at 6:23
May 8, 2020 at 6:04 history bounty awarded CommunityBot
May 3, 2020 at 0:56 history edited Hooman Bahreini CC BY-SA 4.0
added 2 characters in body
May 1, 2020 at 20:05 comment added Vlad To avoid thinking about API / ABI in C++ it's worth to design API in COM-like style - using in API only interfaces (virtual functions). And passing only buildin or pointer to interfaces as parameters. Or you can use C functions as API, or opaque pointers. In short - your API <=> ABI. Otherwise if you pass std::string in dll method and change run-time version only in dll (or only in exe) then you have problems. If you change run-time everywhere then you shoul recompile even if API is intact.
May 1, 2020 at 3:40 history edited Hooman Bahreini CC BY-SA 4.0
added 1 character in body
May 1, 2020 at 3:11 history edited Hooman Bahreini CC BY-SA 4.0
deleted 1 character in body
May 1, 2020 at 3:05 history edited Hooman Bahreini CC BY-SA 4.0
deleted 8 characters in body
May 1, 2020 at 2:56 history edited Hooman Bahreini CC BY-SA 4.0
deleted 8 characters in body
May 1, 2020 at 1:15 history edited Hooman Bahreini CC BY-SA 4.0
deleted 1 character in body
May 1, 2020 at 1:03 history edited Hooman Bahreini CC BY-SA 4.0
deleted 1 character in body
Apr 30, 2020 at 23:43 history edited Hooman Bahreini CC BY-SA 4.0
added 1103 characters in body
Apr 30, 2020 at 23:38 history edited Hooman Bahreini CC BY-SA 4.0
added 1103 characters in body
Apr 30, 2020 at 23:32 history edited Hooman Bahreini CC BY-SA 4.0
added 1103 characters in body
Apr 30, 2020 at 23:21 history edited Hooman Bahreini CC BY-SA 4.0
added 1103 characters in body
Apr 30, 2020 at 23:14 history edited Hooman Bahreini CC BY-SA 4.0
added 1103 characters in body
Apr 30, 2020 at 10:13 history edited Hooman Bahreini CC BY-SA 4.0
edited body
Apr 30, 2020 at 10:09 comment added Hooman Bahreini Please note that if you change the source code for your library, the other projects using this library will not break (unless you install the new version of nuget package)... which means you can modify the source code of your library without having to worry about breaking other program.
Apr 30, 2020 at 9:52 comment added TarmoPikaro API - application interface, breaking means making interface non-compatible with previous version. See wiki pages: en.wikipedia.org/wiki/Binary-code_compatibility en.wikipedia.org/wiki/Application_binary_interface. API compatible means that interface is the same, but you need to compile your client code still. ABI compatible means that you can just replace old DLL with new DLL and it will work out of box. Normal break means that you add any new parameter and code will not work after that (requires client changes)
Apr 30, 2020 at 9:37 comment added Hooman Bahreini Sorry I don't follow... what is API Break?
Apr 30, 2020 at 9:34 comment added TarmoPikaro It's also possible to use nuget packaging for C++, see this link: digitalhouseblog.wordpress.com/2019/08/22/… But indeed that does not take side on API / ABI selection.
Apr 30, 2020 at 9:29 comment added Hooman Bahreini I don't really follow your question... generating a nuget package has nothing to do with your source control and git... you need to build your project and use nuget pack command from Command Prompt to get .nuget file... then install it where you need the package... just like installing any other library.
Apr 30, 2020 at 9:23 comment added Hooman Bahreini Creating a nuget package is independent of your programming language, so long as you can open your application in Visual Studio and Build it, you can create a nuget package (please check the instructions in the link)
Apr 30, 2020 at 9:20 comment added TarmoPikaro How api breaks can be handled with nuget packaging ? E.g. you break API (requires recompilation) or ABI (can work as it's without compilation) - how you can configure this from nuget packaging such breaks ?
Apr 30, 2020 at 9:15 comment added TarmoPikaro Does nuget packaging works also for C++ code as well ? Can nuget package file generation be automated, for example if we have source code as separate git, can be use sparse git to get nuget package specification from that git ?
Apr 30, 2020 at 7:33 history edited Hooman Bahreini CC BY-SA 4.0
added 12 characters in body
Apr 30, 2020 at 7:23 history edited Hooman Bahreini CC BY-SA 4.0
added 12 characters in body
Apr 30, 2020 at 7:11 history edited Hooman Bahreini CC BY-SA 4.0
added 1 character in body
Apr 30, 2020 at 7:04 history edited Hooman Bahreini CC BY-SA 4.0
deleted 18 characters in body
Apr 30, 2020 at 6:57 history answered Hooman Bahreini CC BY-SA 4.0