Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Julia 0.3.0-prerelease on XP x32 can't start #7303

Closed
stanpetit opened this issue Jun 18, 2014 · 56 comments · Fixed by #7472
Closed

Julia 0.3.0-prerelease on XP x32 can't start #7303

stanpetit opened this issue Jun 18, 2014 · 56 comments · Fixed by #7472
Labels
system:windows Affects only Windows
Milestone

Comments

@stanpetit
Copy link

Hello everybody.
I must be crazy to keep on trying to run cutting-edge open-source software on my old (but quite stable...) XP laptop !

Version : julia-0.3.0-prerelease-8f1fbec-win32
"C:\Julia 0.3.0-prerelease\bin>julia" just crashes without a sigh ...

Here is the console outputs in test mode :
C:\Julia 0.3.0-prerelease\bin>test-julia.bat
fatal error during bootstrap:
(arg-error "table: arguments must come in pairs")
fatal error loading system image

You are doing a really great work !
Best regards, Stan.

@Keno
Copy link
Member

Keno commented Jun 18, 2014

Did you download the binary? If so I'm not sure it supports xp and you might have more luck building from source.

@stanpetit
Copy link
Author

Hi Keno.
From
https://github.com/JuliaLang/julia/blob/master/README.windows.md#binary-distribution
the release seems to run ...

I would try to build myself if
https://github.com/JuliaLang/julia/blob/master/README.windows.md#supported-build-platforms
wouldn't tell me I can't !

If you tell me it's not a loss of time (and calm), I will do so.

Thanks for the prompt answer!

@Keno
Copy link
Member

Keno commented Jun 18, 2014

We'll have to wait for an assessment from @vtjnash then. He'd know.

@stanpetit
Copy link
Author

Great, thanks.

@stanpetit stanpetit reopened this Jun 18, 2014
@vtjnash
Copy link
Sponsor Member

vtjnash commented Jun 18, 2014

The binaries should work on xp, if you delete usr/lib/sys.dll, does it work? I'll test on my xp machine tonight

@stanpetit
Copy link
Author

HI @vtjnash !

delete usr/lib/sys.dll

Julia is at "C:\Julia 0.3.0-prerelease", and there is no such directory there, neither a "sys.dll" file in my whole file system !

@vtjnash
Copy link
Sponsor Member

vtjnash commented Jun 18, 2014

Thanks. I forgot that file is not included in the installer

@stanpetit
Copy link
Author

What about @Keno 's suggestion and the chances of building on my own ?

@vtjnash
Copy link
Sponsor Member

vtjnash commented Jun 18, 2014

I would try running julia-debug first (perhaps in windbg or gdb). Building from source would allow testing changes, but the actual resulting binary would be the same

@ihnorton
Copy link
Member

@stanpetit do you have an old .julia_history file in your home directory?

@goszlanyi
Copy link

I am on 32-bit Vista and experiencing the same binary crash.

I also suspect that the problem is related to the new command history format.
Deleting .julia_history did not help
but the REPL could start without crash using the --no-history-file switch.

@stanpetit
Copy link
Author

@ihnorton : I first have uninstalled Julia and deleted "user\Application Data\Julia" , then reinstalled.
The user folder was recreated.
(julia-0.2.1-win32 is creating this folder as "user.julia" am I right ?)

@stanpetit
Copy link
Author

@GaborOszlanyi : I hope that old Win32 XP will keep on being of any interest for the dev team !

@stanpetit
Copy link
Author

@ihnorton Hi Isaiah.

the REPL could start without crash using the --no-history-file switch

Crashes the same for me.
I tried to do some debug with an old stuff I used long ago : Ollydbg.
If I run Julia into it, I receive this as FPU registers :

EAX 00000000
ECX 00C4FFB0
EDX 7C91E4F4 ntdll.KiFastSystemCallRet
EBX 7FFD8000
ESP 00C4FFC4
EBP 00C4FFF0
ESI FFFFFFFF
EDI 7C920208 ntdll.7C920208
EIP 004014E0 julia.<ModuleEntryPoint>
C 0  ES 0023 32bit 0(FFFFFFFF)
P 1  CS 001B 32bit 0(FFFFFFFF)
A 0  SS 0023 32bit 0(FFFFFFFF)
Z 1  DS 0023 32bit 0(FFFFFFFF)
S 0  FS 003B 32bit 7FFDF000(FFF)
T 0  GS 0000 NULL
D 0
O 0  LastErr ERROR_PROC_NOT_FOUND (0000007F)
EFL 00000246 (NO,NB,E,BE,NS,PE,GE,LE)
ST0 empty -UNORM BDEC 01050104 005F005C
ST1 empty +UNORM 0031 00670062 0064006F
ST2 empty +UNORM 0064 0079006C 006C006F
ST3 empty 0.0000016439076200470e-4933
ST4 empty 0.0
ST5 empty 0.0
ST6 empty 1.0000000000000000000
ST7 empty 0.0
               3 2 1 0      E S P U O Z D I
FST 4020  Cond 1 0 0 0  Err 0 0 1 0 0 0 0 0  (EQ)
FCW 027F  Prec NEAR,53  Mask    1 1 1 1 1 1

If I do further exec :

EAX 00C4FDB8
ECX 00000000
EDX 00000000
EBX 0135F698
ESP 00C4FD8C
EBP 00C4FE08
ESI 00237CF0
EDI FFFFFFFF
EIP 6EC16BA9 libjulia.6EC16BA9
C 0  ES 0023 32bit 0(FFFFFFFF)
P 0  CS 001B 32bit 0(FFFFFFFF)
A 0  SS 0023 32bit 0(FFFFFFFF)
Z 0  DS 0023 32bit 0(FFFFFFFF)
S 0  FS 003B 32bit 7FFDF000(FFF)
T 0  GS 0000 NULL
D 0
O 0  LastErr ERROR_INSUFFICIENT_BUFFER (0000007A)
EFL 00010202 (NO,NB,NE,A,NS,PO,GE,G)
ST0 empty -UNORM BDEC 01050104 005F005C
ST1 empty +UNORM 0031 00670062 0064006F
ST2 empty +UNORM 0064 0079006C 006C006F
ST3 empty 0.0000016439076200470e-4933
ST4 empty 0.0
ST5 empty 0.0
ST6 empty 1.0000000000000000000
ST7 empty -1.0000000000000000000
               3 2 1 0      E S P U O Z D I
FST 0020  Cond 0 0 0 0  Err 0 0 1 0 0 0 0 0  (GT)
FCW 037F  Prec NEAR,64  Mask    1 1 1 1 1 1

Log data

Address    Message
           OllyDbg v1.10
           Bookmarks sample plugin v1.06 (plugin demo)
             Copyright (C) 2001, 2002 Oleh Yuschuk
           Command line plugin v1.10
             Written by Oleh Yuschuk

           Console file 'C:\Julia 0.3.0-prerelease\bin\julia.exe'
           New process with ID 00000610 created
004014E0   Main thread with ID 00000740 created
00400000   Module C:\Julia 0.3.0-prerelease\bin\julia.exe
5D3F0000   Module C:\WINDOWS\system32\dbghelp.dll
6CEC0000   Module C:\Julia 0.3.0-prerelease\bin\libgcc_s_sjlj-1.dll
6EC00000   Module C:\Julia 0.3.0-prerelease\bin\libjulia.dll
6FC40000   Module C:\Julia 0.3.0-prerelease\bin\libstdc++-6.dll
719E0000   Module C:\WINDOWS\system32\WS2HELP.dll
719F0000   Module C:\WINDOWS\system32\WS2_32.dll
76AE0000   Module C:\WINDOWS\system32\WINMM.DLL
76BA0000   Module C:\WINDOWS\system32\PSAPI.DLL
76C40000   Module C:\WINDOWS\system32\IMAGEHLP.DLL
76D10000   Module C:\WINDOWS\system32\IPHLPAPI.DLL
77BD0000   Module C:\WINDOWS\system32\VERSION.dll
77BE0000   Module C:\WINDOWS\system32\msvcrt.dll
77DA0000   Module C:\WINDOWS\system32\ADVAPI32.dll
77E50000   Module C:\WINDOWS\system32\RPCRT4.dll
77EF0000   Module C:\WINDOWS\system32\GDI32.dll
77F40000   Module C:\WINDOWS\system32\SHLWAPI.dll
77FC0000   Module C:\WINDOWS\system32\Secur32.dll
7C800000   Module C:\WINDOWS\system32\kernel32.dll
7C910000   Module C:\WINDOWS\system32\ntdll.dll
7C9D0000   Module C:\WINDOWS\system32\SHELL32.DLL
7E390000   Module C:\WINDOWS\system32\USER32.dll
77390000   Module C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
004014E0   Program entry point
58B50000   Module C:\WINDOWS\system32\comctl32.dll
71990000   Module C:\WINDOWS\system32\mswsock.dll
62E40000   Module C:\WINDOWS\system32\hnetcfg.dll
6EC16BA9   Access violation when reading [000000B8]

That's all folks !

@goszlanyi
Copy link

Sorry to hear that,
so we have two independent problems of the same binary.

@ihnorton
Copy link
Member

32-bit binaries are fine on Windows 7, but I can reproduce @stanpetit error in XP mode under Win virtual PC. This goes back to at least e1468d5, which is the oldest binary we have saved on AWS. Unfortunately I couldn't get windbg installed but I will have another look tonight.

@vtjnash
Copy link
Sponsor Member

vtjnash commented Jun 18, 2014

Does 0.2.1 work?

@ihnorton
Copy link
Member

Yes. The error message seems to be flisp-related, and I wonder if it is due to this or one of the other recent Unicode commits to flisp.

@stanpetit
Copy link
Author

@vtjnash : it works but kernel repeatedly crashes under iJulia... I didn't check Anaconda and iPython's versions but it is less than a 4 month back release.

@ihnorton : I will get windbg and have a trial (even if I am a dummy at that game).
Look at the last line of my log : couldn't it be some access locked by my Avast (poor-man's-AV) ?

@stanpetit
Copy link
Author

@ihnorton : Got the "X86 Debuggers And Tools".
These are the last lines of windbg Command window.
Hope it helps.

ModLoad: 77390000 77493000   C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
ModLoad: 58b50000 58bea000   C:\WINDOWS\system32\comctl32.dll
ModLoad: 71990000 719d0000   C:\WINDOWS\system32\mswsock.dll
ModLoad: 62e40000 62e99000   C:\WINDOWS\system32\hnetcfg.dll
ModLoad: 719d0000 719d8000   C:\WINDOWS\System32\wshtcpip.dll
(62c.f2c): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=00c4fdb8 ebx=0135f840 ecx=00000000 edx=00000000 esi=00237d78 edi=ffffffff
eip=6ec16ba9 esp=00c4fd8c ebp=00c4fe08 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010202
libjulia!jl_enter_handler+0x19:
6ec16ba9 8b92b8000000    mov     edx,dword ptr [edx+0B8h] ds:0023:000000b8=????????

@ihnorton
Copy link
Member

@vtjnash oddly enough, julia-debug works just fine under windbg or otherwise.

@stanpetit
Copy link
Author

Let's play julia-debug then...
I wonder if can be depending on how Windows handles networking security policies differently threw versions : process halts on an access to `wshtcpip.dll`` ... code runs OK under your win7 for , not under XP ... it could have sense.

@vtjnash
Copy link
Sponsor Member

vtjnash commented Jun 19, 2014

gah, as I feared, it works on my XP box :(

@ihnorton
Copy link
Member

which SP?

@stanpetit
Copy link
Author

@ihnorton : SP3

@vtjnash vtjnash changed the title Julia 0.3.0-prerelease on win XP sp3 .net4 crashes at startup Julia 0.3.0-prerelease on XP x32 can't start Jun 20, 2014
@vtjnash
Copy link
Sponsor Member

vtjnash commented Jun 20, 2014

aha, on an x32 VM (on the same machine) it doesn't work!

@stanpetit
Copy link
Author

Can you (or I ) do something out of this ?

C:\Julia 0.3.0-prerelease\bin\Julia.exe
C:\Julia 0.3.0-prerelease\bin\gdb.exe

C:\Julia 0.3.0-prerelease\bin>gdb julia
...
...
(gdb) break fl_table
Breakpoint 1 at 0x6ec71880

(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: C:\Julia 0.3.0-prerelease\bin\julia.exe
[New Thread 2176.0xb10]

Breakpoint 1, 0x6ec71880 in fl_table () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_table,
which has no line number information.
0x6ec5f270 in cvalue () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function cvalue,
which has no line number information.
0x6ec71955 in fl_table () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_table,
which has no line number information.
0x6ec6988e in _applyn () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function _applyn,
which has no line number information.
0x6ec69938 in fl_apply () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_apply,
which has no line number information.
0x6ec6e3cf in do_read_sexpr () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function do_read_sexpr,
which has no line number information.
0x6ec6e94c in read_list () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function read_list,
which has no line number information.

Breakpoint 1, 0x6ec71880 in fl_table () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_table,
which has no line number information.
0x6ec5f270 in cvalue () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function cvalue,
which has no line number information.
0x6ec71955 in fl_table () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_table,
which has no line number information.
0x6ec6988e in _applyn () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function _applyn,
which has no line number information.
0x6ec69938 in fl_apply () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_apply,
which has no line number information.
0x6ec6e3cf in do_read_sexpr () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function do_read_sexpr,
which has no line number information.
0x6ec6e94c in read_list () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function read_list,
which has no line number information.

Breakpoint 1, 0x6ec71880 in fl_table () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_table,
which has no line number information.
0x6ec5f270 in cvalue () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function cvalue,
which has no line number information.
0x6ec71955 in fl_table () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_table,
which has no line number information.
0x6ec6988e in _applyn () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function _applyn,
which has no line number information.
0x6ec69938 in fl_apply () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_apply,
which has no line number information.
0x6ec6e3cf in do_read_sexpr () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function do_read_sexpr,
which has no line number information.
0x6ec6e94c in read_list () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function read_list,
which has no line number information.

Breakpoint 1, 0x6ec71880 in fl_table () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_table,
which has no line number information.
0x6ec5f270 in cvalue () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function cvalue,
which has no line number information.
0x6ec71955 in fl_table () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_table,
which has no line number information.
0x6ec6988e in _applyn () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function _applyn,
which has no line number information.
0x6ec69938 in fl_apply () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_apply,
which has no line number information.
0x6ec6e3cf in do_read_sexpr () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function do_read_sexpr,
which has no line number information.
0x6ec6eaf3 in read_vector () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function read_vector,
which has no line number information.
0x6ec6e18c in do_read_sexpr () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function do_read_sexpr,
which has no line number information.
0x6ec6e94c in read_list () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function read_list,
which has no line number information.
0x6ec6e381 in do_read_sexpr () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function do_read_sexpr,
which has no line number information.
0x6ec6e94c in read_list () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function read_list,
which has no line number information.

Breakpoint 1, 0x6ec71880 in fl_table () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_table,
which has no line number information.
0x6ec5f270 in cvalue () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function cvalue,
which has no line number information.
0x6ec71955 in fl_table () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_table,
which has no line number information.
0x6ec6988e in _applyn () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function _applyn,
which has no line number information.
0x6ec69938 in fl_apply () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_apply,
which has no line number information.
0x6ec6e3cf in do_read_sexpr () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function do_read_sexpr,
which has no line number information.
0x6ec6e94c in read_list () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function read_list,
which has no line number information.

Breakpoint 1, 0x6ec71880 in fl_table () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function fl_table,
which has no line number information.
0x6ec5ee50 in lerror () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function lerror,
which has no line number information.
0x6ec5e3c0 in cvalue_static_cstring () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function cvalue_static_cstring,
which has no line number information.
0x6f3ca378 in strlen () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function strlen,
which has no line number information.
0x77c178a0 in strlen () from C:\WINDOWS\system32\msvcrt.dll

(gdb) n
Single stepping until exit from function strlen,
which has no line number information.
0x6ec5e3d9 in cvalue_static_cstring () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function cvalue_static_cstring,
which has no line number information.
0x6ec5ee7a in lerror () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll

(gdb) n
Single stepping until exit from function lerror,
which has no line number information.
fatal error during bootstrap:
(arg-error "table: arguments must come in pairs")
fatal error loading system image

Program received signal SIGSEGV, Segmentation fault.
0x6ec16ba9 in jl_enter_handler () from C:\Julia 0.3.0-prerelease\bin\libjulia.dll
(gdb)

@tkelman
Copy link
Contributor

tkelman commented Jun 20, 2014

I can reproduce this too. I don't have a working source build on an old XP machine, but I do have a binary from May 3rd that does work. I'll download a few more of the archived versions to see if we can narrow down when it broke.

@stanpetit
Copy link
Author

Would you give a link to that release ? I would give a trail.

@tkelman
Copy link
Contributor

tkelman commented Jun 20, 2014

Browse through http://s3.amazonaws.com/julianightlies, search for win32

5/22 at 570b2bd works
5/27 at b57777f does not
6/03 at 1769118 does not
6/11 at 10f5754 does not

@stanpetit
Copy link
Author

Must be that one

<Contents>
<Key>bin/winnt/x86/0.3/julia-0.3.0-prerelease-570b2bd-win32.exe</Key><LastModified>2014-05-22T15:04:44.000Z</LastModified><ETag>"3a5393e27b921c8b54b87f2e72104a35"</ETag>
<Size>30520288</Size>
<StorageClass>STANDARD</StorageClass>
</Contents>

But that nice XML tree won't take me to the binaries !

@tkelman
Copy link
Contributor

tkelman commented Jun 20, 2014

Just add the bin/winnt/... part after julianightlies/

@stanpetit
Copy link
Author

Great !

@stanpetit
Copy link
Author

Would two versions be in conflict, side by side ?

@tkelman
Copy link
Contributor

tkelman commented Jun 20, 2014

Not sure what you mean. If you install to a different location, there won't be any conflict.

This appears to have been caused by something between 5/22 and 5/27, within this range of ~70 commits 570b2bd...b57777f

@vtjnash
Copy link
Sponsor Member

vtjnash commented Jun 20, 2014

I suspect f0a98b3, since this error occurs before we have loaded any Julia code, only changes to src would matter

@tkelman
Copy link
Contributor

tkelman commented Jun 20, 2014

Yeah, does look to be in the parser, perhaps unicode-related?

@jakebolewski
Copy link
Member

Another instance of #5712?

@JeffBezanson
Copy link
Sponsor Member

Sorry wrong issue number in commit.

@vtjnash
Copy link
Sponsor Member

vtjnash commented Jun 21, 2014

@JeffBezanson does the following backtrace mean anything to you?

$ make julia_flisp.boot
    FLISP src/julia_flisp.boot
string.char: index -1 out of bounds for "\xb7"
in file julia-parser.scm
in file jlfrontend.scm
in file ./mk_julia_flisp_boot.scm
#0 (string->list/lambda/lambda
 #size(-1) ())
#1 (lambda)
#2 (load/lambda/lambda/lambda/lambda
 (define opchar? (Set op-chars)) (define op-chars
                                   (delete-duplicates (apply append (map
  string->list (map symbol->string operators)))))
 (~ ! -> √ ∛ ∜ |'| |.'| ... = := += -= *= /= //= .//= .*= ./= |\\=| |.\\=| ^=
  .^= %= .%= |\|=| &= $= => <<= >>= >>>= ~ .+= .-= ? |\|\|| && -- --> ← → ↔ ↚
  ↛ ↠ ↣ ↦ ↮ ⇎ ⇏ ⇒ ⇔ ⇴ ⇶ ⇷ ⇸ ⇹ ⇺ ⇻ ⇼ ⇽ ⇾ ⇿ ⟵ ⟶ ⟷ ⟹ ⟺ ⟻ ⟼ ⟽ ⟾ ⟿ ⤀ ⤁ ⤂ ⤃ ⤄ ⤅ ⤆ ⤇
  ⤌ ⤍ ⤎ ⤏ ⤐ ⤑ ⤔ ⤕ ⤖ ⤗ ⤘ ⤝ ⤞ ⤟ ⤠ ⥄ ⥅ ⥆ ⥇ ⥈ ⥊ ⥋ ⥎ ⥐ ⥒ ⥓ ⥖ ⥗ ⥚ ⥛ ⥞ ⥟ ⥢ ⥤ ⥦ ⥧ ⥨ ⥩
  ⥪ ⥫ ⥬ ⥭ ⥰ ⧴ ⬱ ⬰ ⬲ ⬳ ⬴ ⬵ ⬶ ⬷ ⬸ ⬹ ⬺ ⬻ ⬼ ⬽ ⬾ ⬿ ⭀ ⭁ ⭂ ⭃ ⭄ ⭇ ⭈ ⭉ ⭊ ⭋ ⭌ ← → > < >=
  ≥ <= ≤ == === ≡ != ≠ !== ≢ .> .< .>= .≥ .<= .≤ .== .!= .≠ .= .! <: >: ∈ ∉ ∋
  ∌ ⊆ ⊈ ⊂ ⊄ ⊊ ∝ ∊ ∍ ∥ ∦ ∷ ∺ ∻ ∽ ∾ ≁ ≃ ≄ ≅ ≆ ≇ ≈ ≉ ≊ ≋ ≌ ≍ ≎ ≐ ≑ ≒ ≓ ≔ ≕ ≖ ≗ ≘
  ≙ ≚ ≛ ≜ ≝ ≞ ≟ ≣ ≦ ≧ ≨ ≩ ≪ ≫ ≬ ≭ ≮ ≯ ≰ ≱ ≲ ≳ ≴ ≵ ≶ ≷ ≸ ≹ ≺ ≻ ≼ ≽ ≾ ≿ ⊀ ⊁ ⊃ ⊅
  ⊇ ⊉ ⊋ ⊏ ⊐ ⊑ ⊒ ⊜ ⊩ ⊬ ⊮ ⊰ ⊱ ⊲ ⊳ ⊴ ⊵ ⊶ ⊷ ⋍ ⋐ ⋑ ⋕ ⋖ ⋗ ⋘ ⋙ ⋚ ⋛ ⋜ ⋝ ⋞ ⋟ ⋠ ⋡ ⋢ ⋣ ⋤
  ⋥ ⋦ ⋧ ⋨ ⋩ ⋪ ⋫ ⋬ ⋭ ⋲ ⋳ ⋴ ⋵ ⋶ ⋷ ⋸ ⋹ ⋺ ⋻ ⋼ ⋽ ⋾ ⋿ ⟈ ⟉ ⟒ ⦷ ⧀ ⧁ ⧡ ⧣ ⧤ ⧥ ⩦ ⩧ ⩪ ⩫ ⩬
  ⩭ ⩮ ⩯ ⩰ ⩱ ⩲ ⩳ ⩴ ⩵ ⩶ ⩷ ⩸ ⩹ ⩺ ⩻ ⩼ ⩽ ⩾ ⩿ ⪀ ⪁ ⪂ ⪃ ⪄ ⪅ ⪆ ⪇ ⪈ ⪉ ⪊ ⪋ ⪌ ⪍ ⪎ ⪏ ⪐ ⪑ ⪒
  ⪓ ⪔ ⪕ ⪖ ⪗ ⪘ ⪙ ⪚ ⪛ ⪜ ⪝ ⪞ ⪟ ⪠ ⪡ ⪢ ⪣ ⪤ ⪥ ⪦ ⪧ ⪨ ⪩ ⪪ ⪫ ⪬ ⪭ ⪮ ⪯ ⪰ ⪱ ⪲ ⪳ ⪴ ⪵ ⪶ ⪷ ⪸
  ⪹ ⪺ ⪻ ⪼ ⪽ ⪾ ⪿ ⫀ ⫁ ⫂ ⫃ ⫄ ⫅ ⫆ ⫇ ⫈ ⫉ ⫊ ⫋ ⫌ ⫍ ⫎ ⫏ ⫐ ⫑ ⫒ ⫓ ⫔ ⫕ ⫖ ⫗ ⫘ ⫙ ⫷ ⫸ ⫹ ⫺ ⊢
  ⊣ |\|>| |<\|| : .. + - ⊕ ⊖ ⊞ ⊟ .+ .- |\|| ∪ ∨ $ ⊔ ± ∓ ∔ ∸ ≂ ≏ ⊎ ⊻ ⊽ ⋎ ⋓ ⧺ ⧻
  ⨈ ⨢ ⨣ ⨤ ⨥ ⨦ ⨧ ⨨ ⨩ ⨪ ⨫ ⨬ ⨭ ⨮ ⨹ ⨺ ⩁ ⩂ ⩅ ⩊ ⩌ ⩏ ⩐ ⩒ ⩔ ⩖ ⩗ ⩛ ⩝ ⩡ ⩢ ⩣ << >> >>> .<<
  .>> .>>> * / ./ ▒ % ⋅ ∘ .% .* |\\| |.\\| & ∩ ∧ ⊗ ⊘ ⊙ ⊚ ⊛ ⊠ ⊡ ⊓ ∗ ∙ ∤ ⅋ ≀ ⊼ ⋄
  ⋆ ⋇ ⋉ ⋊ ⋋ ⋌ ⋏ ⋒ ⟑ ⦸ ⦼ ⦾ ⦿ ⧶ ⧷ ⨇ ⨰ ⨱ ⨲ ⨳ ⨴ ⨵ ⨶ ⨷ ⨸ ⨻ ⨼ ⨽ ⩀ ⩃ ⩄ ⩋ ⩍ ⩎ ⩑ ⩓ ⩕ ⩘
  ⩚ ⩜ ⩞ ⩟ ⩠ ⫛ ⊍ // .// ^ .^ ↑ ↓ ⇵ ⟰ ⟱ ⤈ ⤉ ⤊ ⤋ ⤒ ⤓ ⥉ ⥌ ⥍ ⥏ ⥑ ⥔ ⥕ ⥘ ⥙ ⥜ ⥝ ⥠ ⥡ ⥣
  ⥥ ⥮ ⥯ ↑ ↓ :: |.|))
#3 (load/lambda #<io stream>)
#4 (load/lambda/lambda/lambda/lambda
 (load "julia-syntax.scm") (load "julia-parser.scm")
 #table(case #fn(":000s1c0q]41;" [#fn("7000r1c0m02c1qc23041;" [#fn("9000r2}c0\x8250c0;}\x8540^;}C6=0c1|e2}31L3;}?6=0c3|e2}31L3;}N\x85>0c3|e2}M31L3;e4c5}326=0c6|c7}L2L3;c8|c7}L2L3;" [else
  eq? quote-value eqv? every #.symbol? memq quote memv] vals->cond)
                                                               #fn(";000r1c0|i10L2L1c1c2c3qi1132KL3;" [let
  cond #fn(map) #fn("8000r1i10~|M32|NK;" [])])
                                                               #fn(gensym)])])  time #fn("7000r1c0qc13041;" [#fn(">000r1c0|c1L1L2L1c2~c3c4c5c1L1|L3c6L4L3L3;" [let
  time.now prog1 princ "Elapsed time: " - " seconds\n"])
  #fn(gensym)])  unless #fn("=000s1c0|^c1}KL4;" [if begin])  with-output-to #fn("=000s1c0c1L1c2|L2L1L1c3}3143;" [#fn(nconc)
  with-bindings *output-stream* #fn(copy-list)])  cond #fn("9000s0c0q]41;" [#fn("7000r1c0qm02|~41;" [#fn("7000r1|?640^;c0q|M41;" [#fn(":000r1|Mc0<17702|M]<6@0|N\x8550|M;c1|NK;|N\x85@0c2|Mi10~N31L3;|\x84c3\x82W0e4e5|31316A0c6qe7e5|313141;c8qc93041;c:|Mc1|NKi10~N31L4;" [else
  begin or => 1arg-lambda? caddr #fn("=000r1c0|~ML2L1c1|c2e3e4~3131Ki20i10N31L4L3;" [let
  if begin cddr caddr]) caadr #fn("<000r1c0|~ML2L1c1|e2~31|L2i20i10N31L4L3;" [let
  if caddr]) #fn(gensym) if])] cond-clauses->if)])])  receive #fn("@000s2c0c1_}L3c2c1L1|L1c3g23133L3;" [call-with-values
  lambda #fn(nconc) #fn(copy-list)])  letrec #fn(">000s1c0c1L1c2c3|32L1c2c4|32c5}3134c2c6|32K;" [#fn(nconc)
  lambda #fn(map) #.car #fn("8000r1c0c1|31K;" [set! #fn(copy-list)])
  #fn(copy-list) #fn("6000r1e040;" [void])])  pattern-lambda #fn("8000r2c0q]]42;" [#fn("8000r2c0qm02c1qm12c2q}~3141;" [#fn(";000r1|C16;02c0|c132@660|L1;|F6O0|Mc2\x8240_;e3c4c5~e6|N3132Q241;_;" [#fn(memq)
  (_ ...) -/ unique #fn(append) #fn(map) to-proper] patargs-)
  #fn("8000r1c0~|31K;" [__] patargs) #fn("9000r1c0qc1|i11L341;" [#fn("=000r1c0c1L1c2c3i20L2c1|c3~L2L5L3;" [lambda
  __ex__ plambda-expansion quote]) lambda])])])  let #fn(":000s1c0q^41;" [#fn("<000r1~C6D0~m02\x7fMo002\x7fNo01530]2c0qc1c2L1c3c4~32L1c5\x7f3133c3c6~3242;" [#fn("8000r2~6@0c0~|L2L1~L3530|}K;" [letrec])
  #fn(nconc) lambda #fn(map) #fn("6000r1|F650|M;|;" [])
  #fn(copy-list) #fn("6000r1|F650|\x84;e040;" [void])])])  throw #fn(":000r2c0c1c2c3L2|}L4L2;" [raise
  list quote thrown-value])  do #fn("A000s2c0qc130}Mc2c3|32c2e4|32c2c5|3245;" [#fn("A000r5c0|c1g2c2}c3c4\x7fN31Kc5c3L1c4i0231|g4KL133L4L3L2L1|g3KL3;" [letrec
  lambda if begin #fn(copy-list) #fn(nconc)])
  #fn(gensym) #fn(map) #.car cadr #fn("7000r1e0|31F680e1|41;|M;" [cddr caddr])])  assert #fn("<000r1c0|]c1c2c3|L2L2L2L4;" [if
  raise quote assert-failed])  unwind-protect #fn("8000r2c0qc130c13042;" [#fn("@000r2c0}c1_\x7fL3L2L1c2c3~c1|L1c4}L1c5|L2L3L3L3}L1L3L3;" [let
  lambda prog1 trycatch begin raise]) #fn(gensym)])  with-bindings #fn(">000s1c0qc1c2|32c1e3|32c1c4|3243;" [#fn("A000r3c0c1L1c2c3g2|33L1c4c2c5|}3331c6c7c4\x7f31Kc7c4c2c8|g23331KL3L144;" [#fn(nconc)
  let #fn(map) #.list #fn(copy-list) #fn("8000r2c0|}L3;" [set!]) unwind-protect
  begin #fn("8000r2c0|}L3;" [set!])]) #fn(map) #.car cadr #fn("6000r1c040;" [#fn(gensym)])])  dotimes #fn(";000s1c0q|M|\x8442;" [#fn("=000r2c0`c1}aL3c2c3L1|L1L1c4\x7f3133L4;" [for
  - #fn(nconc) lambda #fn(copy-list)])])  define-macro #fn("?000s1c0c1|ML2c2c3L1|NL1c4}3133L3;" [set-syntax!
  quote #fn(nconc) lambda #fn(copy-list)])  with-input-from #fn("=000s1c0c1L1c2|L2L1L1c3}3143;" [#fn(nconc)
  with-bindings *input-stream* #fn(copy-list)])  pattern-set #fn("9000s0c0q]41;" [#fn("8000r1c0m02e1c2qc3q42;" [#fn("6000r1|\x84M;" [] pl-head)
  call-with-values #fn("8000r0e0c1i1042;" [separate #fn("8000r1|F16L02e0|b33216@02|Mc1<16602|\x84F;" [length=
  pattern-lambda])]) #fn(":000r2c0qe1c2~|3231c33042;" [#fn("?000r2c0c1L1}c2L1L2L1L1c3c4c5q|3231c6c7c8L2}c9c3\x7f31KL4L144;" [#fn(nconc)
  let make-table #fn(copy-list) #fn(map) #fn("=000r1c0\x7fc1|L2c2c3e4c5qi103231KL4;" [table-set!
  quote list #fn(copy-list) filter #fn("7000r1i30|31~<;" [])]) vector quote
  pattern-set list]) delete-duplicates #fn(map)
                                                       #fn(gensym)])])])  quasiquote #fn("7000r1e0|41;" [bq-process])  begin0 #fn("=000s1c0c1L1|L1c2}3143;" [#fn(nconc)
  prog1 #fn(copy-list)])  let* #fn("A000s1|?6E0c0c1L1_L1c2}3133L1;c0c1L1e3|31L1L1c2|NF6H0c0c4L1|NL1c2}3133L1530}3133e5|31L2;" [#fn(nconc)
  lambda #fn(copy-list) caar let* cadar])  when #fn("<000s1c0|c1}K^L4;" [if
  begin])  catch #fn("7000r2c0qc13041;" [#fn("@000r1c0\x7fc1|L1c2c3c4|L2c5c6|L2c7c8L2L3c5c9|L2~L3L4c:|L2c;|L2L4L3L3;" [trycatch
  lambda if and pair? eq car quote thrown-value cadr caddr raise])
                                         #fn(gensym)])))
#5 (load/lambda #<io stream>)
Makefile:65: recipe for target 'julia_flisp.boot' failed
make: *** [julia_flisp.b

@vtjnash
Copy link
Sponsor Member

vtjnash commented Jun 21, 2014

notice that exactly one operator is corrupted: instead of ÷, remove it and it works

edit: note, it also works when run from the flisp prompt

@tkelman
Copy link
Contributor

tkelman commented Jun 21, 2014

Is there a slightly different code point for that same operator that might work on XP? Or do we have unicode division symbol and Windows XP fight it out over which is more important? There's now a @windowsxp_only macro in Julia, but that's not usable in flisp right?

@stanpetit
Copy link
Author

@vtjnash : https://gist.github.com/vtjnash/5623346 is meaningful.

notice that exactly one operator is corrupted: ▒ instead of ÷

Could you post the hex codes ?
It would also be interesting to know what UTF font set you are using.

And then watch this :
julia-0.3.0-prerelease-a9da7b4-win32 : fails on WinXPSP3 #198

@stanpetit
Copy link
Author

$ make julia_flisp.boot
FLISP src/julia_flisp.boot
string.char: index -1 out of bounds for "\xb7"
in file julia-parser.scm
in file jlfrontend.scm
in file ./mk_julia_flisp_boot.scm

and precisely : string.char: index -1 out of bounds for "\xb7" :
OllyDdg gives a complete memory dump, where I can see it in the stack.
Would you like to have a look ?

@stanpetit
Copy link
Author

@vtjnash : Sorry, I have posted julia-0.3.0-prerelease-a9da7b4-win32 : fails on WinXPSP3 in the wrong forum by mistake.

@vtjnash
Copy link
Sponsor Member

vtjnash commented Jun 23, 2014

@JeffBezanson this is failing because (int)226 != (int)(char)226 (on platforms where char is signed), so isspace(226) != isspace((char)226), as flisp/read.c assumes (also support/strtod.c, builtins.c, and ccall.c). This triggers undefined behavior in isspace. Apparently, that behavior on Windows XP was to return true for invalid characters (where 226 is the utf8 start character).

(edit: there's also the issue that these functions are locale-dependant, and it's unlikely that we want parsing to be dependant upon the user locale settings)

@vtjnash vtjnash added this to the 0.3 milestone Jun 23, 2014
@JeffBezanson
Copy link
Sponsor Member

Wow great detective work. Let's fix these.

@tkelman
Copy link
Contributor

tkelman commented Jun 30, 2014

@stanpetit Check http://status.julialang.org/ sometime tomorrow, if it says the "win32 nightly last built" more recently than the closing time of this issue, Julia should work on XP again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
system:windows Affects only Windows
Projects
None yet
8 participants