Jafar,
Documentation is something I can do :)
David
>________________________________
>From: Jafar Al-Gharaibeh <[email protected]>
>To: David Gamey <[email protected]>
>Cc: UniconGroup <[email protected]>
>Sent: Saturday, October 29, 2011 7:04:10 PM
>Subject: Re: [Unicon-group] fork under windows?
>
>
>David,
>
> I agree with you failure might be misleading is some cases including this
>one. It is a hard decision sometimes to pick between a failure and a runtime
>error. Runtime errors are hard to ignore as you said, but in many cases users
>want their programs to proceed and they want to be able to handle the failure
>themselves instead of ending up with a crashed program. The fork() example in
>IPL reveals a problem (kind of a problem) in the example itself and not in
>fork(). The example probably assumes fork() doesn't fail, so it returns a
>value of 0 for child or more for parent. A side from not being implemented on
>Windows, fork() might still fail on other platforms at least in theory, it
>sets &error in that case beside failing. Not being able to fork on Windows is
>similar in that sense, except &error probably should be set to an error number
>that corresponds to something like "fork() is not supported at this platform".
>Here is a more self explanatory fork
example:
>
> fret:=&null
> if (fret := fork()) = 0 then
> write("child")
> else if \fret then {
> delay(1000)
> write("parent")
> }
> else
> write("you are still in parent but couldn't fork, error:", &error)
>
>Documentation is absolutely essential and it is something we have to work more
>on. With a team of two and so many other responsibilities and duties we are
>struggling to keep up with bug fixes and movements in addition to
>documentation. Comments and feedback like yours keeps us motivated :) . We
>have applied many fixes and improvements that is already in svn but haven't
>made it to a binary release for windows including support for blanks in paths
>and improved portability of iconx and .u files.
>
>Cheers,
>Jafar
>
>
>
>On Sat, Oct 29, 2011 at 12:17 PM, David Gamey <[email protected]> wrote:
>
>Jafar & Clint,
>>
>>
>>I didn't realize fork wasn't implemented in Windows. Failure wasn't what I
>>expected.
>>
>>
>>
>>And while a solution is the most desirable, documentation is also valuable.
>>
>>
>>I wonder how many other things fail when unimplemented and provide possibly
>>unexpected results. For instance in the IPL there's an example of fork code
>>like so:
>>
>>
>> if fork() = 0 then
>> write("child")
>> else {
>> delay(1000)
>> write("parent")
>>
>>
>>
>>It fails into the parent code which could assume something happened. A
>>runerr would have been harder to ignore. How it fits into the general
>>strategy of such things is probably more important.
>>
>>
>>
>>Thanks.
>>
>>
>>
>>David
>>
>>
>>
>>>________________________________
>>>From: Jafar Al-Gharaibeh <[email protected]>
>>>To: Clinton Jeffery <[email protected]>
>>>Cc: David Gamey <[email protected]>
>>>Sent: Saturday, October 29, 2011 2:42:55 PM
>>>Subject: Re: fork under windows?
>>>
>>>
>>>
>>>You are correct, Windows doesn't provide any function with the semantic of
>>>fork(). Probably relaying on spawn family on windows is the closet we can
>>>get to simulate a similar behavior of fork. I know we already use _spawnvp
>>>to launch external DOS commands. I will look for ideas out there and see if
>>>we can get an "acceptable" behavior.
>>>
>>>Jafar
>>>
>>>
>>>
>>>
>>>On Sat, Oct 29, 2011 at 11:16 AM, Clinton Jeffery <[email protected]>
>>>wrote:
>>>
>>>As far as I know, Windows does not provide an equivalent of fork() or
>>>primitives that would allow us to emulate it. Those windows environments
>>>that have a fork() are providing an entire OS emulation layer. But, please
>>>look into whether the situation has improved any with recent Windows
>>>versions and 64-bit versions of the OS.
>>>>
>>>>
>>>>Clint
>>>>
>>>>
>>>>
>>>>On Sat, Oct 29, 2011 at 11:06 AM, Jafar Al-Gharaibeh <[email protected]>
>>>>wrote:
>>>>
>>>>David,
>>>>>
>>>>> Strangely enough, failing is the correct behavior! fork is not
>>>>>implemented under Windows. Below is a portion of the source code for
>>>>>fork(). Not sure why it wasn't implemented in the first place. I will look
>>>>>into that and see how hard/portable to include it in the next release.
>>>>>
>>>>>Jafar
>>>>>
>>>>>
>>>>>#if NT
>>>>> fail;
>>>>>#else /* NT */
>>>>> if ((pid = fork()) < 0) {
>>>>> IntVal(amperErrno) = errno;
>>>>> fail;
>>>>> }
>>>>> return C_integer pid;
>>>>>#endif /* NT */
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>On Sat, Oct 29, 2011 at 9:31 AM, David Gamey <[email protected]>
>>>>>wrote:
>>>>>
>>>>>Jafar,
>>>>>>
>>>>>>
>>>>>>Not sure where this is at. Fork fails under Windows 7/x64 running Unicon
>>>>>>Version 12.0. July 13, 2011.
>>>>>>
>>>>>>
>>>>>> if pid := fork() then
>>>>>> if pid ~= 0 then {
>>>>>> delay(1000)
>>>>>> write("This is the parent process - pid=",image(pid))
>>>>>> }
>>>>>> else
>>>>>> write("This is the child process - pid=",image(pid))
>>>>>> else write("Fork failed!")
>>>>>>
>>>>>>David
>>>>>
>>>>>
>>>>>--
>>>>>"Let there be no compulsion in religion: Truth stands out clear from
>>>>>error" [The Holy Qur'an 2:256]
>>>>>
>>>>>"Injustice anywhere is a threat to justice everywhere" Dr. King
>>>>>
>>>>
>>>
>>>
>>>--
>>>"Let there be no compulsion in religion: Truth stands out clear from error"
>>>[The Holy Qur'an 2:256]
>>>
>>>"Injustice anywhere is a threat to justice everywhere" Dr. King
>>>
>>>
>>>
>>------------------------------------------------------------------------------
>>Get your Android app more play: Bring it to the BlackBerry PlayBook
>>in minutes. BlackBerry App World™ now supports Android™ Apps
>>for the BlackBerry® PlayBook™. Discover just how easy and simple
>>it is! http://p.sf.net/sfu/android-dev2dev
>>
>>_______________________________________________
>>Unicon-group mailing list
>>[email protected]
>>https://lists.sourceforge.net/lists/listinfo/unicon-group
>>
>>
>
>
>--
>"Let there be no compulsion in religion: Truth stands out clear from error"
>[The Holy Qur'an 2:256]
>
>"Injustice anywhere is a threat to justice everywhere" Dr. King
>
>------------------------------------------------------------------------------
>Get your Android app more play: Bring it to the BlackBerry PlayBook
>in minutes. BlackBerry App World™ now supports Android™ Apps
>for the BlackBerry® PlayBook™. Discover just how easy and simple
>it is! http://p.sf.net/sfu/android-dev2dev
>
>_______________________________________________
>Unicon-group mailing list
>[email protected]
>https://lists.sourceforge.net/lists/listinfo/unicon-group
>
>
>------------------------------------------------------------------------------
Get your Android app more play: Bring it to the BlackBerry PlayBook
in minutes. BlackBerry App World™ now supports Android™ Apps
for the BlackBerry® PlayBook™. Discover just how easy and simple
it is! http://p.sf.net/sfu/android-dev2dev
_______________________________________________
Unicon-group mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/unicon-group