小编fuz*_*Tew的帖子

Git:我如何合并那些与一些遗失历史广泛分歧的复杂分支?

我有两个"分支",它们都是从相同的代码库开始的,但是两个分支都是在它们发散后导入到​​git中的.先前的历史丢失了,另外两个分支在他们的git历史中记录了大量的变化.

以可管理的方式处理这两个分支之间的合并功能和错误修正的好策略是什么?

是否有工具可以帮助我将原始导入中的差异分离为有意义的提交?

git merge branch git-merge

7
推荐指数
1
解决办法
969
查看次数

什么是构建针对Web和本地语言的游戏框架的良好平台?

我想开发(或者发现,如果已经在开发中)一个支持加速图形和声音的框架,该框架构建在一个足够灵活的系统上,可以编译成以下内容:

  • 原生ppc/x86/x86_64/arm二进制文件或编译它们的语言
  • JavaScript的
  • ActionScript字节码或编译它的语言(ActionScript 3,Haxe)
  • 可选Java

我想,例如,创建一个API,我可以打开窗口并进行类似OpenGL的调用,框架以相对有效的方式将其映射到带有画布对象的WebGL,Flash中的3d图形,带有EGL的OpenGL ES 2,或者X11,Windows或Cocoa窗口中的桌面OpenGL.

到目前为止,我一直在研究这些途径:

  • Haxe建立游戏库
    • 优点:
      • 存在PHP,JavaScript,ActionScript字节码,C++的目标
      • 高级,面向对象的语言
    • 缺点:
      • 不支持finally {}块或析构函数,使资源清理变得困难
      • C++目标不允许室用于产生高度优化库 - 外国功能接口要求所有原始类型的包装对象装箱,仿佛写入绑定的脚本语言; 这些对于实时图形和音频来说是不合适的,尤其是导出低级功能.
      • 似乎还不成熟
  • 使用C预处理器创建翻译器,完全用宏编写程序
    • 优点:
      • CPP广泛且易于使用
    • 缺点:
      • 这是一项艰巨的任务,可能是工作的错误工具
      • CPP实现在功能支持方面差异很大(例如,尽管声称符合C99,但xcode cpp没有可变参数宏)
      • 在这条路线上几乎没有优化空间
  • 使用llvm支持多个后端,将c/c ++定位到Web语言
    • 优点:
      • 可以用c/c ++编写代码
      • LLVM是一种非常成熟的高度优化编译器,可执行全局内联
      • 动作脚本(炼金术)和javascript(emscripten)存在目标
    • 缺点:
      • Actionscript目标是封闭源,非维护和错误.
      • Javascript目标不使用HTML5的功能进行适当的优化(例如带有类型数组的线性内存),并且不成熟
      • LLVM目标必须从低级字节码转换,因此高级构造将丢失,并且通过翻译单个指令来创建膨胀的不可读代码,这对于未准备好的JIT进行优化可能更加困难."jump"指令会导致没有"goto"语句的语言出现问题.
  • 使用libclang编写从C/C++到Web语言的翻译器
    • 优点:
      • 一个漂亮的解析库,可以轻松访问代码结构
      • 可以用C/C++编写代码
      • 赞助了Apple的开发者工作
    • 缺点:
      • 不完整的; 当前功能集针对IDE.基本运算符是未公开的,必须从返回的AST元素中手动解析以进行标识.
      • 在编译之前翻译代码可能会放弃在c/c ++中假设的优化,例如内联.
  • clang创建新的代码生成器以转换为Web语言
    • 优点:
      • 可以用C/C++编写为libclang
    • 缺点:
      • 没有API; 代码结构不稳定
      • 比使用libclang要大得多的工作; 铿锵的内脏是复杂的
  • Common Lisp中构建游戏库
    • 优点:
      • 灵活,完善的语言
      • 广泛的内省应该可以轻松编写翻译人员
      • 译员至少存在于javascript中
    • 缺点:
      • 不熟悉的语言
      • 没有标准化的库函数,各种各样的实现

我应该追求以下哪些途径?你知道其他任何系统或任何可能有用的系统吗?

像这样的一般项目是否已存在于某个地方? …

javascript c++ lisp opengl flash

5
推荐指数
1
解决办法
584
查看次数

标签 统计

branch ×1

c++ ×1

flash ×1

git ×1

git-merge ×1

javascript ×1

lisp ×1

merge ×1

opengl ×1