Pages: [1] 2 3 4
  Print  
Author Topic: I'm bookmarking this day  (Read 8578 times)
Offline (Male) Josh @ Dreamland
Posted on: September 09, 2009, 10:58:18 PM

Prince of all Goldfish
Developer
Location: Ohio, United States
Joined: Feb 2008
Posts: 2946

View Profile Email
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.

Code: [Select]
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:

Code: [Select]
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
Offline (Male) RetroX
Reply #1 Posted on: September 10, 2009, 06:36:37 PM

Master of all things Linux
Contributor
Location: US
Joined: Apr 2008
Posts: 1055
MSN Messenger - classixretrox@gmail.com
View Profile Email
You could shoot for 11/10/09.
Logged
My Box: Phenom II 3.4GHz X4 | ASUS ATI RadeonHD 5770, 1GB GDDR5 RAM | 1x4GB DDR3 SRAM | Arch Linux, x86_64 (Cube) / Windows 7 x64 (Blob)
Quote from: Fede-lasse
Why do all the pro-Microsoft people have troll avatars? :(
Offline (Male) Josh @ Dreamland
Reply #2 Posted on: September 10, 2009, 07:35:44 PM

Prince of all Goldfish
Developer
Location: Ohio, United States
Joined: Feb 2008
Posts: 2946

View Profile Email
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
Offline (Unknown gender) Game_boy
Reply #3 Posted on: September 11, 2009, 10:23:14 AM
Member
Joined: Apr 2008
Posts: 228

View Profile
Can you tell us what it won't do?
Logged
Offline (Male) Josh @ Dreamland
Reply #4 Posted on: September 11, 2009, 02:19:59 PM

Prince of all Goldfish
Developer
Location: Ohio, United States
Joined: Feb 2008
Posts: 2946

View Profile Email
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
Offline (Male) RetroX
Reply #5 Posted on: September 11, 2009, 02:45:53 PM

Master of all things Linux
Contributor
Location: US
Joined: Apr 2008
Posts: 1055
MSN Messenger - classixretrox@gmail.com
View Profile Email
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.
WINE has the ability to load DLLs; you can use the libraries if you have it installed.
Logged
My Box: Phenom II 3.4GHz X4 | ASUS ATI RadeonHD 5770, 1GB GDDR5 RAM | 1x4GB DDR3 SRAM | Arch Linux, x86_64 (Cube) / Windows 7 x64 (Blob)
Quote from: Fede-lasse
Why do all the pro-Microsoft people have troll avatars? :(
Offline (Unknown gender) luiscubal
Reply #6 Posted on: September 11, 2009, 06:19:42 PM
Member
Joined: Jun 2009
Posts: 452

View Profile Email
Simple: don't support DLLs on Linux but instead add support for lib.so files!
It's really simple, actually - just google for dlopen.
Logged
Offline (Unknown gender) Game_boy
Reply #7 Posted on: September 13, 2009, 08:04:01 AM
Member
Joined: Apr 2008
Posts: 228

View Profile
This has probably been asked before, maybe even by me (no forum search function), but will Enigma-produced games be multithreaded? What about the compiler, will that use multiple cores?
Logged
Offline (Male) Josh @ Dreamland
Reply #8 Posted on: September 13, 2009, 09:48:35 AM

Prince of all Goldfish
Developer
Location: Ohio, United States
Joined: Feb 2008
Posts: 2946

View Profile Email
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
Offline (Unknown gender) Game_boy
Reply #9 Posted on: September 13, 2009, 11:01:15 AM
Member
Joined: Apr 2008
Posts: 228

View Profile
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
Offline (Male) RetroX
Reply #10 Posted on: September 13, 2009, 11:44:47 AM

Master of all things Linux
Contributor
Location: US
Joined: Apr 2008
Posts: 1055
MSN Messenger - classixretrox@gmail.com
View Profile Email
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?
Each thread has to run things in an order; you can't do two things at once in one thread.  If you tell one thread to sleep for 2000 milliseconds, you're stuck waiting 2000 milliseconds before you can do anything else on that thread.

Two threads gives you the ability to do two things at once, therefore being faster.
Logged
My Box: Phenom II 3.4GHz X4 | ASUS ATI RadeonHD 5770, 1GB GDDR5 RAM | 1x4GB DDR3 SRAM | Arch Linux, x86_64 (Cube) / Windows 7 x64 (Blob)
Quote from: Fede-lasse
Why do all the pro-Microsoft people have troll avatars? :(
Offline (Unknown gender) luiscubal
Reply #11 Posted on: September 13, 2009, 11:51:56 AM
Member
Joined: Jun 2009
Posts: 452

View Profile Email
Multithreading is also great on multi-core machines.
Logged
Offline (Male) RetroX
Reply #12 Posted on: September 13, 2009, 12:35:17 PM

Master of all things Linux
Contributor
Location: US
Joined: Apr 2008
Posts: 1055
MSN Messenger - classixretrox@gmail.com
View Profile Email
Multithreading is also great on multi-core machines.
Threading between cores is called hyperthreading, not multi-threading.  Multi-threading is within one core.
Logged
My Box: Phenom II 3.4GHz X4 | ASUS ATI RadeonHD 5770, 1GB GDDR5 RAM | 1x4GB DDR3 SRAM | Arch Linux, x86_64 (Cube) / Windows 7 x64 (Blob)
Quote from: Fede-lasse
Why do all the pro-Microsoft people have troll avatars? :(
Offline (Unknown gender) Game_boy
Reply #13 Posted on: September 13, 2009, 01:23:30 PM
Member
Joined: Apr 2008
Posts: 228

View Profile
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
Offline (Male) Josh @ Dreamland
Reply #14 Posted on: September 13, 2009, 09:59:20 PM

Prince of all Goldfish
Developer
Location: Ohio, United States
Joined: Feb 2008
Posts: 2946

View Profile Email
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
Pages: [1] 2 3 4
  Print