[#70252] Re: [ruby-cvs:58640] nobu:r51492 (trunk): node.c: NODE_ALLOCA for ALLOCV — Eric Wong <normalperson@...>
Besides possible backwards compatibility, can we drop volatile
3 messages
2015/08/05
[#70257] [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI — ko1@...
Issue #11420 has been reported by Koichi Sasada.
11 messages
2015/08/06
[#70337] Re: [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI
— Eric Wong <normalperson@...>
2015/08/11
Nice. Thank you guys for looking into this.
[#70349] Re: [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI
— Eric Wong <normalperson@...>
2015/08/12
Btw, did you consider using flexible array to avoid extra malloc
[#70355] Re: [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI
— Юрий Соколов <funny.falcon@...>
2015/08/12
I thought to suggest to embed hash_id_table directly into places when it is
[#70356] Re: [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI
— SASADA Koichi <ko1@...>
2015/08/12
On 2015/08/13 4:29, Юрий Соколов wrote:
[#70358] Re: [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI
— Eric Wong <normalperson@...>
2015/08/12
SASADA Koichi <ko1@atdot.net> wrote:
[#70509] [Ruby trunk - Misc #11276] [RFC] compile.c: convert to use ccan/list — ko1@...
Issue #11276 has been updated by Koichi Sasada.
3 messages
2015/08/21
[#70639] the undefined behavior of an iterator if it is modified inside of the block to which it yields — Daniel Doubrovkine <dblock@...>
(this is my first time e-mailing list list, so apologies for any misstep :)
4 messages
2015/08/31
[ruby-core:70558] [Ruby trunk - Bug #11478] symlinks support broken on win32
From:
djberg96@...
Date:
2015-08-23 21:10:40 UTC
List:
ruby-core #70558
Issue #11478 has been updated by Daniel Berger.
FWIW, this is how we implemented File.symlink? in win32-file: https://githu=
b.com/djberg96/win32-file/blob/ffi/lib/win32/file.rb#L241-L271
Note that we use CreateSymbolicLink for our own File.symlink method, howeve=
r. I'm not sure why core Ruby doesn't yet. It's been around since Vista.
----------------------------------------
Bug #11478: symlinks support broken on win32
https://bugs.ruby-lang.org/issues/11478#change-53968
* Author: Alex Budovski
* Status: Feedback
* Priority: Normal
* Assignee:=20
* ruby -v: master
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
The symlink support is completely broken on win32 because it thinks ALL rep=
arse points are symlinks.
~~~
/* License: Ruby's */
static unsigned
fileattr_to_unixmode(DWORD attr, const WCHAR *path)
=E2=80=A6
if (attr & FILE_ATTRIBUTE_REPARSE_POINT) {
mode |=3D S_IFLNK | S_IEXEC;
}
~~~
But that is plainly false. I have dedup enabled on my volume, and some file=
s are deduped, resulting in reparse points with tag =3D=3D 0x80000013 (IO_R=
EPARSE_TAG_DEDUP)
See: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365511(v=3D=
vs.85).aspx
One obvious problem is with `nmake install` we skip a number of files from =
being copied due to this logic:
~~~
E:\dev\ruby\tool\rbinstall.rb:
def install_recursive(srcdir, dest, options =3D {})
opts =3D options.clone
=E2=80=A6
elsif stat.symlink?
# skip
puts "**** skipping #{src} ****" # I added this line to check
else
~~~
Example file that was skipped:
~~~
E:\dev\ruby>fsutil reparsepoint query E:/dev/ruby/lib/optparse.rb
Reparse Tag Value : 0x80000013
Tag value: Microsoft
Reparse Data Length: 0x0000007c
Reparse Data:
0000: 01 02 7c 00 00 00 00 00 fd e0 00 00 00 00 00 00 ..|.............
0010: 00 00 00 00 00 00 00 00 f7 38 52 15 a0 a8 c2 46 .........8R....F
0020: a2 70 6e d0 4e 28 5d f5 40 00 40 00 40 00 00 00 .pn.N(].@.@.@...
0030: 97 4a a2 d6 a0 d4 d0 01 7b 2f 01 00 00 00 0a 00 .J......{/......
0040: 30 2e 9c 05 00 00 03 00 01 00 00 00 88 00 00 00 0...............
0050: 88 00 00 00 00 00 00 00 30 cf fe d1 25 e3 d7 d6 ........0...%...
0060: 07 79 02 88 4a 46 79 35 31 2d b7 31 49 87 de f8 .y..JFy51-.1I...
0070: 50 20 af 62 27 db 87 76 fc 44 d2 88 P .b'..v.D..
~~~
File that hadn't been deduped yet:
~~~
E:\dev\ruby>fsutil reparsepoint query E:/dev/ruby/include/ruby/backward/cla=
ssext.h
Error: The file or directory is not a reparse point.
~~~
So the `nmake install` is incomplete! But naturally, anything that depends =
on `stat.symlink?` will not work right.
--=20
https://bugs.ruby-lang.org/