Back to Home / #openttd / 2014 / 07 / Prev Day | Next Day
#openttd IRC Logs for 2014-07-13

---Logopened Sun Jul 13 00:00:48 2014
00:23-!-theholyduck [~theholydu@172.245.30.36] has quit [Ping timeout: 480 seconds]
00:50-!-HerzogDeXtEr [~flex@88.130.184.189] has quit [Quit: Leaving.]
00:56-!-Eddi|zuHause [~johekr@p57BD4806.dip0.t-ipconnect.de] has quit []
00:56-!-Eddi|zuHause [~johekr@p5DC66606.dip0.t-ipconnect.de] has joined #openttd
01:19-!-Jomann [~abchirk@p57A08414.dip0.t-ipconnect.de] has joined #openttd
01:55-!-andythenorth [~Andy@cpc10-aztw26-2-0-cust867.18-1.cable.virginm.net] has joined #openttd
01:57-!-pthagnar [~pthagnar@cpc7-pres17-2-0-cust28.18-3.cable.virginm.net] has quit [Quit: Leaving]
01:58<andythenorth>nml 0.4.0 nfo output is broken? https://jenkins.openttdcoop.org/job/iron-horse/lastUnsuccessfulBuild/console
02:02<andythenorth>maybe bundles server needs nml updated for this https://dev.openttdcoop.org/projects/nml/repository/revisions/13dd92f18a96
02:48<andythenorth>can I tell grfcodec to shut up about loading sprites?
02:48<andythenorth>-s or -q don’t seem to do that
02:52<andythenorth>oh, -s works, it just revealed the large number of warnings that I missed before :)
02:53-!-Pereba [~UserNick@187.59.170.215] has quit [Quit: AdiIRC - the horny client (www.adiirc.com)]
02:58-!-Progman [~progman@p57A1967A.dip0.t-ipconnect.de] has joined #openttd
03:01-!-theholyduck [~theholydu@172.245.30.36] has joined #openttd
03:05<andythenorth>nforenum --silent -w=+ generated/iron-horse.nfo
03:06<andythenorth>should silence nforenum warnings?
03:12<@peter1138>&>/dev/null
03:13<@planetmaker>moin
03:13<@planetmaker>andythenorth, you're right, seems that nml didn't update itself properly on CF. I'll investigate
03:17<andythenorth>nnjjknjij
03:17<@planetmaker>sure thing :P
03:18<andythenorth>lkonlkhkilghcj
03:18<@planetmaker>can't say so
03:18<andythenorth>kl..ljbbbvh
03:18<andythenorth>i.0kp[
03:19<andythenorth>o;hp/p
03:20<andythenorth>4 yr old
03:20<andythenorth>mashing keys
03:24-!-Wolf01 [~wolf01@0001288e.user.oftc.net] has joined #openttd
03:25<Wolf01>hello
03:29-!-Pensacola [~quassel@h220216.upc-h.chello.nl] has joined #openttd
03:29-!-Supercheese [~Superchee@76.178.136.186] has quit [Quit: Valete omnes]
03:29<@planetmaker>o/
03:29<@planetmaker>thought so, andy :)
03:34<@planetmaker>CF now has (again) nml tip. And should keep updating it properly, too
03:34<@planetmaker>09:34:15 iron-horse:1: Warning: Found 13879 more sprites than sprite 0 reports. :P
03:35<@planetmaker>iron-horse built successfully
03:36<andythenorth>planetmaker: I’m fixing the sprite warning :)
03:53-!-Pol [~quassel@h220216.upc-h.chello.nl] has joined #openttd
03:55-!-Pensacola [~quassel@h220216.upc-h.chello.nl] has quit [Read error: Operation timed out]
04:00-!-chrswk [~chrswk@213.188.52.27] has joined #openttd
04:00<andythenorth>hmm
04:00<andythenorth>can’t get nforenum to shut up
04:01<andythenorth>dumping the stdout is a bit tricky because I’m calling nforenum from python
04:05-!-DDR [~kvirc@S010600254bbe4e1c.vc.shawcable.net] has quit [Read error: Connection reset by peer]
04:05-!-Pensacola [~quassel@h220216.upc-h.chello.nl] has joined #openttd
04:07<andythenorth>sorted
04:07<andythenorth>planetmaker: so that’s a working partial compile
04:07<andythenorth>no nml patch needed
04:08<andythenorth>I did bad things to the makefile, might need adjusted
04:09-!-Pol [~quassel@h220216.upc-h.chello.nl] has quit [Ping timeout: 480 seconds]
04:26-!-jrambo [~jrambo@178-222-4-94.dynamic.isp.telekom.rs] has quit [Quit: Leaving]
04:29-!-Myhorta [~Myhorta@00018fad.user.oftc.net] has joined #openttd
04:30<andythenorth>this can’t be a good idea
04:30<andythenorth> self.vehicle_module_path = inspect.stack()[2][1]
04:30<andythenorth>why am I doing that?
04:31-!-jrambo [~jrambo@178-222-4-94.dynamic.isp.telekom.rs] has joined #openttd
04:31<SpComb>andythenorth: you are forbidden from writing any more python code until you remove that
04:32<andythenorth>“what could go wrong?”
04:41<Rubidium>inlining? ;)
04:47-!-Haube [~michi@37-4-140-17-dynip.superkabel.de] has joined #openttd
04:48-!-tokai|mdlx [~tokai@port-92-195-44-180.dynamic.qsc.de] has joined #openttd
04:53-!-tokai [~tokai@00012860.user.oftc.net] has quit [Ping timeout: 480 seconds]
05:30-!-Alberth [~hat@2001:981:c6c5:1:be5f:f4ff:feac:e11] has joined #openttd
05:30-!-mode/#openttd [+o Alberth] by ChanServ
05:30<@Alberth>o/
05:30<andythenorth>\o
05:37-!-kero [~keikoz@37.175.31.65] has joined #openttd
05:37<andythenorth>so this is dumb
05:37<andythenorth>self.vehicle_module_path = inspect.stack()[2][1]
05:37<kero>Hi
05:37<andythenorth>maybe I can just store the module __name__ in the objects that it creates?
05:43<andythenorth>but __name__ can be changed
05:43<andythenorth>maybe __file__
05:49<@Alberth>doing python magic eh? :)
05:50<andythenorth>trying not to
05:50<andythenorth>just writing a dep check
05:51<andythenorth>I have vehicles (box_car_1, box_car_2 etc) generated from modules (box_cars.py etc)
05:51<andythenorth>I just want the module name to check if the vehicles need re-generated
05:52<@Alberth>generate the name along with the vehicle?
05:52<andythenorth>looks like the best route
05:53<@Alberth>although I am not sure why you differentiate between vehicles here
05:54<@Alberth>you have to regenerate all of them anyway, so why not keep them together
05:54<andythenorth>that is a good question
05:55<andythenorth>hmm Stack Overflow keeps telling me to use inspect.stack for this
05:55<andythenorth>it seems to be the preferred answer
05:55<andythenorth>surely that’s wrong :(
05:56<@Alberth>it tells you you shouldn't want it :)
05:57<@Alberth>kind of like the advice of some ubuntu forum: I am bothered with having python2 installed. Oh, that's easy to solve: rm /usr/bin/python :P
05:58<andythenorth>I could rebuild the project so that [vehicle].nfo matches [generating_module].py
05:58<andythenorth>but it seems a bit odd to rebuild that much just to get a dep check
05:58<andythenorth>now I am confused
05:58<andythenorth>apparently I can’t use __file__ safely
05:58<andythenorth>and should also use inspect there
05:59<@Alberth>generate the dependencies from the .py too?
05:59<andythenorth>that’s possible
06:00-!-EyeMWing [~Wing@c-68-33-226-154.hsd1.va.comcast.net] has quit [Ping timeout: 480 seconds]
06:01<andythenorth>I think I’m just going to pass __file__ in the args to the vehicle constructor
06:01<andythenorth>then I can find out what goes wrong
06:01<andythenorth>probably nothing
06:01<@Alberth>http://www.tt-forums.net/viewtopic.php?p=1125943#p1125943 I really like those long circles to raise a few levels
06:01<@Alberth>I never think about making those :)
06:03<andythenorth>I used to
06:03<andythenorth>now I just have weight multiplier set to 1
06:03<andythenorth>12 tiles, straight up or down
06:03<@Alberth>:)
06:03<@Alberth>just pax?
06:03-!-MJP [~mjp@hq.z77.fr] has joined #openttd
06:03<andythenorth>anything
06:04<andythenorth>especially pipelines :P
06:04<@Alberth>especially early in the game that won't work with cargo from primary industry
06:05<@Alberth>going uphill @ 2km/h :p
06:05<andythenorth>more engines
06:05-!-EyeMWing [~Wing@c-68-33-226-154.hsd1.va.comcast.net] has joined #openttd
06:05<@Alberth>yeah, it's great to have 2 steam engines in a train
06:08<@Alberth>yetis have been released into the world?
06:09*andythenorth leaves the inspect.stack thing alone
06:09<andythenorth>it works
06:11<@Alberth>yay
06:12<andythenorth>if it’s not broken, don’t make lots of work fixing it
06:14<@Alberth>it's called "making it future proof" :)
06:16<andythenorth>I’ll just wait for the future to turn up
06:18<andythenorth>it will be here soon
06:19*Alberth checks the future weather
06:25-!-Yotson [~Yotson@2001:980:6ac8:1:960:19d1:f879:43c3] has joined #openttd
06:33<Rubidium>Alberth: first a generally gradual increase in temperature (for about 2e18s), after that a gradual decrease in temperature and after that it's not really certain. Either it gets warmer again or the temperature keeps decreasing
06:37<andythenorth>ho
06:37<andythenorth>json is the antidote to horrible string splits
06:37<andythenorth>and readlines()
06:38<@Alberth>Rb: that's a pretty long time, I may not live that long
06:39<Rubidium>Alberth: problem is that short term forecasts are more often very wrong ;)
06:40<@Alberth>depends on how serious you take them ;)
06:44-!-Myhorta[1] [~Myhorta@2.81.58.2] has joined #openttd
06:44-!-Myhorta [~Myhorta@00018fad.user.oftc.net] has quit [Read error: Connection reset by peer]
06:45-!-Progman [~progman@p57A1967A.dip0.t-ipconnect.de] has quit [Remote host closed the connection]
06:45-!-andythenorth [~Andy@cpc10-aztw26-2-0-cust867.18-1.cable.virginm.net] has quit [Quit: andythenorth]
06:48-!-yorick [~yorick@ip51cd0513.speed.planet.nl] has joined #openttd
07:05-!-frosch123 [~frosch@frnk-5f7445a9.pool.mediaWays.net] has joined #openttd
07:08<@Alberth>hai
07:12<Xaroth|Work>ni hao
07:16<frosch123>hola
07:18<Rubidium>salut
07:19-!-Brumi [~quassel@78-131-41-191.pool.digikabel.hu] has joined #openttd
07:25<kero>Mmh. I tried to upgrade to nml-0.4, using python 3, but I can't manage to build FIRS anymore. Should I avoid ?
07:34<@Alberth>in what way?
07:34<@Alberth>ie in what way can you not build firs
07:35<@Alberth>maybe you're using python3 for the firs python scripts?
07:38<kero>Yes, i think it's the problem. The Firs scripts still uses python 2, and nml now uses python 3.
07:38<kero>But I wouldnt know how to tell only to the Firs scripts to use python 2
07:39<@Alberth>using a Makefile, I assume?
07:39<kero>Until know I had to use a bad hack: rm /usr/bin/python && ln -s /usr/bin/python2 /usr/bin/python
07:39<@Alberth>oh boy
07:40<kero>:)
07:40<kero>Obviously I revert the original symlink when done.
07:41<@Alberth>/usr/bin/python should be python2, in general
07:41<kero>In Archlinux, it isn't.
07:41<@Alberth>oh, a silly unix, ok
07:42<@Alberth>In the FIRS makefile, at line 117, it says PYTHON ?= python
07:42<@Alberth>make that PYTHON ?= /usr/bin/python2
07:42<kero>so I change that to python2 ?
07:43<kero>I'll try
07:44<@Alberth>assuming you don't install things manually, I'd advice to never touch anything /usr
07:45<@Alberth>package managers and other applications get hopelessly confused if files go missing or don't are what they are supposed to be
07:46<@Alberth>unix is a true multi-user system, which means you can change things for you personally, without touching system files
07:47<@Alberth>ie at a unix system with more than 1 user, you typically don't want random users to mess up things everybody depends on :)
07:48<kero>I know that.
07:48<kero>I didn't like to do that horrible hack. It was really that after hours of searching, I couldn't figure out another way.
07:49<kero>and by the way, changing the Makefile doesn't work :/
07:49<@Alberth>hmm
07:49<kero>wait. I past the error.
07:50<kero>that's what I have: http://pastebin.com/5b24aEfH
07:50<kero>(with the changed Makefile)
07:51<@Alberth>Makefile.in has a broken command: $(_V) python scripts/preprocess.py '${REPO_TITLE}' '${REPO_REVISION}' '${TEST_INDUSTRY}'
07:52<kero>The feeling I had the last time, is that some parts of the scripts don't use the Makefile directive (ie: they use the default python3)
07:52<@Alberth>that should be $(PYTHON)
07:52<kero>instead of "python" ?
07:52<@Alberth>yes
07:52<kero>let's try
07:53<@Alberth>Makefile has been edited by several users with different ideas how to do things and different levels of knowledge about makes
07:54<@Alberth>let's see if I can reproduce your problem
07:54<kero>Now it's better than before. Goes further. But still a mistake. Wait for the pastebin.
07:54<kero>the problem comes when calling nml, I think
07:55<kero>http://pastebin.com/jvKUWU1P
07:55<@Alberth>it runs nmlc, and uses python 3.4, so that's good
07:56<@Alberth>where is the 'nml' subdirectory?
07:56<kero>Yes. Now it's no more a FIRS problem, but it's about my installation of nml.
07:56-!-gelignite [~gelignite@i528C3DEF.versanet.de] has joined #openttd
07:56<kero>when I run nml --version I have the same errors.
07:56<@Alberth>yes, it needs the 'nml' sub directory for everything
07:57<@Alberth>you installed it?
07:57<kero>Well. nml source is in ~/openttd/hacking/nml (downloaded by hg clone [...]/nml) and I installed it by "python setup.py install"
07:57<@Alberth>there is no real need to do that, you can also just use the download location
07:57<kero>the "binary" is in /usr/bin/
07:58<kero>Ok.
07:58<kero>I had a doubt on that
07:58<kero>and actually, it was what I did on precedent installation. Just a simlink in /usr/local/bin.
07:58<@Alberth>you don't have a personal bin? ~/bin
07:59<kero>Nope.
08:00<kero>Never thought having one.
08:00<@Alberth>that's very useful to have, you can drop custom links like above, or your own scripts
08:00<kero>But that's not a bad idea :-)
08:00<kero>I generally put everything in /usr/local/bin
08:01<kero>(everything which is not package related)
08:01<@Alberth>does echo $PATH includes a path like /home/kero/bin (or wherever ~/bin is for you)
08:01<kero>Nope. Should be added.
08:03<@Alberth>the lines are PATH=$HOME/bin:$PATH
08:03<@Alberth>export PATH
08:03<@Alberth>ie always look first in the local bin
08:04<@Alberth>the trick is where to add it.
08:04<kero>Ok, now the strange think. nml doesnt work when I install it with "python setup.py install", but it works when I just make a symlink from /usr/local/bin/nmlc to the downloaded nml.
08:05<kero>well that's fine for me :). Just wondering why.
08:05<@Alberth>personal initialization files ~/.bash_profile, ~/.bash_login, or ~/.profile <- do you have any of these files?
08:05<kero>Sure. I will explore this interesting idea ... another time :)
08:05<@Alberth>python setup.py install <-- which "python" was that?
08:06<kero>3.
08:06<kero>"Copying nml-0.4.0.r5307_0be320b4fa1a-py3.4.egg to /usr/lib/python3.4/site-packages"
08:07<kero>keikoz@kdesktop ~/openttd/hacking $ python --version
08:07<kero>Python 3.4.1
08:08<kero>Anyway. Thanks for help and suggestions.
08:08<@Alberth>no idea why that fails
08:08<@Alberth>yw
08:08<kero>There probably is a good reason. But anyway, I prefer not using the setup.py way, so ... Everything is fine.
08:08<@Alberth>it moved the 'nml' directory to some weird place
08:09<@Alberth>but I don't really want to use setup, as I don't trust it
08:09<kero>I should tell andy for that Makefile's $(PYTHON) problem.
08:09<kero>Oh, ok.
08:10<kero>Actually, I never trust so much using packages which I need to install in the main tree
08:10<kero>(manually)
08:11<@Alberth>you don't actually need to do that, it's just the default install path
08:11-!-Myhorta[1] [~Myhorta@2.81.58.2] has quit [Ping timeout: 480 seconds]
08:11<@Alberth>you can specify a path inside your ~
08:12<@Alberth>in fact, I normally log in as a normal user where I don't even have rights to change anything outside my ~ :)
08:14<kero>The good new, is that I don't need anymore to use the former horrible python hack.
08:14<@Alberth>:)
08:15<kero>Everything started because I wan't to understand what extra_callback_info2 is.
08:16<@Alberth>right, a symlink didn't work in messing up the firs build, how else to force it into using python3....
08:16<@Alberth>where is that?
08:16<kero>I notice that when I play OTTD, a similar pattern already occurs. I start playing, then something bothers me, then I wan't to change everything, and then I spend hours trying to code instead of actually playing.
08:16<@Alberth>yep, I have that with everything :)
08:17<kero>It's (among others) in FIRS' script about industry_closure.
08:17<@Alberth>although I usually just skip the "play" part :p
08:17<@Alberth>yes, but in what file?
08:17<kero>well generally there isn't time anymore to play
08:17<kero>wait, I tell you.
08:18<kero>firs/src/templates/check_secondary_closure.pnml
08:19<@Alberth>thanks
08:19<kero>in there, extra_callback_info2 is used to calculate a 50% probability. I wan't reduce this probability to 25% or even less.
08:20<kero>But I have absolutely no idea how to do that :)
08:21-!-kero [~keikoz@37.175.31.65] has quit [Read error: Connection reset by peer]
08:22<@Alberth>it looks simple
08:23<@Alberth>I wonder how big that variable is
08:23<@Alberth>you understand how that code works ?
08:23-!-Brumi [~quassel@78-131-41-191.pool.digikabel.hu] has quit []
08:24<@Alberth>why does nml have these hacky extra variables? it looks so unclean :(
08:25<@Alberth>oh, 32bits even, plenty of space :)
08:27<@Alberth>if you change that 32 to 0x60, you should get 25%
08:27<@Alberth>(0x60 = 32+64)
08:28-!-rambo [~jrambo@178-221-90-42.dynamic.isp.telekom.rs] has joined #openttd
08:28-!-rambo is now known as Guest2504
08:28<@Alberth>oh, he left :(
08:35-!-jrambo [~jrambo@178-222-4-94.dynamic.isp.telekom.rs] has quit [Ping timeout: 480 seconds]
08:38-!-kero [~keikoz@37.175.31.65] has joined #openttd
08:39<kero>Mmh ... Disconnection.
08:41<V453000>[14:27] <@Alberth> if you change that 32 to 0x60, you should get 25%
08:41<@Alberth>o/ V
08:41<V453000>hi :)
08:41<V453000>yeti tonight
08:42<@Alberth>I thought this morning, but no
08:42<V453000>nono I was gone since friday till now :)
08:42<V453000>going to draw a few wagons and lets do it
08:42<@Alberth>http://paste.openttdcoop.org/show/3498/ <-- kero a somewhat more complete log
08:43<@Alberth>V: yay, unleash the Yetis!
08:43<V453000>guess I will need musa?
08:43<@Alberth>sounds likely
08:46-!-Jomann [~abchirk@p57A08414.dip0.t-ipconnect.de] has quit [Quit: What? Oh... cu!]
08:47-!-kero [~keikoz@37.175.31.65] has quit [Ping timeout: 480 seconds]
08:47-!-kero [~keikoz@37.175.31.65] has joined #openttd
08:54-!-Pol [~quassel@h220216.upc-h.chello.nl] has joined #openttd
08:54-!-andythenorth [~Andy@cpc10-aztw26-2-0-cust867.18-1.cable.virginm.net] has joined #openttd
08:54<@Alberth>kero: I just fixed the 'python' reference in Makefile.in, in FIRS
08:55<@Alberth>hi andy: ^ please pull
08:55<kero>Alberth : to answer your question, I would say that I understand it partially?
08:55<@Alberth>:)
08:56<@Alberth>so anything you want explained?
08:56<kero>I understand what basically a & boolean is.
08:57<kero>1 && 1 = 1
08:57<kero>but when playing with bits, it's more complicated :)
08:57<@Alberth>nah, they're just a bunch of booleans :)
08:58<kero>extra_callback_info2 is just a bunch of 32 random bits. That's clear.
08:58<kero>(at least, in this context)
08:59<@Alberth>you decompose an int in powers of 2, eg 1+2+4+8+16 = 31
08:59<kero>But given that, I absolutely don't understand how that interacts with & 32
08:59<kero>mmh, yes ?
09:00<@Alberth>so if you have a & b with both a and b a number, you decompose both numbers into powers of 2, the & says to only keep those powers of 2 that both numbers have
09:00<@Alberth>obviously, 32 is a power of 2 already, so no more decomposing needed
09:01<@Alberth>random & 32 thus is 0, if 32 is not in 'random' and it is 32 when 32 is also in 'random'
09:01-!-Pensacola [~quassel@h220216.upc-h.chello.nl] has quit [Ping timeout: 480 seconds]
09:02<@Alberth>the switch tests whether or not the result of the & is 0 or not
09:02<kero>But & is not a boolean, then ?
09:03<kero>nothing to do ?
09:03<@Alberth>no, it's an 'and' over integers
09:03<@Alberth>also known as 'bitwise and'
09:03<kero>Ok. Let me read about it some 20 times, thinking about it 30, and I probably will come back with questions :)
09:04<@Alberth>simple test what is 6 & 5 ?
09:05<kero>in powers of 2 ?
09:05<@Alberth>sure
09:05<kero>2+4 & 1+4
09:06*Alberth nods
09:06<@Alberth>and after applying the & on that?
09:06<kero>4 + 4
09:06<kero>4 & 4
09:07<@Alberth>indeed, the '4' is the only common power of 2, and that is the result thus
09:07<@Alberth>ie 6 & 5 == 4
09:07<@Alberth>15 & 9 ?
09:09<kero>=1
09:09<kero>?
09:09<kero>(=true)
09:09<kero>AH !
09:09<@Alberth>no
09:09<kero>Oh, ok.
09:09<@Alberth>15 & 9 == (1+2+4+8) & (1+8) == (1 + 8) == 9
09:09<kero>Oh putain.
09:09<kero>(sorry)
09:11<@Alberth>lol http://goutaste.com/french-curseword-of-the-day-putain/ :)
09:11<kero>Ok. Clear.
09:11<kero>You only take the common powers of 2, and you sum them up.
09:11<kero>And that's the result.
09:11<@Alberth>yep
09:12<@Alberth>and if you have nothing in common, it's 0, eg 1 & 2
09:12<@Alberth>the reason that people switch to hexadecimal notation, is because the powers of 2 == the bits, are much easier there
09:13<@Alberth>1 2 4 8 16 32 becomes 0x1 0x2 0x4 0x8 0x10 0x20 0x40 0x80 0x100 etc
09:13<kero>Mmh. In a 32 bits variables, there's only 50% that there is 32 as power of 2 ?
09:14<@Alberth>yes, 1/2 the numbers has that bit on and the other 1/2 has it off
09:14<kero>32 = 00000000000000000000000000001111
09:14<kero>(mmh)
09:15<kero>No.
09:15<@Alberth>you can easily see that with 1 (0=off, 1=on, 2=off, 3=on, 4=off, etc etc, we know it as even/odd
09:15<@Alberth>01111 = 0xF = 15
09:15-!-KWKdesign [~KWKdesign@pool-108-52-130-213.phlapa.fios.verizon.net] has quit [Read error: Connection reset by peer]
09:16-!-KWKdesign [~KWKdesign@pool-108-52-130-213.phlapa.fios.verizon.net] has joined #openttd
09:16<@Alberth>bits count from the back
09:16<kero>No. I'm wrong. I still have in mind some sort of comparison between integers.
09:16<kero>which is not.
09:16<@Alberth>01011 = 0x8 + 0x2 + 0x1 = 11
09:17<@Alberth>32 = 0x20 == 0010 0000
09:17<@Alberth>or 00100000 if you leave out the spaces
09:19<@Alberth>btw you can ask Python about binary representation: bin(32) -> gives '0b100000'
09:22<kero>mmh
09:22<kero>Ok. I think I'm starting to understand.
09:25<kero>0x60 = 96 = 64+32, hence 25% probabilities
09:26<@Alberth>indeed, the & can result in 0, 32, 64, or 96, and only 0 closes the industry
09:26<kero>Great.
09:26<kero>Great great great.
09:27<kero>Thank you very much :)
09:27<@Alberth>bitwise operations are not that magical as you see :)
09:27-!-Pensacola [~quassel@h220216.upc-h.chello.nl] has joined #openttd
09:28-!-HerzogDeXtEr [~flex@88.130.174.253] has joined #openttd
09:28<kero>It's not basically complicated to understand, but all of this needs a lot of mental mathematic automatisms to go through fast.
09:29<kero>I uses hex once each two years :)
09:30<@Alberth>I see 0x20 when I read 32, and the same with other powers of 2 upto 4096
09:31<@Alberth>write everything in hex notation :)
09:32-!-Pol [~quassel@h220216.upc-h.chello.nl] has quit [Ping timeout: 480 seconds]
09:32<kero>But wait.
09:34<kero>half of the possible numbers also have 1 as possible power of two. Hence, "random_32byte" & 1 should also give 50% chances 1, no ?
09:34<@Alberth>it should indeed
09:34<kero>So, what can be the point in using & 32 instead of another power of two ?
09:35<@Alberth>don't know
09:35<@peter1138>To test a different bit.
09:35<@Alberth>probably that ^
09:35<@peter1138>In OpenTTD that random bits are not random every time you check it.
09:36<@peter1138>They are persistent, and changed during certain events. Therefore you can repeatedly test a random bit and get the same result, until it changes.
09:36<kero>Ok
09:37<@Alberth>say that you have a number of random things going on, if you use &1 for all, your 'random' either happens with all things or with none
09:37<@peter1138>If they were truely random, they'd be useless. Random graphics would just flicker :)
09:37<andythenorth>hmm
09:37<andythenorth>now to apply partial compiles to FIRS
09:37<andythenorth>not such a small job
09:38-!-Myhorta[1] [~Myhorta@2.81.58.2] has joined #openttd
09:38<@Alberth>perhaps instead change nml to handle that in a general way? :)
09:39<andythenorth>maybe
09:39<andythenorth>I think it’s best I make some mistakes first
09:39<andythenorth>doing it in a generally repeatable way is hard :)
09:39<andythenorth>feel free to look at what I’m doing :P
09:40<andythenorth>it’s 99% also what Eddi|zuHause was doing in CETS too
09:40-!-Pol [~quassel@h220216.upc-h.chello.nl] has joined #openttd
09:40<andythenorth>the newgrf does have to be authored to support it, no hiding from that
09:41<@Alberth>not even in the general case, probably
09:41<@Alberth>but that's to be expected, if you want partial compile, you need at least 2 parts :)
09:42<Eddi|zuHause><andythenorth> nforenum --silent -w=+ generated/iron-horse.nfo <-- you can silence each individual warning of nforenum
09:42-!-Brumi [~quassel@78-131-41-191.pool.digikabel.hu] has joined #openttd
09:42<andythenorth>I figured out that after re-reading docs :D
09:43-!-Polleke [~quassel@h220216.upc-h.chello.nl] has joined #openttd
09:47-!-Pensacola [~quassel@h220216.upc-h.chello.nl] has quit [Ping timeout: 480 seconds]
09:47-!-Pensacola [~quassel@h220216.upc-h.chello.nl] has joined #openttd
09:49-!-Pol [~quassel@h220216.upc-h.chello.nl] has quit [Ping timeout: 480 seconds]
09:51-!-kero [~keikoz@37.175.31.65] has quit [Read error: Connection reset by peer]
09:53-!-Polleke [~quassel@h220216.upc-h.chello.nl] has quit [Ping timeout: 480 seconds]
10:04-!-kero [~keikoz@37.175.31.65] has joined #openttd
10:07-!-Pol [~quassel@h220216.upc-h.chello.nl] has joined #openttd
10:09<kero>still disconnected :(
10:13-!-Pensacola [~quassel@h220216.upc-h.chello.nl] has quit [Ping timeout: 480 seconds]
10:25-!-Pol [~quassel@h220216.upc-h.chello.nl] has quit [Remote host closed the connection]
10:29<@Alberth>look on the bright side, sometimes you are connected :)
10:34<andythenorth>Alberth: a casual reader might conclude that some of this could be unified… https://dev.openttdcoop.org/projects/iron-horse/repository/entry/src/render_nml_nfo.py
10:34<andythenorth>specifically just putting header items and consists into a single list of ‘things to render'
10:38<@Alberth>I would move the 'render' thing into a function and call that twice ?
10:40<kero>Alberth : And when I arrived in this place, it wasn't sure at all that it would be possible.
10:41<@Alberth>the Internet is an amazing place :)
10:41<andythenorth>Alberth: that would be a good starting point
10:41<andythenorth>thanks
10:42<@Alberth>try to reduce code duplication by moving it into functions and calling it several times rather than trying to merge the call
10:43<@Alberth>the latter adds dependencies that are hard to revert in general
10:44<andythenorth>I used to over function
10:44<@Alberth>in the former case, you can simply add a parameter, or add an extra step before or after, or if you really need to, duplicate the function again
10:44<andythenorth>I was one of those people who would do “def add_numbers(first, second)”
10:45<@Alberth>you should do lisp :p
10:45<@Alberth>+(1 2) :)
10:46<@Alberth>or functional programming in the extreme +(s(0), s(s(0)))
10:48<@Alberth>+(0, X) -> X and +(s(X), Y) -> +(X, s(Y))
10:52<andythenorth>maybe another day :)
11:00<V453000>halp! :D is there any simple way to get musa?
11:00<V453000>or do I have to do the checkout at musa svn?
11:03<frosch123>you can also use hg, you may already have that :)
11:04<frosch123>http://hg.openttd.org/openttd/extra/musa.hg
11:12-!-pthagnar [~pthagnar@cpc7-pres17-2-0-cust28.18-3.cable.virginm.net] has joined #openttd
11:21<andythenorth>Alberth: tidied that file, I could do more, but it’s probably ok
11:21<@Alberth>kk
11:22<@Alberth>you must keep something to do for the future :)
11:22<andythenorth>there is a small list for that
11:23<andythenorth>a better way to split out the unwanted nfo would be good
11:23<andythenorth>something like eddi-nml :P
11:24-!-pthagnar [~pthagnar@cpc7-pres17-2-0-cust28.18-3.cable.virginm.net] has quit [Ping timeout: 480 seconds]
11:24<andythenorth>hmm
11:24<andythenorth>seen another place to unify
11:26-!-pthagnar [~pthagnar@cpc7-pres17-2-0-cust28.18-3.cable.virginm.net] has joined #openttd
11:29<V453000>isnt pull meant to download the files?
11:29<V453000>and those files?
11:29<andythenorth>you have the checkout?
11:30<V453000>not sure
11:30<V453000>https://dl.dropboxusercontent.com/u/20419525/musaHELL.png
11:33<V453000>meh managed to download it from the hg manually
11:34<V453000>I guess actually using it isnt simple either
11:35<V453000>aha I see (probably) :D
11:36-!-oskari89 [oskari89@83-102-63-32.bb.dnainternet.fi] has joined #openttd
11:40<V453000>k I have no clue :|
11:40<V453000>I have edited the example.ini
11:40<V453000>what else do I need to do
11:40<V453000>?
11:41<frosch123>start it?
11:41<V453000>with what :D
11:41<frosch123>hmm, ah, right you were using the nmlc binary
11:41<V453000>? :d
11:41<frosch123>well, do you have python installed?
11:41<frosch123>:p
11:42<V453000>if nml and tortoisehg works, I must have python?
11:42<frosch123>not if you use nmlc.exe
11:42<V453000>yeah looks like I do
11:42<frosch123>how do you start nml?
11:43<V453000>I run compile.bat in the repository
11:43<V453000>I have python27 it looks like
11:43<V453000>2.7.3
11:44<frosch123>what happens if you type "python musy.py" in console?
11:46<V453000>python musa.py does nothing
11:46<frosch123>does it find the "python" command?
11:46<V453000>musa.py says error> you must pass a configuration file
11:46<V453000>no >¦
11:46<V453000>:|
11:46<frosch123>ah, so it worked .)
11:46<@Alberth>:p
11:47<V453000>._.
11:47<frosch123>continue with "python musy.py --help"
11:47<V453000>that still throws an error, but simply using musa.py --help does give me a help thingy
11:48<Eddi|zuHause>"<kero> Oh putain." <-- never would "pardon my french" have been more appropriate :p
11:48<@Alberth>:D
11:49<kero>;)
11:49<V453000>it keeps saying to give some configuration file, could settings.py.example be it?
11:50<frosch123>it's the thing you edited
11:50<V453000>http://paste.openttdcoop.org/show/3499/ and this?
11:50<V453000>I edited example.py which was specifically about the upload
11:50<frosch123>that's not for you :p
11:50<V453000>or ini
11:50<frosch123>but for the bananas server
11:50<V453000>I edited http://paste.openttdcoop.org/show/3500/
11:50<frosch123>yeah, that ini is the config file
11:51<V453000>right
11:51<frosch123>rename it to yeti.ini or something
11:51<V453000>so -c and give it that file
11:51<V453000>yeah did
11:51<V453000>did something, "packaging files... no grf file
11:52<NGC3982>OpenTTD is still only uses one CPU core, right?
11:52<frosch123>"musa -c yeti.ini -d -u v123456 -p nuts yeti.grf changelog.txt readme.txt" <- you should end up with something like
11:52<V453000>WTF :D
11:52<V453000>v123456 is version?
11:52<V453000>and nuts is there why? :d
11:52<frosch123>no, your bananas account
11:53<frosch123>"nuts" your password, don't paste it here :)
11:53<V453000>right
11:53<V453000>:)
11:53<frosch123>at the end, all files you want to upload
11:53<frosch123>at least the grf, but also readme/changelog if you have one
11:53<V453000>sure I do :)
11:54<frosch123>if it prints something useful, remove the "-d" to really upload ("-d" means dry-run, so it is not really uploaded)
11:54<V453000>it answered me if I am author and spews shit about the dry run :)
11:54<V453000>will do
11:55<V453000>it uploads! :D
11:56<@Alberth>yetis conqueror the bananas server!
11:56<V453000>snowmen cometh
11:57<frosch123>yeah, let's see how many versions of yeti it needs for tb to notice the increased disk usage :p
11:58<V453000>:D
11:58<V453000>wait when I start doing animation :P
11:58<V453000>no animation atm, 30mb
11:58<V453000>all okay, content uploaded to bananas
11:58<V453000>:D
11:58<V453000>thanks frosch123
11:58<V453000>again. :)
11:59<frosch123>your name is too long :p
12:02<V453000>no why :d
12:07<frosch123>something is wrong with your tile layouts
12:07<frosch123>the bounding boxes are completely out of the place and beyond the industry bound
12:08<V453000>yeah they look quite wtf
12:10-!-Supercheese [~Superchee@76.178.136.186] has joined #openttd
12:11<frosch123>lol, did you intentionally replace mail with clay?
12:11<frosch123>all the houses produce/accept clay :)
12:11<pthagnar>lots of home potters
12:12<V453000>hm no I didnt :D
12:12<V453000>oh cargo number :D
12:13<V453000>yeah I guess
12:14<V453000>cargoes 2 and 5?
12:14<Eddi|zuHause>"test before uploading"?
12:14<V453000>wait no
12:14<frosch123>pax, mail, goods, food, sweets, fizzy drinks
12:15<V453000>Eddi|zuHause: I did I just didnt check buildings :)
12:15<V453000>well meh :D
12:16-!-XeryusTC_ is now known as XeryusTC
12:16<andythenorth>I always end up writing some kind of dispatcher :P
12:19<@Alberth>without a Makefile that is to be expected :p
12:19<V453000>just moved the two cargoes to slots 17 and 18 :)
12:21<andythenorth>feel free to move this to a Makefile :)
12:22<andythenorth>it’s maybe TMWFTLB, dunno
12:28<andythenorth>ho hi
12:28<andythenorth>partial compile FIRS is going to be a significant job
12:28<andythenorth>all the CPP expects to be run on linked pnml
12:28<andythenorth>before nml runs
12:29<andythenorth>that’s game over for partial compiling :D
12:29<andythenorth>so about makefiles... :P
12:29<andythenorth>if I want a directory full of generated nfo files, make can do that?
12:30<andythenorth>and it can also then link them?
12:30<V453000>yeti 0.0.2 out :D
12:30<V453000>20 minutes after 0.0.1 :D
12:30<V453000>good.
12:30<@Alberth>just 2000 minutes until yeti 0.0.99 :)
12:32<Eddi|zuHause><andythenorth> all the CPP expects to be run on linked pnml <-- running cpp on the individual pnml files is a simple change in the makefile.
12:32<@Alberth>andythenorth: a Makefile can compare time stamps from source and destination files, and execute a bunch of shell commands if the source is newer. So if you can produce a number of shell commands to execute to build a file Y from file X, yes
12:33<andythenorth>how does it get the list of destination files?
12:33<Eddi|zuHause>andythenorth: the makefile starts with a "target"
12:33<@Alberth>it works backwards from the thing you eventually want
12:34<Eddi|zuHause>andythenorth: i.e. "target" is "cets.grf", then it looks for a rule "what do i need to get cets.grf? cets.nfo!"
12:34<@Alberth>ie a source in the last step can be a destination in the second to last step
12:34<andythenorth>so how are the rules encapsulated?
12:34<andythenorth>all in the makefile?
12:34<@Alberth>encapsulated?
12:34<Eddi|zuHause>andythenorth: then it looks what it needs to do to convert "cets.nfo" into "cets.grf"
12:35<Eddi|zuHause>andythenorth: which is "call grfcodec!"
12:35*Alberth leaves makes in the hands of Eddi
12:36<andythenorth>the puzzle (it’s a practical puzzle, not a conceptual puzzle) is how make gets the rules
12:36<Eddi|zuHause>andythenorth: then it goes on: "but i don't have cets.nfo, what do i need now?"
12:36<Eddi|zuHause>andythenorth: and it finds "cets.nfo? cets.nml!"
12:36<@Alberth>andythenorth: you specify the rules
12:36<andythenorth>epxressing foo.grf depends on foo.nfo is easy
12:36<andythenorth>expressing that foo.nfo depends on linking 100 nfo files seems harder
12:37<andythenorth>I guess that could just be a script that runs
12:37<andythenorth>but then I break make afaict
12:37<@Alberth>foo.nfo: x1.nfo x2.nfo x3.nfo .... is the simple approach, there are commands to build such lists
12:38<@Alberth>this says that you make foo.nfo out of the x*.nfo files
12:38<Eddi|zuHause>andythenorth: cets/scripts/Makefile.in has some examples
12:39*andythenorth looks
12:39<andythenorth>I’m wondering if changing the makefile is the only viable route for FIRS
12:39<Eddi|zuHause>it has a list of manual dependencies at the top
12:39<andythenorth>it’s got so much CPP that the pure python compile will demand a large rewrite of FIRS src
12:39<Eddi|zuHause>and it uses a file called "cets.src.dep" which provides additional autogenerated dependencies
12:40<Eddi|zuHause>andythenorth: i think very little changes are needed for the makefile
12:40<andythenorth>there’s already a directory of generated pnml in FIRS
12:42<Eddi|zuHause>for makefile purposes, it's simpler if you change the file extension, instead of the directory
12:42<Eddi|zuHause>well, you can easily change the directory as well, but make mostly operates on file extensions to determine what to do
12:42<andythenorth>e.g. .onfo, .onml etc?
12:42<Eddi|zuHause>yes
12:43<Eddi|zuHause>the cets method is basically: generate->gnml->onml->onfo->nfo->grf
12:44<andythenorth>onfo is nfo before linking?
12:44<Eddi|zuHause>onfo is the partial files
12:44<Eddi|zuHause>the "output" of nmlc
12:44<andythenorth>yup
12:44<andythenorth>ok
12:45<andythenorth>make links them? Or you have a shell script I’m missing?
12:45<Eddi|zuHause>the linking is in combine_engines.sh
12:45<Eddi|zuHause>which is an autogenerated file
12:46<andythenorth>of course :)
12:46<andythenorth>that’s why I can’t find it
12:46<Eddi|zuHause>run scripts/generate.py
12:47<andythenorth>ok
12:47<andythenorth>(I didn’t run it, but I get the idea)
12:47<andythenorth>so it’s not insane to have make build dep lists, scripts etc dynamically during the make
12:48<Eddi|zuHause>i'm no authority do decide on whether what i'm doing is "sane" :p
12:49<andythenorth>it works?
12:49<andythenorth>hmm
12:49<andythenorth>anyway
12:49-!-KWKdesign [~KWKdesign@pool-108-52-130-213.phlapa.fios.verizon.net] has quit [Read error: Operation timed out]
12:49<andythenorth>so FIRS should continue using the python step primarilly for templating & docs generation
12:49<Eddi|zuHause>"it works" is not a good criterium in any case
12:50<andythenorth>and ${someone} should change the makefile
12:50-!-KWKdesign [~KWKdesign@pool-108-52-130-213.phlapa.fios.verizon.net] has joined #openttd
12:50*andythenorth explores
12:53<andythenorth>so make can walk a dir, using a rule to generate .onfo from .pnml, including CPP step
12:53<andythenorth>and then I need a standalone linker script which knows the file order for the grf
12:54<andythenorth>the linker script can walk a list from the existing python stuff
12:54<Eddi|zuHause>make uses the autogenerated file "cets.src.dep" to find which files to walk, it doesn't walk the directory to find files
12:54<andythenorth>is directory walking discouraged?
12:54<Eddi|zuHause>it's not reliable
12:55<andythenorth>so explicit list
12:55<andythenorth>I can provide a manifest
12:55<andythenorth>firs.pypnml is close to that already
12:55<andythenorth>and final step, makefile calls nforenum then grfcodec
12:56<andythenorth>then, faster FIRS
12:56<Eddi|zuHause>the content of cets.src.dep looks like this:
12:57<Eddi|zuHause>cets.nfo: src/DR/212.onfo
12:57<Eddi|zuHause>cets.nfo: src/DB_AG/440a.onfo
12:57<Eddi|zuHause>cets.nfo: src/DRG/KoeII.onfo
12:57<Eddi|zuHause>so when make is asked for providing cets.nfo, it looks for all these files
12:57<Eddi|zuHause>and then it falls into the "%.onfo: %.onml" rule
12:58<andythenorth>oic :)
12:58<andythenorth>ok, that’s understandable
12:58<Eddi|zuHause>which says "if you look for an onfo file, look for the file with the same name ending in onml"
12:58<andythenorth>I’ll probably get smacked down by syntax etc
12:58<andythenorth>I’ll try converting this shortly
12:58<Eddi|zuHause>and this chains down further
12:58<andythenorth>partial compiles won’t actually work until I refactor industries some more
12:59<andythenorth>currently they depend on each other in location checks
12:59<andythenorth>fixable
12:59<Eddi|zuHause>until it finds a rule which has actually existing (and up to date) files
12:59<andythenorth>and make handles all the timestamp checks?
12:59<Eddi|zuHause>yes
12:59<Eddi|zuHause>that's the primary thing it does
13:00<andythenorth>ok
13:00<Eddi|zuHause>once it found this "root" file, it executes the commands for the rule, and then chains back to the previous rule, etc.
13:01<@Alberth>to test use "make -n" which means to run make, print the commands it would do, but don't actually do them
13:01<andythenorth>and for something like a template file, which might have changed, but has no rules to compile it (it’s referenced by a different script)?
13:01<andythenorth>is that what PHONY is for?
13:01<andythenorth>maybe not
13:02<Eddi|zuHause>i wouldn't use things like PHONY
13:02<andythenorth>I think my question is a non-question
13:03<Eddi|zuHause>a dep file can also look like this:
13:03<andythenorth>the template files just go in a deps list?
13:03<Eddi|zuHause>src/headers.src.dep: /usr/include/stdc-predef.h src/defines.pnml \
13:03<Eddi|zuHause> src/defines.gnml src/parameters.pnml src/compatibility.pnml \
13:03<Eddi|zuHause> src/glyphs.pnml src/cargo_definitions.pnml src/railtype_definitions.pnml
13:03<andythenorth>so if any of those are changed, the rule is executed
13:03<Eddi|zuHause>which is autogenerated by cpp
13:04<Eddi|zuHause>yes
13:04<@Alberth>clean:\n\tblah <-- tries to construct a file called "clean" by doing the 'blah' commands below it. PHONY clean says "clean is not a file, but a virtual target"
13:04<@Alberth>so it's quite subtle
13:04<andythenorth>ok
13:05<kero>Someone familiar with industrytype.h ? I can't understand what the variable "byte num_table" is in the struct IndustrySpec
13:05<andythenorth>so keeping track of templates and stuff would be up to me, or I’d have to do that when they are called
13:05*andythenorth thinking out loud
13:07<@Alberth>kero: there is no struct IndustrySpec in industry_type.h (you're talking about openttd source code right?)
13:07<Eddi|zuHause>"Number of elements in the table" <- what's difficult to understand?
13:07<@Alberth>oh, sorry there is also a file industrytype.h missed that
13:07<kero>Alberth : without the _
13:07<kero>Eddi|zuHause : I don't understand what elements it speaks about :)
13:08<@Alberth> const IndustryTileTable * const *table; <-- kero that one
13:08<@Alberth>pointers don't keep the length of allocated memory
13:09<@Alberth>so you need to keep the length (number of entries) as well
13:10<Eddi|zuHause>kero: an "Industry" consists of multiple "IndustryTile"s
13:10<kero>Ok, so it's the table of the tiles.
13:15<andythenorth>https://dev.openttdcoop.org/projects/firs/repository/entry/Makefile.in
13:15<andythenorth>^ so I need to add to that
13:16-!-wakou2 [~stephen@host86-145-17-79.range86-145.btcentralplus.com] has joined #openttd
13:18<andythenorth>or I need to edit the main Makefile
13:18<andythenorth>hmm
13:20<Eddi|zuHause>andythenorth: you shouldn't edit the main makefile
13:21<Eddi|zuHause>andythenorth: you possibly need to change a thing or two in Makefile_nml, but all modifications that you don't have to do to existing things should go into Makefile.in
13:22<andythenorth>FIRS has no Makefile_nml
13:23<andythenorth>seems like main Makefile would need changed to at least get a firs.nfo rule
13:23<andythenorth>it seems quite attached to the idea of having firs.nml and building that with nmlc
13:24<Eddi|zuHause>yes.
13:24<Eddi|zuHause>in the "core" makefile, this was changed from .nml to _nml because of file ending issues
13:24<Eddi|zuHause>FIRS is using a much older version of the makefile than CETS
13:25<andythenorth>perhaps changing that would be wise
13:25<Eddi|zuHause>you can look at the file history in CETS to get a clue what i changed
13:26<andythenorth>thanks
13:33<kero>I'm curious. What is CETS ?
13:33<andythenorth>hmm
13:33<andythenorth>so FIRS is doing it wrong
13:33<andythenorth>preprocess.py should be two scripts
13:34<andythenorth>one should generate a list of depts
13:34<andythenorth>deps *
13:34<andythenorth>which make uses as a rule
13:34<andythenorth>the other script should simply template one file at a time from the list of deps
13:34<andythenorth>https://dev.openttdcoop.org/projects/firs/repository/entry/scripts/preprocess.py
13:35<andythenorth>I’m going to ignore the docs stuff, that can be a single python script
13:35<andythenorth>as now
13:36<andythenorth>this needs rewriting to output one pnml file, instead of all of them https://dev.openttdcoop.org/projects/firs/repository/entry/src/render_pnml.py
13:44<Eddi|zuHause>possibly
13:44<Supercheese>Oh, we *are* there yeti
13:44<Eddi|zuHause>it's not how i do it, though
13:44<Supercheese>Huzzah
13:44<Eddi|zuHause>i output all nml files from one script run
13:44<Eddi|zuHause>and only "outsource" the graphics templating
13:45<Eddi|zuHause>i.e. the pixa call
13:45<Supercheese>25 megs, not bad
13:45<@DorpsGek>Commit by translators :: r26686 trunk/src/lang/swedish.txt (2014-07-13 17:45:14 UTC)
13:45<@DorpsGek>-Update from WebTranslator v3.0:
13:45<@DorpsGek>swedish - 11 changes by spacejens
13:47<Supercheese>ah must be because they're not animated yeti
13:50<Eddi|zuHause>well, actually, your "render_pnml" is more like my cpp call? then yes, i do that separately.
13:56-!-andythenorth [~Andy@cpc10-aztw26-2-0-cust867.18-1.cable.virginm.net] has quit [Quit: andythenorth]
13:57-!-Pereba [~UserNick@187.59.170.215] has joined #openttd
14:05-!-andythenorth [~Andy@cpc10-aztw26-2-0-cust867.18-1.cable.virginm.net] has joined #openttd
14:05<andythenorth>hmm
14:05<andythenorth>kicked out
14:11-!-DabuYu [DabuYu@128.250.79.238] has quit [Ping timeout: 480 seconds]
14:17-!-__ln__ is now known as __ln___
14:17-!-__ln__ [~lauri@dyn-xdsl-83-150-116-30.nebulazone.fi] has joined #openttd
14:18<andythenorth>Eddi|zuHause: in CETS Makefile.in, lines 5-9 do what?
14:19<andythenorth>the first is obviously the nfo rule
14:19<andythenorth>I’m trying to understand the order of execution
14:24-!-DabuYu [DabuYu@128.250.79.238] has joined #openttd
14:25-!-__ln___ [~lauri@dyn-xdsl-83-150-116-30.nebulazone.fi] has quit [Quit: leaving]
14:25<Eddi|zuHause>those are: "if any of these files are modified, execute the whole generation step"
14:25<andythenorth>so those are rules with no recipe?
14:26<Eddi|zuHause>this is a variable definition
14:26<Eddi|zuHause>the rule is further down where it says $(GENERATE)
14:26<Eddi|zuHause>anything that doesn't have a ":" is not a rule
14:27<Eddi|zuHause>the first 3 lines are rules without recipe. they only define dependencies
14:27*andythenorth has been reading make docs
14:27<Eddi|zuHause>you must have exactly one recipe for a target, but can have multiple dependencies
14:28<andythenorth>so if any of the deps are outdated, the recipe runs?
14:28<Eddi|zuHause>yes
14:28<andythenorth>right
14:28<andythenorth>ok
14:28<andythenorth>so what is GENERATE
14:28<andythenorth>it’s not tab indented, so it can’t be a recipe
14:28<Eddi|zuHause>GENERATE is a variable
14:28<andythenorth>ok
14:29<andythenorth>so that’s reused later with ${}
14:29<Eddi|zuHause>$(GENERATE) gets replaced by the string right of the =
14:29<andythenorth>you only use GENERATE once?
14:29<Eddi|zuHause>the \ at the end of the line says "this string goes on on the next line"
14:29<Eddi|zuHause>yes
14:29<andythenorth>ok
14:29<andythenorth>so it’s just a var for convenience
14:29<Eddi|zuHause>yes
14:29<Eddi|zuHause>better overview, etc.
14:31<andythenorth>so the key entities are only: targets, deps, recipes, vars
14:31<andythenorth>no other interesting concepts?
14:31<andythenorth>loops and stuff?
14:31*andythenorth doesn’t want to encounter loops
14:31<Eddi|zuHause>you should avoid cyclic dependencies
14:32<andythenorth>%.foo is a wildcard?
14:32<andythenorth>or is it like %s in strings?
14:33<Eddi|zuHause>yes, it's a wildcard
14:33<andythenorth>so I need a rule for firs.nfo
14:33<Eddi|zuHause>matches any file which ends in .foo, unless there is a specific "x.foo" rule that matches
14:33<andythenorth>which has a recipe, which could be a script that handles all the pnml->nfo
14:34<Eddi|zuHause>yes
14:34<andythenorth>and I need a rule for %.pnml?
14:34<andythenorth>which calls the python pre-processor script
14:35<Eddi|zuHause>yes
14:35<andythenorth>so currently it uses a phony target of firs-pnml
14:35<andythenorth>instead of %.pnml
14:36<andythenorth>hmm
14:36<andythenorth>and %.pypnml are deps for %.pnml
14:36<andythenorth>maybe %.py too
14:38<kero>All of this is horribly complicated.
14:38<kero>:)
14:38<Eddi|zuHause>not "%.py"
14:39<kero>(that's not criticism)
14:39<andythenorth>.py deps need handling explicitly?
14:39<Eddi|zuHause>"%.py" would look for a "bar.py" when you process a "bar.pnml"
14:39<Eddi|zuHause>you need explicit "render_pnml.py"
14:39<Eddi|zuHause>or like my "$(GENERATE)"
14:40<Eddi|zuHause>list all the files that render_pnml imports
14:40<andythenorth>so the case I have in mind is declaring the [industry_name].py files as deps for .pnml
14:40<andythenorth>rather than the generation scripts
14:40<andythenorth>every industry has an accompanying python module
14:41<andythenorth>chaining all the deps together is the main reason I’ve been avoiding a make-based partial compile
14:42<andythenorth>but it can’t be worse than inspect.stack[1][2] eh? :P
14:43<@Alberth>you're not chaining deps in Python otherwise?
14:43<Eddi|zuHause>i don't even know what that's supposed to do
14:43<andythenorth>Alberth: tbh the iron horse case is simple, and getting the deps with python is easy
14:43<andythenorth>also I’m only running the partial compile when *I* know it’s safe
14:43<Eddi|zuHause>andythenorth: generally, an output file must depend on all input files, and all scripts and programs used in the recipe
14:44-!-gelignite [~gelignite@i528C3DEF.versanet.de] has quit [Ping timeout: 480 seconds]
14:45<andythenorth>so I do need to provide the .py files when they’re relevant
14:45<@Alberth>kero: learning something new is always complicated :)
14:45<kero>For sure.
14:45*andythenorth thinks of a counter-case
14:46<@Alberth>by adding the .py file as dependency, the target gets rebuild when you change the conversion tool
14:46<Eddi|zuHause>andythenorth: missing a dependency generally results in things not being recompiled when they are changed
14:46-!-Brumi [~quassel@78-131-41-191.pool.digikabel.hu] has quit []
14:46<@Alberth>leading to segmentation faults in c++ :p
14:47<Eddi|zuHause>andythenorth: the industry_name.py files should be dependency of the generator script
14:47*andythenorth needs to draw a picture
14:47<andythenorth>or make a list
14:48<andythenorth>or start FIRS from scratch
14:48<Eddi|zuHause>andythenorth: if a file contains the line "import x", x must be a dependency of that file
14:48<andythenorth>yup
14:48<Eddi|zuHause>you can organize these dependencies separate from the recipe
14:48<andythenorth>I don’t fancy manually maintaining all those deps
14:50<andythenorth>I could write a script that reads all the python files, looking for imports?
14:50<Eddi|zuHause>make a "dep_import" function that does the actual import, and writes the dependency to a file
14:50<andythenorth>it needs to be recursive through all the modules
14:50<Eddi|zuHause>i tried to write such a script once. but i didn't have the patience to follow through
14:50<andythenorth>hmm
14:51<Eddi|zuHause>problem is to sort out system imports vs. own imports
14:51<@Alberth>own imports are not from x import y ?
14:51<Eddi|zuHause>and working directories, import paths, etc. to find the actual file
14:52<Eddi|zuHause>Alberth: no, i mean importing a file written by yourself or importing some library
14:52<Eddi|zuHause>handling "from ... import" is easy
14:52<@Alberth>yeah, I always do "import re" for system import, and "from x import y" for my own files
14:53-!-DabuYu [DabuYu@128.250.79.238] has quit [Ping timeout: 480 seconds]
14:54<@Alberth>so a match on ^from lines gives my own imported files
14:54<Eddi|zuHause>Alberth: that's not a useful discrimination
14:54<@Alberth>ok
14:56<Eddi|zuHause>oh, also "x.py" vs. "x/__init__.py"
14:56<andythenorth>so…
14:56<andythenorth>to avoid a hokey python-based partial compile, I need Make and a hokey python-based dep generation script?
14:56<andythenorth>:P
14:57<Eddi|zuHause>andythenorth: i can give you a script that searches all "import" and "from...import"
14:58<Eddi|zuHause>but it needs to figure out what file each import actually references, and then recursively descend into that
14:58<andythenorth>I’m surprised there’s no library for this already
14:58*andythenorth was searching
14:59-!-DDR [~kvirc@S010600254bbe4e1c.vc.shawcable.net] has joined #openttd
14:59<andythenorth>all I’ve found is some stuff about make and code generators being a bad idea :P
14:59<andythenorth>let’s ignore that
15:00<Eddi|zuHause>did they firework yet?
15:00<@Alberth>like copy/paste is a good idea :)
15:01-!-efess [~Efess@c-24-61-64-170.hsd1.ct.comcast.net] has quit [Ping timeout: 480 seconds]
15:01<andythenorth>it describes race conditions
15:01<@Alberth>didn't the finals start just 15 minutes ago?
15:01<Eddi|zuHause>andythenorth: all this import stuff was finally too complicated to waste effort on, so i just wrote down all the files manually. it doesn't change that often
15:01<Eddi|zuHause>Alberth: 1 minute ago
15:01*andythenorth might watch football
15:01-!-DabuYu [DabuYu@128.250.79.238] has joined #openttd
15:02<@Alberth>If you don't expect to change the program often, you can just depend on all Python files
15:02<andythenorth>Iron Horse only tries a partial compile when I pass it a flag
15:02<andythenorth>which seems safe
15:02<andythenorth>can I depend on all python files limited to a certain dir?
15:02<@Alberth>some/dir/*.py probably
15:03<andythenorth>I think it would have unwanted results unless I make it more fine-grained
15:03<andythenorth>e.g. changing a single [cargo].py value would cause the entire grf to be recompiled
15:03-!-Progman [~progman@p57A1967A.dip0.t-ipconnect.de] has joined #openttd
15:04<Eddi|zuHause>yes, because you don't know which industries use that cargo
15:04<Eddi|zuHause>and might need to be changed
15:04<andythenorth>ah, so that’s a bad example
15:05<@Alberth>it would indeed, it's a balance between effort of finding the exact dependencies versus rebuilding too much
15:05<Eddi|zuHause>but what you can do: write into a .pnml.new, compare that with the existing one, and if no difference, delete the new file, otherwise delete the old file and move
15:05-!-tparker [~tparker@flux.trevorparker.com] has quit [Remote host closed the connection]
15:05<Eddi|zuHause>then make will pick up on the .pnml file not being changed, and skip the rest of that dependency tree
15:06-!-tparker [~tparker@flux.trevorparker.com] has joined #openttd
15:06<andythenorth>Eddi|zuHause that’s pretty smart
15:08<Eddi|zuHause>i have that for some files in cets
15:08<Eddi|zuHause>look in scripts/files.py or so
15:24*andythenorth looks
15:32-!-DDR [~kvirc@S010600254bbe4e1c.vc.shawcable.net] has quit [Read error: Connection reset by peer]
15:33-!-DDR [~kvirc@S010600254bbe4e1c.vc.shawcable.net] has joined #openttd
15:55<@peter1138>Hmm, petrol-vapour 'steam' engines, scary idea.
15:57<andythenorth>http://www.aqpl43.dsl.pipex.com/MUSEUM/POWER/petrol/petrol.htm ?
15:59-!-glx [~glx@000128ec.user.oftc.net] has joined #openttd
15:59-!-mode/#openttd [+v glx] by ChanServ
16:15-!-jpierre03 [~jpierre03@voyage.prunetwork.fr] has quit [Remote host closed the connection]
16:18-!-jpierre03_ [~jpierre03@voyage.prunetwork.fr] has joined #openttd
16:19-!-chrswk [~chrswk@213.188.52.27] has quit [Read error: Connection reset by peer]
16:23-!-Alberth [~hat@2001:981:c6c5:1:be5f:f4ff:feac:e11] has left #openttd []
16:30-!-andythenorth [~Andy@cpc10-aztw26-2-0-cust867.18-1.cable.virginm.net] has quit [Quit: andythenorth]
16:31-!-djura-san [~djura-san@djura-san.user.oftc.net] has joined #openttd
16:31<djura-san>hi there guys
16:37<djura-san>so, i selected show area. when will the snow fall? :|
16:47-!-frosch123 [~frosch@frnk-5f7445a9.pool.mediaWays.net] has quit [Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn]
16:48<Supercheese>??
16:49<djura-san>well i selcted snowy area when i generated new map. I expect some snow there :o)
16:50<Wolf01>'night all
16:50-!-Wolf01 [~wolf01@0001288e.user.oftc.net] has quit [Quit: Once again the world is quick to bury me.]
16:52<Eddi|zuHause>if you didn't select hilly as well, then you won't get much snow
16:53<djura-san>this game never stops to amaze me :)
16:54<djura-san>thank you for your answer Eddi|zuHause
16:54<Eddi|zuHause>there are also newgrfs that get you more snow in the winter than in the summer
16:54-!-efess [~Efess@c-24-61-64-170.hsd1.ct.comcast.net] has joined #openttd
16:55-!-jpierre03_ [~jpierre03@voyage.prunetwork.fr] has quit [Ping timeout: 480 seconds]
17:06-!-jpierre03_ [~jpierre03@voyage.prunetwork.fr] has joined #openttd
17:11-!-DDR [~kvirc@S010600254bbe4e1c.vc.shawcable.net] has quit [Read error: Connection reset by peer]
17:11-!-DDR [~kvirc@S010600254bbe4e1c.vc.shawcable.net] has joined #openttd
17:27<Eddi|zuHause>"champion countdown; 5 minutes"
17:29-!-DabuYu [DabuYu@128.250.79.238] has quit [Ping timeout: 480 seconds]
17:36-!-Progman [~progman@p57A1967A.dip0.t-ipconnect.de] has quit [Ping timeout: 480 seconds]
17:36<Eddi|zuHause>that was looooong 5 minutes
17:37-!-DabuYu [DabuYu@128.250.79.238] has joined #openttd
17:37-!-Progman [~progman@p57A180B7.dip0.t-ipconnect.de] has joined #openttd
17:41-!-oskari89 [oskari89@83-102-63-32.bb.dnainternet.fi] has quit []
17:45-!-Pereba [~UserNick@187.59.170.215] has quit [Quit: congrats Germany]
17:46-!-Pereba [~UserNick@187.59.170.215] has joined #openttd
17:46-!-Yotson [~Yotson@2001:980:6ac8:1:960:19d1:f879:43c3] has quit [Quit: .]
17:49-!-Myhorta[1] [~Myhorta@2.81.58.2] has quit [Ping timeout: 480 seconds]
17:51-!-Progman [~progman@p57A180B7.dip0.t-ipconnect.de] has quit [Remote host closed the connection]
18:56-!-Brumi [~quassel@78-131-41-191.pool.digikabel.hu] has joined #openttd
19:10-!-Haube [~michi@37-4-140-17-dynip.superkabel.de] has quit [Quit: Leaving.]
19:17-!-DabuYu [DabuYu@128.250.79.238] has quit [Ping timeout: 480 seconds]
19:20-!-DDR [~kvirc@S010600254bbe4e1c.vc.shawcable.net] has quit [Read error: Connection reset by peer]
19:21-!-DDR [~kvirc@S010600254bbe4e1c.vc.shawcable.net] has joined #openttd
19:24-!-DabuYu [DabuYu@128.250.79.238] has joined #openttd
19:28-!-DDR [~kvirc@S010600254bbe4e1c.vc.shawcable.net] has quit [Read error: Connection reset by peer]
19:29-!-DDR [~kvirc@S010600254bbe4e1c.vc.shawcable.net] has joined #openttd
19:59-!-Brumi [~quassel@78-131-41-191.pool.digikabel.hu] has quit []
20:14-!-wakou2 [~stephen@host86-145-17-79.range86-145.btcentralplus.com] has quit [Ping timeout: 480 seconds]
20:28-!-yorick [~yorick@ip51cd0513.speed.planet.nl] has quit [Remote host closed the connection]
21:02-!-DabuYu [DabuYu@128.250.79.238] has quit [Ping timeout: 480 seconds]
21:07-!-DabuYu [DabuYu@128.250.79.238] has joined #openttd
21:38-!-MJP [~mjp@hq.z77.fr] has quit [Ping timeout: 480 seconds]
22:33-!-tokai|noir [~tokai@00012860.user.oftc.net] has joined #openttd
22:33-!-mode/#openttd [+v tokai|noir] by ChanServ
22:35-!-djura-san [~djura-san@djura-san.user.oftc.net] has quit [Remote host closed the connection]
22:35-!-tokai|mdlx [~tokai@port-92-195-44-180.dynamic.qsc.de] has quit [Read error: Operation timed out]
23:17-!-KWKdesign [~KWKdesign@pool-108-52-130-213.phlapa.fios.verizon.net] has quit [Read error: Operation timed out]
23:17-!-KWKdesign [~KWKdesign@pool-108-52-130-213.phlapa.fios.verizon.net] has joined #openttd
23:24-!-glx [~glx@000128ec.user.oftc.net] has quit [Quit: Bye]
---Logclosed Mon Jul 14 00:00:51 2014