首页 文章 精选 留言 我的

精选列表

搜索[副语言],共10000篇文章
优秀的个人博客,低调大师

木兰语言 0.0.18 补完所有内置函数,悬赏任务合作顺利

在 Gitee Reward 发布的下列悬赏任务已经顺利完成: ¥100 【新人优先】重现一个内置函数——bytes ¥128 【进阶】补完余下三十多个内置函数 合作过程交流顺畅、效率颇高、成果符合预期。 因为之前个人一直主要在 mac 下开发,而合作者在 win10 下开发,在新人任务过程中就暴露了不少之前忽视了的跨平台问题,如 win 下部分测试不过。 另一个暴露的困惑已久的问题——Windows 下两种测试方式输出相差 \r,很惊喜地,合作者很快指出了问题所在。 在第二个悬赏任务中,在标识符命名中文化时,头一次发现内部函数 _线程__运行 的命名与类名相关,原因还待研究。 另发觉 locals() 功能设计意图仍待揣摩。 总之,悬赏任务的收获多多,很期待后续。 此外,如 上文 打算的,已发布了 rply 木兰定制版,以规避 | 问题;还添加了 shift/reduce 歧义的调试信息,详见 前文。 附:代码量统计 主要部分的代码行数统计,格式为:上次->现在。 木兰代码量 3096 -> 3157 运行环境,实现与测试大部为木兰代码:582 木兰测试用例,包括部分实用小程序(如井字棋):2514 -> 2575 Python 代码量(木兰实现、测试框架、语法树生成木兰中的 Python 测试代码):3436 -> 3612 环境.py,定义全局方法: 175 -> 275 生成/木兰.py:213 -> 239 测试/期望值表.py:144 -> 173 交互.py,交互环境(REPL):148 -> 150 测试/运行所有.py,检验所有木兰测试代码片段:71 -> 75 未变 分析器/语法分析器.py:1055 分析器/语法树.py:225 分析器/词法分析器.py:216 功用/反馈信息.py:175 测试/unittest/报错.py:124 分析器/语法树处理.py:114 中.py,主程序:95 分析器/语法成分.py,从语法分析器中提取出来的枚举常量:85 测试/unittest/生成.py,语法树生成木兰源码相关测试:60 测试/unittest/语法树.py,确保生成的语法树与原始版本一致,拆分报错部分:58 功用/调试辅助.py,:57 setup.py, 34 测试/unittest/交互.py,交互环境相关测试:28 分析器/错误.py:28 测试/unittest/所有用例.py:24

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

PMD 6.34.0 发布,多语言静态代码自动分析工具

PMD 是一个代码分析器,能够帮助发现常见的编程问题,比如未使用的变量、空的 catch 块、不必要的对象创建等等。最初仅支持 Java 代码,目前还可支持 JavaScript、Salesforce.comApex 和 Visualforce、PLSQL、Apache Velocity、XML 和 XSL 。 PMD 6.34.0 正式发布,本次更新内容如下: 新规则 新的 Java 规则 UseStandardCharsets 可以查看 Charset.forName. 的使用情况,因此可以使用 StandardCharsets 来代替,该规则也是 Java 快速启动规则集( rulesets/java/quickstart.xml)的一部分; 新的 Java 规则 UnnecessaryImport 取代了以下规则 UnusedImports、 DuplicateImports、 ImportFromSamePackage 和 DontImportJavaLang,该规则也是 Java 快速启动规则集( rulesets/java/quickstart.xml)的一部分; 修改后的规则 Apex 规则 ApexCRUDViolation 不再忽略 getters,并且还标记了 SOQL/SOSL/DML 操作在 getters 中没有访问许可检查。这对于 VF getter 方法将产生误报,但我们无法可靠地检测一个 getter 是否是 VF getter。在这种情况下,违规行为应该被制止。 废弃的规则 java-bestpractices UnusedImports: 使用 UnnecessaryImport 规则代替 java-codestyle DuplicateImports:使用 UnnecessaryImport 规则来代替。 DontImportJavaLang:使用 UnnecessaryImport 规则来代替。 java-errorprone ImportFromSamePackage:使用 UnnecessaryImport 规则来代替。 修正的问题 apex-performance OperationWithLimitsInLoopRule: 支持更多限制消耗的静态方法调用 apex-security ApexCRUDViolationRule 未能报告 COUNT() 查询中的 CRUD 违规情况; ApexCRUDViolationRule 在非 VF getter 上误报; java-bestpractices 使用 StandardCharsets 而不是 Charset.forName; UnusedAssignment 在有嵌套记录时崩溃; java-codestyle 新规则 UnnecessaryImport,弃用 DuplicateImports、 ImportFromSamePackage、UnusedImports; java-errorprone CloseResource: 支持 Lombok 注解; CheckSkipResult: 使用模式绑定时的 NPE; 更多详情可查看:https://github.com/pmd/pmd/releases/tag/pmd_releases%2F6.34.0

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

木兰语言 0.0.17.1:源码生成支持更多函数、类相关语法

这几个星期继续重现由 Python 语法树生成木兰源码的功能(0.0.17.1 已发布在 PyPI,可通过 pip install ulang 安装): 单参数、多参数、带默认值参数函数定义 类、类方法、构造方法、嵌套类、扩展类 引用属性、类方法 如下 Python 代码: class C1: class C2: def __init__(self): print(2) def __init__(self): print(1) C1() C1.C2() 可生成木兰源码: type C1 { type C2 { func $C2() { println(2) } } func __init__(self) { println(1) } } C1() C1.C2() 期间发现了一些费解之处。比如上面的第二个 __init__,为何不转换为 $C1 呢? 还有更明显的问题,比如对变长指名参数: def a(**kwargs): print(kwargs) a(k1="v1", k2="v2") 原始木兰可执行文件 转换时就会报错: TypeError: can only concatenate str (not "arg") to str 又如属性方法: class C: @property def m(self): print(0) @m.setter def m(self, value): print(1) 转换时也会报错: NameError: name 'decorator_list' is not defined 这些问题都已在重现项目中原样复现,原因写在源码注释中。 综上,至此个人感觉此部分由 Python 生成木兰源码的功能的打磨程度不及语法解析部分。也许是因为此功能当时尚未在学校教学中大规模应用。 另外,为调试方便,添加了新命令行选项“--语法树”,用于显示源码的对应语法树。 附:代码量统计 主要部分的代码行数统计,格式为:上次->现在。 木兰代码量,提取儿歌部分代码到 此单独项目 3324 -> 3050 运行环境,实现与测试大部为木兰代码:582 木兰测试用例,包括部分实用小程序(如井字棋):2742 -> 2468 (报错信息测试用例替代了源码中的注释) Python 代码量(木兰实现与测试框架):2934 -> 3381 生成/木兰.py:206 功用/反馈信息.py:81 -> 175 环境.py,定义全局方法: 174 -> 175 中.py,主程序:74 -> 95 分析器/错误.py:26 -> 28 未变 分析器/语法分析器.py:1049 分析器/语法树.py:225 分析器/词法分析器.py:216 交互.py,交互环境(REPL):148 测试/期望值表.py:144 测试/unittest/报错.py:124 分析器/语法树处理.py:91 分析器/语法成分.py,从语法分析器中提取出来的枚举常量:85 测试/运行所有.py,检验所有木兰测试代码片段:71 测试/unittest/生成.py,语法树生成木兰源码相关测试:60 测试/unittest/语法树.py,确保生成的语法树与原始版本一致,拆分报错部分:58 功用/调试辅助.py,:57 setup.py, 34 测试/unittest/交互.py,交互环境相关测试:28 测试/unittest/所有用例.py:24

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

PMD 6.33.0 发布,多语言静态代码自动分析工具

PMD 是一个代码分析器,能够帮助发现常见的编程问题,比如未使用的变量、空的 catch 块、不必要的对象创建等等。最初仅支持 Java 代码,目前还可支持 JavaScript、Salesforce.com Apex 和 Visualforce、PLSQL、Apache Velocity、XML 和 XSL 。 PMD 6.33.0 正式发布,本次更新内容如下: 新特性和值得注意的地方: PLSQL 解析排除 PMD PLSQL 解析器可能无法顺利解析每个有效的 PL/SQL 代码。为了在这样的文件上仍然使用 PMD,你现在可以将某些行标记为从解析器中排除。 外部贡献: #3161: [plsql] 在 SQL*Plus 脚本中添加了对词法参数的支持,允许排除解析器无法理解的行; #3167: [java] 改正快速入门规则集中的错别字。 修复的问题: apex-design #3142: [apex] ExcessiveClassLength 在同一个类上有多个警告; java #3117: [java] 解析嵌套在 lambdas 中的无效代码时的无限循环; #3145: [java] 使用"record"作为变量名时出现解析异常; java-bestpractices #3118: [java] UnusedPrivateMethod 在将 lombok.val 作为参数传递时误报; #3144: [java] GuardLogStatement 可以有更详细的例子; #3155: [java] GuardLogStatement:未加防护的方法调用时出现漏报; #3160: [java] MethodReturnsInternalArray 不考虑静态最终字段和以空数组初始化的字段; java-errorprone #3146: [java] 当使用 String.format 时,InvalidLogMessageFormat 检测失败; #3148: [java] CloseResource 带有 Objects.nonNull 的误报; #3165: [java] 在变量中使用 String.format 时,InvalidLogMessageFormat 检测失败; java-performance #2427: [java] ConsecutiveLiteralAppend 在 lambda 内部带有 builder 的误报; #3152: [java] ConsecutiveLiteralAppends 和 InsufficientStringBufferDeclaration:带有 switch 表达式的 FP plsql #195: [plsql] “&”符号在 SQL 文件中引起 PMD 处理错误——文件中的词法错误。 更多详情可查看:https://github.com/pmd/pmd/releases/tag/pmd_releases%2F6.33.0

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

D语言 (DLang) 2.095.0 发布,增强对 Objective-C 支持

DLang 2.095.0版本现已发布,该版本主要是增强了对 Objective-C 的支持,增加了声明 Objective-C 协议的能力,以及整个编译器、库和工具的改进。共包括了来自61 位贡献者的 27 个主要更改和 78 个修复程序。一些亮点内容如下: C ++header生成 一段时间以来,DMD 已经包含了通过 -CH 命令行选项从 D 源代码生成 C++ header文件的实验性支持,以便于从 C++ 中调用 D 库。例如,给定以下 D 源文件。 cpp-ex.d extern(C++): struct A { int x; } void printA(ref A a) { import std.stdio : writeln; writeln(a); } 和以下命令行: dmd -HC cpp-ex.d 编译器将以下内容输出到 stdout(-HCf 指定一个文件名,-HCd 指定一个目录)。 // Automatically generated by Digital Mars D Compiler #pragma once #include <assert.h> #include <stddef.h> #include <stdint.h> #include <math.h> #ifdef CUSTOM_D_ARRAY_TYPE #define _d_dynamicArray CUSTOM_D_ARRAY_TYPE #else /// Represents a D [] array template<typename T> struct _d_dynamicArray { size_t length; T *ptr; _d_dynamicArray() : length(0), ptr(NULL) { } _d_dynamicArray(size_t length_in, T *ptr_in) : length(length_in), ptr(ptr_in) { } T& operator[](const size_t idx) { assert(idx < length); return ptr[idx]; } const T& operator[](const size_t idx) const { assert(idx < length); return ptr[idx]; } }; #endif struct A; struct A { int32_t x; A() : x() { } }; extern void printA(A& a); 此版本对该功能进行了许多修复和改进。需要注意的是,通过 -H、-Hf 和 -Hd 也支持生成 C headers。 默认的 C ++ 标准更改 现在默认使用 C++11 标准。此外,编译器现在将接受 -extern-std=c++20。在实践中,目前唯一的影响是改变了编译时的值,__traits(getTargetInfo, "cppStd"),但将来可能会增加新的类型。 改进的 Objective-C 支持 此版本通过支持Objective-C 协议增强了 Objective-C 的兼容性。这是通过在 extern(Objective-C) 上下文中重新使用接口来实现的。此外,@optional 和 @selector 属性有助于完成这项工作。 改进的 compile-time feedback 更多详情可查看更改日志:https://dlang.org/changelog/2.095.0.html 下载地址:http://downloads.dlang.org/releases/2.x/2.095.0/

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

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

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册