ENIGMA Forums

General fluff => Announcements => Topic started by: Josh @ Dreamland on January 18, 2009, 12:00:36 am

Title: Bragging
Post by: Josh @ Dreamland on January 18, 2009, 12:00:36 am
It's not bragging if you can back it up, right?

Ism and I implemented a syntax checker. Yay. Now you can test if your code will compile (or at least, SHOULD compile) before you press the actual button, and have to go digging, yay.

Right now, Ism just displays my results in a message box. I'm hoping she makes it highlight the line soon, but that's not what I'm here to brag about.

I repeated the line
if a do if a=0 b=0 else c=d  until x=0 else d=e f=0.1
about 2800 times, followed by
a b
at the very end.

I ran syntax check in LGM. Finished in about 3.3 seconds.
I then ran the same code through... another program that some of you may be familiar with. It took about 15.1 seconds.

So I am in a pretty decent mood, considering that even accounting for the overhead from passing files back and forth between ENIGMA and LGM, we're still outperforming other editors by... a lot.

With less nested things, the times are closer. Like 2 seconds vs 2.5. But ENIGMA's always ahead.

I guess that's the beauty of not generating a token tree every time you need to check syntax.

Also, ENIGMA not only gives line number, but an absolute index.
Say you have draw_line(1,2,3,4,5,6,7). It'll return the position of the comma following the 4. That way it's less confusing. I want Ism to highlight that, too, but again, we'll see.

Anyway, I'm tired. It's like... Not Saturday anymore. Gnight.
Title: Re: Bragging
Post by: Game_boy on January 18, 2009, 07:53:55 am
Great! Unlike that other software, you'll be able to display a syntax check for the whole game at one rather than one piece of code in one object. That should cut down on the number of compiles you have to do.

Would it be possible to add a trace function, where any syntax error shows you the path of functions it took to get there?
Title: Re: Bragging
Post by: score_under on January 18, 2009, 07:57:50 am
I then ran the same code through... another program that some of you may be familiar with. It took about 15.1 seconds.
Is that the obfuscator, or is it GCC?

EDIT: Oh, GM7 >.< why do I always overlook the obvious?

OH, and I have an amazing idea... Compile Enigma games in Visual C++ for debugging (Have you ever used that debugger? Even a 5-year-old could fix a bug in their program with that).
Title: Re: Bragging
Post by: Josh @ Dreamland on January 18, 2009, 08:14:13 am
score_under-- That'd be great for me, but not for anyone else. (I happen to use GDB, which comes with Code::Blocks and Dev-C++)
For actual users, I want to have a full featured debug window. I have plans for it that are so big, I'ma keep them to myself for fear of sounding stupid.
Title: Re: Bragging
Post by: Game_boy on January 18, 2009, 08:16:01 am
... Visual C++ for debugging ...

I'm upset now. ENIGMA should never be tied to proprietary applications, especially Microsoft ones. Microsoft's idea of a C++ implementation is a nonstandard, unpredictable mess and any legitimate code will probably fail to compile. VC++ will probably be somehow corrupted with WinAPI too.
Title: Re: Bragging
Post by: score_under on January 18, 2009, 09:01:47 am
... Visual C++ for debugging ...

I'm upset now. ENIGMA should never be tied to proprietary applications, especially Microsoft ones. Microsoft's idea of a C++ implementation is a nonstandard, unpredictable mess and any legitimate code will probably fail to compile. VC++ will probably be somehow corrupted with WinAPI too.
You've never used VC++, have you? And as I said... for debugging. Not for the game's debug mode (different) or for the actual game.
Title: Re: Bragging
Post by: Josh @ Dreamland on January 18, 2009, 09:18:54 am
Either way, I wanna stay with GCC and GDB.

Oh, and Game_Boy, what did you mean with the syntax trace? That shouldn't be needed, since you check each individual file. If you mean check the outputted code, it should never be syntactically incorrect.
Title: Re: Bragging
Post by: Game_boy on January 18, 2009, 09:39:18 am
... Visual C++ for debugging ...

I'm upset now. ENIGMA should never be tied to proprietary applications, especially Microsoft ones. Microsoft's idea of a C++ implementation is a nonstandard, unpredictable mess and any legitimate code will probably fail to compile. VC++ will probably be somehow corrupted with WinAPI too.
You've never used VC++, have you? And as I said... for debugging. Not for the game's debug mode (different) or for the actual game.

You are proposing to compile an ENIGMA source file with VC++ for debugging purposes, yes? (If not, what do you mean?) I doubt it would work straight off, and I don't want any level of official dependency even for debugging purposes. If you can get it to compile with VC++, then great.

--

Oh, and Game_Boy, what did you mean with the syntax trace? That shouldn't be needed, since you check each individual file. If you mean check the outputted code, it should never be syntactically incorrect.

Sorry. Got confused between syntax and other errors. What I meant was the Game Maker thing where it says:

Code: [Select]
Error in action number 1 of obj_something
in script scr_process
in script scr_get_value

<<Actual Error here>>

Except it should show exactly which line of code in obj_something called scr_process, and which line of scr_process called scr_get_value. In Game Maker, it's annoying trying to find which specific line caused it if there are multiple calls to one script in another.

Title: Re: Bragging
Post by: Josh @ Dreamland on January 18, 2009, 11:12:39 am
Ah, okay. ENIGMA has been doing that during compile since... R3, for sure. Maybe R2.
It does that for the few runtime errors, too.
Title: Re: Bragging
Post by: RetroX on January 18, 2009, 11:54:36 am
Would it be possible to lower compile time?

EDIT: Also, this (http://www.google.com/search?q=ENIGMA+Game+Maker).
Title: Re: Bragging
Post by: Josh @ Dreamland on January 18, 2009, 12:35:32 pm
Retro--
Compile time has been cut at least in half since R3.

And nice.
Title: Re: Bragging
Post by: Game_boy on January 18, 2009, 01:22:38 pm
Ah, okay. ENIGMA has been doing that during compile since... R3, for sure. Maybe R2.
It does that for the few runtime errors, too.


OK. I haven't tried to make a real game with ENIGMA yet so I didn't know. Um, I suppose I should have tested those releases, but it's hard to distinguish between bugs and unimplemented stuff.
Title: Re: Bragging
Post by: RetroX on January 18, 2009, 07:34:13 pm
Retro--
Compile time has been cut at least in half since R3.
It has?  Sorry, I haven't checked since.
Title: Re: Bragging
Post by: Josh @ Dreamland on January 19, 2009, 09:52:08 am
I haven't released anything since. XD
But yeah, I did cut it by amazing proportions. It used to take 15 seconds, now it takes seven or so.
Title: Re: Bragging
Post by: Rusky on January 19, 2009, 11:44:47 am
Not sure what you're doing to speed it up, but one thing would be separate object files for different parts of the project. Then if you're trying to fix a bug and you have to run/edit/run/edit/etc over and over all it'd have to do is compile one file and then link, which is a lot faster. The IDE could also keep track of what's been changed so it only has to regenerate the new stuff.
Title: Re: Bragging
Post by: Josh @ Dreamland on January 19, 2009, 01:00:21 pm
That's what I did. Though no, I'm not implementing change tracking, because LGM isn't my forte, and neither's Java.
Title: Re: Bragging
Post by: score_under on January 19, 2009, 02:31:58 pm
This has been bugging me for a while:

Window licker? What the hell?
Title: Re: Bragging
Post by: RetroX on January 19, 2009, 05:35:29 pm
Heh.

Quote
Not only that, but ENIGMA has true compilation for executables instead of attaching game data onto a runner, ensuring your projects can't be stolen or modified with ease.

You should fix that.
Title: Re: Bragging
Post by: Rusky on January 20, 2009, 09:46:55 am
Err, fix it to what? It's true, isn't it?

And what's so hard about change tracking? Don't you just say "changed = true" in the onChange event or whatever and then "changed = false" when you compile?
Title: Re: Bragging
Post by: score_under on January 21, 2009, 01:07:23 pm
Heh.

Quote
Not only that, but ENIGMA has true compilation for executables instead of attaching game data onto a runner, ensuring your projects can't be stolen or modified with ease.

You should fix that.
They can't be stolen with ease, but modification is usually a piece of cake.
Title: Re: Bragging
Post by: RetroX on January 21, 2009, 04:58:10 pm
"With ease" implies that they can't easily be modified but still can.  ENIGMA can be, but is extremely difficult.
Title: Re: Bragging
Post by: score_under on January 21, 2009, 05:20:00 pm
"With ease" implies that they can't easily be modified but still can.
And I'm saying it's easy.

Just like making an EXE which will allow you to choose an EXE made with GM7lite, and run it as Pro.

(If you rename any gm7 exe to "Runner.exe" (case sensitive) then it does something similar, but detects whether or not it's pro or lite, and "behaves".)
Title: Re: Bragging
Post by: Josh @ Dreamland on January 24, 2009, 09:02:09 am
/me wonders if he shouldn't delete these posts before a certain company official has a conniption
Title: Re: Bragging
Post by: score_under on January 24, 2009, 09:57:42 am
/me wonders if he shouldn't delete these posts before a certain company official has a conniption
Meh, I haven't given anything away except for 1 vestigial undocumented feature.

And, uhh... conniption? The suggestions my spellchecker gives for that: Conscription, Conception (!), Consumption, Connection.
Title: Re: Bragging
Post by: RetroX on January 25, 2009, 05:45:11 pm
Erm, WTF.  My avatar is 48x48 now?
Title: Re: Bragging
Post by: score_under on January 26, 2009, 01:08:27 pm
64x64 here.