标签: pragma

9
推荐指数
1
解决办法
4416
查看次数

在django中使用sqlite启用完整性检查

在我的django项目中,我使用mysql db进行生产,使用sqlite进行测试.

问题是,我的一些代码依赖于模型完整性检查.它适用于mysql,但在测试中执行相同的代码时不会抛出完整性错误.

我知道必须在sqlite中激活外键检查:

PRAGMA foreign_keys = 1;
Run Code Online (Sandbox Code Playgroud)

但是,我不知道这种激活的最佳方式在哪里(这里也是同样的问题).

此外,以下代码将不起作用:

def test_method(self):
    from django.db import connection
    cursor = connection.cursor()
    cursor.execute('PRAGMA foreign_keys = ON')
    c = cursor.execute('PRAGMA foreign_keys')
    print c.fetchone()
    >>> (0,)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

sqlite django pragma integrity

9
推荐指数
1
解决办法
2749
查看次数

将"裸"数字分配给newtypes

请注意此GHCi会话中的第二行.什么是Latitude类型允许我使用"裸"数作为值,而不是必须调用构造函数?我想用我自己的一些类型做类似的事情.

?> :m + Data.Geo.GPX.Type.Latitude                                                                                                   
?> let t = 45 :: Latitude                                                                                                            
?> t                                                                                                                                 
45.0
Run Code Online (Sandbox Code Playgroud)

我已经检查了Latitude类型的源代码,但我一开始很难搞清楚它.最终我找到了答案,所以我想我会在这里记录下来.请参阅下面的答案.

haskell pragma

9
推荐指数
2
解决办法
242
查看次数

使用-with-rtsopts ghc选项作为pragma

我正在尝试在Haskell中解决算法难题,为此我需要相当大的数据结构.但是问题解决网站我提交了我的解决方案,不使用任何运行时选项来允许更大的堆栈,但我听说我可以使用编译器选项作为pragma.我在我的代码中尝试使用以下编译指示:

{-# OPTIONS_GHC -O2 -rtsopts -with-rtsopts=-K32m #-}
Run Code Online (Sandbox Code Playgroud)

然后我编译ghc --make algo.hs.但是,当我在一些大型测试中运行我的机器时,程序崩溃并发生堆栈溢出,并报告当前堆栈大小为8MB.另一方面,当我编译时:

ghc -rtsopts -with-rtsopts=-K32M --make algo.hs -fforce-recomp
Run Code Online (Sandbox Code Playgroud)

该程序可以在相同的数据上正常工作,而无需添加任何+RTS参数.我使用的是GHC 7.0.2,但解决问题的网站使用的是6.12.3,所以我最好也在寻找可以使用旧版本的解决方案.

stack-overflow haskell runtime pragma ghc

9
推荐指数
1
解决办法
1934
查看次数

选择请求中的编译指示

我想在 SQLite 的表中检索列的名称和行数。这是一个命令吗?

SELECT COUNT(*) FROM tablename
Run Code Online (Sandbox Code Playgroud)

PRAGMA table_info(tablename))
Run Code Online (Sandbox Code Playgroud)

sql sqlite pragma

9
推荐指数
2
解决办法
3955
查看次数

Clang有类似#pragma GCC目标吗?

我编写了一些代码,当它们在当前CPU上可用时使用AVX内在函数.在GCC和Clang中,与Visual C++不同,为了使用内在函数,必须在命令行上启用它们.

GCC和Clang的问题在于,当您启用这些选项时,您可以让编译器自由统治,以便在源文件中的任何位置使用这些指令.当你有包含内联函数或模板函数的头文件时,这是非常糟糕的,因为编译器将使用AVX指令生成这些函数.

链接时,将丢弃重复的函数.但是,由于某些源文件是使用编译而某些源文件-mavx未编译的,因此内联/模板函数的各种编译将有所不同.如果你运气不好,链接器将随机选择具有AVX指令的版本,导致程序在没有AVX的系统上运行时崩溃.

GCC解决了这个问题#pragma GCC target.您可以关闭头文件的特殊说明,生成的代码不会使用AVX:

#pragma GCC push_options
#pragma GCC target("no-avx")

#include "MyHeader.h"

#pragma GCC pop_options
Run Code Online (Sandbox Code Playgroud)

Clang有这样的东西吗?它似乎忽略了这些选项并且无论如何都会生成AVX代码.

pragma clang intrinsics avx

9
推荐指数
2
解决办法
718
查看次数

在OPTIONS pragma中设置导入路径

根据GHC 8.4.3标志引用,该-i标志是动态的,这意味着它应该由一个OPTIONSpragma设置.

所以我尝试了以下方法:

.
??? Main.hs
??? imp
    ??? Imported.hs
Run Code Online (Sandbox Code Playgroud)

内容imp/Imported.hs:

module Imported (foo) where

foo :: String
foo = "Foo"
Run Code Online (Sandbox Code Playgroud)

内容Main.hs:

{-# OPTIONS_GHC -iimp #-}
import Imported (foo)

main :: IO ()
main = putStrLn foo
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试运行Main.hs使用runhaskell,它会抱怨Imported无法找到:

$ runhaskell -v Main.hs
...
Main.hs:2:1: error:
    Could not find module ‘Imported’
    Locations searched:
      Imported.hs
      Imported.lhs
      Imported.hsig
      Imported.lhsig
Run Code Online (Sandbox Code Playgroud)

如何-iOPTIONS …

haskell pragma ghc

9
推荐指数
1
解决办法
94
查看次数

无法通过pragma禁用LLVM优化

我有一大堆代码崩溃,除非我建立优化.我正在使用LLVM编译器2.0构建

我想通过使用#pragma编译器指令包装有问题的代码来关闭优化; 或关闭整个文件的优化.

我一直在挖掘铿锵手册和代码; 但没有任何事情发生在我身上.

有谁知道如何更改单个CU的优化(而不是整个应用程序)?

pragma llvm clang ios

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

#pragma objective-c:你能不只是'标记'?

我熟悉#pragma mark objective-c/xcode/ios开发,它对于查找代码段很有用.

但是,我想知道除了'mark'之外是否还有其他关键字.比如,你能做#pragma somethingelse吗?提前致谢!

objective-c pragma ios

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

带有push和pop vs unpack的#pragma pack()

我有以下示例程序

#include <stdio.h>                              
#include <stdlib.h>

#pragma pack(push)
#pragma pack(1)
typedef struct{
  char a;
  int b;
  char c;
}st_a;
#pragma pack(pop)

typedef struct{
  char a;
  int b;
  char c;
}st_b;


int main()
{
  printf("size of struct a %zd \n",sizeof(st_a));
  printf("size of struct b %zd \n",sizeof(st_b));

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

上述计划的输出是

size of struct a 6 
size of struct b 12 
Run Code Online (Sandbox Code Playgroud)

现在,如果我更改结构声明如下:

#pragma pack(1)
typedef struct{
  char a;
  int b;
  char c;
}st_a;
#pragma unpack()
Run Code Online (Sandbox Code Playgroud)

该计划的输出是

size of struct a 6 
size of …
Run Code Online (Sandbox Code Playgroud)

c pragma

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