发表回复 
 
主题评价:
  • 0 次(票) - 平均星级: 0
  • 1
  • 2
  • 3
  • 4
  • 5
好消息,scws-0.0.1 pre 版发布!!
2007-06-09, 11:19 AM
帖数: #1
好消息,scws-0.0.1 pre 版发布!!
好消息,scws-0.0.1 pre 版提前发布,好多朋友不停的期待和催盼,这个套件先发布一个 pre 版。包括了全部代码和一份GBK词典和相关说明。为适当统计下载的人群和数量,该文件设为必须必须论坛会员才能下载,由此不便深感抱歉。

演示地址:http://www.hightman.cn/demo/scws/v4.php
下载地址:在文章附件中 (下载前必须先登录论坛)

压缩包中包括以下部分:
etc/ - gbk 版本词典和rules.ini
libscws/ - scws 库核心代码
phpext/ - php4 扩展代码 (注意必须是 PHP4)
src/ - scws 命令行工具
---
Notice:
src/ 下的 cmd.c 必须先编译 libscws/ 生成 libscws.a 才可以。
phpexe/ 下的 libscws 直接连接 ../libscws
安全起见请先在 libscws/ 执行 make clean

Moreinfo visit page plz: http://www.hightman.cn/bbs/
代码:
Libscws 及 PHP扩展 授权声明

本软件及所有代码和文件(包括但不限于程序源码、测试代码、词典、规则集文件、相关说明)全部由 hightman 独立完成,本人保留一切相关权利。
本软件开放源代码提供下载,旨在促进交流和提高。分词是一个长期的难题,希望这次的发布起到一个抛砖引玉的作用。
本软件未经同意严禁修改移植代码进行分支发布或商业用途(特指出售)等。所有已经正确安装并使用本软件的用户们,希望可以在论坛或其它方式通知我,让我知道有多少人在用它。
本软件承诺不包含任何恶意代码,但由于水平所限,BUG难免。因为本代码的使用或其它方式引起的损失本人不承担任何责任。

本人联系方式:
个人论坛:http://www.hightman.cn  QQ:16139558  邮件:hightman2@yahoo.com.cn
不支持 MMAP 的话的补丁
代码:
*** ../../dist/scws-0.0.1-pre/libscws/xdb.h Tue Jun  5 12:19:46 2007
--- xdb.h Sat Jun  9 13:49:56 2007
***************
*** 2,8 ****
   * @file xdb.h (read only)
   * @author Hightman Mar
   * @editor set number ; syntax on ; set autoindent ; set tabstop=4 (vim)
!  * $Id: xdb.h,v 1.1.1.1 2007/06/05 04:19:45 hightman Exp $
   */
  
  #ifndef _SCWS_XDB_20070525_H_
--- 2,8 ----
   * @file xdb.h (read only)
   * @author Hightman Mar
   * @editor set number ; syntax on ; set autoindent ; set tabstop=4 (vim)
!  * $Id: xdb.h,v 1.2 2007/06/09 05:48:27 hightman Exp $
   */
  
  #ifndef _SCWS_XDB_20070525_H_
***************
*** 54,59 ****
--- 54,60 ----
   unsigned int fsize;  /* total filesize */
   int version;   /* version: low 4bytes */
   char *fmap;    /* file content image by mmap (read only) */
+  int mode;    /* xdb_open for write or read-only */
  } xdb_st, *xdb_t;
  
  /* xdb: open the db, mode = r|w|n */
*** ../../dist/scws-0.0.1-pre/libscws/xdb.c Tue Jun  5 12:19:46 2007
--- xdb.c Sat Jun  9 13:49:40 2007
***************
*** 2,8 ****
   * @file xdb.c (xtree use file storage)
   * @author Hightman Mar
   * @editor set number ; syntax on ; set autoindent ; set tabstop=4 (vim)
!  * $Id: xdb.c,v 1.1.1.1 2007/06/05 04:19:45 hightman Exp $
   */
  
  #include "xdb.h"
--- 2,8 ----
   * @file xdb.c (xtree use file storage)
   * @author Hightman Mar
   * @editor set number ; syntax on ; set autoindent ; set tabstop=4 (vim)
!  * $Id: xdb.c,v 1.2 2007/06/09 05:48:27 hightman Exp $
   */
  
  #include "xdb.h"
***************
*** 13,19 ****
--- 13,23 ----
  #include <fcntl.h>
  #include <sys/stat.h>
  #include <sys/types.h>
+
+ #ifdef HAVE_MMAP
  #include <sys/mman.h>
+ #endif
+
  #include <sys/file.h>
  
  /* file lock by fcntl */
***************
*** 169,176 ****
--- 173,182 ----
   x->base = xhdr.base;
   x->version = (int) xhdr.ver;
   x->fmap = NULL;
+  x->mode = mode;
  
   /* try mmap if readonly */
+ #ifdef HAVE_MMAP
   if (mode != 'w')
   {
    x->fmap = (char *) mmap(NULL, x->fsize, PROT_READ, MAP_SHARED, x->fd, 0);
***************
*** 186,191 ****
--- 192,198 ----
     return NULL;
    }
   }
+ #endif
   return x;
  }
  
***************
*** 214,219 ****
--- 221,227 ----
   x->base = base ? base : 0xf422f;
   x->fsize = sizeof(xhdr) + x->prime * sizeof(xptr_st);
   x->fmap = NULL;
+  x->mode = 'w';
   memset(&xhdr, 0, sizeof(xhdr));
   memcpy(&xhdr.tag, XDB_TAGNAME, 3);
   xhdr.ver = XDB_VERSION;
***************
*** 232,249 ****
  {
   if (x == NULL)
    return;
!  
   if (x->fmap != NULL)
   {  
    munmap(x->fmap, x->fsize);
    x->fmap = NULL;
   }
  
   if (x->fd >= 0)
   {
!   lseek(x->fd, 12, SEEK_SET);
!   write(x->fd, &x->fsize, sizeof(x->fsize));
!   _xdb_flock(x->fd, LOCK_UN);
    close(x->fd);
    x->fd = -1;
   }
--- 240,262 ----
  {
   if (x == NULL)
    return;
!
! #ifdef HAVE_MMAP
   if (x->fmap != NULL)
   {  
    munmap(x->fmap, x->fsize);
    x->fmap = NULL;
   }
+ #endif
  
   if (x->fd >= 0)
   {
!   if (x->mode == 'w')
!   {  
!    lseek(x->fd, 12, SEEK_SET);
!    write(x->fd, &x->fsize, sizeof(x->fsize));
!    _xdb_flock(x->fd, LOCK_UN);
!   }
    close(x->fd);
    x->fd = -1;
   }


附件
.tgz  scws-0.0.1-pre.tgz (大小: 5.28 MB / 下载: 2138)
查找这个用户的全部帖子
引用并回复
2007-06-09, 11:38 AM
帖数: #2
 
晕,论坛附件太大上载不了,请稍候
查找这个用户的全部帖子
引用并回复
2007-06-09, 01:31 PM
帖数: #3
 
楼主太伟大了~~
查找这个用户的全部帖子
引用并回复
2007-06-09, 01:42 PM
帖数: #4
 
感谢hightman,期望尽快可以发布支持php5的extension...:kiss:

[ 本帖最后由 robin 于 2007-6-9 13:45 编辑 ]
查找这个用户的全部帖子
引用并回复
2007-06-09, 02:51 PM
帖数: #5
 
爱上了hightman 写的代码,简直太规整了
生活中了hightman一定也是一个细心稳重,一丝不苟的好人
查找这个用户的全部帖子
引用并回复
发表回复 


可能相关的主题...
主题: 作者 回复数: 人气: 最近发表
  2008/12 发布 scws-1.0.1 修订版, 并推出 scws 项目站点 hightman 2 16,500 2009-08-17 11:15 PM
最近发表: yueliangdao0608

论坛跳转: