How to compile .inc files

Alright folks...we are using RPE and DOORS.  Documents publish really well.  However, we noticed that the default .dxl script (doorsToXml9301.dxl) is just a dxl with #includes of .inc files.  I believe they are using these .inc files for proprietary reasons, which is great for them, but I have two issues:

1) When RPE runs, it get's exponentially slower with more objects.  We have a module with 21K+ objects, and I can assure you I have done everything humanly possible to make this all run faster (condition statements in my RPE Template, filter default view, etc.)  The total process takes 6+ hours.  This is far too long and is becoming a serious issues.  So, I would like to know what is happening inside these .inc files.  Is it possible to get that?

2) Say I am not allowed to know...perhaps I can re-write them my own way.  But, if I re-write them, I would like to license them with my company's information and compile them into .inc files, as IBM has done with theirs.  How do I compile these .inc files for use within .dxl?  What are the "rules" to doing that?  Are there restrictions?  Do I have to use a specific compiler?

Please advise!  Thanks in advance for all the hard work!

Scott


ScottKirkwood - Thu Apr 06 10:35:29 EDT 2017

Re: How to compile .inc files
PekkaMakinen - Thu Apr 06 13:48:13 EDT 2017

You don't. DXL is an interpreted language, not compiled, the include option just loads an external file to be interpreted.

IBM has encrypted those include files though, to protect their IP.
 

Re: How to compile .inc files
ScottKirkwood - Thu Apr 06 13:51:19 EDT 2017

Okay...how would I go about creating .inc files which I too can call as part of my .dxl? Do I need to use gcc, or can I use some other program? I am trying to understand how dxl interprets those .inc files.

Re: How to compile .inc files
Mike.Scharnow - Fri Apr 07 11:51:50 EDT 2017

ScottKirkwood - Thu Apr 06 13:51:19 EDT 2017
Okay...how would I go about creating .inc files which I too can call as part of my .dxl? Do I need to use gcc, or can I use some other program? I am trying to understand how dxl interprets those .inc files.

.inc files are just normal .dxl files with another file extension. In C they would be called .h files. See https://www.ibm.com/developerworks/community/forums/html/topic?id=a6069b92-b770-4549-8c85-a911ec6c5930

Re: How to compile .inc files
ScottKirkwood - Fri Apr 07 12:54:40 EDT 2017

Mike.Scharnow - Fri Apr 07 11:51:50 EDT 2017

.inc files are just normal .dxl files with another file extension. In C they would be called .h files. See https://www.ibm.com/developerworks/community/forums/html/topic?id=a6069b92-b770-4549-8c85-a911ec6c5930

So, if you look at the doorsToXml9301.dxl file that I attached in my original post, you will see various .inc files.  I was curious, so I opened one of those .inc files.  The attached image is what I see.  As you too can see, this .inc file is compiled.

So, while I COMPLETELY understand the argument that .dxl is "interpreted", .inc are compiled, and thus the code is proprietary.

You said,

.inc files are just normal .dxl files with another file extension. In C they would be called .h files.

I would have to respectfully disagree.  In C, header files (.h) are raw text files, just as much as the .c files, except that in order to "run" that code, a compiler creates machine language out of ALL of the code, thus compiling a binary, of which the binary is "run".

Again, this application was found as part of the default installation of rpe-1.3.0 (and I'm sure this same implementation is used in older versions as well).

So, back to the question....how would I too be able to create a .inc (a compiled format) containing functions which we need for proprietary use??

 

Thanks for helping!

Scott


Attachments

inc file.png

Re: How to compile .inc files
Mike.Scharnow - Fri Apr 07 14:54:10 EDT 2017

ScottKirkwood - Fri Apr 07 12:54:40 EDT 2017

So, if you look at the doorsToXml9301.dxl file that I attached in my original post, you will see various .inc files.  I was curious, so I opened one of those .inc files.  The attached image is what I see.  As you too can see, this .inc file is compiled.

So, while I COMPLETELY understand the argument that .dxl is "interpreted", .inc are compiled, and thus the code is proprietary.

You said,

.inc files are just normal .dxl files with another file extension. In C they would be called .h files.

I would have to respectfully disagree.  In C, header files (.h) are raw text files, just as much as the .c files, except that in order to "run" that code, a compiler creates machine language out of ALL of the code, thus compiling a binary, of which the binary is "run".

Again, this application was found as part of the default installation of rpe-1.3.0 (and I'm sure this same implementation is used in older versions as well).

So, back to the question....how would I too be able to create a .inc (a compiled format) containing functions which we need for proprietary use??

 

Thanks for helping!

Scott

Well, no, the files are not compiled, they are encrypted, as Pekka already told you. 

You can encrypt any DXL file, independent of whether you name them file.dxl, file.inc, file.h or file.includeme (well, there are some things to look at, see referenced posts and below) and that has nothing to do with inclusion of files in other files. You can include any readable file, encrypted or unencrypted, into your code using the #include command.

As to the question how to encrypt a DXL file, you can use the forum search (and will probably detect https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014571977) or google (and might see http://www-01.ibm.com/support/docview.wss?uid=swg21568530).

 

One thing to regard is that DXL main program files which are started in DOORS batch mode must not be encrypted, that's one of the reasons why you might see unencrypted files with only little content that mainly consist of #includes.

Re: How to compile .inc files
Mike.Scharnow - Fri Apr 07 15:34:04 EDT 2017

Mike.Scharnow - Fri Apr 07 14:54:10 EDT 2017

Well, no, the files are not compiled, they are encrypted, as Pekka already told you. 

You can encrypt any DXL file, independent of whether you name them file.dxl, file.inc, file.h or file.includeme (well, there are some things to look at, see referenced posts and below) and that has nothing to do with inclusion of files in other files. You can include any readable file, encrypted or unencrypted, into your code using the #include command.

As to the question how to encrypt a DXL file, you can use the forum search (and will probably detect https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014571977) or google (and might see http://www-01.ibm.com/support/docview.wss?uid=swg21568530).

 

One thing to regard is that DXL main program files which are started in DOORS batch mode must not be encrypted, that's one of the reasons why you might see unencrypted files with only little content that mainly consist of #includes.

Oops: I stand corrected. After reading the post I just referenced, I learned that also files that shall be started from a menu need to be unencrypted, So, I'd say you are right in stating that encryption and inclusion of files are somehow related: it seems to be the #include command that is able to decrypt files, not the DOORS client itself.

 

Edit: Still, encryption of include files is done as an optional extra step and usually not performed, so there is really no compilation involved, inclusion is mainly done to structure your source code, but can also be used for information hiding.

Re: How to compile .inc files
ScottKirkwood - Fri Apr 14 09:50:19 EDT 2017

Mike.Scharnow - Fri Apr 07 14:54:10 EDT 2017

Well, no, the files are not compiled, they are encrypted, as Pekka already told you. 

You can encrypt any DXL file, independent of whether you name them file.dxl, file.inc, file.h or file.includeme (well, there are some things to look at, see referenced posts and below) and that has nothing to do with inclusion of files in other files. You can include any readable file, encrypted or unencrypted, into your code using the #include command.

As to the question how to encrypt a DXL file, you can use the forum search (and will probably detect https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014571977) or google (and might see http://www-01.ibm.com/support/docview.wss?uid=swg21568530).

 

One thing to regard is that DXL main program files which are started in DOORS batch mode must not be encrypted, that's one of the reasons why you might see unencrypted files with only little content that mainly consist of #includes.

Okay...I will have a look at this and if I have any issues, I'll ask them here. Thanks for your time!!!