IRC logs for #openttd on OFTC at 2023-03-07
⏴ go to previous day
00:15:51 *** sla_ro|master has quit IRC ()
00:59:42 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
01:23:18 *** HerzogDeXtEr1 has quit IRC (Read error: Connection reset by peer)
01:41:43 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
01:45:51 *** Wormnest has joined #openttd
01:59:13 *** WormnestAndroid has joined #openttd
02:56:58 *** discord_user_f4a0790 has joined #openttd
02:57:01 <discord_user_f4a0790> sorry i dont think ill read all this
03:04:28 *** Wormnest has quit IRC (Quit: Leaving)
03:29:22 *** debdog has quit IRC (Ping timeout: 480 seconds)
03:36:08 *** D-HUND is now known as debdog
06:03:32 *** keikoz has quit IRC (Ping timeout: 480 seconds)
06:31:04 <petern> Won't take long, it's less than 40 syllables.
06:35:40 *** Eddi|zuHause2 is now known as Eddi|zuHause
06:38:50 <Eddi|zuHause> i'm fairly sure there are lines in the backlog that are more than 40 syllables
07:07:12 *** sla_ro|master has joined #openttd
07:53:58 <audigexJon> discord_user_f4a0790: This screenshot is gonna be my response whenever someone says "We discussed that" on a feature I had no idea existed
09:30:24 <andythenorth> GS, but you can have 2 in a game.
09:30:24 <andythenorth> And they can traverse each other's content (data, classes, methods).
09:30:39 <andythenorth> And they can be restarted without reloading the save.
09:30:58 <andythenorth> Then I can make a debugging / utility GS as a tool. And make FIRS GS separately.
10:32:05 *** JacobD88 has joined #openttd
11:16:11 <LordAro> oh nice, i missed that PR
11:22:19 <petern> I wonder if it makes the ship pf cache unnecessary.
11:22:53 <petern> Although that is already in place and works, I guess.
11:39:34 <LordAro> less code is good though
11:39:50 <LordAro> and caching of individual regions is probably unnecessary
11:42:23 *** Smedles_ has joined #openttd
11:42:33 *** Smedles has quit IRC (Ping timeout: 480 seconds)
11:46:45 <Xarick> wagon handling scares me
11:46:59 <Xarick> there's a bit of witchcode
11:55:30 <petern> That's not the usual meaning of "assertive" :p
12:00:48 <LordAro> petern: not wrong though!
12:01:10 <LordAro> though assert(false) is a bit of an oddism
12:02:24 <Xarick> so i test in release mode
12:03:52 <Xarick> and yet I'm not being thorough enough
12:04:45 <Xarick> i should iterate all companies to see if vehicles are listed in the other group_default/all
12:11:08 <glx[d]> If number cache was fine, your list should be fine too as both are updated at the same time
12:28:54 <petern> LordAro, somehow my legs are still telling me off 😦
12:30:41 <Kuhnovic> petern: IMO it still make sense to have a path cache for ships. Of course no cache would mean an instant response to changes on the map, but there is a very high change that the path that comes out of the pathfinder is going to be exactly the same as the previous time. Unless something significant has changed on the map of course, but then it's still ok to respond to this with a little delay induced by a small cache.
12:32:46 <petern> *nod* What distance did you use for the intermediate destinations? (I didn't get a far as reading that level of detail)
12:37:59 <petern> Huh, we're pretty close for distance so far this year.
12:40:36 <petern> It's been snowing around here today.
12:40:58 <LordAro> i had hoped for a lot more this weekend
12:41:17 <LordAro> also mildly concerned about what the weather's going to do in 2 weeks time
12:46:33 <Kuhnovic> petern: Right now it looks 3 water regions ahead. Those regions might all be in line or diagonal, so the actual distance fluctates. It also depends on where the ship is within it's current region when it starts the search. A more consistent distance is still on my TODO list, but the current solution already works pretty well.
12:54:08 <petern> Probably doesn't need to be consistent really as long as it's always a good range for the tile pathfinder.
12:55:02 <petern> The high-level (and low-level) path should always be consistent for the same source and destination though.
12:57:08 <petern> Worst would be a path that flipflops back and forth 😄
13:01:01 <Kuhnovic> The high level search user A* and no random number, so it's deterministic 🙂
13:05:30 <petern> I also wonder if similar can be done for road pathfinding, although it's not as extreme. Large town grids layouts make a load of paths.
13:06:58 <petern> Dear Windows 11 start menu: Stop being stupid.
13:08:05 <debdog> praying to the wrong god
13:15:56 <Kuhnovic> petern: Probably possible, but not as easily. Water doesn't have one-way characteristics, so once you figure out which water is connected within a 8x8 region then you know you can reach any of it. Roads can be one-way roads, this makes things considerably more difficult.
13:40:39 <dP> Kuhnovic: have you looked into conventional a* optimizations?
13:40:47 <dP> like jump-point search and stuff
13:41:02 <dP> your whole approach to me looks like reinventing the wheel tbh
13:42:14 *** Xaroth has quit IRC (Quit: -)
13:47:04 <Kuhnovic> Ok, give me a minute, I need to write this down without going into full detail. The TL;DR is: yes, I tried JPS, but found it wasn't that suitable
13:47:57 <LordAro> i'd be ideal if you did go into full detail somewhere, either in the PR or preferrably in the code itself
13:57:18 <Kuhnovic> JPS assumes that directions can be changed at will at any point. This isn't the case for openttd, where you get big penalties for 90 degree turns. So we at least need to explore a 5x5 area with the current position of the ship in the middle to allow for a smooth turning radius. I did this by using regular A* in this area and then switch to JPS the moment you get outside this 5x5 area. This results in many diagonal jumps, which in tur
13:57:18 <Kuhnovic> doing so check the same tile multiple times. I saw similar behavior around small islands, where the search frontier tends to "curl back on itself".
14:30:34 *** Xaroth has quit IRC (Quit: -)
14:31:54 <glx[d]> Of course all these asserts should not be in final version
14:33:42 *** sla_ro|master has quit IRC ()
14:36:20 <Kuhnovic> The compiler takes care of that 😛
14:42:46 <Xarick> the train_cmd.cpp code
14:43:03 <Xarick> that's why I'm being over cautious
14:53:28 <Xarick> First vehicle that is bought is a wagon, and this is what happens
14:54:27 <Xarick> stats_all.num_vehicles: 0 - 1 = 65535, then it removes v->index of a wagon from the list, but the list is empty
14:56:34 <Xarick> next, it inserts a vehicle
14:57:05 <Xarick> 65535 + 1 = 0, but now the vehicle, still a wagon, gets inserted into the vehicle_list
14:57:41 <Xarick> num_vehicle is 0, but it now has a vehicle in the list, ...
15:04:10 <Xarick> how can a wagon be a PrimaryVehicle?
15:05:02 <Xarick> oh, it's a single head now
15:06:59 <glx[d]> Wagon is built then moved to the train
15:13:46 <Xarick> okay so that id was already the id of a singe head
15:14:06 <Xarick> wagon doesn't run CountVehicle
15:17:05 <Xarick> the AI first builds a wagon, then builds an engine
15:19:25 <Xarick> wagon doesn't run CountVehicle, but the 2nd vehicle, the engine, runs NormalizeTrainVehInDepot which will do CountVehicle -1 and then CountVehicle +1, and when it gets out of there, back in CmdBuildVehicle, it runs CountVehicle +1 because it's a PrimaryVehicle
15:22:23 <Xarick> CountVehicle -1 puts the group with 65535 num_vehicle, removes vehicle from vehicle_list which isn't in it. Next, CountVehicle +1 puts the group with 0 num_vehicle, adds the vehicle to vehicle_list which isn't in it. And finally, the last CountVehicle +1 puts the group with 1 num_vehicle, and adds again the same vehicle to vehicle_list, but it's already there, so nothing changes. Everything corrects itself in the end
15:26:38 <glx[d]> btw 65535 is -1 with 16 bits 😉
15:31:31 <Xarick> not sure if by pure luck or clever existing code, but everything falling into place correctly for something that is added posteriorly is impressive
15:48:00 <Xarick> how do I compare the result of 2 lists in c++? I know how to do it in squirrel
15:48:28 <Xarick> but i wanted to assert the lists have exactly the same contents
15:53:17 <Kuhnovic> And another answer mentions the std::mismatch algorithm. Never used it myself.
15:54:49 <Xarick> it's a... i dunno list
15:55:15 <Xarick> the type of list AIs use is unknown to me
15:57:16 <glx[d]> it's an std::set, so it's sorted
15:58:22 <glx[d]> well ScriptList is a mix
16:01:36 <glx[d]> with 2 std::map, but that's sorted too
16:03:29 <dP> Kuhnovic: ok, that gives it some context but how did you compare your algorithm to jps or default pathfinder? I'd expect to see some kind of benchmark in a pr that deals with algorithms, like what I did with sprite sorter, for example: <https://github.com/OpenTTD/OpenTTD/pull/7962#issuecomment-586487781> Also not having some kind of isolated testing environment makes it very unapproachable. Like, I would like to try few ideas and see how they c
16:03:29 <dP> pathfinder but there is no way I'm implementing them as a full-blown ingame pathfinder, especially when there is no apparent way to compare them anyway.
16:08:38 <Kuhnovic> I am planning on doing a proper benchmark, although it is a little bit of an apples to oranges comparison. The current YAPF shipfinder just isn't suitable for large distances. I can crank up the max number of nodes which gives it a bigger range, but that's an advanced setting that I don't think most users tinker with since it's not accessible via the settings menu.
16:10:09 *** HerzogDeXtEr has joined #openttd
16:10:18 <dP> I don't think setting really matters, just pick whatever is better for comparison, I'd expect that ineffeciency with nodes to affect the time significantly anyway
16:10:53 <dP> but at least you'll have a reference point to compare to wrt time and distance (since you're doing sub-optimal paths)
16:12:16 <Kuhnovic> This is the closest thing I have to a benchmark right now. Yesterday I created a 256x256 map with 500 Bakewell Hovercrafts traveling accross the entire map. I ran it in my browser (chrome) with the emscripten preview on my i7-3610QM from 2012. I had fast forward on and it was always running about 1,8x wall clock speed. I'm certainly not claiming that this is a good benchmark, but it does show this algorithm is orders of magnitude fas
16:13:30 <Kuhnovic> dP: Yes, I definitely have to measure how suboptimal these paths are
16:14:39 <dP> I don't think it's really a question whether it's better than default, anything that doesn't need boys would be at this point 😆
16:14:58 <dP> but it's hard to even fine-tune one algorithm without a proper benchark
16:15:59 <dP> for example, the simplest things, like you say you subdivide into 8x8 squares, why so, won't 16x16 be better or 4x4?
16:16:26 <Kuhnovic> Did I mention the PR still has the "draft" label on it 😛 ?
16:19:59 <Kuhnovic> But these are all fair questions. As of right now I've mainly done performance profiling to eliminate some performance bottlenecks. I settled on the 8x8 mostly by experimenting a lot and looking at what was a good tradeoff between performance and suboptimality. But I have to admit these are quite subjective, it was based on "what looked good" (I added a ton of debug drawing to visualize things).
16:22:40 <Kuhnovic> Anyway, I'm far from done with this algorithm, I just wanted to show it to the world and get feedback. Right now I'm more in the phase of structuring the code better and making it less prototype-like 🙂
16:23:07 <Kuhnovic> petern: Will give that a go later today!
16:31:51 <dP> btw, do you run a new pf search on regions each time? imo should be possible to just run smth like floyd-warshall for all paths on regions and use that as a cache
16:33:40 <dP> though considering there aren't that many docks in a typical game simply caching the whole path one way or another would probably be better
16:59:23 *** sla_ro|master has joined #openttd
17:23:36 *** ChanServ sets mode: +v tokai
17:30:22 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
17:36:04 <Xarick> how do I initialize an empty list in c++
17:37:25 <Xarick> ` ScriptVehicleList list = ScriptVehicleList();
17:37:34 <Xarick> I'd rather just create it empty
17:39:07 <Rubidium> why would you want a script list, and not a std::list?
17:40:41 <Xarick> i need to compare its contents the way they're received in squirrel
17:40:49 <Rubidium> though something along the lines of `std::list my_list;` should be enough, or `ScriptList my_list;`
17:45:41 <Xarick> this is much harder in c++ than I anticipated
17:47:47 <Rubidium> smells like use-after-free-ish
17:51:23 <Rubidium> start with `ScriptVehicleList_DefaultGroup1 list1(vehicle_type);` and similar.
17:52:23 <Rubidium> what you did before was...well... declare a reference (something that points to something else) and then assign a temporary allocation to is, so basically after the assignment it's already invalid
17:53:27 <Rubidium> oh, that was a function
17:53:46 <Rubidium> not a constructor... yikes
17:54:53 <Rubidium> and ScriptList and all does not have move/copy constructors, so that's not going to work for many things
17:57:16 <Rubidium> `ScriptVehicleList &list = ScriptVehicleList();` -> `ScriptList *list = new ScriptList();`, returning pointers from the two new functions, changing some . to ->, `ScriptList &list` -> `ScriptList *list` and deleting. Or use std::unique_ptr
17:57:57 *** bigyihsuan has joined #openttd
17:57:57 <bigyihsuan> why do i have an obsession with rivers in this game
17:58:15 <bigyihsuan> why is it that i want them to be more bendy on flat ground
17:58:20 <bigyihsuan> what even goes into that even
17:58:44 <bigyihsuan> i see that it uses a* to find a path for the rivers, starting from the end point (ocean, or river join)
17:59:07 <bigyihsuan> and i keep seeing rivers that just *end* in a lake on flat ground that clearly can keep flowing
17:59:47 <Rubidium> or put list on the stack in the constructor, and pass those by reference to those functions and not return the list from there
17:59:55 <Rubidium> plenty of options to do it
18:00:54 <Xarick> sorry, I don't know what you said
18:01:33 <JGR> C++ is not a language where you can fumble along by trial and error
18:02:31 <JGR> There are online courses and things like that which cover the basics
18:03:05 <LordAro> JGR: we've been saying that for years
18:05:23 <Xarick> how to delete the lists? it's just delete list1;?
18:09:49 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
18:23:02 <Xarick> im getting memory usage going up never down 😦
18:34:03 <Xarick> memory doesn't go down
18:34:50 <Xarick> yeah, I don't know what to ask
18:35:30 *** gelignite has joined #openttd
18:39:21 *** virtualrandomnumber has joined #openttd
18:39:36 *** virtualrandomnumber has quit IRC ()
18:44:36 <Kuhnovic> In your last two functions you are creating ScriptList called "list" on the heap (you are using new). Then you dereference the pointer to that ScriptList when you want to return it. Dereferencing results in a ScriptList&, so this leads to an implicit call to the copy constructor of ScriptList. So what happens is that you return a copy of the ScriptList "list", and "list" is never deleted. This is a memory leak, and that's why your me
18:45:57 <LordAro> i do believe the bridge is failing to split long messages correctly
18:46:16 <LordAro> that cuts off at "and that's why your me" for me
18:46:18 <Kuhnovic> The solution here is to not create your object on the heap in the first place. Replace "ScriptList *list = new ScriptList();" with "ScriptList list;" and remove all the dereferencing asterisks when you return 🙂
18:49:26 <Kuhnovic> petern: 1024x1024 map with lots of chaoticly placed water, 500 ships traveling from the NE corner to the SW corner. And still running faster than wall clock time 🙂
18:49:41 <DorpsGek> - Update: Translations from eints (by translators)
18:51:23 <Xarick> fantastic! Kuhnovic memory under control
18:53:43 <Kuhnovic> Great! You might want to read up on stack vs heap in C++, as well as passing things by reference VS by value VS by pointer VS by rvalue reference (a &&). It is hard to grasp but it is truly what sets C++ apart from managed languages like java / C# / many others
18:55:21 <Kuhnovic> Xarick: My hand already hurts from creating 500 ships 😛
18:55:25 <Xarick> no buoys 5000 ships from a corner to the other, that's fantastic
18:58:15 <andythenorth> Kuhnovic: write a GS to do it for you 😛
18:58:35 <andythenorth> actually an AI to repeatably test this would be a thing
19:00:05 <Kuhnovic> Haha that would actually be quite cool!
19:00:29 <Kuhnovic> Alright here's a 1000 ships, still running smooth!
19:01:37 <andythenorth> Xarick: you seem to enjoy AI regression jobs 🙂
19:01:46 <andythenorth> repeatable ship testing AI?
19:01:59 <andythenorth> what do we do for logging?
19:02:29 <Kuhnovic> These ships now take multiple game years to reach the other side of the map, so this is quite a ridiculous test. But it is possible 😄
19:05:00 <LordAro> Kuhnovic: wouldn't the path cache just mean that the impact of the pathfinding to be minimal?
19:05:09 <LordAro> if all ships were started at different times, anyway
19:05:29 <LordAro> start 5000 ships at exactly the same time for real pathological behaviour :D
19:06:22 <Kuhnovic> Keep in mind that the path caches are at the tile level, the high-level path is not cached (yet)
19:09:23 <Kuhnovic> I stopped all 1000 ships and changed their (shared) orders... yeah that was noticable, but not nearly as bad as I thought. Some frame dropping, that's all.
19:13:35 <dP> how do path caches work? are they invalidated on terra?
19:19:39 <Kuhnovic> Path caches are not, but the regions are. If the high level pathfinder bumps into an invalidated region it will tell it to update first.
19:19:55 <dP> also, deque is probably not the fastest choice for a path cache...
19:20:56 <Kuhnovic> The path cache is under 100 elements in size and is emptied over quite some time... you are never going to notice any performance difference
19:24:50 <andythenorth> LordAro: can't do that with GS 😛
19:25:01 <andythenorth> unless there's a group stop/start command 😛
19:25:47 <dP> Kuhnovic: yeah, but you have many vehicles, also it may be emptied slowly but it's created at once.
19:25:47 <dP> so, never hurts to save performance where it not much work
19:26:05 <dP> also, few elements probably means it's also wasting memory :P
19:27:09 <LordAro> andythenorth: GS can interact with UI, can it press the "go" button in the depot gui? :p
19:28:01 <Kuhnovic> It's created at once but the memory grows with it's required size and it never shrinks unless you tell it to. It probably is a queue because stuff is added at the end and removed at the back, but technically a vector could do the job as long as you don't start removing items from the wrong end, causing tons of memcpy
19:28:39 <andythenorth> LordAro: I couldn't figure out the UI interaction, either I misunderstand the docs, or it's really limited
19:28:45 <andythenorth> I couldn't see any 'click' command
19:28:57 <andythenorth> and traversing windows looked possible, but difficult
19:29:07 <dP> ShipPathCache is std::deque which is basically a vector of vectors afact
19:29:09 <andythenorth> "Selenium, but for OpenTTD" would be a thing
19:32:21 <dP> players can start groups of vehicles and all vehicles in depots so I'd expect GS can too
19:36:37 <JGR> CMD_MASS_START_STOP is not reachable by script at all
19:37:10 <JGR> If you're doing your own test build you could add it easily enough though
19:45:13 <pickpacket> I think I'm getting my gf hooked on the game... :D
19:45:40 <Eddi|zuHause> that can be a blessing or a curse
19:46:10 *** lobstarooo__ has joined #openttd
19:47:27 *** lobstarooo has joined #openttd
19:47:36 <discord_user_f4a0790> so what's the deal with the people speaking her who are not really here? is it some other channel elsewhere that is linked or something?
19:48:12 <dwfreed> the discord channel is bridged with the IRC channel
19:48:20 <dwfreed> I'm on IRC, as an example
19:50:10 <discord_user_f4a0790> amazed i didnt know what IRC was, heard about it a lot before, what's the deal with the bridge, i mean why is it a thing?
19:50:32 <LordAro> because some of us are stubborn bastards that refuse to move
19:50:51 <LordAro> IRC loooong predates discord
19:51:07 <LordAro> (this channel specifically, IRC itself is a given)
19:51:15 <discord_user_f4a0790> ahh fair
19:51:21 <discord_user_f4a0790> i came from skype to discord
19:51:41 <discord_user_f4a0790> sure i heard about IRC on the tt forums when i was little and just had no idea what people were on about
19:52:10 <andythenorth> JGR: I am favouring 'everything reachable by script' 😛
19:53:19 <JGR> This requires script authors to express a lot of restraint in not doing ridiculous things
19:54:12 *** lobstarooo__ has quit IRC (Ping timeout: 480 seconds)
19:54:18 *** lobstarooo is now known as lobstarooo__
19:54:48 <JGR> This is somewhat problematic when anyone can upload a script to bananas
19:55:33 <andythenorth> but I think we could open the magic box anyway
19:55:48 <andythenorth> I can already write a trivial DoS on the game client with GS
19:55:52 <andythenorth> or eat all your RAM
19:58:21 <petern> But can you write a trivial DOS emulator?
19:58:58 <pickpacket> discord_user_f4a0790: I use a self hosted IRC web client called thelounge.chat for all my IRC chatting. It's vastly superior to discord, imho :) Faster, sleeker, and not discord.
19:59:16 <JGR> Co-op proved that you can make NAND gates with trains and signals, therefore yes you can
20:00:12 <pickpacket> Doom on OpenTTD when?
20:00:56 <Xarick> it's preventing me from using the cache list
20:00:58 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
20:01:32 <pickpacket> Eddi|zuHause: why-not-both.gif ;)
20:02:05 <Xarick> also, being deity is another obstacle
20:02:11 <Xarick> but that one is manageable
20:02:27 *** lobstarooo__ has quit IRC (Ping timeout: 480 seconds)
20:05:46 <andythenorth> petern: I can't no; someone else might 😛
20:06:03 <andythenorth> what was the clever mad RAM interleaving thing? DOS protected mode ?
20:06:11 <andythenorth> the one that offset into additional memory
20:07:46 *** lobstarooo__ has joined #openttd
20:08:05 <Rubidium> andythenorth: can't generate random GS code with python, and run that until it generates a GS that builds the emulator? ;)
20:08:53 <andythenorth> given enough typewriters and enough monkeys....
20:09:09 <andythenorth> rubidium, have you heard of this thing called "chatGPT"?
20:09:13 <andythenorth> it's not very well known
20:09:46 <dP> given enough typewriters and enough monkeys and chatgpt?... 😆
20:12:25 <andythenorth> given enough chat AIs to ask other chat AIs
20:14:54 <discord_user_f4a0790> pickpacket: fair, i am quite content with discord, online i mostly use discord and facebook messenger for social media, even that is kinda "too much" for me
20:15:50 <discord_user_f4a0790> i am active in 1 messenger group and in 1 discord at a time, cant handle more xd
20:33:07 <Xarick> loading a scenario is taking so much time for some reason
20:46:55 *** Wormnest has joined #openttd
21:07:07 *** lobstarooo has joined #openttd
21:09:17 <TrueBrain> I am so happy with sentry ... this broke BaNaNaS pretty bad, but it seems nobody reported it 😛 well, sentry did .. I ❤️ sentry
21:13:52 *** lobstarooo__ has quit IRC (Ping timeout: 480 seconds)
21:13:57 *** lobstarooo is now known as lobstarooo__
21:24:19 <TrueBrain> LordAro is going for quickest-approval-of-the-month
21:24:50 <LordAro> gmail actually sending me notifications for a change
21:31:04 <TrueBrain> petern: we can! It just costs money ..... 😛
21:31:28 <andythenorth> can we have a fundraiser? 😛
21:31:42 <TrueBrain> we run our CI on 2-core runners
21:31:51 <TrueBrain> but you can have up to 64-core runners these days
21:31:57 <TrueBrain> they just cost .. a lot more than 2-core 😛
21:32:53 <TrueBrain> their price is fair btw
21:38:56 *** nielsm has quit IRC (Ping timeout: 480 seconds)
21:39:09 <frosch> ah, i also got the sentry mail, but i forgot that regions are not on the version page 🙂
21:53:37 *** keikoz has quit IRC (Ping timeout: 480 seconds)
22:03:14 <glx[d]> oh of course py-protocol repo needs some bumps too
22:08:31 <andythenorth> "Want OpenTTD features? Fund the CI"
22:08:47 <andythenorth> "Want major version releases more often? Fund the CI"
22:09:21 <Rubidium> I think you're better off with funding someone doing the actual review/release work
22:09:28 *** lobstarooo has joined #openttd
22:13:02 *** gelignite has quit IRC (Quit: Stay safe!)
22:16:02 *** lobstarooo__ has quit IRC (Ping timeout: 480 seconds)
22:16:08 *** lobstarooo is now known as lobstarooo__
22:31:04 <Xarick> should I be worried about that warning?
22:48:26 <Xarick> I can't stash two times?
22:49:30 <Xarick> I wanna stash 2 sets of changes in the same branch, how do i do it?
22:51:50 <Xarick> i see visual studio listing the 2 stashes
22:52:46 *** sla_ro|master has quit IRC ()
23:05:29 <Xarick> i'm not sure how to test GUI
23:11:15 *** lobstarooo__ has quit IRC (Remote host closed the connection)
23:15:17 <andythenorth> no that's not the one 😛
23:19:59 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
continue to next day ⏵