This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 »
211
Function Peer Review / Re: NEEDED FUNCTION LIST
« on: December 15, 2010, 08:38:23 pm »
Anyone can update it when they want. But thanks.
Did you use the script that I wrote or did you just take out already implemented functions?
Did you use the script that I wrote or did you just take out already implemented functions?
212
General ENIGMA / Re: variable_* Functions
« on: December 15, 2010, 08:21:19 pm »
Ah, okay. I thought that you were just loading the symbols from the binary; apparently, you're just loading the symbols from the currently loaded part in memory.
213
Off-Topic / Re: Does the tracker need severity?
« on: December 15, 2010, 04:23:05 pm »Aren't you agreeing then? The developers can set the ticket priorities so that users will know when their problem is fixed.I agree with the OP. I disagreed with the post before mine.
Sorry for not being specific.
214
General ENIGMA / Re: variable_* Functions
« on: December 15, 2010, 04:22:47 pm »GetProcAddress uses a string map constructed with the symbols declared __declspec(dllexport). It's the same thing but a string map gives you control over the implementation and is cross-platform.I also wasn't thinking when I made that other post. :V
Yeah, you're right. That makes more sense, now that I think about it.
The problem that I still see is that you're getting a symbol for a variable. You're not getting its value; that value is stored in memory, and not the binary.
215
Function Peer Review / Re: clamp()
« on: December 14, 2010, 07:34:40 pm »
eh I really wasn't paying attention when I wrote this
But yeah, median works. :V So does minmax.
But yeah, median works. :V So does minmax.
216
Off-Topic / Re: Does the tracker need severity?
« on: December 14, 2010, 07:03:28 pm »
I disagree. Priority shows a user when their problem will be fixed.
217
General ENIGMA / Re: variable_* Functions
« on: December 14, 2010, 06:07:18 pm »@RetroX I do not see how this would conflict with ENIGMA's instances.Yes, this works with globals. It does not work with locals.
Also, see http://llvm.org/docs/tutorial/LangImpl4.html#jit
Executables are basically shared libraries.
See also GetModuleHandle(NULL) and GetProcAddress (Windows-only, Linux has similar functions)
EDIT: Windows source-code:Code: (C++) [Select]#include <stdio.h>
#include <windows.h>
typedef void (*func)(const char*);
extern "C" {
__declspec(dllexport) char* message = "HELLO WORLD!";
__declspec(dllexport) void display_message(const char* msg) {
printf("Message: %s\n", msg);
}
}
int main() {
HMODULE module = GetModuleHandle(NULL);
char** msg = (char**) GetProcAddress(module, "message");
func disp = (func) GetProcAddress(module, "display_message");
disp(*msg);
return 0;
}
This works fine as an executable, without compile-time tricks. Note that this is NOT a DLL.
This probably would also work on Linux with some minor changes(dlopen instead of GetModuleHandle?)
Also, a string map would probably be faster.
218
General ENIGMA / Re: variable_* Functions
« on: December 13, 2010, 07:42:09 pm »Regarding global variables, I'm pretty sure some nasty executable file format-based hacks might work. However, only if the variable type is known ahead-of-time. In other words, if you declared a global int x and then accessed it as a var it would fail miserably.That would only work if the game was compiled as a shared library, and it wouldn't work with how ENIGMA's instances are organised.
I mean, LLVM does stuff like that.
Note that on Windows it could require declaring all globals with __declspec(dllexport).
All this without requiring massive maps of pointers.
For local variables, though, you guys would be totally screwed.
You can't just access variables by symbol at runtime; it doesn't work that way.
219
Function Peer Review / clamp()
« on: December 13, 2010, 04:15:09 pm »Code: [Select]
double clamp(double x, double lower, double upper) { return (x < lower ? lower : (x > upper ? upper : x)); }
Simple function that would be useful.
220
General ENIGMA / Re: Cross-compiling
« on: December 12, 2010, 05:05:57 pm »<..<Linkers aren't in there, though. :V
Opened ENIGMA settings lately, Retro?
221
General ENIGMA / Re: Cross-compiling
« on: December 11, 2010, 08:53:05 pm »
Also, as a random thing to add, this will also allow us to use other libraries in our games by enabling usage of linker flags.
For example, if I wanted to use Box2D in a game, I could add the -lBox2D flag.
For example, if I wanted to use Box2D in a game, I could add the -lBox2D flag.
222
General ENIGMA / Cross-compiling
« on: December 10, 2010, 07:40:25 pm »
Would be a really neat feature to have.
But I don't see it as being possible currently.
Ideally, LGM would be able to specify a compile command (by default, g++) for the makefiles, as well as a list of default flags to the compilers (such as -m32 and -m64). This would enable me to do things like turning on the -m32 flag, or using i486-mingw32-g++ as the compile command so that I can cross-compile to Windows.
I also propose that -mtune=generic is added to the default flags, because it avoids runtime conflicts or something like that. I add that in my packages right now through sed, but it would be a good idea for default. Probably would be ignored under everything but Linux and Android, but MinGW should still support it.
But I don't see it as being possible currently.
Ideally, LGM would be able to specify a compile command (by default, g++) for the makefiles, as well as a list of default flags to the compilers (such as -m32 and -m64). This would enable me to do things like turning on the -m32 flag, or using i486-mingw32-g++ as the compile command so that I can cross-compile to Windows.
I also propose that -mtune=generic is added to the default flags, because it avoids runtime conflicts or something like that. I add that in my packages right now through sed, but it would be a good idea for default. Probably would be ignored under everything but Linux and Android, but MinGW should still support it.
223
Function Peer Review / Re: NEEDED FUNCTION LIST
« on: December 10, 2010, 07:07:01 pm »Damn, I don't have Linux. I could use cygwin, but I had problems with it before, so no thanks.http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/
Install MSYS and you can run this script in it.
Just put it into a file and run script > list to make a text file with the list contents.
224
General ENIGMA / Re: Linux Repositories
« on: December 10, 2010, 06:21:22 pm »
Package has been updated so that now, all game objects are pre-compiled. Systems such as graphics and audio, which are needed for every game, are already included in the package.
EDIT: Apparently, the packages are broken, currently. Fixing later.
EDIT: Apparently, the packages are broken, currently. Fixing later.
225
Function Peer Review / Re: NEEDED FUNCTION LIST
« on: December 10, 2010, 03:35:39 pm »What did you use to match up thous two lists?
Code: [Select]
#!/bin/bash
enigma=`cat enig | sort -u`
gm=`cat gm | sed '/^\/\//d' | sed '/^[[:space:]]*$/d' | sort -u`
while [[ "$gm" != "" ]]; do
current=`echo "$gm" | sed '2,$d'`
currentcheck=`echo "$current" | sed 's/[*#]$//' | sed 's/(.*)$//' | sed 's/\[.*\]$//'`
if [[ `echo "$enigma" | grep "^$currentcheck"` == "" ]]; then
echo "$current"
fi
gm=`echo "$gm" | sed '1d'`
done
enig being a copypaste of the keyword lists, while gm being fnames from GM