7月22日,Python 之父 Guido 在 Medium 上发表了他的第一篇博文《PEG Parser》。在该文中,Guido 说他正在考虑使用 PEG Parser 代替现有的类 LL(1) Parser(名为pgen),来重构 Python 解释器。 原因是现在的 pgen 限制了 Python 语法的自由度,使得一些语法难以实现,也让当前的语法树不够整洁,一定程度上影响了语法树的表意,不能最好地体现设计者的意图。那 PEG Parser 和现有的 LL(1) Parser 有什么区别呢? 可以这样简单地理解,PEG 语法解释器在解析语法的时候,会一次性加载全部代码,所以解释器可以根据任意位置的符号来判断语法的语义。而目前的 LL(1) Parse 解析语法的时候只会向前检测一个符号,来猜测语义,导致部分语法有二义性的表现,进而限制了Python语言的语法定义方式。当然,一次性加载全部代码,也意味着 PEG Parser 需要更大的内存来运行。 说当前解释器限制了 Python 的语法实现,很多同学可能没有明显的感受,所以 Guido 又举了一个例子:在 Python3.8 之前,下面这段代码都是可以正常运行的,而不像大家直观感受的第二行代码应该报错。 这就是 Python 解释器处理不了带来的后遗症。这也导致 Python 团队不得不在代码里增加一些不受欢迎的“特例”来处理这些边缘情况。 Guido 说,Python 刚出现的时候,内存还很贵,使用 LL(1) Parser 是非常合理的。不过在现在这个内存以 G 为单位的时代,解释器多增加几百k甚至上兆的内存消耗,已经根本不算什么了。所以是时候使用更理想的 PEG Parser 来重构 Python 解释器了。更多内容,请大家关注本次专辑…… 2019年7月26日,深度社区官方注册会员突破八万!深度社区(deepin.org)是深度操作系统官方社区网站,是深度操作系统爱好者与用户的大本营,在这里可以交流deepin使用技巧心得,了解deepin最新产品动态,参与社区活动,深度社区是为deepin用户打造一个良好的互动交流平台,也是深度操作系统产品改进提升建议的重要贡献地。 目前,深度社区包含项目、下载、百科、应用商店、交流社区、开发相关等栏目,其中交流社区(bbs.deepin.org)分为深粉交流、社区写作、International三大板块,其下包含社区活动、深度茶社、使用交流、应用软件、使用交流、资源分享等热门栏目。 此外,在法国、意大利、巴西、俄罗斯、希腊、西班牙、波兰、土耳其、印尼等国家均设有deepin社区站,成为国外用户体验、交流、分享deepin的平台。深度社区还建立了内测、国际化测试和国际化翻译等团队组织,有效的提升了深度操作系统产品用户体验和国际化水平。 随着deepin操作系统越来越多的受到大家的喜爱,使用deepin的国内外用户越来越多,deepin在国际上的知名度也随之上升。在全球开源操作系统排行榜上(distrowatch排名),deepin已经稳居全球前八名,成为了广受国内外用户喜爱的操作系统产品,也是排名最高的中国操作系统产品。deepin提供32种不同的语言版本,提供遍布六大洲33个国家105个镜像站点的升级服务。 深度桌面环境(DDE )已与Gnome、KDE、Unity等成为全球范围内主流的Linux操作系统桌面环境,得到了各个发行版的认可与肯定。目前,深度桌面环境(DDE)已经被移植到包括Archlinux、OpenSUSE、Ubuntu、Linux Mint、Fedora、Manjaro和Anthon等主流Linux发行版中。更多内容请关注本次专辑…… 由于技术太过古老,近期 Linus 将 Linux 中的软盘驱动 floppy 标记为“孤立(orphaned)”状态。Linus 合并了开发者关于修复 floppy ioctl 验证问题的 PR,同时指出将驱动器标记为孤立状态,他表示很难在实际工作中找到物理软盘硬件,现在基本上不用软盘,主要出售的也似乎都是基于 USB 的设备,这些设备不使用 floppy 这个传统的驱动。 而虽然当前还有一些虚拟机环境中会使用到旧的软盘控制器,但是问题在于还有没有人愿意进行维护。 此外因为缺少硬件支持,所以此次接受的 ioctl 验证修复主要也只对正在使用虚拟机环境的人有用,而这可能进一步偏离 USB 存储模拟支持的路线。更多相关内容,大家可以关注本次专辑…… |