Yes it was added in 2010. There were some other headers VS had issues with for longer. But as of VS2017 15.9, it is compliant fully with all of C++11/14/17 and most of C99.
On Mon, Mar 25, 2019 at 6:16 PM Drew Van Zandt <drew.vanza...@gmail.com> wrote: > MSVC 2010 includes it. > > > https://stackoverflow.com/questions/126279/c99-stdint-h-header-and-ms-visual-studio > > > *Drew Van Zandt* > > > On Mon, Mar 25, 2019 at 5:25 PM Wayne Stambaugh <stambau...@gmail.com> > wrote: > >> I don't know if it's still true but msvc didn't include stdint.h so >> making this policy would have left msvc users without a solution. This >> may no longer be true and I seem to remember that someone was providing >> an implementation of stdint.h for msvc. If this is no longer the case, >> then it could be added to the coding policy. >> >> On 3/25/19 3:02 PM, Jon Evans wrote: >> > Any reason not to just make a policy moving forward to define anything >> > related to file formats using stdint types so that there are no >> > architecture variations possible? >> > >> > On Mon, Mar 25, 2019 at 2:59 PM Jeff Young <j...@rokeby.ie >> > <mailto:j...@rokeby.ie>> wrote: >> > >> > Hi JP, >> > >> > I’m afraid I just move the decl (and its comment) from another >> > file. It appears the author >> > was Henner Zeller in 3f57fa5d2443a085c9fa243c615d71dc470a0107. >> > >> > Commit comment was: >> > >> > Change time_t in the functions that deal with timestamps to a >> new >> > typedef timestamp_t (defined as a long). >> > that makes sure the c++ side and swigged Python side agree on >> the >> > type, because time_t create problems in Python scripts. >> > >> > Cheers, >> > Jeff. >> > >> > >> >> On 25 Mar 2019, at 15:51, jp charras <jp.char...@wanadoo.fr >> >> <mailto:jp.char...@wanadoo.fr>> wrote: >> >> >> >> Le 25/03/2019 à 16:22, Wayne Stambaugh a écrit : >> >>> On 3/24/2019 2:34 PM, Seth Hillbrand wrote: >> >>>> Am 2019-03-24 13:23, schrieb Jon Evans: >> >>>>> Hi all, >> >>>>> >> >>>>> Another question from this forum thread: >> >>>>> >> https://forum.kicad.info/t/before-giving-up-on-kicad-one-last-attempt-erc-misery/15933/67 >> >>>>> >> >>>>> >> >>>>> timestamp_t is defined as "long", with a note that swig can't >> >>>>> handle >> >>>>> int32_t. >> >>>> >> >>>> I don't understand this comment. SWIG includes stdint.i which >> >>>> explicitly defines the exact integral types. Maybe Jeff can >> >>>> shed some >> >>>> light here? >> >>>> >> >>>> >> >>>>> This means that timestamp_t will be 32-bit on many platforms, >> but >> >>>>> 64-bit on Linux and MacOS running on 64-bit hardware. >> Apparently >> >>>>> there is at least one bug here involving the Eagle importer >> writing >> >>>>> out library files with 64-bit timestamps, which 32-bit KiCad >> cannot >> >>>>> open. >> >>>> >> >>>> This is a problem in ParseHex(). If it gets a hex value that >> >>>> overflows, >> >>>> it throws an error, stopping the processing. So this isn't >> >>>> specific to >> >>>> the Eagle plugin but rather a 32-bit/64-bit issue. We allow >> >>>> 64-bit to >> >>>> be written to file but only generate a time_t (32-bit) value for >> >>>> new, >> >>>> internal stamps. >> >>>> >> >>>> The Eagle processor creates its own "timestamp" by hash which is >> >>>> 64 bits >> >>>> on a 64 bit machine. >> >>> >> >>> Do you mean our Eagle plugins are not truncating 64 bit time >> >>> stamps in >> >>> Eagle files? If so, the problem needs to be fixed here. AFAIK, >> >>> KiCad >> >>> has always used 32 bit time stamps. >> >> >> >> The issue is the fact the legacy plugin currently uses a long as >> time >> >> stamp, but do not truncate if to 32 bits when writing a .sch file. >> >> So because Eagle importer generate a long value, the legacy plugin >> >> writes 8 hexa chars on 32 bits platform, but can write more than 8 >> >> chars >> >> on 64 bits platforms >> >> >> >>> >> >>>> >> >>>>> Q1: Is there actually a bug here? maybe someone more familiar >> >>>>> with the >> >>>>> Eagle importer can take a look. >> >>>> >> >>>> Yes. Definitely bug. We should be trimming the hash-based >> >>>> timestamp to >> >>>> 32-bits. >> >>> >> >>> You would also have to add checking for duplicate time stamps due >> >>> to the >> >>> truncation of the upper 32 bits. >> >>> >> >>>> >> >>>>> Q2: Shouldn't we change the type of timestamp_t to be either >> >>>>> "int" (if >> >>>>> we want it to be 32-bit) or "long long" (if we want it to be >> >>>>> 64-bit)? >> >>>> >> >>>> I think 32-bits is the correct way to go here and using uint32_t >> >>>> should >> >>>> work but I may be missing an important detail. >> >>>> >> >>>>> My first thought is that we should change timestamp_t to be >> >>>>> 32-bit on >> >>>>> all platforms, but I'm not sure the best way to handle existing >> >>>>> files >> >>>>> that have been written out with 64-bit timestamps. >> >>>> >> >>>> This is problematic. I think we could patch the reader to >> >>>> handle 64-bit >> >>>> values but store 32-bit. >> >>>> >> >>>> -Seth >> >> >> >> I have a fix for that (it forces 32 bits in timestamp_t and allows >> 64 >> >> bits when reading a file). >> >> >> >> Annotation should already take care of duplicate timestamps (and >> >> replace >> >> duplicates if any) unless bug. >> >> >> >> The right fix is to use uint32_t for timestamps, at least for the >> >> current file format. >> >> >> >> @Jeff, you added a comment in common.h about an issue with Swig. >> >> What is this issue you encountered when using uint32_t as typedef >> for >> >> timestamp_t with swig (I did not see an issue during my tests)? >> >> >> >> -- >> >> Jean-Pierre CHARRAS >> > >> > _______________________________________________ >> > Mailing list: https://launchpad.net/~kicad-developers >> > Post to : kicad-developers@lists.launchpad.net >> > <mailto:kicad-developers@lists.launchpad.net> >> > Unsubscribe : https://launchpad.net/~kicad-developers >> > More help : https://help.launchpad.net/ListHelp >> > >> > >> > _______________________________________________ >> > Mailing list: https://launchpad.net/~kicad-developers >> > Post to : kicad-developers@lists.launchpad.net >> > Unsubscribe : https://launchpad.net/~kicad-developers >> > More help : https://help.launchpad.net/ListHelp >> > >> >> _______________________________________________ >> Mailing list: https://launchpad.net/~kicad-developers >> Post to : kicad-developers@lists.launchpad.net >> Unsubscribe : https://launchpad.net/~kicad-developers >> More help : https://help.launchpad.net/ListHelp >> > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > Post to : kicad-developers@lists.launchpad.net > Unsubscribe : https://launchpad.net/~kicad-developers > More help : https://help.launchpad.net/ListHelp > -- Mark
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp