Development

共 62 篇文章。

FreeBSD.org website reengineered

• Development

Today Hiroki Sato has committed the long waited www/ cleanup mega-patch. Key features:

  • Localized sgml, xmls and xslts are moved into <lang>/share/sgml/.
  • Duplicated stuff between English and localized versions are eliminated as much as possible.
  • Switched to use a custom FreeBSD DTD for HTML.
参与评论

函数指针

• Development

今天在改rtld-elf的时候发现,它定义了一个函数指针数组,其内容是参数不定的,于是定义为:

typedef void (*func_ptr)();

然而,在较高的警告级别下,这一写法会被gcc认为不是prototype。

阅读全文… ( 本文约 158 字,阅读大致需要 1 分钟 )

FreeBSD src Makefile大手术

• Development

Ruslan Ermilov大长辈commit了一组Makefile变动。这包含了许多来自NetBSD和FreeBSD ports的特性。

  • 新增了MK_*选项。这些选项是开发人员设置的,如果用户配置的话将发生错误。
  • 使用WITH_*和WITHOUT_*来控制是否build选项。
  • 某些选项提供了MK_*_SUPPORT子选项。
  • 系统选项可以在 /etc/src.conf 来配置。

感觉比之前要清晰许多。

参与评论

while(0)是干吗的?

• Development

今天 renzhen 同学问起为什么很多宏都定义为 do { something… } while(0),我也顺便温习了一下。

简而言之:如果希望宏表现的和函数接近,就需要这样做。

阅读全文… ( 本文约 124 字,阅读大致需要 1 分钟 )

关于如何扩展复杂且难懂的C代码的一点经验谈

• Development

有时,我们会希望扩展一些现有的C代码。这些代码可能经历了相当久的运行考验——它们至少目前工作起来没有问题——然而,它们可能存在各种各样的问题,比如:

  • 缺少注释。
  • 过分使用的goto语句。
  • 变量名不规范。
  • 逻辑复杂难懂。
  • 过分使用表达式赋值(if (foo = bar()) {})
  • 直接返回函数返回值(这是合法的,但会给增加功能带来困难)

要扩展这类代码是一件有挑战的事情。

阅读全文… ( 本文约 705 字,阅读大致需要 2 分钟 )

FreeBSD 6.0-RC2

• Development

I think we would be going to release 6.0-RC2 soon, to encourage more testing against the recently caught issues that addressed several race conditions, etc.

参与评论