IRC logs for #openttd on OFTC at 2015-05-31
        
        
        
            ⏴ go to previous day
00:49:07  *** Supercheese has joined #openttd
 
00:54:03  *** Biolunar has joined #openttd
 
01:14:31  *** FLHerne has joined #openttd
 
01:36:17  *** Myhorta has joined #openttd
 
01:37:33  *** Hiddenfunstuff has quit IRC
 
01:41:31  *** Jimmy_Bignuts has joined #openttd
 
01:53:36  *** smoke_fumus has joined #openttd
 
01:56:13  *** Supercheese has joined #openttd
 
02:56:18  *** Supercheese has joined #openttd
 
03:14:47  *** supermop has joined #openttd
 
03:33:29  <Jimmy_Bignuts> rededit i think
 
03:33:32  <Jimmy_Bignuts> or somethign like that
 
03:33:38  <Jimmy_Bignuts> do those games get recorded?
 
03:36:10  <ST2> usually most communities have commands to call and admin, try !help or !commands    (to call an admin it's usually !admin <reason>)
 
03:36:27  <ST2> but I'm not aware with reddit commands, sorry :(
 
03:37:18  <sim-al2> Hey some user named  Jimmy_Bignuts is on #openttd
 
03:37:44  <sim-al2> errrr the reddit channel is #/r/openttd
 
03:37:53  <sim-al2> Brain is crossed sorry
 
03:40:03  <ST2> was talking by heart, to Jimmy_Bignuts get some help... if he still needs it ^^
 
03:41:38  <Sylf> recording the game - if the server keeps enough autosaves, that would be the closest thing to the actual record of the game itself
 
03:43:18  <Jimmy_Bignuts> that is unfortunate
 
03:43:22  <sim-al2> It's likely that any autosaves are gone by now
 
03:43:26  <Jimmy_Bignuts> yesterday i had my path blocked by an opponent
 
03:43:26  *** ChanServ sets mode: +v DorpsGek
 
03:43:26  *** ChanServ sets mode: +v planetmaker
 
03:43:26  *** ChanServ sets mode: +o Rubidium
 
03:43:45  <Sylf> train path? truck/bus path?
 
03:43:50  <Jimmy_Bignuts> you can tell it was legit, because you can see my commencement, followed by him blocking me 360 degrees
 
03:43:57  <Jimmy_Bignuts> blocked me in two ways
 
03:44:14  <Jimmy_Bignuts> nah he had good coal mine, so i built a station next to his
 
03:44:26  <Jimmy_Bignuts> then as i build in from one way, he blocks it.
 
03:44:35  <Jimmy_Bignuts> so i build another station and try going out the other way
 
03:44:37  <Sylf> does reddit allow resource sharing?
 
03:44:39  <Jimmy_Bignuts> he blocks that to
 
03:44:46  <Jimmy_Bignuts> then he blocks it all around me so i am stuck
 
03:45:02  <Jimmy_Bignuts> well the other guys said primary industries are meant to be shared
 
03:46:04  <Jimmy_Bignuts> 2) Blocking other players
 
03:46:05  <Jimmy_Bignuts> Intentionally blocking other players is strictly forbidden. If you're trying to build and you notice that someone else might be getting in your way, try to work it out with each other.
 
03:46:14  <Jimmy_Bignuts> i was not on his way, he was already there
 
03:46:19  <ST2> "This is why primary industries are fair game for all companies." <<-- I guess that includes coal mines ^^
 
03:46:29  <Jimmy_Bignuts> so i start building a station on opposite side, and he saw it and started getting funny
 
03:46:50  <Jimmy_Bignuts> when i tell him why he did it
 
03:46:54  <Jimmy_Bignuts> he said i was stealing his coal
 
03:47:04  <Jimmy_Bignuts> so talk about a subtle admission of blocking
 
03:47:06  <Sylf> ah.  different definition of stealing
 
03:47:19  <Sylf> on some servers, that's stealing.  on reddit, it's competition
 
03:49:24  <Sylf> either way, like sim-al said, talking in #/r/openttd will be more helpful than talking about that here
 
04:01:42  <Jimmy_Bignuts> another thing i dont like about this game is that some levels block aircraft
 
04:47:05  <Sylf> airplanes are virtually no-brainer money printing machines
 
04:47:35  <Sylf> plop 2 airports at 2 far end of the map, add planes, $$$$$$$$$$$$$$$$$$$$$$$$$$$$
 
04:49:09  *** Biolunar_ has joined #openttd
 
05:12:47  *** ChanServ sets mode: +v tokai
 
05:16:48  <Jimmy_Bignuts> airplanes are part of transport
 
06:30:24  *** guru3-vps has joined #openttd
 
06:52:48  <Jimmy_Bignuts> i would like to host one of these games
 
06:53:04  <Jimmy_Bignuts> can you run a server version of this game on linux?
 
06:56:16  *** Eddi|zuHause has joined #openttd
 
07:24:21  *** Supercheese has joined #openttd
 
08:23:17  *** andythenorth has joined #openttd
 
08:24:31  <andythenorth> can CivilAI occasionally build some pointless road bridges ?
 
08:24:44  <andythenorth> it spoils my shipping empire :P
 
08:25:14  <Pokka> how pointless did you have in mind?
 
08:25:35  <andythenorth> I have no serious suggestion :P
 
08:25:49  <andythenorth> but the roads block canals / lowering land for ship canals
 
08:26:13  <andythenorth> doesn’t stop me using it in games
 
08:26:21  <Pokka> no more than any other AI's routes, I guess
 
08:26:56  <Pokka> with the update, all you have to do is build some tracks over its roads and squash a car on it
 
08:27:09  <Pokka> then it will remove the road and build a bridge over your tracks. remove tracks, replace with canal?
 
08:42:20  <andythenorth> should I company colour the vehicles?
 
08:42:57  <Pokka> perhaps not the buildings entirely, give them different coloured roofs or stripes or something. Or too much work? :)
 
08:44:31  <andythenorth> I’m pretty quick at colouring in buildings
 
08:44:35  <andythenorth> done a  few now :P
 
08:45:52  * andythenorth must also make a power station
 
08:46:42  <Pokka> I have some bits of an oldeworlde one lying around, if it's any help... but you've probably got enough industry bits of your own.
 
08:46:58  <andythenorth> is it base set sprites?
 
08:47:02  <andythenorth> or you drew some?
 
08:47:19  * andythenorth needs a cooling tower probably
 
08:47:44  <Pokka> actually, never mind, it's got too many bits of base set sprites
 
08:47:50  <Pokka> and no cooling tower. :)
 
08:47:59  <andythenorth> there’s always OpenGFX
 
08:48:15  <Jimmy_Bignuts> is there any way to exit a game but have your company continue to grow? then re-enter and continue where you left off providing you dont get bankrupt?
 
08:49:46  <Pokka> on multiplayer? depends on the server whether your company gets wiped or not.
 
08:52:12  <andythenorth> also this builders yard
 
08:55:19  <Pokka> internet is playing up, doesn't want to load openttdcoop
 
08:55:35  <andythenorth> australia has special internet
 
08:55:46  <andythenorth> sometimes bits of internet aren’t there for you
 
08:56:08  <andythenorth> it’s extra special for those of us who have servers in australia :P
 
09:02:49  <Pokka> even those of us in australia are sensible enough to keep our servers somewhere else :)
 
09:04:50  *** Flygon_ has joined #openttd
 
09:13:49  <andythenorth> eh, so power plants
 
09:13:59  <andythenorth> must to have an acceptance limit?
 
09:14:06  <andythenorth> tied to town population?
 
09:14:15  <Pokka> does anything else have an acceptance limit?
 
09:14:52  <Pokka> I thought that stockpiling wasn't generally a FIRS mechanic :P
 
09:17:33  <andythenorth> also don’t really want to add it :P
 
09:17:42  <Pokka> I guess that's the answer then
 
09:17:55  <andythenorth> produce building materials?
 
09:20:14  <andythenorth> generate electricity?
 
09:20:25  <andythenorth> moved by a new railtype?
 
09:29:31  <Supercheese> tried that, was sort of eh
 
09:30:15  <Supercheese> general consensus seemed to be "needs a GS to make things work nicely"
 
09:31:10  * Supercheese is too lazy to write an electricity GS
 
09:31:19  <andythenorth> eh, it’s a bad use of a GS
 
09:31:29  <andythenorth> because there’s only one GS per game
 
09:31:37  <andythenorth> using it to do a show-pony cargo trick is daft
 
09:31:40  <Supercheese> eh I don't use any at the moment
 
09:35:36  *** Alberth has joined #openttd
 
09:35:36  *** ChanServ sets mode: +o Alberth
 
09:48:09  <supermop> needs to be a better way of seeing topography through trees
 
09:50:44  *** OsteHovel has joined #openttd
 
09:50:51  <supermop> currently the only reason to have trees visible to to avoid destroying them,
 
09:50:52  <Alberth> you know transparency includes making trees invisible?
 
09:51:57  <supermop> if they are visible the land looks ugly because they completely hide any contours - so the whole map looks flat
 
09:52:28  <supermop> current map has some nice mountains - but cannot see them if trees are on
 
09:52:42  <supermop> and if trees are off, then the mountains look too bare
 
09:53:41  <andythenorth> can’t build anything with trees on
 
09:54:42  <supermop> i guess a more sparse set of trees would help
 
09:55:12  <supermop> but i think shading trees based on tile slope would make landscapes look pretty nice
 
09:55:19  <andythenorth> use the original tree algorithm
 
09:55:36  <andythenorth> the ‘improved’ algorithm isn't
 
09:58:32  <supermop> the problem isn't really that i can't build stuff - it's that trees look ugly when they become essentially just green noise
 
09:59:05  <andythenorth> tried both algorithms?
 
10:01:41  <supermop> man there are a lot of north american diesels that i have a really hard time bringing myself to care about
 
10:02:07  <supermop> like I had no idea that this thing existed:
 
10:02:23  *** Pensacola has joined #openttd
 
10:02:24  <supermop> looks pretty underwhelming
 
10:03:31  *** sla_ro|master has joined #openttd
 
10:30:53  *** Progman has joined #openttd
 
10:43:02  <Alberth> and I have been using the "none" tree algorithm, works quite nicely, although eventually, you get a few more trees than "none" :)
 
10:44:07  <Alberth> also, playing other than temperate climate helps :)
 
10:44:34  <Alberth> hmm, maybe also not toyland, it's also quite tree-ish
 
10:45:12  <andythenorth> nice location for the port
 
10:45:34  <andythenorth> looks like Canadian northwest coast
 
10:46:07  <Alberth> would look good in the screenshot section :)
 
10:47:25  * andythenorth rarely goes there :)
 
10:48:21  <Alberth> no need, you have your own pretty little towns :)
 
10:49:12  <Alberth> now you only need a few stations in the big city, and you have covered it
 
10:57:39  *** guru3-vps has joined #openttd
 
11:00:50  <andythenorth> refactoring is like doing work without having to do work
 
11:00:54  * andythenorth should refactor more
 
11:03:53  *** sla_ro|master2 has joined #openttd
 
11:03:57  *** zeknurn` has joined #openttd
 
11:04:26  <andythenorth> no design needed, very few decisions, lots of commits :P
 
11:05:23  <Alberth> you should have an idea of direction, but other wise, yep :)
 
11:07:38  *** HerzogDeXtEr has joined #openttd
 
11:08:22  *** zeknurn` is now known as zeknurn
 
11:11:02  *** OsteHovel has joined #openttd
 
11:13:43  *** ccfreak2k has joined #openttd
 
11:35:11  *** JacobD88 has joined #openttd
 
11:51:33  *** andythenorth has left #openttd
 
12:15:37  *** Hiddenfunstuff has joined #openttd
 
12:25:48  *** Speedy` has joined #openttd
 
12:26:06  *** Speedy` is now known as Speedy
 
12:27:38  *** Myhorta has joined #openttd
 
12:42:33  *** Suicyder has joined #openttd
 
13:13:10  *** Progman_ has joined #openttd
 
13:17:56  *** Progman_ is now known as Progman
 
13:31:58  *** Supercheese has joined #openttd
 
14:05:31  <jjavaholic> what is the basic construction of a side chain
 
14:08:41  *** Ketsuban has joined #openttd
 
14:17:30  *** frosch123 has joined #openttd
 
14:30:00  *** andythenorth has joined #openttd
 
14:42:43  <andythenorth> ‘industries for the sea'
 
14:43:24  <Jimmy_Bignuts> how do i exit a game, and return tomorrow with it still running?
 
14:46:29  *** Myhorta[1] has joined #openttd
 
14:46:58  <kamnet> I think you got all the sea industries covered, andy
 
14:47:15  <supermop> or just leave your computer on all night
 
14:47:34  <kamnet> unless you want to make a cultured pearl farm. :D
 
14:47:56  <supermop> floating fishing village
 
14:48:55  <supermop> metabolist floating cities
 
14:54:04  <Eddi|zuHause> that's called an "object"
 
15:03:31  <andythenorth> over-sized spritesheets aren’t going to make much difference to compile time?
 
15:03:41  <andythenorth> probably negligible or undetectable?
 
15:06:21  *** guru3-vps has joined #openttd
 
15:06:25  <frosch123> all images files are loaded onlyonce
 
15:06:45  <frosch123> encoding of sprites is sorted by source file
 
15:06:53  * andythenorth files refactoring spritesheets under ‘tmwftlb’
 
15:07:27  <frosch123> anyway, if you compile multiple times, you use the cache anyway
 
15:07:53  <frosch123> so, maybe separate those sprites, which you change every 5 minutes :p
 
15:08:17  <andythenorth> I did consider again an nml->nfo compile
 
15:08:30  <andythenorth> for cases where only the graphics change
 
15:09:27  <Eddi|zuHause> but that means it can't use the graphics cache, which may make things actually slower when you change code and no graphics
 
15:10:04  <andythenorth> I’d have to have two compiles :P
 
15:10:11  <andythenorth> and choose the right one for the work that day
 
15:10:34  <Eddi|zuHause> i don't think "lame" is the right word :p
 
15:11:01  <andythenorth> more superlative than ‘lame'?
 
15:13:02  <andythenorth> should be removed?
 
15:14:29  * andythenorth is going to tweak a few things, but lacks inspiration
 
15:23:03  <andythenorth> considered animating the crane, but I’d have to include multiple turning angles
 
15:34:16  *** Alberth has joined #openttd
 
15:34:16  *** ChanServ sets mode: +o Alberth
 
15:40:57  <krinn> Alberth got a min? (i don't want report a non bug again)
 
15:42:18  <krinn> looks like i'm unable to build a bridge from slope_N to slope_E
 
15:43:07  <krinn> but that's not a define limit in the api (of course slope_E and slope_N are opposite tiles, same tileX...)
 
15:43:23  <krinn> while by hands i'm able to build it
 
15:44:02  <krinn> (and yes, build on slope is on of course)
 
15:44:57  <Eddi|zuHause> i'm sure dozens of AIs managed to build bridges
 
15:46:10  <krinn> lol Eddi|zuHause sure, but they only do it because the pathfinder hint them on where to build it, and the pathfinder ONLY gave them a tile source or target slope_SE/SW/NE/NW
 
15:47:04  <Eddi|zuHause> that seems like a shortcoming in the pathfinder
 
15:48:17  <krinn> maybe, but that's looks fine then if you cannot have the BuildBridge function to build a bridge on a tile that isn't NW/SE/NE/NW
 
15:48:29  <Eddi|zuHause> anyway, what do you want us to do now?
 
15:48:48  <Alberth> give magical answers :)
 
15:49:03  <krinn> well, confirm it's a limit from openttd or a bug?
 
15:49:18  <krinn> i don't see why i could do a bridge by hands and by API i cannot do the same
 
15:49:18  <Alberth> but I don't have them, I don't have an AI that shows it fails
 
15:49:52  <krinn> can pack mine, but its state is really poor now
 
15:49:56  <Alberth> krinn: I agree, an AI should be able to do what a user can do
 
15:50:21  <Eddi|zuHause> krinn: try to make a reduced example that only tries to build such a bridge
 
15:50:41  <Alberth> as simple as possible, so your AI code doesn't contain errors
 
15:51:06  <krinn> Eddi|zuHause, erf, we need a special map/condition, it's not common to find an area slope_N slope_E to build a bridge on
 
15:51:30  <krinn> a screenshot and the code that try to build the bridge would do?
 
15:51:34  <Eddi|zuHause> krinn: make a savegame/scenario with the right condition then
 
15:51:36  <Alberth> make a map, or test specific tiles to have some confiuration
 
15:52:09  <Alberth> or tarreform tiles to the right form
 
15:52:54  <Alberth> it doesn't have to be complete, it can be mostly manual, whatever, the code just has to be as easy as possible, so you can concentrate on the bridge build problem
 
15:54:18  <Alberth> if you can show that the simple code fails, and manually it doesn't fail, it's a bug
 
15:55:07  <Alberth> eg in my signal tester, I had hard-coded positions for the test area
 
15:56:46  <krinn> ok, going to build a tiny ai that build bridge only
 
16:00:10  <Alberth> It's often a useful exercise with these problems. If the tiny example fails, you have a piece of code to demonstrate the problem (just like I did, "my code works, could you have a look?")
 
16:00:31  <Alberth> if the tiny example works, you know the problem is not the bridge itself, but elsewhere
 
16:01:42  <krinn> i know, just that this time i have check more than once (ok i might still be wrong more than once)
 
16:03:51  <Alberth> another tactic that often works is to post the question at the forum, but also there you need to provide something to show the problem
 
16:05:30  <krinn> i'm doing the test ai, so my ai code will be out of the problem
 
16:30:52  <krinn> ok done, testmap + testai
 
16:31:13  <krinn> the ai fails on two bridge while is able to build a 3rd test one
 
16:32:29  <krinn> wants bugreport with the map and ai to test?
 
16:41:54  *** roidal_ has joined #openttd
 
16:48:16  <krinn> weirds, the same function is able to build one, and fail on the two other
 
16:52:11  <krinn> Alberth, confirm at least code "seems" ok for ai part?
 
16:57:20  <Alberth> looks ok-ish at first sight
 
16:58:26  <Alberth> a and b are a bit magic, you may want to compute the tile index the next time (making it easier to adjust the code for further experiments)
 
16:58:44  <Alberth> "c == false" is normally expressed as "!c"  :)
 
16:58:55  <Alberth> but for testing it's all fine enough
 
16:59:20  *** tokai|mdlx has joined #openttd
 
16:59:26  <krinn> i've put sign to help see start & end and find them fast on the map
 
16:59:44  <krinn> and i tooked a & b to be close middle map, so they should be easy to get when loading it
 
17:00:25  <Alberth> I saw, but  TileIndex(100, 100)  is easier to understand
 
17:00:44  <Alberth> but just for a next time, no need to change this any more
 
17:01:10  <krinn> ah yes, will try keep it in mind for next time
 
17:01:58  <krinn> i know i should kept some lower openttd version to test, but i only have 1.4.4 right now
 
17:02:17  <Alberth> ha, I test in trunk :)
 
17:04:07  <Alberth> don't know, didn't actually try to run the code yet
 
17:06:06  <krinn> was trying to optimize path result of pathfinder, i think i know why pathfinder was sucking at building bridge now :)
 
17:14:44  <andythenorth> my compile got slower
 
17:18:44  <andythenorth> just for changing one industry
 
17:19:26  <V453000> world ends right the hell now then
 
17:20:50  <andythenorth> it’s ~28% slower
 
17:21:04  <andythenorth> just due to refactoring
 
17:25:05  <krinn> enable seeing other company sign :)
 
17:25:27  <krinn> or switch to the ai company to see them
 
17:25:50  <krinn> i'm glad only one is build for you too :D
 
17:27:11  <krinn> the signs are good help, at least they shown the S & E points, and it's easy to see they are good points to build a bridge on
 
17:27:48  <krinn> what doesn't really help is the ERR_UNKNOWN
 
17:30:58  <krinn> it's also fail if you set currentroadtype to ROAD and try build road bridges (so at least it's not VT_RAIL depend)
 
17:39:36  <andythenorth> ground aware spritelayouts are insanely inefficient to compile
 
17:41:11  <krinn> i've heard Eddi|zuHause saying he has put plenty noop() and sleep() in it to bug newgrf makers to death
 
17:46:41  <Eddi|zuHause> andythenorth: of course optimizing for worktime means that the optimal solution is doing no work at all.
 
17:46:54  <Eddi|zuHause> you're done the quickest
 
17:47:12  <andythenorth> depends if you do achievement = work / result
 
17:47:20  <andythenorth> or result / work
 
17:48:17  * andythenorth wonders why the damn thing is so slow
 
17:49:08  <andythenorth> eh, does nml incur any time parsing empty lines?
 
17:49:16  <andythenorth> if that was significant, I would be surprised
 
17:50:50  <Eddi|zuHause> my experience in that matter is very old...
 
17:51:09  <Eddi|zuHause> back then, the biggest impact was complex formulas e.g. in templates
 
17:51:36  <Eddi|zuHause> empty lines should be handled in ply
 
17:51:49  <Eddi|zuHause> nml won't ever see those
 
17:52:47  <krinn> might also be a good idea to really drop that zx81 and change your computer andythenorth
 
17:54:06  <Eddi|zuHause> andythenorth: but i have never seen you complain about that ratio. you only ever complain about compile time
 
17:55:04  <krinn> oh speaking off, would you go for a 6xcores i58xx or 4xcores 4970 intel cpu? (i'm unsure the ref, the first is newest gen with 6cores, the other previous gen but at 4ghz)
 
17:55:45  <andythenorth> stick with the zx81
 
17:57:20  <andythenorth> the nml compile time is only 35s on average
 
17:57:27  <andythenorth> so wtf is eating the rest of the time
 
17:58:38  <Alberth> krinn: max speed for single core is what counts :)
 
17:59:35  <andythenorth> 1s to run chameleon templating
 
17:59:38  <andythenorth> 2s to render docs
 
17:59:50  <andythenorth> there are 20-30s missing somewhere
 
18:00:14  <krinn> Alberth, i think so, alas the extra cores won't beat up the extra ghz on most apps
 
18:00:36  <andythenorth> ach, how do I profile a makefile :(
 
18:01:25  <krinn> andythenorth, did you try use a tmpfs to see if may help?
 
18:01:42  <andythenorth> is that a ramdisk or what?
 
18:02:03  <andythenorth> eh, no idea how to set that up on OS X
 
18:02:12  <andythenorth> doubt that IO is the problem
 
18:02:27  <Alberth> simple way is to add "time" to the commands,   time nmlc ....
 
18:02:46  <krinn> well, if you keep loading the same groundpic other & other it could
 
18:02:46  <Alberth> which dumps timing of the executed comand
 
18:03:16  <andythenorth> so I need to find all the commands :)
 
18:03:17  <Alberth> krinn: nmlc uses lots of caching
 
18:03:32  <Alberth> no variable for that?
 
18:03:54  <Alberth> and in the rule $(NMLC) ....
 
18:04:09  <Alberth> then you can change to   NMLC = time nmlc
 
18:04:43  <Alberth> you can also do verbose build   _V=  make
 
18:05:04  <Alberth> which should dump all commands as they are executed, that may give a hint what takes time
 
18:05:16  <krinn> andythenorth, dunno for os/x look at /proc/filesystems if you can use tmpfs
 
18:05:40  <andythenorth> all I found so far was a thing saying “don’t bother with this for BSD-like systems” :)
 
18:05:50  <andythenorth> it can be done, but apparently it’s a bad idea
 
18:05:55  <Alberth> it's probably different for osx, as it's BSD-based
 
18:07:05  <Alberth> I seem to remember that, at least
 
18:07:57  <andythenorth> it puts about 600MB/s through on average
 
18:08:16  <Alberth> disk times are probably negligible then
 
18:08:36  <andythenorth> also I know the main factor is the nml source
 
18:08:41  <Alberth> seek times are more relevant, as you have lots of small files
 
18:08:41  <andythenorth> for nml compile time
 
18:08:45  <krinn> did you then try see if you can alter ccache to handle nmlc?
 
18:09:21  <andythenorth> IO isn’t going to affect advanced varaction 2 expansion times in spritelayouts ;)
 
18:09:25  <andythenorth> it’s absolutely not disk bound
 
18:10:07  <andythenorth> with everything cached, a make run is 11s
 
18:10:09  <Alberth> nml is quite inefficient in expression simplification afaik
 
18:10:22  <andythenorth> of that 11s, 2.5s is spent in nmlc
 
18:10:30  <andythenorth> so the makefile has some base overhead somewhere
 
18:10:45  <andythenorth> I can’t understand the makefile yet
 
18:10:49  <krinn> dunno could also look at your makefile and ignore some steps if you are sure the result won't change from previous
 
18:10:49  <andythenorth> it is...sophisticated
 
18:11:07  <Eddi|zuHause> andythenorth: that means the inefficiency is in your generator script?
 
18:11:15  <andythenorth> Eddi|zuHause: plausibly
 
18:11:28  <andythenorth> although the code generator is < 1s to run when cached
 
18:11:47  * andythenorth adds a time to that
 
18:14:15  <krinn> that's a kickass makefile
 
18:15:38  <V453000> spend years writing it :P
 
18:16:33  <andythenorth> is it just expected that make has a significant overhead?
 
18:16:38  <andythenorth> it has to dep check, yes/no?
 
18:17:07  <Eddi|zuHause> it has to check the date of every file it is supposed to touch
 
18:17:21  <Eddi|zuHause> also, build a dependency tree
 
18:17:38  <krinn> maybe you can try /bin/sh if there's no bashism, people keep saying sh is faster
 
18:18:34  <Alberth> I don't trust lines like 219
 
18:18:34  <Eddi|zuHause> if you have a fractured directory tree, checking the dates may take some disk access time
 
18:19:01  <Alberth> nested for-loop, long pipe lines
 
18:19:15  <andythenorth> but I think that’s turned off
 
18:19:51  <krinn> it's also not that good to assume sed == gnu/sed for people using bsd/sed
 
18:20:34  <andythenorth> what is custom_tags.txt?
 
18:20:40  <krinn> and gnu/sed kick bsd/sed ass by far :)
 
18:21:15  <Eddi|zuHause> andythenorth: thing that puts hg revision into the version info of the grf, and stuff
 
18:21:33  <andythenorth> how long is CPP spending?
 
18:21:57  <andythenorth> historically, CPP has been treated as near-instant
 
18:22:24  <Eddi|zuHause> andythenorth: shouldn't be significantly longer than reading in the file and writing it out again
 
18:23:11  <krinn> oh! football on tv, later guys
 
18:23:26  <Eddi|zuHause> that's kinda the point of a simple text replacement engine
 
18:23:48  <Eddi|zuHause> andythenorth: i'd put a time on that line Alberth mentioned
 
18:24:09  <Eddi|zuHause> andythenorth: also, try "_V=time make"
 
18:24:42  <andythenorth> L219 is wrapped in an ifdef
 
18:24:48  <andythenorth> I don’t think it’s called
 
18:26:09  <andythenorth> the echo line above is never printed
 
18:26:12  *** sim-al2 has joined #openttd
 
18:28:05  <Eddi|zuHause> then try that last line i mentioned
 
18:28:13  <Eddi|zuHause> it will time each individual command
 
18:28:46  <Eddi|zuHause> you can then sum that up, and the difference to a "time make" will be the time spent in make itself
 
18:39:16  <Eddi|zuHause> you can also do "_V=time time make" to do that all in one go
 
18:39:38  <Eddi|zuHause> try not to combine this with a -jX :p
 
18:57:56  *** smoke_fumus has joined #openttd
 
19:07:41  * andythenorth finds nothing obvious 
 
19:15:35  <Alberth> so dependency calculation or time-stamp checking perhaps?
 
19:16:13  <Alberth> or perhaps something as simple as collecting all files that are part of the project
 
19:18:26  <Alberth> hmm, it does an awful lot of $(shell ... )
 
19:25:35  <frosch123> so, processing .bashrc :p
 
19:26:06  <frosch123> not sure whether $shell would trigger reading that
 
19:26:48  <Alberth> make help  is quite fast for me though
 
19:30:50  *** jjavaholic has joined #openttd
 
19:32:50  <andythenorth> pretty certain the earlier (10-15s slower) results were an aberration
 
19:32:59  <andythenorth> think my laptop was running some system task
 
19:33:24  <andythenorth> compile times now are back where they were yesterday
 
19:33:42  <andythenorth> still, the nmlc part takes 35s, and the makefile takes 48s total
 
19:33:49  <andythenorth> so something is filling that gap :)
 
19:34:14  <Alberth> the "urils.py" line was quite slow here
 
19:34:42  <Alberth> but I couldn't pinpoint the program
 
19:40:24  <andythenorth> FIRS can do single industry compiles
 
19:40:36  <andythenorth> for those, nmlc takes 3-4s
 
19:40:43  <andythenorth> makefile takes ~16s
 
19:41:47  <andythenorth> -include Makefile.dist
 
19:41:55  <andythenorth> there is no Mafkefile.dis
 
19:42:05  <andythenorth> or even Makefile.dist :P
 
19:42:52  <Alberth> that wouldn't take 12 seconds :p
 
19:43:32  <frosch123> maybe it scans the network drives for it :p
 
19:43:33  <Alberth> but to get a handle on things, maybe write a shell script that runs the computations?
 
19:44:22  <Alberth> although that may take more time than you ever gain :)
 
19:50:59  <andythenorth> maybe my nmlc timing runs are wrong
 
19:59:24  * andythenorth got bored finally
 
20:04:53  <Eddi|zuHause> andythenorth: lines starting with "-" mean "don't error out when this doesn't work"
 
20:05:42  *** HerzogDeXtEr has joined #openttd
 
20:06:21  <Eddi|zuHause> andythenorth: did you read the log about me telling you something, then arguing about forgetting it, and now i forgot it?
 
20:08:42  <Eddi|zuHause> was yesterday, i think, and you went away before i said it
 
20:19:38  <andythenorth> floppy versions? <-- at least provide sloped versions of the outer rim tiles
 
20:26:15  <Eddi|zuHause> that seems like it.
 
20:28:42  <andythenorth> the inner tiles of the pit will build on slopes
 
20:28:56  <andythenorth> which will be hidden
 
20:29:07  <andythenorth> the processor buildings also build on slopes
 
20:29:16  <andythenorth> I think the placement issue is broadly solved
 
20:29:26  <andythenorth> I’m getting the expected number on mountainous maps
 
20:35:40  *** guru3-vps has joined #openttd
 
20:58:30  <andythenorth> so if I replace L161 with the following line, it saves about 10s:
 
20:58:31  <andythenorth>  REPO_VERSION_STRING ?= "FOO"
 
20:58:44  <andythenorth> REPO_VERSION_STRING ?= $(shell [ -n "$(REPO_TAGS)" ] && echo $(REPO_TAGS)$(REPO_MODIFIED) || echo $(REPO_DATE)$(REPO_BRANCH_STRING) \($(NEWGRF_VERSION):$(REPO_HASH)$(REPO_MODIFIED)\))
 
20:59:28  <andythenorth> I get a 39s compile, of which 35s is nmlc
 
20:59:35  <andythenorth> which is appropriate
 
21:19:13  <Eddi|zuHause> so, make here took 40 seconds, 25s of which were "render pnml", then nmlc crashed with "no module named 'ply'"
 
21:24:54  <andythenorth> pip install ply? :P
 
21:26:41  <Eddi|zuHause> already beyond that
 
21:26:55  <Eddi|zuHause> nmlc takes 1m17s
 
21:27:13  <frosch123> wrt. hg you might try to replace some ?= with :=
 
21:27:38  *** sla_ro|master2 has quit IRC
 
21:29:36  <Eddi|zuHause> so there's definitely stuff happening inbetween
 
21:30:18  <Eddi|zuHause> from my limited experience i'd also guess it's the mere fact of calling $(shell ...) that's slow
 
21:32:22  <andythenorth> Eddi|zuHause: second run is significantly faster btw
 
21:32:37  <andythenorth> even with changes (limited changes)
 
21:32:54  <Eddi|zuHause> andythenorth: but i'm not interested in second runs.
 
21:32:58  <andythenorth> first run, chameleon is very slow
 
21:33:11  <Eddi|zuHause> andythenorth: they make very terrible benchmarks
 
21:33:24  <andythenorth> should benchmark common case no?
 
21:33:58  <andythenorth> dunno, the engineering priniciple here seems to be use caching :)
 
21:34:05  <andythenorth> any non-primed cache will be slow
 
21:34:15  * andythenorth wishes it were otherwise :|
 
21:35:42  <Eddi|zuHause> andythenorth: but... you're always interested in the cases where you changed something that's not in the cache.
 
21:37:09  <andythenorth> caches are fine-grained afaict
 
21:37:22  <andythenorth> typically only some small % of stuff is changed in FIRS between compile runs
 
21:37:42  <andythenorth> chameleon cache is fine-grained, compiled .pyc per template
 
21:37:53  <andythenorth> nml caches _seem_ to be quite fine-grained
 
21:38:40  <andythenorth> what is all that hg stuff actually for?
 
21:39:20  <Eddi|zuHause> andythenorth: still the same thing. putting the version into the grf
 
21:39:44  <Eddi|zuHause> revision hash, branch/tag name, age, ...
 
21:40:06  * andythenorth looks for an equivalent to git describe
 
21:40:28  <frosch123> you proabably want the find_version.sh script for the nml make framework
 
21:40:38  <frosch123> instead of those calls within the makefile
 
21:40:48  <andythenorth> sounds highly plausible
 
21:40:49  <frosch123> and you likely want to use many := instead of ?= or =
 
21:41:35  <andythenorth> what’s the difference? o_O
 
21:41:49  <frosch123> := evaluates once and stores result
 
21:41:59  <frosch123> ?= and = reevaluate on every usage
 
21:46:23  <andythenorth> just changing those can’t make 8s speed difference :o
 
21:46:45  <frosch123> how often is hg called and asked whether the working copy is modified?
 
21:47:10  <frosch123> by using = i would not be surprised if you get to numbers like 32 times :p
 
21:51:34  <andythenorth> primed caches, 38s compile, 35s of which is nmlc
 
21:53:51  <andythenorth> single-industry compile, 6s
 
21:54:08  <andythenorth> that’s more like it :P
 
21:58:03  <andythenorth> now all I need is a flag to tell nmlc that only pngs have changed
 
21:58:19  <andythenorth> no-parse=[true|false]
 
22:15:14  <andythenorth> so for FIRS 1.4.4 (current trunk), best-case compile was ~1m15s
 
22:15:27  <andythenorth> and single-industry compiles weren’t possible
 
22:37:45  *** sla_ro|master has joined #openttd
 
22:42:51  *** Ketsuban has joined #openttd
 
23:04:57  <Eddi|zuHause> <andythenorth> now all I need is a flag to tell nmlc that only pngs have changed <-- that exists. it's called a dependency.
 
23:22:03  *** glevans2 has joined #openttd
 
continue to next day ⏵