{"push_id":723149427,"size":14,"distinct_size":14,"ref":"refs/heads/windows","head":"230cebd4eefb70b263149e309e90289e52c0780f","before":"cd00ca773caf340350719e32b7149b8e716dd786","commits":[{"sha":"4d7a60429e5fb3f631c7fcb969e4008a9ae2a292","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Support coloured output for Windows console\n\nThe Windows Console doesn't natively support ANSI escape sequences, but\nit does include API functions providing most of the required support.\nIn order to maintain the option of compiling with MSVC, a custom wrapper\nis implemented for the small number of required escape sequences, rather\nthan using MSYS's ANSI layer.\n\nThe need to post-process coloured messages means that the format\nsignatures of various functions in OpamConsole have changed from printf\nto sprintf form and it is imperative that all output to the Console\nwhich includes coloured text goes through one of OpamConsole's functions\n(in particular, print_string, Printf.printf, output_string std* must not\nbe used).\n\nParticular care has been taken to ensure that OpamConsole.log and\nOpamConsole.slog behave in the same way; specifically this means that\nstrings logged should never include ANSI escape sequences because these\ncannot be translated.\n\n(note that an earlier attempt at doing this used a pipe to write the\ndata via kfprintf in order to maintain the same %a behaviour and then read\nthe string back from the pipe, but this leads to problems if the data being\nwritten is larger than the pipe's buffer and it seems excessive to\nintroduce multi-threading or two processes solely to handle debugging\nconsole output)","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/4d7a60429e5fb3f631c7fcb969e4008a9ae2a292"},{"sha":"7cfe1dc50839a26db2ed34c9b201bcc595795bf9","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Fix handling of URLs\n\nURLs were handled as though they were filenames. This is fine on\nUnix-compatible systems, but broken on Windows where backslashes end up\nbeing used in manipulation.\n\nIntroduce OpamURL.t as an intentionally opaque type (in order to force\nconversion and spot potential mishandling).","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/7cfe1dc50839a26db2ed34c9b201bcc595795bf9"},{"sha":"53c94f551f5f8a1e511e32c8b732b8699482ce69","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Split get_actual_command from command_exists\n\nRemove code for searching for a command from OpamSystem.command_exists\nand create the extra function OpamSystem.get_actual_command which\nreturns the full path to the command to be executed.","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/53c94f551f5f8a1e511e32c8b732b8699482ce69"},{"sha":"ba207aab45ac4a0e30b1fa04a68c9bf099dc2239","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Support for tools needing Cygwin paths\n\nVarious Cygwin tools (notably tar and rsync) don't recognise Windows\nbashslash-style paths and need to have the path converted using the\ncygpath utility.\n\nAdd two functions to OpamSystem to support this:\n\n1. OpamSystem.is_cygwin_variant uses cygcheck to determine if a given\nprogram is the Cygwin-compiled version (cygcheck shows DLLs linked, so\nthe presence of cygwin1.dll is taken to imply a Cygwin-based command).\nNote that for a Cygwin build of OPAM (and indeed for any other Unix-like\nbuild), this function always returns false. For a native Cygwin build,\nthe user should specify Cygwin-style paths.\n2. OpamSystem.apply_cygpath converts its argument to a Cygwin-style path\nusing the cygpath utility","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/ba207aab45ac4a0e30b1fa04a68c9bf099dc2239"},{"sha":"76d8f56b3205fddfa69ec249621b93ed83d26549","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Support Cygwin tar on Windows\n\nCygwin tar needs paths to be translated. With this patch, opam init can\nsuccesfully download and initialise ~/.opam using wget.","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/76d8f56b3205fddfa69ec249621b93ed83d26549"},{"sha":"259cdc68ec53f162d569c7184cd180576c025d27","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Implement OpamProcess.wait_one for Windows\n\nUnix.wait (and its equivalent Unix.waitpid [] -1) isn't available under\nWindows. Added a new stub OPAMW_waitpids which instead explicitly waits\nfor one of the given processes to terminate using\nWaitForMultipleObjects.","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/259cdc68ec53f162d569c7184cd180576c025d27"},{"sha":"9b0c34b27f7c513599783ef02a77c3d2565b4974","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Add function for writing to the Windows Registry\n\nOnly REG_SZ implemented (for now)","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/9b0c34b27f7c513599783ef02a77c3d2565b4974"},{"sha":"6aa5ea1658d15298bcac6f13f82634ef9891f0e8","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Remove GADT to maintain 3.12 compatibility\n\nWindows builds of OPAM require OCaml 4.02, but since 3.12 is supposed to\nbe supported, convert OpamStd.Win32.RegistryHive.value to a normal\nvariant type (means that OpamStd.Win32.writeRegistry is no longer\ntype-safe).","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/6aa5ea1658d15298bcac6f13f82634ef9891f0e8"},{"sha":"3b1a01ae8150ce5d819f62bb9f2cd689b10d9f9b","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Fix .merlin when using lib-ext build\n\nGenerate .merlin so that if configure detects that lib-ext must be\nbuilt, files in src_ext are S'd and B'd instead of non-existent PKG's\nbeing loaded.","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/3b1a01ae8150ce5d819f62bb9f2cd689b10d9f9b"},{"sha":"3b28b2adcc1f37069bd182af7798f05e3cd1d13d","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Detect ocamldep.opt in configure\n\nocamldep.opt is considerably faster than the bytecode compiled version\n(available since OCaml 3.07!). ocaml-autoconf macros updated to detect\nboth ocamldep.opt and ocamldoc.opt (change also submitted upstream).","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/3b28b2adcc1f37069bd182af7798f05e3cd1d13d"},{"sha":"8ce20c57aaa47b091a19cfc9b9f94ba0c84afe53","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Add developer mode to configure\n\nconfigure now accepts --enable-developer-mode which sets\nOpamCoreConfig.developer and DEVELOPER in Makefile.config to true.","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/8ce20c57aaa47b091a19cfc9b9f94ba0c84afe53"},{"sha":"aa2a860de28e81b4997a283f7a67ad1d19b4c8b7","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Add DEVELOPER_CACHE configure variable\n\nPassing DEVELOPER_CACHE automatically enables developer mode and allows\nthe developer to specify a local directory in which remote files\n(urls.txt and index.tar.gz in particular) can be placed.\nOpamDownload.really_download checks an index placed in this directory\nbefore invoking wget/curl and simply copies the file if it's found.","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/aa2a860de28e81b4997a283f7a67ad1d19b4c8b7"},{"sha":"da4d707153697a0810e5bdd95b2656203f9dbeec","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Invoke ocamldep correctly on Windows\n\nocamldep needs to have the -slash option passed. Added WIN32 variable\n(overrides, correctly, the one in OCamlMakefile) and append -slash to\nocamldep for Windows.\n\nprint_config.ml borrowed from a similar piece of work for ocurl.","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/da4d707153697a0810e5bdd95b2656203f9dbeec"},{"sha":"230cebd4eefb70b263149e309e90289e52c0780f","author":{"email":"c9f3edd67895121805b8da006fd27cc8ebcfeb7e@metastack.com","name":"David Allsopp"},"message":"Support UTF-8 display in Windows console\n\nThe Windows Console Host supports UTF-8 as long as a TrueType font has\nbeen selected (two are installed by default). Console logic updated to\ndetect this font support and enable UTF-8 output as appropriate.\n\nAt present (and, based on the Windows 10 previews, we can assume for a\nwhile), the Console does not support Unicode surrogate pairs, so sadly\nthere will be no Camel symbol for OPAM-on-Windows for the foreseeable\nfuture :'( (additionally, the only common font containing it is Segoe UI\nSymbol which is not usable as a Console font).\n\nA bug in the C standard library write function means that OCaml's output\nfunctions (and hence Printf) cannot be used with UTF-8, so output is\nswitched to use WriteConsole directly.\n\nAlthough Windows has two suitable fonts (Lucida Console and Consolas)\ncontaining Unicode glyphs, neither of these fonts contain the glyphs\nused by OPAM's solver. Unsurprisingly, Windows font mapping for symbols\nis also vastly inferior compared with Linux, so instead of requiring the\nuser to find a suitable console font, OPAM detects the glyphs supported\nby the font and falls back on some suitable alternatives if the defaults\nare not available.","distinct":true,"url":"https://api.github.com/repos/dra27/opam/commits/230cebd4eefb70b263149e309e90289e52c0780f"}]}