Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 04-28-2012, 03:06 AM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default Perl 5xx Suggestion

I understand the mindset of coders..I've known quite a few..so please take this as a suggestion and not a critism about the code... (the Emu works great and I think these game design corps should take a cue from you guys!)


Scenario 1:
I run both VC9 & 10 on a single 32-bit cpu (no HT) winXP system. I have used perl 5.10.1.1008 and am currently using 5.12.4.1205. I have compiled on both versions of VC and haven't experienced a difference or noticed anything out of the ordinary using VC10 and perl 5.12.

Suggestion 1:
Convert code to "Perl512" reference and mark Server.sln(9) as defunct. VC10 Express is free and can still be registered (with a MSDN enrollment.)


Scenario 2: (speculative)
The "ifndef" for the MSCV checks for VC10 (1600) - the first occurrence in EQWParser.cpp. It then defines GVCV_Set if it finds >=1600. I'm not sure if this definition is VC10 or perl 5.14 related, so I'm assuming it's perl 5.14 since it's defaulted to for VC10. The next "ifdef" sets pragma (lib, "Perl5xx") based on the version found. Not knowing if the MSCV version is relevant to the edition of VC (i.e., Express vs. Professional), I'm also assuming the reason that the x64 non-Professional build is failing is due to the additional toolset that is required and only available to the Professional edition.

Suggestion 2:
Add a [x64ToolSet] check, setting lib to 514 if true or 512 if false.
(something like this...)

#if _MSC_VER >= 1600
#ifdef _[x64ToolSet]
#ifndef GvCV_set
#define GvCV_set(gv,cv) (GvCV(gv) = (cv))
#endif
#endif
#endif

#ifdef _WINDOWS
#if _MSC_VER >= 1600 // for V100+ toolset
#ifdef _[x64ToolSet]
#pragma comment(lib, "perl514.lib")
#else
#pragma comment(lib, "perl512.lib")
#endif

#else
#pragma comment(lib, "perl512.lib")
#endif
#endif

(Again..speculation on a guess... I understand its more complicated than this, but maybe it'll spark an idea.)


Suggestion 3: (off-topic)
Adding library reference variables to project includes settings:

$EQEmu_Inc
$EQEmu_Lib

This would allow users to just add the following into their environment variables:

EQEmu_Inc = "c:\mysql\include;c:\perl\lib\CORE;c:\zlib\include "
EQEmu_Lib = "c:\mysql\lib\opt;c:\perl\lib\CORE;c:\zlib\lib "

(of course, zlib reference should be changed to reflect proper eqemusource SVN directory.)

Also, assuming that the zlib.dll is still needed/being used, just place ";c:\zlib" at the end of their Path variable so they don't have to "drop" a copy of the file in the ..\Windows\System32 directory.


Something for musing..my point on this goes back to me mulling over processes for my auto-installer and what code I'm going to have to change locally.
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 09:06 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3