On 26 November 2017 at 20:57, Викентий Потапов <vikenti.pota...@gmail.com> 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... * https://raw.githubusercontent.com/OpenSmalltalk/opensmalltalk-vm/Cog/spursrc/vm/cointerp.c 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. * https://msdn.microsoft.com/en-us/library/tehxacec.aspx 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 > > >