ENIGMA Development Environment
Website is in read-only mode due to a recent attack.

Show Posts

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.


Messages - Josh @ Dreamland

2131
Announcements / Re: Anaphase
« on: April 09, 2010, 02:37:48 PM »
Fair enough. The compiler gets priority; I'll tell you when to update.

2132
Announcements / Re: Anaphase
« on: April 09, 2010, 02:32:41 PM »
"You can write a code editor in a day?"
Welcome to not-GML. ;)

"Also, what's so wrong with our code editor anyways?"
Can't drag text, no line numbers,... does tab increase all selected area's indent? *checks* Nope, it replaces selected text with a tab. No semblance of intelligent indentation, for better or for worse. Only highlights parentheses to the right of mouse instead of both sides, left having precedence. Incorrectly highlights multiple aspects of GML, most aspects of C. Doesn't highlight literals of any kind. Inextensible for syntax check purposes, or most other purposes.

2133
Announcements / Re: Anaphase
« on: April 09, 2010, 01:06:49 PM »
Quite a bit. ENIGMA finally stops segfaulting if it fails to load, as Ism just stops calling it if it returns nonzero. LGM will only show ENIGMA if it succeeds.
Also, it now works from platform to platform, right off the bat, provided only that it can find a version of the GCC. If it can't, Ism will ask for it.
I'm not sure about including JNA with the repository; I've no idea on its license (though I can't imagine it would forbid doing so), and Ism didn't include it...

If you check out the SVN and run a game with ENIGMA, right now, it will write all the files needed for compile, but it won't call GCC as I'm swapping out R3's system for Make. Furthermore, I'm swapping out R3's variable initializer for a less dated equivalent; this one will more accurately detect scoping now that we're mostly C++ compliant. The SVN repo will make you declare your variables until I keep track of used, undeclared ones as well as the declared ones. (This will be fixed first, probably).

Ism doesn't yet keep track of whitespace. She'll be working on that. LGM's code editor sucks. I'll be taking an attempt at coding a better one today, I believe.


2134
Issues Help Desk / Re: Map loading
« on: April 07, 2010, 02:37:07 PM »
Waiting for a thread to finish loading something is going to be risky.
I can't think of a good way to do it faster in GML... Threads will have to work for now.

2135
Announcements / Re: Anaphase
« on: April 07, 2010, 07:53:13 AM »
A[100]=0 isn't anything special.

In GM, a map is used for array indexes, as far as I can discern.
A[100] creates a single new node in the map, and does some rearranging to improve lookup time later.

In ENIGMA, A[100] = 0 will in fact /allocate/ an array of that size for you to use, and will set the 100th element to zero.

I was considering adding a var::drop() or array_free(var& x) to take care of that in ENIGMA.
As far as I know, you can't deallocate an array in GM, except temporaries. Which are automatically freed at the end of the code.

2136
Off-Topic / Re: The grand c++ vs everyone else debate
« on: April 07, 2010, 07:50:00 AM »
Ah. Disk size. Now fix my 30 dollar / mo 100 KB / sec internet connection.
Also, I'm sure Australians aren't happy, considering their bandwidth usage is metered. They are capped in speed if they go over a certain limit.

2137
Off-Topic / Re: The grand c++ vs everyone else debate
« on: April 06, 2010, 09:42:03 PM »
Rusky--
Yes, everyone that's done any real C knows that. What I was getting at is that Java likely lacks a way to specify which variables you would like to remain in the registers, as C/C++ does. I find it likely that Java lacks such a flag, seeing that it doesn't even have "unsigned."

2138
Off-Topic / Re: Music?
« on: April 06, 2010, 08:27:00 PM »
Game_boy:
You pretty much ARE me, then. I also hate basically all lyrics. Those first two songs... I love them. Ever listen to any OC Remixes?

2139
Off-Topic / Re: The grand c++ vs everyone else debate
« on: April 06, 2010, 08:24:07 PM »
"(such as register allocation)"
I know Java lacks "unsigned," but I figure Java programmers would know about flags such as that and "register," which, as you say, 'allocates' a register. Not in Visual Studio, of course, as Microsoft shares the new philosophy that some day, computers will be able to run Windows 7 and Crisis! By that point in time, a typical programmer won't even need to know what a register is, or deal with nasty, old C++. Unless they intend to program for something other than the PC.

2140
Off-Topic / Re: The grand c++ vs everyone else debate
« on: April 06, 2010, 01:34:07 PM »
I see people comparing the Java-C++ relationship to that of C++-assembly. The difference seems to be that in C++, I can say asm("") to get to a faster language. In Java, you're pretty much stuck with what you have. Getting ENIGMA, as a DLL, to work with LateralGM has been one of the most tedious processes I've ever undergone while programming. The only worse experience was in GML, where I'm never sure if it's an error or if I'm truly missing something (twice out of three it's proven to be the former; the third time was inconclusive). But that's neither here nor there.

I am reasonably certain that everyone in this topic is aware of the concept of JIT compilation. It offers a lot of neat tricks. The problem is, it requires a large runtime that isn't necessarily portable to all systems.

High, high level scripting languages (GML is NOT in this group; GML offers so amazingly little that it isn't funny), I'm talking mostly about Python and Haskell, maybe even Lua (though I'm not aware of the particulars of that language), are relatively easy to embed in a C++-compiled program. By relatively, I mean easily done with a good library. Granted, true interface is difficult, but small-scale embedding is just not that hard to pull off. My best example is JavaScript via V8, hence me considering using it for the interpreter. V8 seamlessly integrates the two languages; I can call JavaScript from C++; the JavaScript can call C++ methods and functions. And it's JIT compiled, which means it has amazing speed relative to regular, interpreted versions.


2141
Announcements / Re: Anaphase
« on: April 05, 2010, 03:11:22 PM »
"Proving all indexes to be in-bounds at compile-time is perfectly possible."
Given a large number of conditions are met, sure.

"C++ is the best PERIOD"
Don't put words in my mouth. C++ is the best for me.

2142
Function Peer Review / Re: Brainstorming
« on: April 05, 2010, 01:10:02 PM »
R1 used templates for parameters for a while. I thought it was a great idea at the time, praised Dylan for it... It's a terrible idea in retrospect.

2143
Off-Topic / Re: where to learn C++
« on: April 05, 2010, 01:05:17 PM »
"It's that cplusplus.com has a terrible way of explaining them."
This is what I was thinking. Hopefully using them in ENIGMA breaks down the disoriented feeling you get when working with C++ for the first time. This way, you don't have to cope with the loss of knowledge of all the language's functions.

2144
Announcements / Re: Anaphase
« on: April 05, 2010, 08:42:04 AM »
Thanks for understanding, guys. Does mean a lot.
freezway: I promise. :P

2145
Announcements / Re: Anaphase
« on: April 04, 2010, 11:37:08 PM »
MrJackSparrow2:
I believe you're right that the iPhone is some sort of Unix. If nothing else, I know C++ is an option on it. If the iPhone has its own GCC, porting will be basically effortless. However, acquiring the API will be tedious for not only me, but users. Apple requires licenses and multiple-hundred-megabyte downloads to develop anything.

Too much work to port? Nah. To acquire? Possibly. It is something I would like to see happen. I'd say the odds are better than XBox 360, but I lack the info to make an educated guess on how that will turn out.

Freezway:
None of the UI tricks from R3 work. I'm unsure of with() and (a).b's standings following this last edit. What does work is finding the GCC, parsing the ENIGMA engine (this is the HUGE accomplishment of R4) parsing... local? Seems to work now; conducting further testing as we speak. Collision system is a no until it stops being "barf." Ism's status is "I can't really think right now. Ask me again tomorrow or something," meaning successful output redirection (as in R4) is not happening tonight. I have been putting off projects and homework for the last week working, so I need to allocate three hours or so tomorrow to the cause. Compiling a basic game has worked off and on as I made fundamental changes in structure for the sake of organization and faster compile. Organization is in preparation for more easily replaced systems (particularly the window system, which will change constantly from platform to platform). Distinguishing that version works, thanks to locating the GCC (which also works, as mentioned above).


Quote
Oh Josh, how will files and such work? I am eagerly learning C++. Will I be able to see the output files? I'm sure it will look like shit due to parsing taking out syntax tabbing but I'll live. Is this a possibility; seeing the C++ before it compiles?
You can look at all the object code you want by going to the Preprocessor_Environment_Editable/ folder and looking at the sources therein. You'll want IDE_EDIT_object*.cpp. The code will be missing comments from the original GML, but will be decently well-structured and possible auto-commented.

Quote
Also, I don't know C++ very well, but I think I heard you can compile sort of "engines" into lib files I think. Could we possibly make a lib for the collision system to cut compile time? I'm sorry if I got this completely wrong, as I said I'm a damn n00b with C++.
Presently the majority of the engine is left in unlinked object files to save time. Linking them into one big engine file could possibly save more time, and has been a consideration for some time. I have no figures. But yes, that's a good idea and is worth looking into.