Minetest logo

IRC log for #minetest-dev, 2012-12-26

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
06:43 hmmmm i just changed a particular data structure in my code about 20 times.
06:43 hmmmm can't make my mind up
06:44 hmmmm i've decided on going the C++ path and making a base class and then derived classes... this is the perfect paradigm for what i'm doing
06:45 hmmmm in the C tradition, i'd have another struct with the common members of them both and keep casting it around
06:47 hmmmm instead of statically initializing structs, i'm going to make a constructor
06:48 hmmmm i am going to embrace C++ instead of fight it
06:48 hmmmm but i still won't use initializer lists, those are totally braindead.
06:59 kotolegokot joined #minetest-dev
07:47 hmmmm joined #minetest-dev
09:09 jin_xi joined #minetest-dev
10:04 serengeor joined #minetest-dev
11:23 PilzAdam joined #minetest-dev
13:36 Taoki[laptop] joined #minetest-dev
15:27 Calinou joined #minetest-dev
16:11 doserj joined #minetest-dev
16:20 doserj someone want to play with https://github.com/doserj/minetest/tree/mod_selection and tell me of any problems? Basically, add various lines of the form load_mod_<modname> = true/false to a world.mt file and look if it does what you expected. it should behave unchanged if you don't add anything to the world.mt file.
16:21 SpeedProg joined #minetest-dev
16:25 PilzAdam doserj, load_mod_default = true/false doesnt do anything
16:25 doserj yeah, it only considers add-ons, not mods in games or worldmods
16:26 PilzAdam mesecons works
16:26 doserj (and that was a deliberate decision)
16:27 PilzAdam It should at least give a warning when I set mods to true that doesnt exist
16:27 doserj it should
16:28 doserj (in debug.txt
16:28 PilzAdam wich stream?
16:28 doserj infostream
16:30 celeron55 https://github.com/doserj/minetest/commit/82394a547fbd2de39f188c87d0a4108af1bebf5d
16:30 celeron55 what does this do
16:31 celeron55 "fux bug in X" is a terrible commit message, it should be mentioned what the bug was all about in the first place (i am not aware of any bugs in mod handling)
16:31 celeron55 fix*
16:31 doserj the "bug" was introudced by my earlier commits
16:32 celeron55 oh, well, in that case it doesn't matter (as long as it is squashed to a previous ones before merging to upstream)
16:32 doserj yeah i was planning to squash it later
16:33 PilzAdam doserj, IMO errorstream would be better so everyone can see it in the console
16:33 celeron55 that patchset is practically shouting for an UI to happen for it 8)
16:33 PilzAdam It takes some time to find this message
16:33 doserj i had to re-write the dependency sorting a bit to account for deselected mods
16:34 celeron55 s/happen/to be added/
16:34 doserj celeron55: i am planning to add a UI
16:34 doserj but not sure yet how it will look like
16:34 doserj PilzAdam: i can change that, yes
16:35 celeron55 anyway; without looking at the implementation details, that one is clearly going to upstream once it is ready
16:35 PilzAdam maybe even stop to load the map
16:36 PilzAdam so map creators really know that this mod is installed
16:36 doserj celeron55: I just now where the UI will be (there is a whole Configure world -> "Nothing here" menu already there...)
16:36 celeron55 yeah, that is the place for it
16:37 doserj celeron55: btw, I was a bit unsure about the intended meaning of dependencies on modpacks
16:37 doserj can you depend on a modpack, or only on individual mods in it?
16:37 celeron55 only individual mods
16:38 doserj ok, that's what my version does, too
16:38 celeron55 modpack names should have no functional meaning whatsoever
16:38 celeron55 (for mods themselves)
16:38 doserj mesecons has a small issue, however, then
16:39 doserj if you disable "mesecons", a couple mods in the mesecons pack are still loaded
16:39 celeron55 you could allow selecting/deselecting modpacks in the UI though
16:39 doserj true
16:40 celeron55 dunno how the UI should exactly look like... usually it is meaningful to disable/enable a modpack, and disable individual stuff from it when it is active
16:40 celeron55 also, modpacks can have modpacks inside itself 8)
16:40 doserj recursion should work
16:40 celeron55 the UI can be messy and clumsy, as long as it works and isn't a maintenance nightmare
16:41 doserj later I would like to extend that into a configuration interface
16:41 doserj (set variables like "enable_item_drop = false", "enable_aggressive_mobs = true", etc.
16:42 doserj or even "item_despawn_time = 300"
16:42 VanessaE Suggestion:  Have the user store all their mods on some random directory (maybe default ~/.minetest/allmods) and just symlink to them from ~/.minetest/mods/minetest to enable them
16:42 celeron55 eh, no?
16:43 doserj VanessaE: that is exactly what I am trying to avoid
16:43 VanessaE oh.
16:43 celeron55 mods are game-dependent, and windows + symlinks = ultimate fail
16:43 VanessaE celeron55: well, "shortcuts" then.  But it's the best way to do it, think regular linux rc.xxx init scripts.
16:44 celeron55 we already have the solution for what you are suggesting solutions for
16:44 * VanessaE shrugs
16:44 celeron55 you are just flooding the channel with crap
16:44 VanessaE just trying to help avoid problems.
16:44 Exio btw, any doc about the 'C++' engine? i'm trying to make a config option for changing the hilightbox of blocks *line 2932 in game.cpp*
16:44 doserj VanessaE: your solution adds potential for more user confusion of where to put the mods for example
16:45 Exio s/the hilightbox/the color of the hilightbox/ :P
16:45 doserj (which is complicated enough already)
16:48 VanessaE all I'm saying is don't overthink it.
16:48 celeron55 Exio: uuummm... i don't think there are any docs related to something like that - but see settings.h, defaultsettings.h, minetest.conf.example
16:48 Exio ok, thanks btw
16:49 celeron55 Exio: the chat console uses a color setting named "console_color", it's used in guiChatConsole.cpp:550 (grep is your friend 8))
16:49 celeron55 ehm
16:49 celeron55 guiChatConsole.cpp:78
16:50 Exio yep, i used grep for getting the line in game.cpp too
16:50 Exio and well, thanks, i will see
16:51 celeron55 if you're feeling like documenting a bit, you could add a page here to explain what adding a setting generally involves: http://minetest.net/wiki/doku.php?id=code:inner_workings_of_minetest
16:52 Exio ok, i will check, first i will try to get it working
16:53 Exio i never wrote something in C++, mainly C hehe
16:54 celeron55 (while the dev wiki is small, google does find stuff from there well - when it exists there)
16:55 Exio btw, if i get it working i will try to send a pull request
17:35 hmmmm joined #minetest-dev
18:05 Exio i got it working, what should be the name for the option? i'm using hitbox_color atm
18:05 PilzAdam selectionbox_color
18:05 Exio ok :)
18:15 doserj joined #minetest-dev
18:33 hmmmm hahah
18:33 hmmmm celeron did you write strfnd.h?
18:33 Calinou since people are talking about selection box, i think the whole block texture should be darkened when selecting a block that is minable with item in hand (and the pointed face would be a bit darker), and when a node is right clickable (eg. chest) it'd be brightened instead
18:34 hmmmm palautus, plop, tek, niinq
18:34 Calinou would fix the outlines flickering at high coordinates because of FP precision errors
18:34 hmmmm some of these var names are nuts
18:34 celeron55 it's something i have written in my junior high school years
18:34 celeron55 the functionality of the thing is a masterpiece!
18:34 celeron55 i've still never seen anything like it anywhere else
18:35 hmmmm perhaps
18:35 hmmmm i am writing Settings::getStruct
18:35 hmmmm basically I have to rewrite a sscanf()
18:36 hmmmm so how does string tokenization work exactly?
18:36 hmmmm does stof() stop when it comes across a non-numerical character or something?
18:37 celeron55 oh lol, strfnd.h still contains that trim implementation
18:37 celeron55 it's the slowest implementation of trim that has ever existed or will ever exist
18:37 hmmmm that's true
18:37 hmmmm it ought to be rewritten someday
18:38 celeron55 well, it's fast for the general case of just one or two characters, but for more than that it becomes very slow
19:03 Exio celeron55: done, https://github.com/celeron55/minetest/pull/367
19:03 hmmmm oh by the way
19:04 hmmmm apparently not all revisions of irrlicht 1.8 have u64 defined
19:04 hmmmm I tried asking in their irc channel what revision it first popped up in, but predictably i got no response
19:04 hmmmm and of course it's not in any sort of changelog
19:11 celeron55 Exio: by the way, to what color did you personally change it to? 8)
19:11 SpeedProg1 joined #minetest-dev
19:18 darkrose https://github.com/EXio4/minetest/commit/28812e4597ab8362fc64cbdee1c2c0eae8ddb9f9#L2R70 <- isn't the MIN/MAX the wrong way round?
19:21 celeron55 no 8)
19:22 darkrose ok, ignore me then
19:22 celeron55 in fact, i already checked it when i saw the code
19:24 hmmmm shouldn't he be using rangelim
19:25 celeron55 well... yes - in fact i didn't even remember whether minetest has such a function or not
19:25 celeron55 Exio: util/numeric.h:113
19:26 celeron55 it even is in a reasonable location
19:27 hmmmm ugh crap
19:27 hmmmm i just realized a bit of a problem with my implementation of getStruct()
19:27 hmmmm i have no way of telling what the compiler's alignment is
19:27 hmmmm no portable way *
19:27 celeron55 alignment?
19:28 celeron55 what are you doing 8)
19:28 jin_xi chaotic, neutral, lawful
19:28 celeron55 are you casting structs from byte arrays
19:29 hmmmm writing to a buffer for the caller to cast into a struct
19:29 hmmmm basically i want to be able to do
19:29 darkrose pack the struct
19:29 hmmmm Foo *foo = (Foo *)g_settings->getStruct("setting_foo", "f,f,v3f,u32d,f,b", sizeof(Foo));
19:29 hmmmm for example
19:30 celeron55 i've never attempted to do that
19:30 Exio (204,102,204)
19:30 Exio and, ok, i will move it
19:31 Exio s/move/check
19:31 hmmmm well i don't want the caller to have to define a packed version of whatever it is just to call this
19:31 celeron55 i don't even know if that is possible for this case
19:31 hmmmm i mean that's the obvious solution but it's completely disgusting
19:33 hmmmm i guess
19:33 hmmmm i do runtime detection?
19:33 darkrose can't use offsetof() ?
19:34 hmmmm nope, that would require my function to know the type of struct it is
19:35 hmmmm I guess what I can do is create a couple of macros to do offsetof() on some dummy structs to find alignment values
19:35 celeron55 is it possible to test all relevant cases?
19:35 hmmmm huh
19:35 darkrose yeah I was just thinking of that
19:35 hmmmm alright, that's what i'll do then
19:36 hmmmm it's decent, portable
19:37 celeron55 do any of the compilers that minetest compiles on use struct reordering?
19:38 celeron55 i haven't got the slightest of clue if the ABI of any relevant platform uses that
19:39 SpeedProg joined #minetest-dev
19:42 hmmmm well the C standard says that structures are sequentially allocated nonempty set of member objects'
19:43 hmmmm it's a shame that sequentially here doesn't imply in-order
19:44 hmmmm if anything uses struct reordering, this entire function plain won't work
19:50 hmmmm are we allowed to use C++11-specific features?
19:52 hmmmm I am able to sidestep the struct reordering if it's a POD
20:01 RealBadAngel https://github.com/celeron55/minetest/pull/368
20:01 RealBadAngel ufff, i just finished workin on treegen
20:01 RealBadAngel at least c++ part of it
20:05 PilzAdam thexyz, it happened again: *** longjmp causes uninitialized stack frame ***: /home/adam/Minetest/minetest/bin/minetest terminated
20:06 thexyz in minetest master?
20:06 PilzAdam jup
20:06 PilzAdam on a server with cURL
20:08 thexyz PilzAdam: can you try this workaround http://stackoverflow.com/questions/9191668/error-longjmp-causes-uninitialized-stack-frame and report if this one will work?
20:12 PilzAdam you mean this curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1) ?
20:14 thexyz yes
20:14 thexyz commit then if it'll work
20:20 hmmmm poop
20:21 doserj joined #minetest-dev
20:21 hmmmm well here's one small limitation of getStruct - you must use std::string * instead of std::string if you want it to be a POD type eligible for use
20:22 RealBadAngel if somebody wanna test the treegen here are simple tools to test it, http://realbadangel.pl/treegen_tools.zip
20:23 RealBadAngel while testing i designed pretty nice apple tree i think http://realbadangel.pl/RealAppleTree.png
20:23 PilzAdam RealBadAngel, +1 for the new trees
20:23 hmmmm that's pretty neat, what's with the rest of the blocky trees? :)
20:24 RealBadAngel with the tools comes the apple tree (is also as example in api) and the oak
20:24 RealBadAngel in the engine there are no hardcoded axioms
20:24 RealBadAngel all can be passed to treegen via LUA
20:25 RealBadAngel ive added usage of thin (1 node) trunks
20:26 RealBadAngel generation of fruit trees
20:26 RealBadAngel and yaw/pitch/roll commands to control the turtle
20:27 RealBadAngel so its possible to design a tree node by node
20:27 RealBadAngel if fact its a simple programming language
20:28 Exio well, i think the change is done
20:28 Exio i was playing some FPS, sorry for the delay :P
20:31 RealBadAngel once its merged i think makin competition in forums could be a good way to get some decent models to use ingame
20:36 celeron55 RealBadAngel: that tree looks pretty good
20:37 hmmmm answer me :/
20:37 hmmmm [02:50 PM] <hmmmm> are we allowed to use C++11-specific features?
20:37 celeron55 what features
20:37 hmmmm alignof()
20:37 celeron55 does gcc 4.6 and msvc2010 support them
20:38 RealBadAngel celeron55,  took me a while to get orientated, but its pretty easy to design even complicated shapes
20:38 hmmmm yes
20:38 RealBadAngel like palm trees, willows or whatever
20:40 RealBadAngel one tip, once drawing is started, turtle looks up
20:41 celeron55 hmmmm: how about mingw 4.2?
20:41 celeron55 or, umm... i wonder what is the lowest version that is generally used for cross builds
20:41 hmmmm looks like it
20:42 hmmmm i would just be using sizeof() here but i can't do that exactly
20:42 hmmmm specifically because of v3f()
20:42 hmmmm er, -()
20:42 RealBadAngel hmmm, we have textures ready for several kind of trees, oak, pine, birch, etc
20:42 RealBadAngel now just the models
20:43 celeron55 debian stable appears to have mingw 4.2.1
20:43 celeron55 how about LLVM
20:43 hmmmm of course it has to work on my machine
20:43 hmmmm i use gcc 4.2.2
20:44 celeron55 google returns some stuff for clang and alignof
20:44 celeron55 i guess all of the supported compilers work then
20:44 hmmmm ICC included since it's designed to be compatible with gcc
20:45 hmmmm do you mind if i add Settings::getU32 also
20:45 celeron55 i don't see any reason for not using it - we just need to spend some time making sure all compilers have the appropriate options
20:47 celeron55 hmmmm: whatever
20:47 hmmmm yeah just for the sake of symmetry
20:47 hmmmm i can't standing having things uneven like that
20:47 hmmmm s/standing/stand/
20:52 celeron55 i have some somewhat related stuff around
20:52 celeron55 https://github.com/celeron55/minetest/commit/86f032045ce40c976cbd90b65fcffac00dec7e73
20:52 celeron55 don't care about the BKVL thin
20:52 celeron55 +g
20:53 celeron55 or, maybe look at the append/get methods of it
20:53 celeron55 dunno if that is of any use, but that is some serialization stuff i happen to have hanging around
20:53 celeron55 it's from this branch https://github.com/celeron55/minetest/commits/bkvl
20:54 hmmmm thanks anyway
20:54 celeron55 it basically implements templated binary serialization of whatever you throw at it
20:54 celeron55 STraits, that is
20:55 celeron55 this commit extends it with some more types in a location where it is used https://github.com/celeron55/minetest/commit/b93b88e9b26985d6f9b1eb31546fd3dd53a0dd1a
20:56 celeron55 that and the BKVL implemented using it is basically intended to be an easier cross-version compatibility binary format for serialization of stuff to disk
20:57 celeron55 i implemented it to be used with the meta_set_nodedef branch
20:57 celeron55 for a node definition to be stored in the node metadata when so wanted
20:59 celeron55 and others too... i'm just not too sure if it's good or not; it definitely implements a consistent format that doesn't waste that much space but has explicit keys and values for the data instead of an array from which you can't remove from in between like things currently are
21:00 celeron55 anyway; everybody working with serialization stuff should know about that one, so that it can be pulled into use if needed
21:15 celeron55 https://github.com/blog/1364-downtime-last-saturday
21:15 celeron55 8)
21:25 RealBadAngel celeron55, have you checked my pull?
21:40 VanessaE celeron55: the mapgen lockup may be limited only to system-wide installed, not run-in-place.  With run-in-place, it ran for hours and hours without a lockup.  Soon as I moved it to system-wide install, it was down within 3 hours.
21:40 VanessaE backtrace!  http://pastebin.com/GdjSwCDL
21:42 VanessaE is any of that useful?
21:43 hmmmm oh no, peerItemCount problems again :|
21:43 hmmmm are you absolutely sure that you replaced the binaries correctly?
21:44 VanessaE positive.
21:45 VanessaE apt-get remove minetest (I used checkinstall to install it)
21:45 VanessaE cmake -DRUN_IN_PLACE=0 -DCMAKE_BUILD_TYPE=Debug .
21:45 VanessaE make -j12
21:45 hmmmm wait wait
21:45 hmmmm oh
21:45 hmmmm nvm
21:45 hmmmm well the difference between run_in_place and not is the config file it uses
21:45 VanessaE and then checkinstall set not to strip the binaries and .so's of their debug info.
21:46 hmmmm could the minetest.conf found in the directory have better settings or something
21:47 VanessaE http://pastebin.com/cCmNpaHM
21:47 VanessaE the server runs this ^^^ for the config.
21:47 VanessaE (note that most stuff is commented out)
21:47 hmmmm when you did both the run in place and without?
21:47 VanessaE yup
21:47 VanessaE same file for both.
21:48 VanessaE same world, same config file, same build dir, same game.
21:48 hmmmm did you pass a --config parameter?
21:49 VanessaE to the server?  yep
21:49 VanessaE gdb --args minetestserver --config /home/vanessa/.minetest/minetest-server.conf --worldname My_World_server --gameid vanessa_game --port 30000 --logfile /home/vanessa/.minetest/debug-server.txt
21:49 VanessaE dammit I ctrl-Z'd while in gdb..  how do I resume it?
21:49 hmmmm fg
21:50 hmmmm hum
21:50 VanessaE it just keeps responding that it's receiving SIGTSTP.
21:50 VanessaE no matter, it needs restarted anyway
21:50 hmmmm no idea
21:52 VanessaE and I'm pretty sure that line you wanted me to add is in the right place:  http://pastebin.com/67L0UCP2
21:53 Exio btw
21:53 hmmmm hrmm?
21:53 hmmmm i didn't tell you to add that
21:53 hmmmm are you talking about the patch that was made
21:53 VanessaE maybe c55 did.
21:53 hmmmm that one wasn't there
21:53 VanessaE the one-liner that was supposed to silently drop the emergethread buffer
21:53 Exio i should close the pull request, and make one but adding an option for the crosshair
21:54 hmmmm yeah, that's not the right place to put that line of code :/
21:54 VanessaE wait, I think I pasted the wrong section of code
21:54 VanessaE http://pastebin.com/Ed610Xta
21:55 VanessaE that's the one I added
21:55 hmmmm that one's right
21:55 VanessaE (I just did a quick search for "goto" to find it)
21:55 hmmmm grr
21:55 hmmmm it would be so much better if you messed something up
21:55 VanessaE lol
21:55 PilzAdam goto?!?
21:55 VanessaE at least then we'd know for sure who to blame :D
21:56 VanessaE PilzAdam: goto.
21:56 PilzAdam last time I saw goto was in TI Basic
21:56 hmmmm well
21:56 hmmmm too much Java?
21:56 PilzAdam maybe
21:56 hmmmm anyway I don't think it has anything to do with it being compiled as run in place or not
21:57 celeron55 being compiled as debug or not could have much effect
21:57 hmmmm if you're running the correct executable and you're using the correct config file
21:57 VanessaE vanessa@rainbird:~$ which minetestserver
21:57 VanessaE /usr/local/bin/minetestserver
21:57 VanessaE looks like the right one to me :)
21:57 hmmmm i would've assumed vanessa only compiled it as debug _because_ she saw it happening again
21:58 hmmmm wait, /usr/local?  aren't you on Linux?
21:58 VanessaE nope, the run-in-place build was compiled as debug also but you probably guessed that.
21:58 VanessaE yup, I am.
21:58 hmmmm Ubuntu has a /usr/local
21:58 hmmmm hmm
21:58 hmmmm i did not know that.
21:58 VanessaE most linuxes do that these days I always thought
21:59 VanessaE no matter, not relevant anyways
22:00 VanessaE my first thought was some obscure permissions issue but that's equally unlikely
22:01 PilzAdam run it as root to be sure ;-)
22:01 VanessaE hah!
22:01 hmmmm running an outside-facing daemon with craptons of bugs as root
22:01 hmmmm sure thing pal
22:01 VanessaE why don't I just open a passwordless telnet daemon while I'm at it ;)
22:01 hmmmm i wonder how easy minetest is to exploit
22:02 Exio 2
22:02 Exio oops
22:02 hmmmm someday when i'm bored and i have nothing better to do, i am going to try it
22:02 Exio fail :P
22:02 VanessaE hmmmm: hopefully not too much so.  If I had an ounce of intelligence I'd be running this server as 'nobody' but it runs as me for now
22:02 VanessaE because I'm too lazy to create a proper limited-scope account to run it under :)
22:02 hmmmm if i were running a minetest server i'd run it in a jail
22:03 hmmmm yea i have jails :D
22:03 Exio s/jail/lxc ftw :P
22:03 celeron55 minetest 0.3 has a known unfixed permission exploit... 8)
22:04 hmmmm LXC looks like it's more of a Zones type-of-thing
22:04 celeron55 i'm too lazy to do all the release hassle so i rather just don't commit a fix
22:04 celeron55 and hope nobody uses it
22:05 VanessaE celeron55: persistent through 0.3.1?
22:05 doserj joined #minetest-dev
22:05 celeron55 the whole 0.3 series has it; 0.4 doesn't
22:06 hmmmm erm
22:06 VanessaE celeron55: your hopes have been dashed - I frequently see jabber from people who want to use 0.3.x
22:06 VanessaE :-)
22:06 celeron55 it's very tough to find though
22:07 hmmmm completely unrelated, but from now on, i think we should use strtoull() instead of istringstream for grabbing 64 bit values
22:08 VanessaE Thread 5029  <-- I just now saw that.  ???
22:09 VanessaE is this what you were seeing before?
22:09 hmmmm that's just a thread ID
22:10 VanessaE ok
22:10 hmmmm in particular it's the EmergeThread
22:36 PilzAdam joined #minetest-dev
22:52 hmmmm does anybody know if we have uintptr_t on Windows?
22:53 hmmmm ah nevermind, it is in stddef.h

| Channels | #minetest-dev index | Today | | Google Search | Plaintext