2017-06-05 13:40 GMT+02:00 Stephane Ducasse <[email protected]>:
> Hi nicolas > > I do not have a windows OS or machine to test. > If you let me know what I should take and try I can ask from students to > try. > But most of the people in our team is on linux or mac. > > Stef > > Hi Stef, Just test! Run the Pharo test on WIN64 VM in CI server, and report the differences with other OSes. Verify packaging of Win64 VM and include it in pharo distribution, not just linux and mac. No test, no progress > On Fri, Jun 2, 2017 at 11:10 PM, Nicolas Cellier > <[email protected]> wrote: > > This is now fixed, you just have to wait for appveyor to finish its job. > > Guys, I have pushed Win64 VM including the Pharo flavour. > > It works well in Squeak but I'm not a Pharo user (or very casual). > > All I'm asking for weeks or even months is a little feedback... > > So this evening, when I see that the 64 bits image does not even start > and > > that I got absolutely no feedback except this late one of Henrik (Thank > you > > thank you thank you Henrik), I feel sad. > > Helping Pharo is not very rewarding :( > > > > 2017-06-02 22:50 GMT+02:00 Nicolas Cellier > > <[email protected]>: > >> > >> > >> > >> 2017-06-02 22:35 GMT+02:00 Nicolas Cellier > >> <[email protected]>: > >>> > >>> > >>> > >>> 2017-06-02 22:21 GMT+02:00 Nicolas Cellier > >>> <[email protected]>: > >>>> > >>>> Follow up: it's not enough... > >>>> > >>>> Program received signal SIGSEGV, Segmentation fault. > >>>> 0x000000000051cfc8 in dir_EntryLookup (pathString=0xce7edb0 > >>>> "X:\\Smalltalk\\opensmalltalk-vm\\build.win64x64\\pharo.cog. > spur\\builddbg\\vm", > >>>> pathLength=71, > >>>> nameString=0xce81868 "PharoV60.sources", nameStringLength=16, > >>>> name=0xfe5aa0 "", nameLength=0xfe5a98, creationDate=0xfe5ba8, > >>>> modificationDate=0xfe5a88, > >>>> isDirectory=0xfe5ba0, sizeIfFile=0xfe5a90, posixPermissions=0x0, > >>>> isSymlink=0x0) at ../../platforms/win32/vm/sqWin32Directory.c:397 > >>>> 397 *posixPermissions = 0; > >>>> > >>>> I'll have to understand why those PharoVM last 2 args are zero... > >>> > >>> > >>> It looks like FilePlugin did not have the -DPharoVM because the > backtrace > >>> point at the wrong #ifdef branch: > >>> > >>> (gdb) bt > >>> #0 dir_EntryLookup (pathString=0xc27edb0 > >>> "X:\\Smalltalk\\opensmalltalk-vm\\build.win64x64\\pharo.cog. > spur\\builddbg\\vm", > >>> pathLength=71, > >>> nameString=0xc281868 "PharoV60.sources", nameStringLength=16, > >>> name=0xfe5aa0 "ryEntry", nameLength=0xfe5a98, creationDate=0xfe5ba8, > >>> modificationDate=0xfe5a88, isDirectory=0xfe5ba0, > sizeIfFile=0xfe5a90, > >>> posixPermissions=0x0, isSymlink=0x0) > >>> at ../../platforms/win32/vm/sqWin32Directory.c:379 > >>> #1 0x00000000005835a6 in primitiveDirectoryEntry () at > >>> ../../src/plugins/FilePlugin/FilePlugin.c:654 > >>> #2 0x0000000000442d5e in primitiveExternalCall () at > >>> ../../spur64src/vm/gcc3x-cointerp.c:76521 > >>> #3 0x000000000040d8ba in interpret () at > >>> ../../spur64src/vm/gcc3x-cointerp.c:6373 > >>> #4 0x0000000000429046 in enterSmalltalkExecutiveImplementation () at > >>> ../../spur64src/vm/gcc3x-cointerp.c:18181 > >>> #5 0x00000000004018a8 in interpret () at > >>> ../../spur64src/vm/gcc3x-cointerp.c:2678 > >>> #6 0x00000000005279a8 in sqMain (argc=1, argv=0x11850f0) at > >>> ../../platforms/win32/vm/sqWin32Main.c:1572 > >>> #7 0x0000000000527e95 in WinMain (hInst=0x400000, hPrevInstance=0x0, > >>> lpCmdLine=0x11f3f32 "", nCmdShow=10) at > >>> ../../platforms/win32/vm/sqWin32Main.c:1678 > >>> #8 0x00000000004013ed in __tmainCRTStartup () at > >>> /usr/src/debug/mingw64-x86_64-runtime-5.0.2-1/crt/crtexe.c:334 > >>> #9 0x00000000004014fb in WinMainCRTStartup () at > >>> /usr/src/debug/mingw64-x86_64-runtime-5.0.2-1/crt/crtexe.c:184 > >>> > >>> (gdb) up > >>> #1 0x00000000005835a6 in primitiveDirectoryEntry () at > >>> ../../src/plugins/FilePlugin/FilePlugin.c:654 > >>> 654 status = dir_EntryLookup(pathNameIndex, > >>> pathNameSize, reqNameIndex, reqNameSize, > >>> > >>> (gdb) list 646,658 > >>> 646 > >>> 647 # if PharoVM > >>> 648 status = dir_EntryLookup(pathNameIndex, > >>> pathNameSize, reqNameIndex, reqNameSize, > >>> 649 > >>> entryName, &entryNameSize, &createDate, > >>> 650 > >>> &modifiedDate, &dirFlag, &fileSize, > >>> 651 > >>> &posixPermissions, &symlinkFlag); > >>> 652 > >>> 653 # else /* PharoVM */ > >>> 654 status = dir_EntryLookup(pathNameIndex, > >>> pathNameSize, reqNameIndex, reqNameSize, > >>> 655 > >>> entryName, &entryNameSize, &createDate, > >>> 656 > >>> &modifiedDate, &dirFlag, &fileSize); > >>> 657 > >>> 658 # endif /* PharoVM */ > >>> > >>> The backtrace should never be at 654!!! > >>> > >>> > >> > >> > >> The LOGD shows that $COGDEFS was not used in plugin compilation, so > >> -DPharoVM=1 is missing from the clang command line > >> > >> rm -f builddbg/vm/FilePlugin.ignore > >> make -w BUILD=builddbg \ > >> -f > >> /cygdrive/X/Smalltalk/opensmalltalk-vm/build.win64x64/common/Makefile. > plugin > >> \ > >> CONFIGURATION=debug TOOLPREFIX=x86_64-w64-mingw32- \ > >> > >> THIRDPARTYOUTDIR=/cygdrive/X/Smalltalk/opensmalltalk-vm/. > thirdparty-cache/windows/x86_64 > >> \ > >> PLATDIR=../../platforms PLUGINSRCDIR=../../src > >> VMSRCDIR=../../spur64src/vm \ > >> LIBNAME=FilePlugin COGDEFS="-DPharoVM=1 -DIMMUTABILITY=1 > >> -DCOGMTVM=0 -DDEBUGVM=1" XDEFS=-DSQUEAK_BUILTIN_PLUGIN \ > >> builddbg/vm/FilePlugin.lib > >> make[2] : on entre dans le répertoire « > >> /cygdrive/X/Smalltalk/opensmalltalk-vm/build.win64x64/pharo.cog.spur » > >> x86_64-w64-mingw32-clang -x c -MT builddbg/FilePlugin/FilePlugin.o -MMD > >> -MP -MF deps/FilePlugin.Td -fdeclspec -msse2 -ggdb2 -m64 -mdll -mno-rtd > >> -mms-bitfields -O0 -fno-omit-frame-pointer -D_MT -fno-builtin-printf > >> -fno-builtin-putchar -fno-builtin-fprintf -Wall -Wno-unused-variable > >> -Wno-unknown-pragmas -Wno-unused-label -Wno-unused-function -I. > >> -I../../spur64src/vm -I../../platforms/win32/vm > -I../../platforms/Cross/vm > >> -I../../src/plugins/FilePlugin -I../../platforms/win32/ > plugins/FilePlugin > >> -I../../platforms/Cross/plugins/FilePlugin -D_WIN32_WINNT=0x0501 > >> -DWINVER=0x0501 -DWIN64=1 -DWIN32_FILE_SUPPORT -DNO_ISNAN -DNO_SERVICE > >> -DNO_STD_FILE_SUPPORT -DLSB_FIRST -DVM_NAME=\"\" > -DSQUEAK_BUILTIN_PLUGIN -c > >> ../../src/plugins/FilePlugin/FilePlugin.c -o > >> builddbg/FilePlugin/FilePlugin.o > >> clang-3.9: warning: argument unused during compilation: '-mdll' > >> sed '/^$/d' <deps/FilePlugin.Td | sed '/^.*:$/d' | sed 's/ [^ ]*:/:/' | > >> sed 's/^build[^/]*/$(BUILD)/' > deps/FilePlugin.d; rm > deps/FilePlugin.Td; > >> touch -r ../../src/plugins/FilePlugin/FilePlugin.c deps/FilePlugin.d > >> x86_64-w64-mingw32-clang -x c -MT builddbg/FilePlugin/ > sqWin32FilePrims.o > >> -MMD -MP -MF deps/sqWin32FilePrims.Td -fdeclspec -msse2 -ggdb2 -m64 > -mdll > >> -mno-rtd -mms-bitfields -O0 -fno-omit-frame-pointer -D_MT > >> -fno-builtin-printf -fno-builtin-putchar -fno-builtin-fprintf -Wall > >> -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label > >> -Wno-unused-function -I. -I../../spur64src/vm > -I../../platforms/win32/vm > >> -I../../platforms/Cross/vm -I../../src/plugins/FilePlugin > >> -I../../platforms/win32/plugins/FilePlugin > >> -I../../platforms/Cross/plugins/FilePlugin -D_WIN32_WINNT=0x0501 > >> -DWINVER=0x0501 -DWIN64=1 -DWIN32_FILE_SUPPORT -DNO_ISNAN -DNO_SERVICE > >> -DNO_STD_FILE_SUPPORT -DLSB_FIRST -DVM_NAME=\"\" > -DSQUEAK_BUILTIN_PLUGIN -c > >> ../../platforms/win32/plugins/FilePlugin/sqWin32FilePrims.c -o > >> builddbg/FilePlugin/sqWin32FilePrims.o > >> > >> $ grep -r COGDEFS ../common > >> ../common/Makefile: LIBNAME=$(*F) COGDEFS="$(COGDEFS)" > >> XDEFS=-DSQUEAK_BUILTIN_PLUGIN \ > >> ../common/Makefile: COGDEFS="$(COGDEFS)" LIBNAME=$(*F) > >> $(OBJDIR)/$(*F).dll > >> ../common/Makefile.tools:COGDEFS:= $(COGDEFS) -DCOGMTVM=1 > >> -DDEBUGVM=$(DEBUGVM) > >> ../common/Makefile.tools:COGDEFS:= $(COGDEFS) -DCOGMTVM=0 > >> -DDEBUGVM=$(DEBUGVM) > >> ../common/Makefile.tools:DEFS:= $(COGDEFS) $(WINVER) -DWIN64=1 > >> -DWIN32_FILE_SUPPORT -DNO_ISNAN \ > >> > >> COGDEFS is used in DEFS, but DEFS is overriden in > >> ../common/Makefile.plugin > >> > >> $ grep -r '\<DEFS\>' ../common > >> ../common/Makefile: $(CC) -o $(OBJDIR)/version.o $(CFLAGS) > $(INCLUDES) > >> $(DEFS) -c $(WIN32DIR)/version.c > >> ../common/Makefile: $(CC) -o $(OBJDIR)/version.o $(CFLAGS) > $(INCLUDES) > >> $(DEFS) -c $(WIN32DIR)/version.c > >> ../common/Makefile.plugin:DEFS:= $(WINVER) -DWIN64=1 > >> -DWIN32_FILE_SUPPORT -DNO_ISNAN \ > >> ../common/Makefile.rules:ALLFLAGS = $(DEPFLAGS) $(CFLAGS) $(INCLUDES) > >> $(DEFS) > >> ../common/Makefile.tools:DEFS:= $(COGDEFS) $(WINVER) -DWIN64=1 > >> -DWIN32_FILE_SUPPORT -DNO_ISNAN \ > >> > >> After a diff with build.win32x86, it appears that the WIN32 version > >> directly append $(COGDEFS) to the CFLAGS, so I will commit a fix and > retry > >> ASAP > >> > >>>> > >>>> 2017-06-02 17:15 GMT+02:00 Nicolas Cellier > >>>> <[email protected]>: > >>>>> > >>>>> Hi Henrik, > >>>>> good catch! > >>>>> > >>>>> platforms/Cross/plugins/FilePlugin/FilePlugin.h says: > >>>>> > >>>>> sqInt dir_EntryLookup(char *pathString, sqInt pathStringLength, char > >>>>> *nameString, sqInt nameStringLength, > >>>>> /* outputs: */ > >>>>> char *name, sqInt *nameLength, sqInt *creationDate, sqInt > >>>>> *modificationDate, > >>>>> sqInt *isDirectory, squeakFileOffsetType *sizeIfFile, sqInt > >>>>> *posixPermissions, sqInt *isSymlink); > >>>>> > >>>>> platforms/win32/vm/sqWin32Directory.c says > >>>>> > >>>>> int dir_EntryLookup(char *pathString, int pathLength, char* > nameString, > >>>>> int nameStringLength, > >>>>> /* outputs: */ char *name, int *nameLength, int *creationDate, int > >>>>> *modificationDate, > >>>>> int *isDirectory, squeakFileOffsetType > *sizeIfFile, > >>>>> sqInt *posixPermissions, sqInt *isSymlink) > >>>>> > >>>>> > >>>>> int* and sqInt* are not going to be a good match on 64 bits... > >>>>> But I don't know how the WIN64 Squeak VM could possibly work, because > >>>>> prototypes are equally wrong (just with two parameters less). > >>>>> And the two paramters added by Pharo are correct!!! > >>>>> > >>>>> Maybe there is another bug, I will modify the easy part and commit > >>>>> ASAP. > >>>>> > >>>>> In the long term, we shall include the .h containing declarations > into > >>>>> the .c implementing the functions and use more agressive -C99 flags > forcing > >>>>> the prototypes to be defined. > >>>>> > >>>>> > >>>>> 2017-06-02 14:48 GMT+02:00 Henrik Sperre Johansen > >>>>> <[email protected]>: > >>>>>> > >>>>>> The Windows 64 Pharo VM crashes when loading images*. > >>>>>> The Windows 64 Squeak VM runs Pharo images just fine, but lacks some > >>>>>> plugins > >>>>>> (FT2 from Pharo build works, and can be copied over, SqueakSSL is > >>>>>> MiA). > >>>>>> Great work! > >>>>>> > >>>>>> Cheers, > >>>>>> Henry > >>>>>> > >>>>>> *Crash occurs when loading sources; > >>>>>> Stack backtrace: > >>>>>> [0000000000495063] dir_EntryLookup + 0x83 in Pharo.exe > >>>>>> > >>>>>> Smalltalk stack dump: > >>>>>> 0xb4f568 I WindowsStore(DiskStore)>basicEntryAt: > 0x9a711c0: > >>>>>> a(n) > >>>>>> WindowsStore > >>>>>> 0xb4f5b8 I > >>>>>> WindowsStore(DiskStore)>nodeAt:ifPresent:ifAbsent: > >>>>>> 0x9a711c0: a(n) WindowsStore > >>>>>> 0xb4f610 I WindowsStore(FileSystemStore)>exists: > 0x9a711c0: > >>>>>> a(n) > >>>>>> WindowsStore > >>>>>> 0xb4f658 I FileSystem>exists: 0x9a711d8: a(n) FileSystem > >>>>>> 0xb4f6a0 I FileReference>exists 0x9a77400: a(n) > >>>>>> FileReference > >>>>>> 0xb4f6e0 I FileLocator(AbstractFileReference)>exists > >>>>>> 0x9a76678: > >>>>>> a(n) FileLocator > >>>>>> 0xb4f730 M [] in PharoFilesOpener>openSources:forImage: > >>>>>> 0xaca7168: > >>>>>> a(n) PharoFilesOpener > >>>>>> > >>>>>> so I assume it's related to additional functionality in > >>>>>> <primitive: 'primitiveDirectoryEntry' module: 'FilePlugin'> in the > >>>>>> Pharo > >>>>>> build. > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> -- > >>>>>> View this message in context: > >>>>>> http://forum.world.st/please-test-download-for-Pharo-6-0- > tp4948720p4948965.html > >>>>>> Sent from the Pharo Smalltalk Developers mailing list archive at > >>>>>> Nabble.com. > >>>>>> > >>>>> > >>>> > >>> > >> > > > >
