Re: Pharo-users Digest, Vol 55, Issue 207

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: Pharo-users Digest, Vol 55, Issue 207

vikenti
 
I will be glad to help to find solution with this problem that started with later versions of  Pharo 6.
While Pharo has such problems - it is not production-ready.

Just point me from where to start my investigation of code.

--- The full stack ---
WindowsResolver(PlatformResolver)>>cantFindOriginError
[ self cantFindOriginError ] in WindowsResolver(PlatformResolver)>>directoryFromEnvVariableNamed:
[ ^ arg2 value ] in WindowsResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
PrimitiveFailed(Exception)>>signal
PrimitiveFailed class(SelectorException class)>>signalFor:
Win32Environment(Object)>>primitiveFailed:
Win32Environment(Object)>>primitiveFailed
Win32Environment(Object)>>primitiveFail
Win32Environment(OSEnvironment)>>getEnv:
Win32Environment>>getEnv:
Win32Environment(OSEnvironment)>>at:ifAbsent:
[ Smalltalk os environment at: arg1 ifAbsent: [  ] ] in WindowsResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:
BlockClosure>>on:do:
WindowsResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:
WindowsResolver(PlatformResolver)>>directoryFromEnvVariableNamed:
WindowsResolver>>home
WindowsResolver>>documents


The overall difficulty here in getting this addressed is difficulty in

> reproducing your environment.
> For example, I think it would be awkward for me to operate with OS locale
> set to Russian.
> You'll see little action on it until there is an Issue logged at
> pharo.fogbugz.com with a simple set of steps to reproduced for standard
> environments (i.e. using English locales)
>
> Reviewing your other posts, I'd suggest initially creating a script to wrap
> Pharo startup that cleans all the environment variables to ascii
> characters, temporarily creating required directories so at lest you can
> get it started.  Then extend that script to reintroduce the error, like a
> single non-ascii character in a single environment variable that causes an
> error.  That extended part then provides a path for others to reproduce
> your problem, which you would attach to the Issue.   Then as you
> investigate a solution yourself, ask questions about it on pharo-dev to
> keep the Issue active and over time you'll likely get some action from
> others on it.
>
> cheers -ben


Reply | Threaded
Open this post in threaded view
|

Re: Pharo-users Digest, Vol 55, Issue 207

Ben Coman


On 26 November 2017 at 20:57, Викентий Потапов <[hidden email]> wrote:

I will be glad to help to find solution with this problem that started with later versions of  Pharo 6.
While Pharo has such problems - it is not production-ready.

Just point me from where to start my investigation of code.

--- The full stack ---
WindowsResolver(PlatformResolver)>>cantFindOriginError
[ self cantFindOriginError ] in WindowsResolver(PlatformResolver)>>directoryFromEnvVariableNamed:
[ ^ arg2 value ] in WindowsResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:
BlockClosure>>cull:
Context>>evaluateSignal:
Context>>handleSignal:
PrimitiveFailed(Exception)>>signal
PrimitiveFailed class(SelectorException class)>>signalFor:
Win32Environment(Object)>>primitiveFailed:
Win32Environment(Object)>>primitiveFailed
Win32Environment(Object)>>primitiveFail
Win32Environment(OSEnvironment)>>getEnv:
Win32Environment>>getEnv:
Win32Environment(OSEnvironment)>>at:ifAbsent:
[ Smalltalk os environment at: arg1 ifAbsent: [  ] ] in WindowsResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:
BlockClosure>>on:do:
WindowsResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:
WindowsResolver(PlatformResolver)>>directoryFromEnvVariableNamed:
WindowsResolver>>home
WindowsResolver>>documents

Well I see...

WindowsResolver>>home
"Value of the $USERPROFILE environment variable."
^ self directoryFromEnvVariableNamed: 'USERPROFILE'

Win32Environment(OSEnvironment)>>getEnv:
"This method calls the Standard C Library getenv() function."
     <primitive: 'primitiveGetenv' module: '' error: ec>

You can see that implementation by searching for  "primitiveGetenv(void)" at...
where I guess that   "var<--'USERPROFILE'"

So are you able to compile, run and report with this small C program...

int main()
{       char *result;
        char *var = "USERPROFILE";
result = getenv(var);
if (result != 0) {
printf("SUCCESS");
        } else {
                printf("FAILED");
        }
}

Experiment with:
* different env vars holding either unicode or non-unicode characters.


cheers -ben

    


The overall difficulty here in getting this addressed is difficulty in
> reproducing your environment.
> For example, I think it would be awkward for me to operate with OS locale
> set to Russian.
> You'll see little action on it until there is an Issue logged at
> pharo.fogbugz.com with a simple set of steps to reproduced for standard
> environments (i.e. using English locales)
>
> Reviewing your other posts, I'd suggest initially creating a script to wrap
> Pharo startup that cleans all the environment variables to ascii
> characters, temporarily creating required directories so at lest you can
> get it started.  Then extend that script to reintroduce the error, like a
> single non-ascii character in a single environment variable that causes an
> error.  That extended part then provides a path for others to reproduce
> your problem, which you would attach to the Issue.   Then as you
> investigate a solution yourself, ask questions about it on pharo-dev to
> keep the Issue active and over time you'll likely get some action from
> others on it.
>
> cheers -ben