小编Sco*_*ski的帖子

Xcode - 安装命令行工具

如何使用当前的Xcode/Mac OS X v10.8(Mountain Lion)或更高版本安装命令行构建工具?

与Xcode不同,没有安装程序(它只是一个包).

看起来所有命令行工具都在那里(在bundle中,在Contents/Developer下),但没有一个适当的环境变量设置为使用它们.

是否有一个我可以运行的脚本,它将设置我的环境以支持从命令行构建?

macos xcode download command-line-tool

406
推荐指数
10
解决办法
45万
查看次数

.NET中类等级的加载器

有谁知道是否可以在.NET中定义"java自定义类加载器"的等价物?

给一点背景:

我正在开发一种针对CLR的新编程语言,称为"Liberty".该语言的一个特性是它能够定义"类型构造函数",它是编译器在编译时执行并生成类型作为输出的方法.它们是泛型的泛化(该语言确实具有普通泛型),并允许编写这样的代码(使用"Liberty"语法):

var t as tuple<i as int, j as int, k as int>;
t.i = 2;
t.j = 4;
t.k = 5;
Run Code Online (Sandbox Code Playgroud)

"tuple"的定义如下:

public type tuple(params variables as VariableDeclaration[]) as TypeDeclaration
{
   //...
}
Run Code Online (Sandbox Code Playgroud)

在这个特定的例子中,类型构造函数tuple提供类似于VB和C#中的匿名类型.

但是,与匿名类型不同,"元组"具有名称,可以在公共方法签名中使用.

这意味着我需要一种方法,最终由编译器发出的类型可以跨多个程序集共享.例如,我想要

tuple<x as int>在程序集A中定义的最终类型与tuple<x as int>程序集B中定义的类型相同.

当然,问题是程序集A和程序集B将在不同的时间进行编译,这意味着它们最终都会发出自己不兼容的元组类型版本.

我考虑使用某种"类型擦除"来做这个,所以我会有一个像这样的一堆类型的共享库(这是"Liberty"语法):

class tuple<T>
{
    public Field1 as T;
}

class tuple<T, R>
{
    public Field2 as T;
    public Field2 as R;
}
Run Code Online (Sandbox Code Playgroud)

然后只重定向来自第i,j和k元组字段来访问Field1,Field2Field3.

然而,这不是一个真正可行的选择.这意味着,在编译时 …

.net compiler-construction clr language-features programming-languages

44
推荐指数
1
解决办法
1万
查看次数

JIT编译器与离线编译器

是否存在JIT编译器比其他编译器(如C++)更快的情况?

您认为将来JIT编译器只会看到次要的优化,功能但是会遵循类似的性能,还是会有突破性的优势使其无限优于其他编译器?

看起来多核心范式有一些希望,但它不是普遍的魔力.

任何见解?

.net c# c++ compiler-construction jit

37
推荐指数
3
解决办法
7952
查看次数

Win32文件名比较

有没有人知道Win32在处理不区分大小写的文件名时使用的文化设置?

这是根据用户的文化而变化的,还是Win32使用文化不变的大小写规则?

winapi case-insensitive

14
推荐指数
2
解决办法
2050
查看次数

本地化日期范围

有谁知道如何使用C#本地化日期范围?

特别是,我想生成"智能"日期范围,以便消除冗余信息.

以下是美国英语中的一些示例

  1. 8月 - 2009年9月
  2. 2009年8月
  3. 2009年8月1日至9日
  4. 2009年1月1日至3月3日
  5. 2009年12月6日 - 2010年1月8日

形成我可以告诉.NET Framework支持本地化日期,但不支持日期范围.

使用支持System.Globalization.DateTimeFormatInfo的Windows语言环境中的信息CultureInfo,我能够(大部分时间)弄清楚如何执行项目#1和#2.第2项就是DateTime.ToString(DateTimeFormatInfo.YearMonthFormat).使用YearMonthFormatI还能够推断出大多数语言用于#1的格式.对于少数我不能,我只是重复一年.

不幸的是,我无法弄清楚如何使用.NET Framework执行#3-#5项.Outlook格式使用这些格式进行格式化,所以我希望可能有一些Win32 API会这样做,但Google搜索"Win32 Date Range本地化"没有任何用处.

我喜欢"智能范围格式化"提供的增强的可用性,我希望没有使用英文版Windows的客户获得相同的好处.

有没有人知道如何以文化依赖的方式做到这一点?

.net c# globalization datetime date

12
推荐指数
1
解决办法
1466
查看次数

Win32 EXCEPTION_INT_OVERFLOW与EXCEPTION_INT_DIVIDE_BY_ZERO

我有关于EXCEPTION_INT_OVERFLOW和EXCEPTION_INT_DIVIDE_BY_ZERO异常的问题.

Windows将捕获由IDIV指令生成的#DE错误,并最终使用这两个代码之一生成SEH异常.

我的问题是它如何区分这两个条件?英特尔手册中有关idiv的信息表明它将在"除以零"和"下溢情况"中生成#DE.

我快速浏览了intel手册第3卷中#DE错误的部分,我能收集的最好的是操作系统必须解码DIV指令,加载除数参数,然后将其与零进行比较.

这对我来说似乎有点疯狂.为什么芯片设计者不会使用某种标志来区分错误的两个原因?我觉得我必须遗漏一些东西.

有谁知道操作系统如何区分两种不同的故障原因?

windows x86 assembly exception

10
推荐指数
1
解决办法
1322
查看次数

Visual C++易失性

Visual C++中"volatile"的MSDN文档表明,写入具有"释放语义",并且读取具有"获取语义",此外还确保读取始终从内存中读取,并且写入总是相应地写入.

"volatile"的C规范包括第二部分(不做疯狂的优化),但不包括第一部分(内存栅栏).

在没有内存栅栏的情况下,Visual C++中是否有任何方法只能获得"C"易变行为?

我想强制一个变量始终在堆栈上,在一个固定的位置,但我不想在每次赋值时占用内存栅栏的开销.

有没有简单的方法来使用Visual C++源代码?

c++ volatile visual-c++

8
推荐指数
1
解决办法
1152
查看次数

Delegate.BeginInvoke

通过检查mscorlib中的符号,看起来C#编译器中嵌入了一些逻辑来检测Silverlight的存在.检测到mscorlib的Silverlight版本时,它不会在它生成的任何委托类型上发出BeginInvoke和EndInvoke成员.

这是有道理的,因为这些方法不支持silverlight.

有谁知道它用于触发该决定的类型/成员(特别是在委托案例中)?

c# silverlight

6
推荐指数
1
解决办法
574
查看次数