Status of perl in MQ

A forum for the general posts relating to MacroQuest. *DEPRECATED: This forum is no longer in public use, but remains here for your reading pleasure. Enjoy

Moderator: MacroQuest Developers

merkzu
a ghoul
a ghoul
Posts: 99
Joined: Wed May 14, 2003 2:08 pm

Status of perl in MQ

Post by merkzu » Thu May 15, 2003 4:27 pm

Just a few questions, I've written in perl pretty extensivly in the past and wondering whats up with it in MQ. Is this a full blown perl interpreter, or does it only do certain functions? I would love to start writing some macros using it, but not sure how EQ and MQ's /commands would be executed from inside a perl script. Also am I right to assume the chat window is stdout and the input box on the chat window is stdin?

merkzu
a ghoul
a ghoul
Posts: 99
Joined: Wed May 14, 2003 2:08 pm

nevermind hehe

Post by merkzu » Thu May 15, 2003 4:34 pm

Found a good post relating to the perl stuff, for anyone interested:

http://macroquest2.com/phpBB2/viewtopic ... light=perl

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Thu May 15, 2003 4:47 pm

PERL implementation in MQ was buggy at best. As near as anyone can tell, the only reason it was put in there in the first place was to issue commands for ShowEQ. A few folks were using it to control WinAmp while playing EQ, but otherwise very little has been done with it since it was first added in.

It's been debated about taking it out entirely, the compromise solution was that PERL support is disabled by default when compiling MQ. You'd have to turn it back on, and make sure you have the perl dll file in your MQ directory. Even then no guarantees it won't eat your character.

AMadMonk
a lesser mummy
a lesser mummy
Posts: 77
Joined: Tue Sep 24, 2002 9:16 pm

Post by AMadMonk » Fri May 16, 2003 9:24 pm

As the person who originally added Perl to MQ, I'll answer: it's broke. Don't use it.

Long answer: Perl's current native thread implementation (as of 5.8.0) is buggy and leaks memory like a sieve.

I did everything I could to try to compensate for this, but there was no elegant solution. I was deeply hacking EQ for a while (contolling parties of toons with modified MQ sources) using Perl, but I was using it out of process. In-process Perl is a wash in MQ. I managed to get it in and make it run, but it'll quickly leak your whole process into oblivion. See "embedding and extending perl" for some of the horrors of XS code.

Now when Perl 6 comes out -- who knows. If anyone wants to make the effort.