<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><html>
<head>
<meta name="GENERATOR" content="IncrediMail 1.0">
<!--IncrdiXMLRemarkStart>
<IncrdiX-Info>
<X-FID>FLAVOR00-NONE-0000-0000-000000000000</X-FID>
<X-FVER></X-FVER>
<X-CNT>;</X-CNT>
</IncrdiX-Info>
<IncrdiXMLRemarkEnd-->
</head>
<BODY background="" bgColor=#ffffff style="BACKGROUND-POSITION: 0px 0px; FONT-SIZE: 10pt; MARGIN: 1px; FONT-FAMILY: Arial" scroll=yes ORGYPOS="0" X-FVER="2.0">
<TABLE border=0 cellPadding=0 cellSpacing=0 id=INCREDIMAINTABLE width="95%">
<TR>
<TD id=INCREDITEXTREGION width="100%" style="PADDING-RIGHT: 7px; PADDING-LEFT: 7px; FONT-SIZE: 10pt; FONT-FAMILY: Arial"
>
<DIV> </DIV>
<DIV>I have returned, for those that may or may not remember me (I was
working on the Melville overhaul for DGD). And I'm starting
work anew on an HTTP daemon for DGD...anyone doing any work in this
direction?</DIV>
<DIV> </DIV>
<DIV>David Jackson</DIV>
<DIV> </DIV>
<DIV>"Diplomacy is the art of saying, 'nice doggy' until you can find a
rock."</DIV>
<DIV>-Will Rogers</DIV>
<DIV> </DIV>
<DIV id=IncrediOriginalMessage><I>-------Original Message-------</I></DIV>
<DIV> </DIV>
<DIV id=receivestrings>
<DIV dir=ltr style="FONT-SIZE: 11pt" <i><B>From:</B></I> <A
href="mailto:dgd@list.imaginary.com">dgd@list.imaginary.com</A></DIV>
<DIV dir=ltr style="FONT-SIZE: 11pt" <i><B>Date:</B></I> Sunday, June 02,
2002 11:59:14 AM</DIV>
<DIV dir=ltr style="FONT-SIZE: 11pt" <i><B>To:</B></I> <A
href="mailto:dgd@list.imaginary.com">dgd@list.imaginary.com</A></DIV>
<DIV dir=ltr style="FONT-SIZE: 11pt" <i><B>Subject:</B></I> Re: [DGD]
system() command</DIV></DIV>
<DIV> </DIV>On Sun, 2 Jun 2002, Lord Lerkista wrote:<BR>> There's
some way to use the system() comand to get the result to the <BR>>
mud??<BR>> <BR>> For example system("ls"); and get the output to a
variable in the mud<BR><BR>If you think about it, this can't really be
possible in core DGD, for<BR>the same reason that callout to most
languages can't be possible. Yeah,<BR>I know, everything's possible. But
hear me out.<BR>DGD has the limits() construct and atomic functions, both
of which<BR>impose pretty unusual conditions on the entire language.
Dworkin has been<BR>excellent at keeping DGD from *seeming* limited, but
once you do callout<BR>to C, you have a problem -- you can't count ticks,
you can't make stuff<BR>properly interruptable (try it, it's *hard*). The
system() command is<BR>basically callout to the shell, and has the same
problem. It has an<BR>advantage over C since you're killing the shell
afterwards. So if you<BR>interrupt it, it doesn't leave all your data
structures in an inconsistent<BR>state. But it's still not atomic, so
you'd have to avoid using it in<BR>atomic functions, just like any other
kind of language callout.<BR><BR>Folks recommended a servlet-based method
to get around this, which<BR>works. Since it's based on network I/O,
you'll notice you still can't use<BR>it in atomic functions, and you'll
have to be very careful to keep it from<BR>getting confused if it's
interrupted for lack of ticks. DGD's LPC is a <BR>very carefully designed
language, and getting it to work at full power<BR>with other (less
careful) languages is more difficult than it looks.<BR><BR>Sometimes I'll
describe DGD to various friends, especially the <BR>limits() and atomic
function features of the language. I measure how much<BR>they've thought
about these issues by how far their jaw drops when they<BR>hear about what
DGD does.<BR><BR>-- <BR><A
href="mailto:angelbob@monkeyspeak.com">angelbob@monkeyspeak.com</A><BR>See
my page of DGD documentation at<BR>"<A
href="http://phantasmal.sourceforge.net/DGD/">http://phantasmal.sourceforge.net/DGD/</A>"<BR>If
you post to the DGD list, you may see yourself
there!<BR><BR><BR>_________________________________________________________________<BR>List
config page: <A
href="http://list.imaginary.com/mailman/listinfo/dgd">http://list.imaginary.com/mailman/listinfo/dgd</A><BR>.</TD>
</TR>
<TR>
<TD id=INCREDIFOOTER width="100%">
<TABLE cellPadding=0 cellSpacing=0 width="100%">
<TR>
<TD width="100%"></TD>
<TD align=middle id=INCREDISOUND vAlign=bottom></TD>
<TD align=middle id=INCREDIANIM vAlign=bottom></TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE><SPAN
id=IncrediStamp><SPAN dir=ltr><FONT face="Arial, Helvetica, sans-serif"
size=2>____________________________________________________<BR><FONT
face="Comic Sans MS" size=2><A
href="http://www.incredimail.com/redir.asp?ad_id=309&lang=9"><IMG alt=""
hspace=0 src="cid:7EDCFAA3-EB34-43C3-8274-83EE190406F9" align=baseline
border=0></A> <I>IncrediMail</I> - <B>Email has finally evolved</B> -
</FONT><A href="http://www.incredimail.com/redir.asp?ad_id=309&lang=9"><FONT
face="Times New Roman" size=3><B><U>Click
Here</U></B></FONT></A></SPAN></SPAN></FONT>
</BODY>
</html>