Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 09:54
    Ultraman95 opened #602
  • 09:06
    waruqi labeled #600
  • 07:42
    waruqi edited #601
  • 07:20
    waruqi labeled #32
  • 07:19
    waruqi edited #601
  • 07:18
    waruqi edited #601
  • 07:18
    waruqi edited #601
  • 07:14
    xizhengchao opened #32
  • 04:38
    waruqi labeled #601
  • 04:38
    waruqi opened #601
  • 04:38
    waruqi milestoned #601
  • 04:38
    waruqi labeled #601
  • Oct 22 10:09
    fasiondog opened #600
  • Oct 22 10:04
    fasiondog closed #597
  • Oct 22 09:34
    waruqi milestoned #598
  • Oct 21 02:10
    waruqi milestoned #597
  • Oct 21 02:09
    waruqi labeled #597
  • Oct 21 02:09
    waruqi labeled #597
  • Oct 20 10:06
    wangyi-fudan opened #102
  • Oct 19 11:38
    stsp closed #599
tboox_bot
@warrny
waruqi: 继承 还是 成员初始化器 什么的 都有啊。 (re @OpportunityLiu: 方法和继承之类的,object的那个根本没有, table那个把函数复制的到处都是)
waruqi:
waruqi:
waruqi:
tboox_bot
@warrny
waruqi: add_runenvs追加合并,set_runenvs直接覆盖。。是否合并,用户自己选择add_runenvs/set_runenvs自己控制 (re @OpportunityLiu: 还有一个问题,add_runenvs的实现vsxmake现在和xmake不太一样,感觉xmake无脑合并环境变量不太对,毕竟大部分环境变量并不支持用;/:分割的,是不是应该改成白名单,比如PATH之类的合并,其他的直接覆盖?这部分要在vsxmake插件实现很麻烦(覆盖的话倒是很简单),正在想怎么操作)
OpportunityLiu: 感觉更像是record而不是class。。 (re @waruqi: 继承 还是 成员初始化器 什么的 都有啊。)
waruqi: 加个set_runenvs就好了
OpportunityLiu: 都是合并,没有覆盖:
waruqi: 那是因为只提供了 add_runenvs api,我是说 后面再加个 set_runenvs 就好了。。用来做覆盖
waruqi: on_run里面 还没改。。之前随手写的。。可以改进下
OpportunityLiu: 这里还能分得清 set和add?我vsxmake里怎么处理啊 (re @waruqi: 那是因为只提供了 add_runenvs api,我是说 后面再加个 set_runenvs 就好了。。用来做覆盖)
tboox_bot
@warrny
waruqi: 用set/add还不行,这个只是控制当前xmake.lua的envs值是否merge还是覆盖。。最终的run envs是否覆盖系统现有的。。还是得加个参数让用户自己控制 ...add_runenvs("", "", {override = true}) 类似这样。控制是否重写系统值。。这个脚本里面 有接口可以 快速获取到的。。target:extraconf("runenvs", "PATH", "override") 类似这样
OpportunityLiu: 所以回到前面那个问题,默认值是覆盖还是合并,或者白名单/黑名单?
OpportunityLiu: win上貌似除了PATH,就没有用;分割的,linux上好像也不多,我只知道PATH和LD_LIBRARY_PATH
waruqi: 我再想想,黑白名单 太繁琐隐晦了 不好维护
tboox_bot
@warrny
OpportunityLiu: 还有这个问题,前面两个是xmake的问题,这个是我的问题
OpportunityLiu: Forwarded from OpportunityLiu: dll一般咋处理?感觉这么搞不太对啊:
OpportunityLiu: Forwarded from OpportunityLiu: 我试着用xmake package生成了一个dll,没啥特殊处理,不会“找不到se.dll”吗?:
tboox_bot
@warrny
waruqi: dll目前还不能自动copy 对应的lib过去。。你需要在 after_package里面,copy dll对应的lib 。。 (re @OpportunityLiu: )
tboox_bot
@warrny
waruqi: 我觉得还是默认追加吧。。虽然merge的envs不多,但毕竟对于on_run ..PATH LD_LIBRARY_PATH这种常用路径的设置更加常用,即使用户要设置其他envs 不需要merge。。也可以通过 {override = true} 让用户自己控制
tboox_bot
@warrny
waruqi: 不了解record。。目前这样 我觉得够用了。没必要非得把class支持的很完善。虽然core里面 目前table.inherit确实不咋地。。但目前也够用了。。xmake不会去做复杂的继承链结构,大部分都是单层的。。关键是这块还是早期就有了。。历史负担比较重,该这块,全改的话涉及的代码改动太多了。。如果只改部分,代码风格就会很不一致 会很混乱。 (re @OpportunityLiu: 感觉更像是record而不是class。。)
tboox_bot
@warrny
OpportunityLiu: 或者加个runenvps? (re @waruqi: 我觉得还是默认追加吧。。虽然merge的envs不多,但毕竟对于on_run ..PATH LD_LIBRARY_PATH这种常用路径的设置更加常用,即使用户要设置其他envs 不需要merge。。也可以通过 {override = true} 让用户自己控制)
tboox_bot
@warrny
waruqi: 加个p看着只是可设置sep,按照目前的命名。。add_runenvs 就是对一个值env支持复数多值的追加,那么默认就应该支持 merge的。修改sep可以通过 add_runenvs("", "", {sep = ':'}) 来修改。。要么这样 add_runenvs还是默认追加,兼容已有的行为。。set_runenv 加个单数的设置。行为就是覆盖好了。。也就是只有两api 。。。add_runenvs/set_runenv
tboox_bot
@warrny
waruqi: runenvs 复数的就是 对系统envs的追加和merge。。runenv单数的就是对系统值的覆盖。。。而对于多值的 覆盖,像PATH这种的覆盖不常用,即使非要覆盖。。通过单值覆盖接口,也可以做到 set_runenv("PATH", "xxxx;yyy;yyyy")
tboox_bot
@warrny
OpportunityLiu: 这个是帮助win在运行时查找依赖的dll的对吧?那么linux上为啥没去修改LD_LIBRARY_PATH呢?我是手动加了一句 add_runenvs("LD_LIBRARY_PATH", ...)才能用的。是不是又搞错了什么?:
OpportunityLiu: 之前一直在用apt,要不就是把libxx.so复制到系统目录,没遇到这个问题
tboox_bot
@warrny
waruqi: 我记得linux/macosx下。通过add_deps加个 shared so 依赖。。默认都加了 rpath的。。可以在 xmake run的时候找到 对应的 so路径。所以没加 (re @OpportunityLiu: )
waruqi: 不过只加了 add_deps 对应的target的path。。其他的linkdirs对应的so 的加载 我确实没加 目前的run里面。。
OpportunityLiu: 我用的addlinks和addlinkdir
OpportunityLiu: xmake自己的依赖应该没关系
waruqi: 对于其他so库 通过 add_linkdirs只是加link。。要run下找到。。得 调用 add_rpathdirs 再设置 rpath才行
waruqi: 如果用户没设置 add_rpathdirs 。。on_run下。。目前没通过linkdirs去加 LD_LIBRARY_PATH
tboox_bot
@warrny
OpportunityLiu: win上的debugger咋用的?那个vsjitdebugger没启起来过
tboox_bot
@warrny
waruqi:
waruqi:
waruqi: 我这可以啊 (re @OpportunityLiu: win上的debugger咋用的?那个vsjitdebugger没启起来过)
CodeHz: 可能是版本问题(
OpportunityLiu: 估计2010以后要改用devenv了
waruqi: 我刚xp下试得 vs2008 。。vs2010 以上没测过。。
OpportunityLiu: 直接devenv /debugexe
waruqi: 因为 我基本不怎么用这块 。。好久没去完善了。。
tboox_bot
@warrny
CodeHz: 现在是2019,很可能改了(
waruqi: 嗯嗯 抽空可以改进下这块
tboox_bot
@warrny
waruqi:
waruqi: @OpportunityLiu vs2017我这也可以么 。。2019回头我也试试
tboox_bot
@warrny
waruqi: @OpportunityLiu 现在dev上你看看 还有什么其他问题么? 没有的话 我最近就封板了。。其他新特性和改进都放到2.2.9上去好了。
tboox_bot
@warrny
OpportunityLiu: $xmake create -l cuda -P x
$cd x
$xmake f -p linux
$xmake
[ 0%]: compiling.release src\main.cu
error: nvcc fatal : Cannot find compiler 'cl.exe' in PATH
$xmake -D -v
error: ...\xmake\actions\build\main.lua:75: cannot deserialize "{stdout=\"nvcc fatal "... : (deserializing data):4: '<eof>' expected near 'stack'
tboox_bot
@warrny
Bob:
tboox_bot
@warrny
waruqi: linux平台,不会去加 msvc toolchains的 path,找不到也正常,错误提示 vstool.runv 会raise({errors, stdout ...}) catch外面需要tostring处理的,这个得查下,哪里没处理到位。。你提个issues吧 (re @OpportunityLiu: $xmake create -l cuda -P x
$cd x
$xmake f -p linux
$xmake
[ 0%]: compiling.release src\main.cu
error: nvcc fatal : Cannot find compiler 'cl.exe' in PATH
$xmake -D -v
error: ...\xmake\actions\build\main.lua:75: cannot deserialize "{stdout=\"nvcc fatal "... : (deserializing data):4: '<eof>' expected near 'stack')
tboox_bot
@warrny
OpportunityLiu: 试图在deserialize一个类似 {stdout="",stderr=""}stack: ... 的字符串 (re @waruqi: linux平台,不会去加 msvc toolchains的 path,找不到也正常,错误提示 vstool.runv 会raise({errors, stdout ...}) catch外面需要tostring处理的,这个得查下,哪里没处理到位。。你提个issues吧)