Perl 6 - the future is here, just unevenly distributed

IRC log for #perl11, 2015-12-09

| Channels | #perl11 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:11 travis-ci perl11/cperl#429 (smoke/win32_require_t_fix - c0a502d : bulk88): The build passed. https://travis-ci.org/perl11/cperl/builds/95706602
01:11 travis-ci perl11/cperl#429 (smoke/win32_require_t_fix - c0a502d : bulk88): The build passed. https://travis-ci.org/perl11/cperl/builds/95706602
01:15 travis-ci perl11/cperl#429 (smoke/win32_require_t_fix - c0a502d : bulk88): The build passed. https://travis-ci.org/perl11/cperl/builds/95706602
01:29 willthechill joined #perl11
03:44 willthechill joined #perl11
05:56 travis-ci perl11/cperl#430 (smoke/config_qq_fix_and_win32_smk_speed-3 - 4e601f3 : bulk88): The build passed. https://travis-ci.org/perl11/cperl/builds/95735045
05:58 travis-ci perl11/cperl#430 (smoke/config_qq_fix_and_win32_smk_speed-3 - 4e601f3 : bulk88): The build passed. https://travis-ci.org/perl11/cperl/builds/95735045
06:01 travis-ci perl11/cperl#430 (smoke/config_qq_fix_and_win32_smk_speed-3 - 4e601f3 : bulk88): The build passed. https://travis-ci.org/perl11/cperl/builds/95735045
07:17 rurban joined #perl11
07:24 travis-ci perl11/cperl#431 (smoke/config_qq_fix_and_win32_smk_speed-4 - 516d575 : bulk88): The build failed. https://travis-ci.org/perl11/cperl/builds/95744835
07:26 travis-ci perl11/cperl#431 (smoke/config_qq_fix_and_win32_smk_speed-4 - 516d575 : bulk88): The build failed. https://travis-ci.org/perl11/cperl/builds/95744835
07:26 travis-ci perl11/cperl#431 (smoke/config_qq_fix_and_win32_smk_speed-4 - 516d575 : bulk88): The build failed. https://travis-ci.org/perl11/cperl/builds/95744835
07:36 travis-ci perl11/cperl#432 (bugfix/32arith-gh2 - 9749dcd : Reini Urban): The build was canceled. https://travis-ci.org/perl11/cperl/builds/95746273
07:40 basiliscos joined #perl11
07:43 rurban smoke/win32_require_t_fix can be merged already, right?
07:51 rurban I'm also doing mostly cygwin in win32 land, because then I don't have to go my desk to move the mouse
07:53 bulk88 smoke/win32_require_t_fix is ready to merge
07:53 rurban p5p has a good fix to skip pm_to_blib touching: https://rt.perl.org/Public/Bug/Display.html?id=126710#txn-1378433
07:53 rurban merged
07:54 rurban your config branches also look good
07:55 bulk88 I have some more tricks I plan to code over hte next 2 months to speed up p5 on win32 smoking, mkbootstrap elimination on most platforms, more win32 stat optimizaing, common controls DLL removal
07:55 bulk88 config-4 is broken, config-3 has a bad commit message, branch commit-5 should be mergable once travis finishes it
07:58 rurban if broken you can delete it.
07:58 bulk88 I cant decide if I really did speed up the appveyor smoke, before was 33-35 mins https://ci.appveyor.com/project/rurban/cperl/build/5.22.2.632  https://ci.appveyor.com/project/rurban/cperl/build/5.22.2.628 after is 29-33 mins https://ci.appveyor.com/project/rurban/cperl/build/5.22.2.631   https://ci.appveyor.com/project/rurban/cperl/build/5.22.2.633
07:58 rurban git push origin :smoke/config_qq_fix_and_win32_smk_speed-3
07:59 bulk88 I already deleted config-4
07:59 rurban thanks
07:59 rurban I usually overwrite them via push -f
07:59 rurban this will make the smokes fail earlier when not already fetched
07:59 bulk88 I can't cancel appveyor or travis builds, appveyor takes 2 hrs to complete, I noticed if I delete teh branch I can make the appveyor build error out quickly
08:00 rurban 2min is at least something
08:00 bulk88 that is why I use branches isntead of force pushes
08:00 rurban Oh, I see if I can get you perms there also
08:01 rurban I hope travis gets windows support soon. appyeyor is way too slow
08:02 bulk88 I wonder what CPU'es  (instruction set) and ghz are offered on travis vs appveyor, I can't  find any articles describing either
08:03 bulk88 I suspect appveyor is slow because its Win32 Perl, and #2 psuedofork Win32 Perl
08:04 rurban perms done
08:05 travis-ci perl11/cperl#433 (smoke/config_qq_fix_and_win32_smk_speed-5 - 5383054 : bulk88): The build failed. https://travis-ci.org/perl11/cperl/builds/95746309
08:07 rurban Only my good old ext/DynaLoader/t/XSLoader.t friend on darwin. Need to TODO this. Can be merged
08:09 rurban So we only have Storable and dynamic byteorder in Config remaining
08:09 travis-ci perl11/cperl#433 (smoke/config_qq_fix_and_win32_smk_speed-5 - 5383054 : bulk88): The build failed. https://travis-ci.org/perl11/cperl/builds/95746309
08:09 rurban which is related I guess
08:09 bulk88 with the require.t patch, and IF I have gperf in my path, on my laptop, all tests pass for me
08:10 bulk88 I'll have to try VC 2010 or VC 2013 and see if I can reproduce what appveyor is doing
08:10 rurban I also haven't tried VC 2010 yet, just cygwin
08:11 rurban it sets 64bitint or 64bit somewhere
08:14 rurban Guess I have to update the memory savings graphs now, with your massive savings in Config
08:16 rurban Oh, you even wrote a perlcdelta, great !
08:18 bulk88 COnfig.dll is 164 KB, config_heavy.pl is 34 KB, long way to for XS COnfig to be a competitor size wise
08:19 bulk88 I have a plan to shrink struct Perl_Config from 3 machine words to 2 machine words
08:20 rurban in memory it's a huge win already. See http://perl11.org/cperl/STATUS.html
08:21 rurban it's ~2MB less
08:21 bulk88 static const struct Perl_Config wordlist[] is 126KB long on my 32 bit machine
08:21 rurban and the readonly dll structures do not press the kernel vmm at all now
08:23 rurban yeah, name, type + len could be mangled somehow probably
08:23 bulk88 I also have a plan to keep C strings that are <= 4 bytes long directly in struct Perl_Config instead of as pointers to C strings,
08:23 rurban A shortstring
08:23 rurban with 64bit even longer strings
08:24 bulk88 I know, I'll use the extra 4 bytes on x64
08:24 rurban This optimization does really pay off on 64bit. lua does it, but it didn't work in potion yet
08:24 bulk88 I could also steal 3 bytes from size_t len, since 256 > 4/8/11
08:25 bulk88 size_t is going to be shaved down to a U16, no need for it to be size_t/8 bytes
08:25 bulk88 *size_t len
08:25 rurban people usually encode their len as with utf8. first 1 byte says it will be another byte for the len. runlength encoding
08:25 rurban first 1 bit!
08:27 rurban yes, there is still lot of room. I stopped because I thought unicode is more important. much bigger tables there
08:27 rurban and even more static than Config
08:27 rurban no need for gperf
08:28 rurban those tables probably need to be cache optimized arrays
08:29 bulk88 utf8 in Config.pm seems pointless
08:30 bulk88 p5p doesn't support it except as "file paths are binary, it is the font's problem on whether its utf8 or legacy"
08:30 rurban t/porting/libperl.t fails with a new chmod() call
08:31 rurban in Config.pm?I guess you mean DynaLoader
08:32 rurban there it is rather pointless yes. but you get utf8 package names from require and need to map that to filenames somehow
08:33 rurban even if unicode XS module names should not be used yet
08:34 travis-ci perl11/cperl#434 (bugfix/32arith-gh2 - 263af98 : Reini Urban): The build passed. https://travis-ci.org/perl11/cperl/builds/95746426
08:34 bulk88 linux and Win32 have different opinions on how to store unicode, and how to convert it to legacy or utf8, the same flashstick will generate 2 different results
08:34 rurban I need to add a -m32 target to travis also, m32 should fail
08:35 rurban cygwin ditto
08:35 bulk88 unicode file paths also have security issues regarding equality and normalization, that scares me
08:35 bulk88 also font phishing
08:35 rurban cygwin at least supports utf8 pathnames, windows only ucs-2
08:36 rurban uh, yes
08:36 rurban did you add a chmod into you win32 changes?
08:36 bulk88 show me the CI log with the chmod failure
08:37 rurban only locally yet
08:37 rurban on my -m32 attempt
08:37 rurban travis passed ok
08:37 bulk88 libperl.t cant run on Win32 because its not ELF/.SO
08:38 rurban yes, that's what I thought. cannot be win32...
08:38 rurban but there is a nm for coff. forgot it's name
08:39 bulk88 dumpbin for VC, objdump and nm for GCC
08:39 rurban it's probably just my cross-compiler setup
08:39 rurban dumpbin, yes. that can be used
08:39 travis-ci perl11/cperl#434 (bugfix/32arith-gh2 - 263af98 : Reini Urban): The build passed. https://travis-ci.org/perl11/cperl/builds/95746426
08:41 rurban "Perl's config says that U32 access must be aligned" so wrong. it's a shame
08:41 rurban intel does NOT to be aligned. sparc64 needs
08:41 rurban not even even mips needs it
08:41 rurban ppc and arm neither
08:42 bulk88 on my Win7, I tried a cygperl build, EUMM couldn't chmod any files, I created an Administrator cygwin prompt, EUMM then changed ownership away from me using ACLs, including changing .git away from me, took 2 hours for me to figure out how to repair that
08:42 travis-ci perl11/cperl#434 (bugfix/32arith-gh2 - 263af98 : Reini Urban): The build passed. https://travis-ci.org/perl11/cperl/builds/95746426
08:42 rurban I had a script for that to fix the perms and make ACL's fast
08:43 bulk88 old arms require alignment
08:43 rurban It was in my cygwin perl build.sh script
08:43 rurban old arms <=5 or so, yes
08:43 bulk88 I though mips/ppc require alignment, they are traditional RISC
08:43 rurban they relaxed due to intel
08:44 rurban relaxed it. debian cannort sparc anymore, because their alignment strictness caused fails all over :)
08:44 bulk88 are you sure the OS kernel isn't trapping a SIGBUS/GPF and fixing it up and resuming execution?
08:44 rurban cannot support sparc64 anymore
08:44 rurban mips? you can select that behavior
08:45 rurban but I wasn't able to cause a SIGBUS. I wanted one on parrot, but was not able to get it. Only SPARC64
08:45 bulk88 I read an article today that emulating SSE instructions is how hackintosh devs got OSX to run on P4s
08:45 bulk88 *emulating SSE instructions in a patched OSX kernel
08:46 rurban They require SSE, yes. And a larger and aligned stack.
08:46 rurban they do doubles in their graphics coreframework,nt ints
08:46 rurban not ints
08:46 willthechill wait what about SSE?
08:46 willthechill (just did more SSE coding in RPerl last night)
08:46 rurban Very strange, but fast with newer pentiums. SSE enables them passing them in special registers
08:47 rurban And it requires an aligned stack. without it's permissive
08:47 rurban So basically using doubles is faster than longs.
08:48 rurban But you need new CPU's for that, which Apple can guarantee
08:49 rurban lua used the same trick. they don't use int. they use double for all numbers, and are still exact in the int range
08:49 bulk88 Apple compiles OSX to run on only the latest Intel CPUs, the exact CPUs Apple orders from Intel
08:49 bulk88 if you want to run OSX on AMD or ancient Intel CPUs, you are out of luck, without a patched OSX kernel, that emulates the missing CPU intstructions, at a great perf degradation
08:50 rurban but now luajit owns lua, and they use short and ints again.
08:50 bulk88 The Javascript spec says all numbers are floating point, no integers
08:50 willthechill the RPerl spec says all numbers are double longs  :P
08:50 rurban hackintosh'es should just use haswell and they are fine
08:50 willthechill same as Perl 5 core
08:50 willthechill although I have now added support for unsigned_integer and gmp_integer
08:51 rurban double long? long double or long
08:51 bulk88 in a JS ABI for a theiretical JS JITer, its easy to say all ints are passed in FP regs/SSE regs
08:51 rurban yes. SSE regs are cool
08:51 rurban FP regs not so
08:52 rurban the 387 only has a simple FP stack
08:52 bulk88 on Perl 5, I consider SSE isntructions and registers to be a waste
08:52 rurban gcc-5.3 just came out with AVX-512 support, for the very new chips
08:52 bulk88 1 SSE add is slower on a x87 add, unless you fill 2 of 4 slots in a SSE register, SSE is slower than x87
08:52 bulk88 *is slower than
08:53 rurban really? I use -msse4.2 or now -march=corei7
08:54 rurban -march=native is unfortunately not that well supported
08:54 rurban And I trust -O3 to do the best thing
08:54 willthechill long double
08:54 willthechill RPerl also supports sse_number_pair data type
08:54 rurban But I haven't used -flto yet
08:55 willthechill and -O3 is always turned on
08:55 bulk88 unless you can fill all the slots of an SSE register, which means you have a parallel/vector workload, SSE is slower than x87 math
08:55 bulk88 also I think there are problems with libc compatibility and SSE, since SSE math can't generate FP exceptions/signals or something
08:56 rurban -Duselongdouble is optional for me.
08:56 rurban FP exceptions, yes
08:57 rurban I'm not convinced of long doubles yet. If you can use bignum's via gmp.
08:57 rurban gmp is pretty fast
08:57 bulk88 you need to check the machine code if your double math is calling out to helper C functions that check the result of the SSE operation, then possibly call raise()
08:58 bulk88 also SSE vs x87 perls dont have reproducible floating point values, because intermediate results are 64 bit on SSE, and 80 bit on x87, regardless of size of the FP number in RAM
08:58 rurban I'll do that when I check nbody again next week. I'm just reworking add and multiply. They can be made much faster still
09:00 willthechill long doubles are used for the number type by default
09:00 willthechill gmp_integer is an extra data type which must be turned on with 'use rperlgmp;'
09:00 willthechill an additional RPerl compiler directive
09:05 rurban Ok, the libperl.t fail comes from my -m32 cross-compiler.
09:06 travis-ci perl11/cperl#435 (master - 3505865 : bulk88): The build passed. https://travis-ci.org/perl11/cperl/builds/95747950
09:09 travis-ci perl11/cperl#435 (master - 3505865 : bulk88): The build passed. https://travis-ci.org/perl11/cperl/builds/95747950
09:13 travis-ci perl11/cperl#435 (master - 3505865 : bulk88): The build passed. https://travis-ci.org/perl11/cperl/builds/95747950
11:20 rurban joined #perl11
12:31 stephen joined #perl11
12:41 rurban joined #perl11
13:04 travis-ci RPerl build passed. Will Braswell says 'GMP Multiple Precision, Add Support, Part 14'
13:04 travis-ci https://travis-ci.org/wbraswell/rperl/builds/95788496 https://github.com/wbraswell/rperl/compare/46cf4236a40c...5f518e2615b5
13:42 travis-ci perl11/cperl#436 (bugfix/32arith-gh2 - 7c711b8 : Reini Urban): The build has errored. https://travis-ci.org/perl11/cperl/builds/95798701
13:42 travis-ci perl11/cperl#436 (bugfix/32arith-gh2 - 7c711b8 : Reini Urban): The build has errored. https://travis-ci.org/perl11/cperl/builds/95798701
13:43 travis-ci perl11/cperl#436 (bugfix/32arith-gh2 - 7c711b8 : Reini Urban): The build has errored. https://travis-ci.org/perl11/cperl/builds/95798701
14:17 travis-ci perl11/cperl#437 (master - f5fd78d : bulk88): The build passed. https://travis-ci.org/perl11/cperl/builds/95799228
14:21 travis-ci perl11/cperl#437 (master - f5fd78d : bulk88): The build passed. https://travis-ci.org/perl11/cperl/builds/95799228
14:34 travis-ci perl11/cperl#441 (bugfix/32arith-gh2 - 4c94476 : Reini Urban): The build was broken. https://travis-ci.org/perl11/cperl/builds/95800103
14:35 travis-ci perl11/cperl#441 (bugfix/32arith-gh2 - 4c94476 : Reini Urban): The build was broken. https://travis-ci.org/perl11/cperl/builds/95800103
14:36 travis-ci perl11/cperl#441 (bugfix/32arith-gh2 - 4c94476 : Reini Urban): The build was broken. https://travis-ci.org/perl11/cperl/builds/95800103
14:57 bpmedley joined #perl11
15:01 rurban joined #perl11
17:12 rurban joined #perl11
18:35 travis-ci perl11/cperl#445 (bugfix/32arith-gh2 - 4c9f7af : Reini Urban): The build is still failing. https://travis-ci.org/perl11/cperl/builds/95855024
18:51 travis-ci perl11/cperl#445 (bugfix/32arith-gh2 - 4c9f7af : Reini Urban): The build is still failing. https://travis-ci.org/perl11/cperl/builds/95855024
18:52 travis-ci perl11/cperl#445 (bugfix/32arith-gh2 - 4c9f7af : Reini Urban): The build is still failing. https://travis-ci.org/perl11/cperl/builds/95855024
19:38 bulk88 rurban, i see I perms to cancel travis builds but not appveyor, can you double check that I have perms to cancel appveyor?
19:39 bulk88 at 2:30 hrs a branch, appveyor might be done with its workload 2 days from now before I can see results of the last branch :(
19:40 travis-ci perl11/cperl#446 (smoke/dont_merge_appveyor_no_comctrl - 22f88cb : bulk88): The build was canceled. https://travis-ci.org/perl11/cperl/builds/95875430
20:34 rurban I changes some appyeyor setting. can you try now? already cancelled the bad builds
20:35 rurban maybe only smoke /smoke/ there
20:35 rurban It's smoking now no_comctrl
20:39 bulk88 I now have a cancel button on appveyor thanks
21:03 rurban great
21:49 willthechill joined #perl11
21:59 bulk88 rurban all the appveyors failures except config.t are SEGVs on VC 2013, I cant reproeduce them on VC 2003
21:59 bulk88 same cperl master commit
22:01 bulk88 ive seen "Out of memory!" errors coming out of VC 2013 cperl too
22:02 bulk88 I suspect I am dealing with heap corruption inside the MS CRT libc
23:25 bulk88_2 joined #perl11
23:57 travis-ci perl11/cperl#448 (smoke/config_too_big_ints_fix - 8509f4b : bulk88): The build passed. https://travis-ci.org/perl11/cperl/builds/95916725

| Channels | #perl11 index | Today | | Search | Google Search | Plain-Text | summary