03:43:51 selsta ok 07:38:29 Has anyone tried to compiled Monero with Microsoft Visual C++ (MSVC cl.exe)? Are there any interest for doing this? Porting libraries from pacman to CMake add_subdirectory would make MSVC compilation much easier too. 07:58:47 MSVC was never supported, and I'm 99% sure it's not just CMake but also a lot of code that needs to be changed to be compileable with MSVC 08:16:09 They have pretty good C++ support now. But I am mot sure from security/privacy perspective, how reliable they are. I would put them on “reliable” category though. 08:16:39 Their C support sucks though. 08:21:04 The only thing that I miss from MSVC when working with Monero code, is their debugger tools, but it's a question of habit 08:59:36 I'd say if the changes are small, why not, but you have to be willing to maintain it (if it breaks soon after, why bother) and it has to be really non invasive. 09:00:30 The first one is, probably noone will bother going through hoops to maintain compatibility with MS, of all companies. So long term commitment to maintaining it is required. 09:01:10 Now, there is also the argument that making it work with Visual C means more incentive for other people to keep using windows, which is unethical in itself... 09:02:15 does this page have any relevant information https://blog.elijahlopez.ca/posts/monero-devs-windows/ 13:34:33 moneromooo: sorry for late reply, I got disconnected. The to the code would be very minimal. The bottleneck is the build. CMake does have very good support for MSVC and everything is ready from that perspective. The problem is that we do use system libraries instead of having our own `add_subdirectory` in CMake. I am even thinking about changing to our own library to git submodule and `add_subdirectory`. That would be much better 13:35:18 From security perspective in my opinion that is much better too. We will pull everything instead of relying on OS libraries or Pacman. 13:42:25 we already use depends / gitian for this 13:42:42 we don't rely on OS libraries for release binaries 13:43:16 I meant package manager libraries 13:47:36 each dependency is built from source, we check hashes and also can apply custom patches, otherwise reproducible builds wouldn't work 13:48:49 selsta: i think this is about development builds using MSVC, not release binaries 13:49:10 yes but xFFC suggested adding all dependencies as submodule 13:50:17 unless I misunderstood their suggestion from a couple days ago 13:50:58 submodules for all dependencies would slow down recursive checkouts by a lot 13:51:49 tobtoht[m]: `git clone --recurse-submodules --shallow-submodules` 13:52:16 tobtoht[m] selsta yes development build. 13:57:56 why can't MSVC use installed libraries? 14:00:28 why not just cross-compile with MSYS2? 14:01:23 The average user who custom builds monero doesn't need all dependencies built from scratch, is significantly increases build time. I also don't like adding submodules just for MSVC. Adding build support for submodule libraries for all operating system is a lot of work and basically duplicates what the depends build system does. It also means we have to maintain twice the amount of libraries, once in depends and one as submodule. 14:05:37 I don't have an issue with adding MSVC support if it means just small changes to CMake and no new submodules. 14:09:46 selsta I will take a look at the possiblity of adding MSVC support without messing too much with submodules thing. 14:16:54 Building without dependencies means you'll have to ship .lib files for Debug/Release builds for MSVC 2019/2022. Not an ideal solution 14:17:12 .lib and .pdb 14:18:03 of course with cmake's add_subdirectory it will all be in the same solution file and will be built locally 14:18:12 but build time will be long the first time 14:25:19 not all dependencies have a CMakeLists.txt file 15:03:20 I agree with the submodule thing. It's overengeneering. We lose either security (if using a fork of the upstream repo, unless someone is around to update the submodule every time something relevnat is out) or robustness (if the submodule is direct upstream master, in which case we need to fix random stuff everytime upstream makes a breaking change). 15:04:06 I do that in TF, but only for those repos with code I have changed. Otherwise it just adds constraints for no good reason. 15:04:41 If you want the ability to just run a command and get binaries, we have gitian or podman. 15:05:00 Not podman, I forget the name, but podman compatible. 15:05:22 docker! 15:06:08 It is also a lot slower to build. I speak from TF experience -_- 15:06:54 For incremental builds I mean. 15:57:37 "1) Grab curve25519-dalek and..." <- > <@kayabanerve:matrix.org> 1) Grab curve25519-dalek and generate two scalars if you just want keys 15:57:37 > 2) Grab curve25519-dalek and generate one scalar, before hashing it to generate another (the view key) 15:57:37 > 3) Grab monero-serai and generate a seed, though our code isn't audited yet and had has to be used with consideration, before getting the key from it and then hashing that for the view key) 15:57:37 I was looking to just generate keys and addresses. 16:45:51 "> <@kayabanerve:matrix.org> 1..." <- later on a full escrow service. 16:57:09 You could copy these lines changing the hex::decode to some sort of random bytes generator: 16:57:09 https://github.com/monero-rs/monero-rs/blob/main/tests/recover_outputs.rs#L29-L42 16:57:09 Then pass the keypair into this: 16:57:09 https://docs.rs/monero/latest/monero/util/address/struct.Address.html#method.from_keypair