Josh @ Dreamland
|
|
Posted on: September 09, 2009, 10:58:18 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
I called it fair and square.
Today consisted mostly of school and battling code. But I had fun, and made another awesome dent, at least.
Macros: a: Serves as typename : struct { b: Serves as typename : struct { member1: int member2: int };
itsanintyoubastard: int nested_struct_instance: b };
auto: Serves as typename bool: Serves as typename char: Serves as typename socks: int colligma: namespace { a: int b: float c: double d: somethin e: somethin f: char g: int Dereference path: (params = 0)</group> h: int Dereference path: </group>[]*</group> somethin: Serves as typename : struct { d: int };
};
const: Serves as typename double: Serves as typename effing_a: a float: Serves as typename int: Serves as typename lime: Serves as typename : struct { candy: bool disease: int };
long: Serves as typename register: Serves as typename short: Serves as typename signed: Serves as typename some_big_ass_function: int Dereference path: (params = 0)</group> static: Serves as typename tt1: Serves as typename : struct { tt2: Serves as typename : struct { tt3: Serves as typename : struct { a: int };
tt3i: tt3 };
tt2i: tt2 };
tt1i: tt1 unsigned: Serves as typename volatile: Serves as typename
That was generated from this code:
struct a
{
int itsanintyoubastard;
struct b
{
int member1, member2;
} nested_struct_instance;
} effing_a;
namespace colligma
{
int a;
float b;
double c;
struct somethin
{
int d;
} d;
somethin e;
const mutable char f;
long unsigned int (h)*[2];
int g()
{
heh; this does nothing;;;;;;
}
}
int some_big_ass_function() { some code }
int socks;
struct tt1 { struct tt2 { struct tt3 { int a; } tt3i; } tt2i; } tt1i;
struct lime { int disease; bool candy; int operator + (); }; Pretty awesome. Almost awesome enough to cut it. Rusky will be amused to know I just moved a 500 line if statement to its own source file. Hahahahahaha. That thing was getting in MY way. Will probably move more.
Things you may have noticed: Supports nested bloody everything. Reports types. Reports references (including functions) in some stack for reverse-iteration. Ignores code. Clunks out at operator+ because it's skipping another huge-ass if statement I just moved. End of list.
It's damn late, and I'm tired. I'll be up at six tomorrow, so. Just bookmarking this day; it's still mine. (I'll prolly shoot for some [nearly] equally monumental day coming up, which I will justify with some line of BS.)
Ism is working on an SVN-based updater. This is after we fixed her computer, which is also on Ubuntu, that decided to take a dump and lose her partition table. Through some googling we managed to get it working again from a LiveCD.
Would have made an awesome fish tale if we'd still had time to finish. Nyet...
And night.
|
|
« Last Edit: September 09, 2009, 11:00:21 pm by Josh @ Dreamland »
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
|
Josh @ Dreamland
|
|
Reply #2 Posted on: September 10, 2009, 07:35:44 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
That'd be easy as pie. Like I was saying yesterday, and as the above demonstrates, the CFile parser is REALLY close to completion. Right now I'm working on parameter declarations, as those require a syntax exception I'm not fond of making. After that, I just have to tell it to recognize the template keyword, which is easy, The template system's already integrated, anyway, just needs the initializer and any debugging that hopefully won't follow.
Then I need to make sure the formatter parser knows what to do with the feedback, and same with syntax checker.
Then I'll make sure it can still compile a game... Then I'm done...
Perhaps we need some semi-public pre-release testing. I'm thinking it'll just be for forum frequent-fliers, meaning don't tell anyone. I'll start advertising after things work, and a couple things I'm itching to do are finished.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
|
Josh @ Dreamland
|
|
Reply #4 Posted on: September 11, 2009, 02:19:59 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
I'm unsure of timeframe once more, now that 9's have evaded me. This is what would be in a semi-quick R4. For ASAP, remove anything that isn't already being implemented.
Certainly not 3D, or full enough Wii integration to use. Almost certainly not paths. Possibly not sounds, but those are second priority only to backgrounds. It is unlikely that I won't add backgrounds. Tiles, on the other hand, we will see. (It's a matter of time, not ease or capability. Some things will be saved for after there's a working updater and things have settled).
Maybe not Ism's almost-mplay. Not sure on that one.
No interpreter, sorry. I'll see about debug mode as I work with the compiler.
New instance system... I might put it on hold if everything works perfectly, in fear of messing it up again.
DLLs are in, though. Expect them. (Windows only, of course, unless someone has a brilliant plan for working with them on Linux somehow. I've not looked into the matter at all, and although I don't personally think I can run a Windows DLL on Linux, I've heard rumor from someone that there's some way.)
No extensions. But I won't say never.
Limited DnD. (Only the most basic of action_whatever() will be defined at this point, but code flow should work as you are used to)
|
|
« Last Edit: September 11, 2009, 02:21:40 pm by Josh @ Dreamland »
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
|
|
|
Josh @ Dreamland
|
|
Reply #8 Posted on: September 13, 2009, 09:48:35 am |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
Was planning on having the ability to thread a script, and *possibly* move an instance to a new thread. There's no reason to multithread the compiler, that I can think of. GCC is the labor intensive one, and it is probably multithreaded.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
Game_boy
|
|
Reply #9 Posted on: September 13, 2009, 11:01:15 am |
|
|
Joined: Apr 2008
Posts: 228
|
Was planning on having the ability to thread a script, and *possibly* move an instance to a new thread. There's no reason to multithread the compiler, that I can think of. GCC is the labor intensive one, and it is probably multithreaded.
I meant GCC for the latter, and yes I suppose it's out of your control on that. I don't really understand what happens when you run two threads. You wouldn't be able to access data the other thread is using, right?
|
|
|
Logged
|
|
|
|
|
|
|
Game_boy
|
|
Reply #13 Posted on: September 13, 2009, 01:23:30 pm |
|
|
Joined: Apr 2008
Posts: 228
|
Multithreading is also great on multi-core machines.
Threading between cores is called hyperthreading, not multi-threading. Multi-threading is within one core.
No. Hyperthreading (HTT) is Intel's proprietary brand of Simultaneous Multithreading (SMT) which is a CPU feature that allows you to run two threads at once on one core at the same time (as opposed to slicing CPU time into segments and using some cycles on each thread). It allows you to use idle execution units when a CPU is waiting for a memory request on the other thread at the cost of increased die size. Multithreading is running two threads at all, whether on one core or many.
|
|
« Last Edit: September 13, 2009, 01:25:38 pm by Game_boy »
|
Logged
|
|
|
|
Josh @ Dreamland
|
|
Reply #14 Posted on: September 13, 2009, 09:59:20 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
Think of it this way. If I let you multithread your object list, one object could be lagging like hell on one thread while the other worked fine. They're like mini-processes under one name. However. Synchronizing threads is a notorious bitch, except for some bloated Microsoft APIs, which I'm not touching anyway.
What that means: Assuming I could make a separate function list on a new thread, in addition to some confusion with instance_exists (like an instance_sortof_exists()), I can't think of a way right now that objects from other threads could draw anything. (Aside from me calling it again in the first thread).
As retro said, you tell one thread to sleep, it's busy while it does. If that thread is sleeping or lagging, then, I'll have no way of telling it to draw. And frameskipping... probably doesn't work between threads. I have one GL context. So automatic threaded draw is out of the question.
HOWEVER. Once surfaces are figured out (as in, functional on more than 1 in 10 users' cards), I imagine the more... conceptually strong users could figure out how to use them to thread drawing. (IE, a thread2 object that draws global.second_thread_surface)
As far as multithreaded draw with depth... Right now, I'm really tired, so it might just be sleep talking, but I can't even think of a way to do depth between threads. Each thread would be its own "layer" as in GIMP and Photoshop, I imagine.
Another consideration would be threaded scripts. Those could easily work in the background, without much need for automatic sync.
|
|
« Last Edit: September 13, 2009, 10:04:23 pm by Josh @ Dreamland »
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
|