首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏编程小白狼

    PHP语言多版本管理工具PVM

    今天,我要向大家介绍一款专为PHP打造、轻量级且极其友好的版本管理工具——PVM(PHP Version Manager)。 PVM是什么? 打开你的终端,执行以下命令: curl -L https://raw.githubusercontent.com/phpvmpvm/pvm/master/pvm -o /usr/local/bin/pvm 使用PVM管理PHP版本 1. 查看可安装的版本 想知道PVM支持安装哪些PHP版本? PVM提供了 run 命令: pvm run 8.1.24 script.php 6. 与系统PHP共存:PVM不会干扰系统自带的PHP。它管理的所有版本都存放在其自己的目录中(通常是 ~/.pvm/versions/)。当你使用 pvm use 时,它只是修改了 PATH 环境变量。

    40311编辑于 2025-08-25
  • 来自专栏开源技术小栈

    PHP语言多版本管理工具PVM来啦!

    ./.pvm # 添加到环境变量(Window操作系统可手动将.pvm目录路径添加到 Path 环境变量中) export PATH="$HOME/.pvm:$PATH" Step2.

    1.1K10编辑于 2025-04-28
  • 来自专栏PowerBI战友联盟

    PowerBI PVM 模型 - 数学推导与 DAX 实现的完美展示

    ) ) PVM.Revenue.AC = SUM( 'Order'[LineSellout] ) PVM.Revenue.PY = CALCULATE( [PVM.Revenue.AC] , DATEADD( 'Clendar'[日期] , -1 , YEAR ) ) PVM.Price.AC = [PVM.Revenue.AC] / [PVM.Volume.AC] PVM.Price.PY ] * [PVM.Price.PY] <> 0 , ( [PVM.Price.AC] - [PVM.Price.PY] ) * [PVM.Volume.PY] ) ) / ] * [PVM.Price.PY] <> 0 , ( [PVM.Volume.AC] - [PVM.Volume.PY] ) * [PVM.Price.PY] ) ) [PVM.Price.AC] * [PVM.Price.PY] <> 0 , ( [PVM.Volume.AC] - [PVM.Volume.PY] ) * ( [PVM.Price.AC

    2K22发布于 2021-11-04
  • 来自专栏码农UP2U

    某二进制 VM 逆向分析(二)

    0x71 ) { pvm->r6 -= 4; *(_DWORD *)pvm->r6 = *(_DWORD *)(pvm->ip + 1); pvm->ip += 5; } if ( *(_BYTE *)pvm->ip == 0x41 ) { pvm->r1 += pvm->r2; ++pvm->ip; } if ( *(_BYTE *)pvm->ip == 0x42 ) { pvm->r1 -= pvm->r4; ++pvm->ip; } if ( *(_BYTE *)pvm->ip == 0x43 ) { pvm->r1 *= pvm->r3; ++pvm->ip; } 整个 RunVm 的代码有 208 )*(_DWORD *)(pvm->ip + 1) ^ pvm->r9); // if ( (unsigned __int8)*(_DWORD *)(pvm->ip + 1) !

    11110编辑于 2026-03-16
  • 来自专栏码农UP2U

    babyvm 逆向分析(一)

    r1 = 18; pVm->r2 = 0; pVm->r3 = 0; pVm->opcode = &opcode; pVm->op0 = -15; pVm->handler0 = sub_B5F ; pVm->op1 = -14; pVm->handler1 = sub_A64; pVm->op2 = -11; pVm->handler2 = sub_AC5; pVm->op3 = -12; pVm->handler3 = sub_956; pVm->op4 = -9; pVm->handler4 = sub_A08; pVm->op5 = -8; pVm ; pVm->op0 = -15; pVm->handler0 = sub_B5F; pVm->op1 = -14; pVm->handler1 = sub_A64; pVm->op2 = -11; pVm->handler2 = sub_AC5; pVm->op3 = -12; pVm->handler3 = sub_956; pVm->op4 = -9; pVm

    7310编辑于 2026-03-16
  • 来自专栏码农UP2U

    某二进制 VM 逆向分析(三)

    ->ip + 1)]=52) 291: =>80: *(&pvm->r0 + sub_804875F(pvm, 1)) = *(_DWORD *)(pvm->ip + 2); // (sub_804875F ->r0 + sub_804875F(pvm, 1)) = *(_DWORD *)(pvm->ip + 2); // (sub_804875F(pvm, 1)=2, *(_DWORD *)(pvm->ip ->r0 + sub_804875F(pvm, 1)) = *(_DWORD *)(pvm->ip + 2); // (sub_804875F(pvm, 1)=2, *(_DWORD *)(pvm->ip ->r0 + sub_804875F(pvm, 1)) = *(_DWORD *)(pvm->ip + 2); // (sub_804875F(pvm, 1)=2, *(_DWORD *)(pvm->ip ->r0 + sub_804875F(pvm, 1)) = *(_DWORD *)(pvm->ip + 2); // (sub_804875F(pvm, 1)=2, *(_DWORD *)(pvm->ip

    10510编辑于 2026-03-16
  • 来自专栏码农UP2U

    babyvm 逆向分析(二)

    ] v2 = __readfsqword(0x28u); pVm->opcode = &opcode; while ( *(_BYTE *)pVm->opcode ! = *(&pVm->op0 + 16 * i); ++i ) ; (*((void (__fastcall **)(VM *))&pVm->handler0 + 2 * i))(pVm); ("%3d: ==> %x ===> ", pVm->opcode - opcode, *(_BYTE *)pVm->opcode); switch (*(_BYTE *)pVm->opcode Arithmetic(pVm); break; } } // 初始化函数 void VmInit(struct VM *pVm) { pVm->r0 = 0; pVm->r1 = 18; pVm->r2 = 0; pVm->r3 = 0; pVm->opcode = (char*)opcode; pMem = malloc

    11110编辑于 2026-03-16
  • 来自专栏技术开发分享

    heco生态链流动性挖矿dapp系统开发部署(成熟技术)

    = 0;    pvm_load_args(args, &args_len);    pvm_ret(args, args_len); return 0;}该合约的作用是将参数的内容原样返回。 注意,这个合约中我们引入了 pvm.h,使用了其中的 pvm_load_args 和 pvm_ret 函数。 pvm.h 这个文件中包含了我们与链交互所需要的所有函数。 例如通过 pvm_caller 获取调用该函数的地址,pvm_block_height 获取当前块高度。 链操作:pvm_set_storage 和 pvm_get_storage 可以用来操作合约的状态空间。 pvm_contract_call 可以用来调用其它 RISC-V 合约,pvm_service_call 可以用来调用 huobi-chain 的其它 build-in service。

    69940编辑于 2022-10-24
  • 来自专栏ADAS性能优化

    Android 虚拟化框架 (AVF) 目标是车机虚拟化?

    即使 Android 或任何其他 pVM 遭到破解,Hypervisor 也会保持已执行代码的完整性和 pVM 资源的机密性。 Microdroid Google 提供的在 pVM 中运行的迷你版 Android OS。 Microdroid 管理器 管理 pVM 内的 pVM 生命周期,以及实例磁盘。 pVM 固件 (pvmfw) 在 pVM 上运行的第一个代码,pvmfw 会验证载荷并推导每个虚拟机的 Secret。 受保护的虚拟机 (pVM) 与主 Android 操作系统(“主机”)一起运行的互不信任的隔离执行环境(“客户机”)。pVM 由 pKVM 管理。 pVM 可以动态使用,并且提供一组标准 API 供所有支持它们的设备使用。 VirutalizationService 管理 pVM 生命周期的 Android 服务。

    3.5K10编辑于 2022-12-05
  • 来自专栏AI科技大本营的专栏

    一文讲述如何将预测范式引入到机器学习模型中

    PVM可以应用于视觉方面,其它模式当然也能适用。事实上,你可以自由地将模式进行组合,让它们在不同的抽象层次上相互预测。 PVM中的反馈可以任意地布置。 PVM中的输入信号可以是单个图像(例如视频中的一帧)或者序列。实际上,我做过一些针对处理视频帧的有意义的实验。 另一方面,我们决定增加一个有监督的视觉目标跟踪任务,并在上面测试PVM的实际性能。 我们往PVM中加入一些小东西: 我们使处理单元闭环(自己以前的状态成为上下文的一部分)。 PVM不同于卷积神经网络,它是基于全新的大脑皮质结构和功能的一种新的算法。PVM能避免许多机器学习都会遇到的问题:比如过度拟合和梯度消失问题。 PVM的不同之处在于,它是由直觉进行驱动的,它将使机器人在长期内真正起作用。 目前有关PVM的应用性实验都可以在Github上找到,enjoy!

    1.3K160发布于 2018-04-28
  • 来自专栏IT技术精选文摘

    一文讲述如何将预测范式引入到机器学习模型中

    大量的实验证明,PVM确实在基本预测任务中发挥了巨大的作用,但它还能做别的事情吗? 一方面,推荐系统会利用预测误差给用户提供他们想要的信息,但是这是一个长期的过程。 另一方面,我们决定增加一个有监督的视觉目标跟踪任务,并在上面测试PVM的实际性能。 我们往PVM中加入一些小东西: ? ? 热图的产生过程: ? 总而言之:它是起作用的! PVM不同于卷积神经网络,它是基于全新的大脑皮质结构和功能的一种新的算法。PVM能避免许多机器学习都会遇到的问题:比如过度拟合和梯度消失问题。 PVM的不同之处在于,它是由直觉进行驱动的,它将使机器人在长期内真正起作用。 目前有关PVM的应用性实验都可以在Github上找到,enjoy! https://github.com/braincorp/PVM

    71260发布于 2018-06-22
  • 来自专栏虚拟化云计算

    kvm虚拟机的FT(容错)方案

    当启用的COLO功能后, 主虚拟机(PVM)和备虚拟机(SVM)都会同时处于running 状态。PVM和SVM都可以接收到来自client的网络数据包, 并对数据包做出回应。 当PVM和SVM回复的数据包的内容相同, 则PVM回复的数据包会返回给client, 否则会触发checkpoint对PVM和SVM进行同步,然后再将数据包返回给client。 当PVM所在的物理机发生宕机时候, SVM可以立即接管, 为client提供服务。 ?

    3.5K80发布于 2018-04-08
  • 来自专栏JAVA后端开发

    activiti多实例节点的任意跳转

    org.activiti.engine.impl.persistence.entity.ExecutionEntityManager; import org.activiti.engine.impl.persistence.entity.TaskEntity; import org.activiti.engine.impl.pvm.PvmException ; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ScopeImpl ; import org.activiti.engine.impl.pvm.runtime.AtomicOperation; import org.activiti.engine.impl.pvm.runtime.InterpretableExecution } } } protected String getEventName() { return org.activiti.engine.impl.pvm.PvmEvent.EVENTNAME_END

    3.3K51发布于 2018-09-12
  • 来自专栏全栈程序员必看

    Python如何运行程序

    2、Python虚拟机(PVM) 一旦程序编译成字节码(或字节码从已经存在的.pyc文件中载入),之后的字节码发送到PVM上执行。PVM不是一个独立的程序,不需要安装。 PVM是迭代运行字节码指令的一个大循环,一个接一个的完成操作。PVM是便宜Python的运行引擎,表现为Python系统的一部分,并且它是实际运行脚本的组件。 Python的传统运行执行模式:录入的源代码转换为字节码,之后字节码在PVM中运行。 这就是Python代码无法运行的像C或C++代码一样快的原因,PVM循环仍然需要解释字节码,并且字节码指令与CPU指令相比需要更多的工作。 Psyco是一个PVM的增强工具,这个工具收集并使用信息,在程序运行时,可以将部分程序的字节码转换成底层的真正的二进制机器码,实现更快的执行速度。

    1.8K10编辑于 2022-09-07
  • 来自专栏EAWorld

    企业级BPM之微服务架构演进

    PVM本质上是要将流程引擎与流程语言解耦,为此,PVM提供了一套独立的流程定义模型、插件环境及插件扩展点。 流程模型与任何流程标准或规范无关,直接决定了PVM对流程的描述建模能力,也是支持多流程语言的关键。从PVM的扩展机制可以看到,模型是保持不变的,能扩展的只是节点的运行期行为。 PVM提供了一套插件环境以及插件扩展点,把流程与活动在运行期的关键行为抽象出来,与流程的其他模块解耦合。最后,PVM还提供了一套调度框架或称持续推进机制,使流程可以持续运行或从任意一个点重新切入。 主体功能/衍生功能视角,例如PVM的流程调度/流程持续推进能力是平台的主体功能,而任务推送、转历史等都属于衍生功能,没有这些能力并不影响正常的流程推进,然而事实上它们在运行中的不确定性会极大影响PVM的性能 工作项微服务既可以直接提供api服务(负载的路由问题可以由API Gateway支撑,这也是一种常见的微服务模式),也可以为PVM提供内部服务,而且finishworkitem这个操作有可能回调PVM主体

    2.9K103发布于 2018-04-02
  • 来自专栏程序员

    Python代码执行模型

    PVM不是一个独立的程序,它是python的运行时引擎,它是python解释器的最后一步。 python代码的执行过程应该是: 源代码-->字节码-->PVM 值得一提的是,python解释器和其他传统解释器不同,它包含了内部编译步骤。python并不需要反复重新解析源代码。 JIT实际上是PVM的一个扩展,它将字节码中的部分直接编译为机器指令。因此,PyPy的性能将更好(几乎能跟C代码一样快),同时占用的内存可能更少。

    1.1K50发布于 2021-05-18
  • 来自专栏米扑专栏

    Python 学习入门(35)—— 模块

    对于每个模块的导入,python解释器只会导入一次,即使重复使用import和from…import语句,也只有在PVM检测到该模块没有被导入时才执行导入动作。 即使后来你修改了模块的源代码,但没有重启PVM,python解释器仍然是使用之前导入的内容在处理。 同时模块还可以作为独立文件进行运行,之前也已经提到,只要是导入了模块文件,那么PVM就会依次执行模块文件中的所有语句。 python中的模块搜索路径 在一个模块被导入时,PVM会在后台从一系列路径中搜索该模块,其搜索过程如下: 1、在当前目录下搜索该模块; 2、在环境变量PYTHONPATH中指定的路径列表中依次搜索; 3、在python安装路径中搜索 事实上,PVM通过变量sys.path中包含的路径来搜索,这个变量里面包含的路径列表就是上面提到的这些路径信息,我们可以打印看下sys.pth都包含些哪些路径: >>>

    1K20发布于 2019-02-18
  • 来自专栏全栈程序员必看

    flowable camunda activiti 功能对比

    Software AG Webmethods Pega BPM flowable兼容其他workflow情况 Alfresco Activiti5 Flowable5 小结 因为flowable去除了PVM ,目前只有兼容activiti5的程序包,关于其他基于pvm开发的流程引擎统统不兼容。 camunda基于PVM技术,所以用户从Activii5迁移到camunda基本上毫无差异。flowable没有pvm了,所以迁移工作量更大(实例的迁移,流程定义的迁移、定时器的迁移都非常麻烦)。 flowable没有了pvm所以规避了双解析机制。关于双解析机制可以参考《Activiti权威指南》一书。 camunda可以在任意节点添加任意的属性,flowable原生API没有,需要自己扩展。

    9.3K11编辑于 2022-08-31
  • 来自专栏ccf19881030的博客

    VS2017中使用CppSQLite报出编译器错误C2440

    , bool bEof, bool bOwnVM/*=true*/) { mpDB = pDB; mpVM = pVM; mbEof = bEof; mnCols = CppSQLite3Query(mpDB, pVM, false/*eof*/); } else { nRet = sqlite3_finalize(pVM); const char* ; int nRet = sqlite3_prepare_v2(mpDB, szSQL, -1, &pVM, &szTail); if (nRet ! CppSQLite3Query(mpDB, pVM, false/*eof*/); } else { nRet = sqlite3_finalize(pVM); const char* ; int nRet = sqlite3_prepare_v2(mpDB, szSQL, -1, &pVM, &szTail); if (nRet !

    3.1K20发布于 2020-08-24
  • 来自专栏python3

    python学习笔记-马哥2017

    shell编程 控制语言:胶水语言 框架:web,Django 字节码:bytecode python编码语言初接触 python运行 source code(.py) comolier(PVM 编程虚拟机) bytecode(.pyc) interpreter(PVM执行虚拟机) processor python实现 Cpython:原始、标准的实现方式 Jython:用于与java

    74110发布于 2020-01-08
领券