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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 »
1906
"Is this a fallacy? Not any more than your arguments, so you can't complain."
That final clause itself was a fallacy. You're both spouting little but fallacies.
"know what is a pointer and what is not, and that is impossible in C++."
I'm going to assume you meant something other than how that reads; otherwise, that's the biggest lout of bullshit I've ever heard.
Anyway, C++ is not meant to be a garbage collected language. It implements something wonderful over C in the direction of memory management, being constructors and destructors. Google V8 is one to really whore that system. In an ExecuteString wrapper, I can say so little as
People get used to strings; I myself have become spoiled by them, and feel so every time I use them. C gave no way of returning new strings, save allocating them yourself. With C++, std::string is a great example of how the annoying bits are handled for you. String keeps its own reference count at the beginning of the char* in memory. When you return a string in C++, the constructor of the new string increments that count, the destructor of the old string then decrements it, and a string is returned with no manual allocation.
I had a leak once, and I used ctors and dtors to keep my own count, and to help me isolate where they were allocated that they weren't being freed. It was greatly convenient; had I wanted, I could have turned it into a garbage collector on my own. Thing is, I prefer the program to be geared correctly to take care of such itself.
Is it possible to get C++ to wipe all the memory management ickiness off your ass for you? No. What I think Rusky was trying to convey is that C++ introduces no system of reference tracking. Personally, all considered, I prefer it that way.
That final clause itself was a fallacy. You're both spouting little but fallacies.
"know what is a pointer and what is not, and that is impossible in C++."
I'm going to assume you meant something other than how that reads; otherwise, that's the biggest lout of bullshit I've ever heard.
Anyway, C++ is not meant to be a garbage collected language. It implements something wonderful over C in the direction of memory management, being constructors and destructors. Google V8 is one to really whore that system. In an ExecuteString wrapper, I can say so little as
Code: (C++) [Select]
{
v8::HandleScope handle_scope; // Constructor allocates and integrates a new scope
ExecuteString(String::New(line), "(shell)", true, true); //Operates in the newly constructed scope
return 0;
} // Destructor automatically disposes the new scope
People get used to strings; I myself have become spoiled by them, and feel so every time I use them. C gave no way of returning new strings, save allocating them yourself. With C++, std::string is a great example of how the annoying bits are handled for you. String keeps its own reference count at the beginning of the char* in memory. When you return a string in C++, the constructor of the new string increments that count, the destructor of the old string then decrements it, and a string is returned with no manual allocation.
I had a leak once, and I used ctors and dtors to keep my own count, and to help me isolate where they were allocated that they weren't being freed. It was greatly convenient; had I wanted, I could have turned it into a garbage collector on my own. Thing is, I prefer the program to be geared correctly to take care of such itself.
Is it possible to get C++ to wipe all the memory management ickiness off your ass for you? No. What I think Rusky was trying to convey is that C++ introduces no system of reference tracking. Personally, all considered, I prefer it that way.
1907
Announcements / Re: Tentative Todo
« on: June 03, 2010, 09:07:28 pm »
He never claimed that he was working on it the entire time nor that he was making good progress; just that at some point some progress was made. If he does it, it will be good, and I will use it. If he does not, I will try to run with his ideas that he forwarded to me; they were pretty good ones.
Aside from retep, who doesn't have experience in pixel perfect collisions, no one has volunteered to work on the system. I'm in no position to just start working on it; if he is going to finish it he'll have to do so before I finish that list above and do it myself.
Aside from retep, who doesn't have experience in pixel perfect collisions, no one has volunteered to work on the system. I'm in no position to just start working on it; if he is going to finish it he'll have to do so before I finish that list above and do it myself.
1908
As a language, C++ is fairly bloated. That bloat doesn't really get in your way unless you are trying to parse it. The output is typically far from bloated, though there are slight amounts of overhead if you utilize more than C would give you alone.
1909
Announcements / Re: Tentative Todo
« on: June 03, 2010, 07:05:04 pm »
luis: We're going for terrific efficiency.
freezway: That's part of the new instance system, yes.
polygone: Luda doesn't seem to want to continue. I'll ask him about it again sooner or later.
freezway: That's part of the new instance system, yes.
polygone: Luda doesn't seem to want to continue. I'll ask him about it again sooner or later.
1910
Announcements / Re: Tentative Todo
« on: June 03, 2010, 02:40:51 pm »
Painfully aware.
Serp recommends I rename it draw_serplipse().
Serp recommends I rename it draw_serplipse().
1911
Announcements / Re: Tentative Todo
« on: June 03, 2010, 01:58:53 pm »
it draws -something- of an ellipse. It's actually two parabolas stuck together, because serp doesn't believe in sqrt or trig.
1912
Announcements / Tentative Todo
« on: June 03, 2010, 12:14:07 pm »
This is what's going on and what will be going on before release.
Current Todo:
What's just been done recently includes a fix on global declarations as well as testing of all drawing functions. Only draw_ellipse doesn't work, and I will fix that "soon."
Current Todo:
- Implement instance system (Currently working on)
- Implement new var (has already been coded)
- Resolve, once and for all, string() vs string, using a special property of macros. (#define string(x) toString(x))
- Make some changes to the parsers to accommodate some of these and more:
- Implement macros in the syntax check
- Implement C++ operators scope resolve :: and template parameter pass <...>
- Implement GML operators not equal <> , access . , and dynamic array subscript [...] .
- Run a check on subscript passes to global variables
- Finish implementing special treatment for variables declared as const.
What's just been done recently includes a fix on global declarations as well as testing of all drawing functions. Only draw_ellipse doesn't work, and I will fix that "soon."
1913
Announcements / Re: Graduation
« on: June 03, 2010, 10:18:37 am »
Because syntax check can't account for y/16 and x/16 not existing in the global scope. This is the closest thing to a "runtime error" you'll get in ENIGMA.
It may also be because I forgot to tell it to add "var" to globals with no such definition.
It is possible now that fixing this error is within my power. As in, making the syntax check error.
It may also be because I forgot to tell it to add "var" to globals with no such definition.
It is possible now that fixing this error is within my power. As in, making the syntax check error.
1914
Proposals / Re: LGM Bug
« on: June 02, 2010, 02:08:33 pm »
I hadn't realized there was a problem with my SVN repository. For some reason, it reported that the directories were locked and refused to clean up. A clean checkout fixed both problems.
1915
Too lazy to log in to Ism's forum on Vista laptop.
File corruption error with totally-LGM-made GM6:
Unhandled Exception:
org.lateralgm.file.GmFormatException - java.lang.NullPointerException: null
Stack trace:
org.lateralgm.file.GmFileReader.readRooms(GmFileReader.java:877)
org.lateralgm.file.GmFileReader.readGmFile(GmFileReader.java:167)
org.lateralgm.main.Listener.openFile(Listener.java:115)
org.lateralgm.main.Listener.actionPerformed(Listener.java:452)
javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.setPressed(Unknown Source)
javax.swing.AbstractButton.doClick(Unknown Source)
javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
java.awt.Component.processMouseEvent(Unknown Source)
javax.swing.JComponent.processMouseEvent(Unknown Source)
java.awt.Component.processEvent(Unknown Source)
java.awt.Container.processEvent(Unknown Source)
java.awt.Component.dispatchEventImpl(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Window.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)
This was made with an older version of LGM; it may be a bug with the old one that is now corrected. Of course, I'm still seeing "Unhandled exception..." But I don't speak Javanese.
File corruption error with totally-LGM-made GM6:
Unhandled Exception:
org.lateralgm.file.GmFormatException - java.lang.NullPointerException: null
Stack trace:
org.lateralgm.file.GmFileReader.readRooms(GmFileReader.java:877)
org.lateralgm.file.GmFileReader.readGmFile(GmFileReader.java:167)
org.lateralgm.main.Listener.openFile(Listener.java:115)
org.lateralgm.main.Listener.actionPerformed(Listener.java:452)
javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
javax.swing.DefaultButtonModel.setPressed(Unknown Source)
javax.swing.AbstractButton.doClick(Unknown Source)
javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
java.awt.Component.processMouseEvent(Unknown Source)
javax.swing.JComponent.processMouseEvent(Unknown Source)
java.awt.Component.processEvent(Unknown Source)
java.awt.Container.processEvent(Unknown Source)
java.awt.Component.dispatchEventImpl(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
java.awt.Container.dispatchEventImpl(Unknown Source)
java.awt.Window.dispatchEventImpl(Unknown Source)
java.awt.Component.dispatchEvent(Unknown Source)
java.awt.EventQueue.dispatchEvent(Unknown Source)
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.pumpEvents(Unknown Source)
java.awt.EventDispatchThread.run(Unknown Source)
This was made with an older version of LGM; it may be a bug with the old one that is now corrected. Of course, I'm still seeing "Unhandled exception..." But I don't speak Javanese.
1916
Proposals / Re: Recursion
« on: June 01, 2010, 05:48:29 pm »
No, most compiler writers just think that disallowing void main() is stupid.
1917
Announcements / Re: Graduation
« on: June 01, 2010, 01:44:23 pm »
Indeed. If ENIGMA got what it wanted from MinGW, I have no idea why it would freeze. Perhaps it asked a bad question and Make paused for input. Does ENIGMA waste your CPU while it is frozen?
Also, what Windows version/processor architecture are you running? I've not tested ENIGMA on Win7, either bit depth. I can test on Win7 x64 if need be.
Also, what Windows version/processor architecture are you running? I've not tested ENIGMA on Win7, either bit depth. I can test on Win7 x64 if need be.
1918
Announcements / Re: Graduation
« on: May 31, 2010, 03:29:51 pm »
MrJackSparrow: I've not yet heard that one. I'm in the middle of something large right now, but will commit soon enough; it may help if you join the IRC.
Retep: The problem is with your new configuration; Java is set up to run from its own working directory instead of from the directory of the Jar. I'm not sure how Ism could fix that without hacks.
Retep: The problem is with your new configuration; Java is set up to run from its own working directory instead of from the directory of the Jar. I'm not sure how Ism could fix that without hacks.
1919
Announcements / Re: Graduation
« on: May 31, 2010, 12:07:12 pm »
The vast majority of Linux ENIGMA users is on Ubuntu. The rest can probably figure out the name of the package on their platform.
1920
Announcements / Graduation
« on: May 30, 2010, 11:05:55 am »
Of me, not yet ENIGMA. I know many others are graduating about now; congratulations to all of you.
I figure I should repost the method of obtaining and compiling ENIGMA. Again, post bugs and concerns here. At least five individuals have successfully checked out and compiled; don't think that this isn't going to work if it fails a few times, just ask for help.
IRC Channel
ENIGMA has an IRC channel set up on Freenode. Predictably, it is called #enigma-dev. This link may take you there.
Procedure in general is as follows: (Subject to revision; pay attention)
Note: This is only for people who wish to test but do not wish to wait for "stable test," meaning "at least moderately workable pile of fail."
No recent revisions
Dependencies
If you are on Windows, do the following:
- Install an SVN client (either the command line version, or a visual one like RapidSVN or Tortoise)
- Install Code::Blocks ( www.codeblocks.org ) unless you know how to use Make and will put up with outdated makefiles.
- After checking out the SVN (see "Getting ENIGMA"), If this file does not exist, copy it to ENIGMAsystem/additional/zlib/: http://dl.dropbox.com/u/1052740/libzlib.a
If you are on Linux, you will need the following packages:
- g++
- libgl1-mesa-dev (or similar)
- zlib1g-dev (SHOULD be installed already, but Ism's wasn't)
- codeblocks
- svn / rapidsvn / tortoise
- Java (I -strongly- recommend sun-java6-jre)
Getting ENIGMA to Work
Getting ENIGMA
- Check out the SVN repository via the most applicable of the following:
--- From command line, you will use svn co https://enigma-dev.svn.sourceforge.net/svnroot/enigma-dev enigma-dev )
--- From RapidSVN, go to the Repository menu, and select Checkout. Provide the URL https://enigma-dev.svn.sourceforge.net/svnroot/enigma-dev, and specify where you want it downloaded.
- The above will begin downloading ENIGMA. Let it finish.
- Go to ./trunk/
- Go to ./CompilerSource/
- Build it with your choice of these two:
--- From Code::Blocks
------- Open the Code::Blocks project. Find the drop down box that likely reads "Release." If you're on Linux, set it to "Release-Linux."
------- Hit compile (blue gear)
--- With Make
------- Your make is either called `make` or `mingw32-make`; call it with your OS name as the target. For example, `make windows` or `make linux`.
------- Make shouldn't error, but is more likely to than C::B; if it does, post here.
- Done, go back up to Trunk
Running ENIGMA Itself (LGM)
- Run LateralGM, best done with a terminal via "java -jar lateralgm16b4.jar" -- This terminal should have +++++++++++++ at the bottom.
--- If it does not, or if that errors, paste output here. If you compiled with Make, that's probably why.
------ If the terminal errors that java is not a valid application, then you are on Windows.
------ Find "java.exe" and add its directory to your PATH variable from the control panel.
- Make something simple (like a single object drawing a graded circle; that's what I've been using as a preliminary test)
- Under the "Enigma" menu, hit "Run"
- Check the terminal window (the one I hope you used to run LGM) for syntax errors.
--- If there is one that you don't think is correct, post it here. (I'm currently developing the syntax checker).
- Your code has now been secretly translated to C++ behind your back.
- If all went successfully, your game should launch.
Testing the Game You Just "Ran"
ENIGMA should run your game for you. If it does not, and you see no errors in the terminal window, you can do the following:
-Open trunk/ENIGMAsystem/SHELL/ENIGMAengine.cbp in Code::Blocks
-Select your OS from the dropdown box once more (Debug is faster to build, release will run fastest)
-Press Compile
---If anything errors and you think you followed the above correctly, right click the error list, select "Copy Contents to Clipboard," and paste them all here.
-Press run.
---If it doesn't behave as expected, describe what went wrong here.
What now?
Repeat the step starting at "Make something simple" until you're sick of finding bugs.
The most immediate concern is that everyone can achieve a simple circle.
Common Errors
ENIGMA
error: ‘instdata’ was not declared in this scope
--This means you did not actually create a game from LGM (By clicking "Run") before trying to compile it, the compile failed due to syntax errors, or you restarted LGM in the meantime. It isn't really an error.
LateralGM
- SvnKit missing, corrupted, or unusable. Please download and place next to the enigma plugin in order to enable auto-update.
---This is not an error. It is a warning thrown by Enigma.jar, warning you that it's not able to update itself if you don't have SvnKit. Of course, Enigma doesn't need to update itself.
- Unable to load plugin: SvnKit.jar: null: Missing plugin entry point (LGM-Plugin)
- Unable to load plugin: jna.jar: null: Missing plugin entry point (LGM-Plugin)
---These are not errors. They are warnings thrown by LGM indicating that it can't load those files as LGM Plugins -- because they *aren't* LGM Plugins! Basically these are just reminders to the devs that we shouldn't just throw every darned file we need access to in the Plugins folder >_<
I figure I should repost the method of obtaining and compiling ENIGMA. Again, post bugs and concerns here. At least five individuals have successfully checked out and compiled; don't think that this isn't going to work if it fails a few times, just ask for help.
Instructions for obtaining and compiling the ENIGMA R4 public testing copy
IRC Channel
ENIGMA has an IRC channel set up on Freenode. Predictably, it is called #enigma-dev. This link may take you there.
Procedure in general is as follows: (Subject to revision; pay attention)
Note: This is only for people who wish to test but do not wish to wait for "stable test," meaning "at least moderately workable pile of fail."
No recent revisions
Dependencies
If you are on Windows, do the following:
- Install an SVN client (either the command line version, or a visual one like RapidSVN or Tortoise)
- Install Code::Blocks ( www.codeblocks.org ) unless you know how to use Make and will put up with outdated makefiles.
- After checking out the SVN (see "Getting ENIGMA"), If this file does not exist, copy it to ENIGMAsystem/additional/zlib/: http://dl.dropbox.com/u/1052740/libzlib.a
If you are on Linux, you will need the following packages:
- g++
- libgl1-mesa-dev (or similar)
- zlib1g-dev (SHOULD be installed already, but Ism's wasn't)
- codeblocks
- svn / rapidsvn / tortoise
- Java (I -strongly- recommend sun-java6-jre)
Getting ENIGMA to Work
Getting ENIGMA
- Check out the SVN repository via the most applicable of the following:
--- From command line, you will use svn co https://enigma-dev.svn.sourceforge.net/svnroot/enigma-dev enigma-dev )
--- From RapidSVN, go to the Repository menu, and select Checkout. Provide the URL https://enigma-dev.svn.sourceforge.net/svnroot/enigma-dev, and specify where you want it downloaded.
- The above will begin downloading ENIGMA. Let it finish.
- Go to ./trunk/
- Go to ./CompilerSource/
- Build it with your choice of these two:
--- From Code::Blocks
------- Open the Code::Blocks project. Find the drop down box that likely reads "Release." If you're on Linux, set it to "Release-Linux."
------- Hit compile (blue gear)
--- With Make
------- Your make is either called `make` or `mingw32-make`; call it with your OS name as the target. For example, `make windows` or `make linux`.
------- Make shouldn't error, but is more likely to than C::B; if it does, post here.
- Done, go back up to Trunk
Running ENIGMA Itself (LGM)
- Run LateralGM, best done with a terminal via "java -jar lateralgm16b4.jar" -- This terminal should have +++++++++++++ at the bottom.
--- If it does not, or if that errors, paste output here. If you compiled with Make, that's probably why.
------ If the terminal errors that java is not a valid application, then you are on Windows.
------ Find "java.exe" and add its directory to your PATH variable from the control panel.
- Make something simple (like a single object drawing a graded circle; that's what I've been using as a preliminary test)
- Under the "Enigma" menu, hit "Run"
- Check the terminal window (the one I hope you used to run LGM) for syntax errors.
--- If there is one that you don't think is correct, post it here. (I'm currently developing the syntax checker).
- Your code has now been secretly translated to C++ behind your back.
- If all went successfully, your game should launch.
Testing the Game You Just "Ran"
ENIGMA should run your game for you. If it does not, and you see no errors in the terminal window, you can do the following:
-Open trunk/ENIGMAsystem/SHELL/ENIGMAengine.cbp in Code::Blocks
-Select your OS from the dropdown box once more (Debug is faster to build, release will run fastest)
-Press Compile
---If anything errors and you think you followed the above correctly, right click the error list, select "Copy Contents to Clipboard," and paste them all here.
-Press run.
---If it doesn't behave as expected, describe what went wrong here.
What now?
Repeat the step starting at "Make something simple" until you're sick of finding bugs.
The most immediate concern is that everyone can achieve a simple circle.
Common Errors
ENIGMA
error: ‘instdata’ was not declared in this scope
--This means you did not actually create a game from LGM (By clicking "Run") before trying to compile it, the compile failed due to syntax errors, or you restarted LGM in the meantime. It isn't really an error.
LateralGM
- SvnKit missing, corrupted, or unusable. Please download and place next to the enigma plugin in order to enable auto-update.
---This is not an error. It is a warning thrown by Enigma.jar, warning you that it's not able to update itself if you don't have SvnKit. Of course, Enigma doesn't need to update itself.
- Unable to load plugin: SvnKit.jar: null: Missing plugin entry point (LGM-Plugin)
- Unable to load plugin: jna.jar: null: Missing plugin entry point (LGM-Plugin)
---These are not errors. They are warnings thrown by LGM indicating that it can't load those files as LGM Plugins -- because they *aren't* LGM Plugins! Basically these are just reminders to the devs that we shouldn't just throw every darned file we need access to in the Plugins folder >_<
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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 »