首页 文章 精选 留言 我的

精选列表

搜索[release],共10003篇文章
优秀的个人博客,低调大师

Codong v0.1.1 — 正式版本更新 (Stability Release)

此版本专注于运行时的稳定性和正确性。我们针对解释器(Interpreter)和 Go IR 转译器(Transpiler)两种执行模式进行了全面的测试套件评估,共执行 1,203 个测试用例,涵盖了全部 11 个标准库模块。测试通过率从 94% (1,140/1,203) 提升至 100% (1,201/1,203),剩余 2 个未通过案例为环境依赖型跳过(MySQL/PostgreSQL 连接配置)。代码库:https://github.com/brettinhere/Codong 修改摘要 修复了 8 个源文件中的 58 个缺陷 新增 782 行代码,删除 99 行代码 引入零回归(Zero Regressions) 详细变更日志 错误传播系统 (Error Propagation System) 修复了 ?(传播操作符)在 Go IR 模式下无法正确检测 Map 类型返回值中错误字段的问题。此前,包含结构化错误对象的 HTTP 模块响应无法被 cPropagate 拦截。 修复了 try/catch 块中错误字段访问(.code, .message, .retry)在 Go IR 模式下返回空值的问题,原因是 CodongError 结构体字段的类型断言错误。 修复了多模块错误传播问题,即嵌套函数调用中产生的数据库错误会被静默丢弃,而无法通过调用栈正常向上传播。 控制流 (Control Flow) 修复了 try/catch 块内部的 break 和 continue 语句。Go IR 运行时现在可以正确使用哨兵 panic 值(__codong_break__, __codong_continue__),这些值在 recovery 后会被重新抛出,从而保证了循环控制流的语义。 修复了跨行 else if 的解析问题。解析器现在通过在检查 else 关键字前消耗掉中间的换行符,从而正确处理 } \n else if 结构。 HTTP 模块 修复了 Go IR 模式下 HTTP 4xx/5xx 错误码的传播(E3001–E3005)。运行时函数 cHTTPGet/cHTTPPost 现在可以构造正确的 CodongError 对象,并在响应 Map 中嵌入 code、message 和 retry 字段。 增加了超时配置支持,每个请求默认限时 30 秒。 Redis 模块 修复了由于错误的类型断言导致的 pipeline 执行崩溃(panic)。Pipeline 结果现在对 *goredis.IntCmd、*goredis.StringCmd 等多种命令类型使用 type switch 进行处理。 修复了 cache singleflight 加载器的错误处理。当加载器函数返回错误时,缓存不再存储失败的结果,并在后续调用中正确地重新触发加载器。 修复了滑动窗口频率限制器使用整数除法而非毫秒级时间戳的问题,这曾导致窗口边界计算错误。 修复了多实例命名空间隔离。命名 Redis 连接现在会将所有操作正确限制在已注册的实例作用域内,而不再默认指向最后一个连接的实例。 文件系统模块 (File System Module) 修复了在 Go IR 模式下,fs.read 在读取不存在的文件时返回错误字符串而非 null 的问题,使行为与解释器保持一致。 数据库模块 (Database Module) 修复了有界重试逻辑,确保在超过重试限制时,能正确传播 retry 字段设为 false 的 CodongError 对象。 OAuth 模块 修复了中间件身份验证流中的 JWT Token 验证。oauth.verify 函数现在当用于 web.use 中间件链时,能正确验证 Token 签名和过期声明。 解析器 (Parser) 修复了字符串插值,使其能正确评估插值表达式内部的方法链(例如:{"hello".upper()})。 修复了 grep 模式匹配负数参数的问题,通过对以 - 开头的模式进行转义处理。 测试矩阵 类别 测试用例 通过 失败 跳过 词法 & 解析器 180 180 0 0 解释器核心 245 245 0 0 Go IR 转译器 248 248 0 0 HTTP 模块 42 42 0 0 Web 模块 96 96 0 0 数据库模块 78 76 0 2 Redis 模块 120 120 0 0 文件系统 48 48 0 0 图像模块 36 36 0 0 OAuth 模块 32 32 0 0 集成测试 78 78 0 0 总计 1,203 1,201 0 2 跳过原因:MySQL 连接(未配置 MYSQL_URL),PostgreSQL 连接(未配置 PG_URL) 受影响文件 engine/goirgen/generator.go +35 -12 engine/goirgen/runtime.go +669 -55 engine/interpreter/http_module.go +40 -8 engine/interpreter/infra_modules.go +6 -2 engine/interpreter/interpreter.go +81 -14 engine/interpreter/web_module.go +2 -2 engine/parser/parser.go +37 -6 stdlib/codongerror/error.go +11 -0 兼容性 此版本与 v0.1.0 完全向后兼容。语言语法或模块 API 未发生任何变化。所有现有的 .cod 程序将以完全相同的方式执行。 安装 Bash curl -fsSL https://codong.org/install.sh * sh 或从源码构建: Bash git clone https://github.com/brettinhere/Codong.git cd Codong && go build -o bin/codong ./cmd/codong

优秀的个人博客,低调大师

前端开源项目 Fes- Design Release v0.8.13

0.8.13(2023-11-06) Bug Fixes Draggable:修复可同时拖拽多个元素、和不可放置时跨容器拖拽报错的问题 (#494) (18839e5) Form:修复表单嵌套时必填项样式设置的问题 (#499) (7827186) Form:异步表单校验支持 (#496) (42798f2) Modal:解决无标题情况下,关闭按钮不可点击的问题 (#504) (3594717) Features 上传组件 Upload 禁用样式优化,表单项组件 FormItem 支持 align 配置项 及 支持多行文本展示 (#493) (896ac17) Table:增加 hover行样式、斑马线条纹 配置项 (#502) (732dc5d) Table:展开行图标,修改及增加hover态交互 (#501) (e90d683)

优秀的个人博客,低调大师

前端开源项目 Fes- Design Release v0.8.12

FES-Design 是由微众银行前端技术团队联合用户体验设计团队共同打造的一款服务于中后台系统的组件库,其初衷是为了给中后台系统开发者提供一个好用的前端应用解决方案。 0.8.12版本现已发布,具体更新内容包括: Bug Fixes VirtualList:虚拟列表组件,配置项 minSize 支持响应式,增加 Scrollbar 组件配置项,以及修复滚动到指定索引不生效的问题 (#489) (7af8047)

优秀的个人博客,低调大师

CH Visualize Release 1.1.0-SNAPSHOT,ClickHouse 可视化

支持组件 ClickHouse 支持功能 支持添加数据源到查询页面 支持清除查询历史 支持表格组件的显示选择和索引 添加查询历史 支持 SHOW_CREATE_TABLE 和 SELECT_COUNT 用于快速 sql 更换软件标志 表的支持图标 禁用系统库UI删除表操作 支持删除空表数据库 添加服务器信息视图 支持取消查询 Bug修复 修复元数据数据库选择后报错问题 预览图片 取消功能 查询历史功能 快速查询功能 服务器信息功能 下载地址: 1.1.0-SNAPSHOT

优秀的个人博客,低调大师

请手动释放你的资源(Please release resources manually)

作者:Laruence() 本文地址:http://www.laruence.com/2012/07/25/2662.html 转载请注明出处 我从来不认为这个问题是个问题, 直到昨天. 昨天晚上的时候, 我提交了一个RFC, 关于引入finally到PHP, 实现这个功能的出发点很简单, 因为我看见不少人的需求, 另外还有就是Stas说, 一直只看到讨论, 没看到有人实现. 于是我就给实现了. 发到邮件组以后, 一个开发组的同学Nikita Popov(nikic), 表示强烈反对这个RFC, 当然最初的论点他说了很多, 最后我们在线讨论的时候, 他表达了一个他的观点: “PHP在请求结束后会释放所有的资源, 所以我们没有必要调用fclose,或者mysql_close来释放资源, PHP会替我们做” 并且他表示, 他从来都不会调用fclose, 认为fclose的存在只是为了继承C函数族. 我很惊讶, 我也不知道还有多少人是和他一样的想法, 所以我决定写这篇文章. 在PHP5.2以前, PHP使用引用计数(Reference count)来做资源管理, 当一个zval的引用计数为0的时候, 它就会被释放. 虽然存在循环引用(Cycle reference), 但这样的设计对于开发Web脚本来说, 没什么问题, 因为Web脚本的特点和它追求的目标就是执行时间短, 不会长期运行. 对于循环引用造成的资源泄露, 会在请求结束时释放掉. 也就是说, 请求结束时释放资源, 是一种部补救措施(backup). 然而, 随着PHP被越来越多的人使用, 就有很多人在一些后台脚本使用PHP, 这些脚本的特点是长期运行, 如果存在循环引用, 导致引用计数无法及时释放不用的资源, 则这个脚本最终会内存耗尽退出. 所以在PHP5.3以后, 我们引入了GC, 也就是说, 我们引入GC是为了解决用户无法解决的问题. 这个是历史, 我简单介绍下, 现在让我们回头来看开头的问题, 是不是因为PHP会在请求结束后释放所有的资源, 于是我们就可以不用手动释放呢? 看一个例子: Mysql最大连接数(mysql.max_connections) <?php $db = mysql_connect() ; $resut = mysql_query(); // process result... usleep(500); //mysql_close($db); let's say, you didn't call to this // other logic, assuming it costs 5s sleep(5); exit(0); //finish 上面的例子, 我们会保持一个和Mysql的连接5秒钟, 这样的脚本对于一般的应用来说没有关系, 但是对于一个请求量很大的脚本来说, 会导致一个致命问题: 比如一个繁忙的应用, 每秒要处理来自用户的1000个请求, 那么5秒钟请求多少个? 5 * 1000 = 5000, 而Mysql有最大连接数限制(mysql.max_connections), 这个数字一般不超过2000, 默认的会更低:(mysql.max_connections), 那么, 这样代码会导致你的应用, 根本无法正常提供服务. 而如果我们在对Mysql的处理完成后就关闭这个连接, 那么就不会触发这个问题. 而我们在实践中, 遇到过一个更加实际的问题, 看下面的例子: <?PHP $mmc = new Memcached(); $mysql = mysql_connect(); //process mysql_close($mysql); $mmc->close(); 这是一个真实的教训, 代码如上面所示, 突然有一天我们的Mysql出现了问题, 导致连接Mysql的耗时增大, 然后就导致, 一个脚本对Memcached连接占用过长, 最后Memcache因为连接数太多, 就拒绝服务了.. 所以, 我们一定要让连接代价最高的资源, 最先初始化. 系统最大句柄 (/proc/sys/fs/file-max) 这个很简单, 如果你持续打开句柄, 而不释放, 那么你有可能触发系统最大句柄限制, 对于进程来说, 自己还有进程可打开句柄数限制(ulimit -n). 系统调用是昂贵的(System call is expensive) PHP之所以会在请求结束后正确的释放掉所有的资源, 内存, 这是因为当我们在脚本中使用新的内存的时候, PHP会向OS申请一大块内存(ZEND_MM_SEG_SIZE大小), 然后分给你你需要的合适的一块小内存. 当你不使用这块小内存的时候, PHP也不会返还给OS, 而是保留下来给后续的处理使用. 我们知道, malloc(3)会导致系统调用(brk(2))(当然也可能是mmap, 我们此处不考虑这个细节, thanks to 华裔), 而系统调用是昂贵的. 所以, 如果你使用完了资源不及时释放, 那么后续的逻辑如果请求内存, PHP发现之前申请的一大块内存已经分光了, 它就只好再次向OS发起malloc调用, 得到一块新的大内存. 并且它还需要对这个大内存做一些标记处理.. 而如果你使用完资源, 及时释放的话, 那么下次脚本申请内存的时候, 你之前归还的内存块就可以被重复利用, 那么也许你的整个脚本只需要和OS申请一次内存. 内存峰值(Memory peak usage) 这个和上面的有一定的关系, 当你使用完资源就释放, 然后后续又使用这样的资源. 那么PHP的内存占用会是: 资源+1 -> 资源-1 -> 资源+1 -> 资源-1 (峰值是1) 而如果你是等到PHP请求结束再释放: 资源+1 -> 资源 + 1 …. -> 资源 -1 -> 资源 – 1 (峰值是2) 也就说, 一个良好的编写的脚本可能要比一个瞎写的脚本, 要省很多峰值内存.. 考虑一个极端情况, 对一个很繁忙的服务器来说, 比如有10个PHP进程, 每个PHP进程最大1G内存, 而服务器只有8G内存. 结论 (conclusion) 结论很明显, 我开头也说过了, 我从来不认为这个是个问题. 这里说一句, 如果你买了一本PHP的书, 它告诉你: “不用在PHP主动释放资源, 因为PHP会帮你释放”的话, 我建议你, 烧了它.谋胆并重

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册