首页
网站首页
公司简介
资讯中心
推荐内容
返回顶部
稳定版发布,包含大量更新
发布时间:2019-12-28 20:41
浏览次数:

 Swoole 4.4 正式版已发布,该版本包含大量更新,详细信息如下:

图片 1

Linux 内核开发者认可微软对 Linux 及 Linux 安全方面的贡献,决定同意身为微软员工的 Linux 内核贡献者代表公司加入私有的 Linux 发行版安全邮件列表(linux-distro security list)。

Xamarin.Forms 4.1.0 已发布,这是 4.0 重大版本发布后的首次更新,可通过 NuGet 获取新版本。团队表示 3.x 系列主要是对各种缺陷的修补,并从中认识到应尽可能满足用户的需求并帮助他们提升生产力,而积累的这些经验将会逐渐体现在 4.x 系列中。

向下不兼容改动

  • PHP官方保持一致, 不再支持PHP7.0 (@matyhtf)
  • 移除Serialize模块, 在单独的 ext-serialize 扩展中维护. 废弃原因: 由于PHP内核频繁变更, 导致无法实现稳定可用的模块, 与php serialize相比没有太大差异化定位
  • 移除PostgreSQL模块,在单独的 ext-postgresql 扩展中维护. 废弃原因: PostgreSQL使用了异步回调方式实现协程调度, 不符合目前内核协程化的统一规划。另外PostgreSQL目前用户量非常低, 并且缺少必要的单元测试, 无法保证质量
  • Runtime::enableCoroutine不再会自动兼容协程内外环境, 一旦开启, 则一切阻塞操作必须在协程内调用 (@matyhtf)
  • 由于引入了全新的协程MySQL客户端驱动, 底层设计更加规范, 但有一些小的向下不兼容的变化

    • fetch/nextResult优化为按需读取, 会产生IO调度
    • 启动defer特性时, statement发出的的请求, 需要使用statement->recv接收
    • 启动defer/fetch_mode特性时, 如有未接收完的数据, 将无法发起新的请求
    • 与异步不同, connected属性不再会实时基于事件更新, 而是在IO操作失败后更新

(题图 via MSPU

图片 2

4.0.0 最重要的更新莫过于正式将 Shell 集成到 Xamarin.Forms。从表面上看,Shell 提供了一种非常简单的语法来建立应用程序的弹出菜单和标签菜单。除了现有的导航服务之外,它还引入了强大的基于路由的 URI 导航服务。

废弃警告

  • 将废弃Buffer模块,废弃原因:可替代性强,使用率低,可用PHP字符串、fopen("memory")代替。
  • 将废弃Lock模块,废弃原因:在协程模式下加锁可能存在问题,可使用chan实现协程版本的锁
  • 由于引入了stream_socket_pair协程化, 建议开启hook时, 如有单独配置需求, 请使用SWOOLE_HOOK_STREAM_FUNCTION常量而不是SWOOLE_HOOK_STREAM_SELECT

Windows 10 Build 18932 ISO 下载地址(需加入 Windows Insider 项目成员):

开源中国报道过微软寻求加入 Linux-Distro 邮件列表的消息。

此外,Shell 更加强大的地方在于底层,所有渲染器都实现了“快速渲染器”模式,数据模板和渲染器可以轻松扩展所有内容。这个新架构为未来的 Xamarin.Forms 开发奠定了基础,可以实现更具表现力的动画、过渡与交互。

新特性

  • 新增Library, 使用纯PHP编写内核功能而非C/C++, 提供了以下功能

    • 新增高质量PHP模块CoroutineWaitGroup (@twose)
    • 使用PHP代码实现CURL的hook, 一键使CURL协程化, 目前为实验特性, 需特别调用Runtime::enableCoroutine(SWOOLE_HOOK_CURL)来开启 (@matyhtf) (@Yurunsoft)
    • 使用PHP代码实现exec/shell_exec的协程化 (#2657) (@Yurunsoft)
    • 开启RuntimeHook时, 将替换函数array_walkarray_walk_recursive为swoole实现的版本, 解决原生函数不可重入的问题, 但会造成无法遍历object (@matyhtf) (@twose)
  • 新增协程抢占式调度器, 可防止协程占用CPU时间过长导致其它协程饿死, 通过php.ini配置swoole.enable_preemptive_scheduler = On 开启, 相关例子详见preemptive_scheduler (@shiguangqi)

  • 新增Timer::list()返回TimerIterator, 可遍历所有定时器, TimerclearAll清除所有定时器, Timerinfo(int $id)获取定时器信息, Timer::stats()获取全局定时器状态 (#2498) (@twose)
  • 新增 CoSocket的两个方法getOption 和 setOption (9d13c29) (@matyhtf)
  • 新增 ProcessPool$master_pid 属性和 shutdown方法 (a1d6eaa) (@matyhtf)
  • 新增ProcessPool的构造方法的第四个参数, 为true时底层将自动在onWorkerStart回调开启协程 (8ceb32cd) (@matyhtf)
  • 新增stream_socket_pair协程化支持 (#2546) (@matyhtf)
  • 新增HttpServerstatic_handler_locations设置, 可以设定静态文件路径 (@matyhtf)
  • 新增CoHttpClient->setBasciAuth方法, 用于自动发送Authorization头 (#2542) (@hongbshi)
  • 新增 CoHttp2Client->ping方法 (40041f6) (@shiguangqi)
  • 新增hook_flags配置项,用于取代Runtime::enableCoroutine()函数调用

https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewadvanced

Linux-Distro 邮件列表汇集了众多尚未公开的安全问题,被各大发行版用于私下报告、协调和讨论。目前该列表包括了来自 FreeBSD、NetBSD 和各大 Linux 发行版厂商的主要开发者。比如 Canonical、Debian、Red Hat、SUSE,以及亚马逊 AWS 和甲骨文等云 Linux 供应商。

图片 3

4.1.0 带来了许多质量方面的改进、一个新的 CheckBox 控件(首次亮相于预览版),以及大量来自社区反馈的功能增强(例如对 Map 的改进)。

增强

  • 全新的协程MySQL客户端驱动, 底层全面协程化 (#2538) (@twose)

    • 底层使用C++和协程的编程模式(同步阻塞写法, 异步性能)
    • 支持SSL连接 (connect时配置 ['ssl' => true]即可, 暂不支持证书等配置)
    • 支持超大数据发送 (无上限, 底层自动拼包, 上限为MySQL服务器配置上限)
    • 支持超大数据接收
    • 支持fetch按行读取 (现在的fetch为按需读取, 未fetch的数据不会耗费用户内存) (#2106)
    • 支持nextResult按需读取 (同上)
    • 客户端close后, 客户端持有的statements自动转为不可用状态, 避免边界问题
    • 优化掉了一些不必要的内存拷贝(协议解析时)
    • date相关类型小数精度支持
    • 错误代码和信息与PDO/mysqli保持一致
  • CoRedis兼容模式, 通过$redis->set(['compatibility_mode' => true])开启, 可使得hmGet/hGetAll/zRange/zRevRange/zRangeByScore/zRevRangeByScore等方法返回结果和phpredis保持一致 (#2529) (@caohao-php)

  • 默认允许有100K个协程同时存在 (c69d320b) (@twose)
  • 支持bailout机制 (协程内发生致命错误时能正确退出进程) (#2579) (@twose)
  • Server发生错误时会根据情况展示友好的400/404/503界面而不是没有任何输出 (@matyhtf) (f3f2be9d)
  • Server默认开启异步安全重启特性和超大数据发送的自动协程调度功能 (#2555) (9d4a4c47) (@matyhtf)
  • ServeronFinish回调支持自动协程环境 (@twose)
  • Http客户端默认开启websocket_mask, 不再会出现莫名其妙连不上websocket的问题 (c02f4f85) (@twose)
  • 不再允许在协程外使用Channel的调度操作 (519b6043) (@twose)
  • WebSocket握手失败时切断连接 (#2510) (@twose)
  • Linux下父进程异常退出时底层会自动发送信号杀死子进程 (4b833a3d) (@matyhtf)
  • Socket->recv的数据长度不足时回收末尾无用的内存 (642a3552) (@twose)
  • 浮点数计算误差优化 (#2572) (@tangl163)
  • 所有内置类都 禁止克隆/禁止序列化/禁止删除底层定义的属性 (f9c974b8) (@twose)
  • Server->binduid超过UINT32_MAX时会产生警告并返回
  • 兼容PHP7.4 (#2506) (@twose)

使用 Build 18932 的时候,当应用程序受到 Toast 通知时,用户可通过一个内联选项来关闭它的通知。完整更新日志如下:

当时自称是“Linux 内核黑客”的微软开发者 Sasha Levin 代表公司申请加入 Linux-Distro 邮件列表,主要理由是:“在解决安全问题方面,微软安全响应中心(MSRC)已经累积了数十年的经验。然而即便我们能够在 1~2 个小时内快速修复已披露的安全问题,也需要在公布前进行大量的验证测试。若能加入 Linux-Distro 邮件列表,微软将能了解有关内核及其代码漏洞、补丁和安全问题的私下讨论。这对于尽早确定问题,以及在补丁公开之前协调处理和部署修复至关重要,并有望获得额外的时间来进行广泛的测试。”

增强的 Maps 功能

从 4.1.0 版本起,捕捉 tap 或 click 动作的位置将变得更简单,只需订阅到OnMapClicked事件即可。效果如下:

图片 4

当在地图画布中的任意位置进行 tap 操作时,事件会返回 tap 操作位置的经度和纬度。

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:maps="clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps"
    xmlns:local="clr-namespace:Xappy;assembly=Xappy"
    Shell.NavBarIsVisible="False"
    Shell.TabBarIsVisible="False"
    x:Class="Xappy.Scenarios.MapPage">
    <Grid>
        <maps:Map
            x:Name="MyMap"
            IsShowingUser="true"
            MapType="Street"
            MapClicked="Handle_MapClicked" />
            ...

图片 5图片 6

void Handle_MapClicked(object sender, MapClickedEventArgs e)
{

    MyMap.Pins.Add(
            new Pin
            {
                Position = new Position(e.Position.Latitude, e.Position.Longitude),
                Label = "Joe's Place"
            }
        );
    DisplayAlert("Joe Says:", $"Last MapClick: {e.Position.Latitude}, {e.Position.Longitude}", "Thanks");
}

示例代码来自  Xappy (on GitHub)

更多内容请查看发布公告(内有新版发布视频show)或发布说明

(文/开源中国)    

修复

  • 修复ProcessPoolgetProcess问题 (#2522) (@matyhtf)
  • 修复某些特殊情况下异常被忽略的问题(VM陷入了事件循环而没有机会检查异常) (@twose)
  • 修复定时器在进程fork后产生的内存泄漏 (8f3abee7) (@twose)
  • 修复非Linux系统编译时timezone的问题 (#2584) (@devnexen)
  • 修复enable_coroutinetask_enable_coroutine一开一关的问题 (#2585) (@matyhtf)
  • 修复Http2的trailer方法不输出值为空的头 (#2578) (@twose)
  • 修复CoHttpClient->setCookies在特殊情况下的内存错误 (#2644) (@Yurunsoft)
  • 修复#2639 (#2656) (@mabu233)
  • 修复arginfo_swoole_process_pool_getProcess (#2658) (@mabu233)
  • 修复static_handler不支持软链接 (@matyhtf)
  • 修复OSX下卡死 (22504dd4) (@matyhtf)
  • 修复启用SSLtask进程使用Server->getClientInfo出错 (#2639) (@matyhtf)
  • 修复多协程操作同一个Socket的非法操作BUG (#2661) (@twose)

图片 7

就在近日,这个软件巨头的申请终于有了回应 —— 微软将被允许加入私有的 Linux-Distro 邮件列表。

协程调度器?

  • 新增SwooleCoroutineScheduler调度器类作为cli命令行脚本的入口,取代go() + SwooleEvent::wait()的方式
  • 增加SwooleCoroutineRun函数,提供对SwooleCoroutineScheduler的封装
  • go() + SwooleEvent::wait()的运行方式可能被废除

首先是眼控等可访问性方面的改进:在听取了用户的反馈之后,微软在此版本中扩展并改进了 Eye Control 的体验,拖放、暂停、切换等操作都变得更加轻松。

Openwall 创始人 Alexander "Solar Designer" Peslyak 对微软的请求进行了回应,他表示根据目前的政策和先例,没有理由拒绝微软的申请。他将会继续理清一些细节然后再决定微软的加入。

友情链接: 网站地图
Copyright © 2015-2019 http://www.nflfreepicks.net. 新葡萄京娱乐场网址有限公司 版权所有