lxdlam 最近的时间轴更新
lxdlam's repos on GitHub
Go · 4 人关注
monkey-plus
The Monkey programming language implementation by Ramen.
CSS · 2 人关注
hitwh-2018-newbie
HIT@WH 2018 Newbie Contest Materials
HTML · 2 人关注
lxdlam.github.io
C++ · 1 人关注
CP-Answers
My own competitive programming answers
1 人关注
kilo-tutorial
build your own text editor
HTML · 0 人关注
attractors
prototypin' shtuff
C++ · 0 人关注
banshao
WIP
Python · 0 人关注
BigBedBot
hmmm
C · 0 人关注
BuildLisp
A Lisp implemention based on http://buildyourownlisp.com/contents
0 人关注
cf-tool
:bar_chart: Codeforces Tool (Submit, Parse, Test, Watch, Pull, etc.). Provide executable files (Win, macOS, Linux, about 6 MB).
JavaScript · 0 人关注
cheerio
Fast, flexible, and lean implementation of core jQuery designed specifically for the server.
0 人关注
chinese-independent-blogs
中文独立博客列表
JavaScript · 0 人关注
crowds
The Wisdom and/or Madness of the Crowds
0 人关注
dot-files
My own dot configs
0 人关注
dotfiles
0 人关注
elixir-lang.github.com
Website for Elixir
C++ · 0 人关注
GAC
Implement algorithms in "GrokkingAlgorithms" using C++ \ 《算法图解》C++实现
0 人关注
GitLearnInPractice
qwe
0 人关注
go
The Go programming language
0 人关注
goenums
Type Safe Enum generator for Go
0 人关注
gol-rust
A Conway's Game of Life implementation in vanilla Rust
JavaScript · 0 人关注
hackergame2021-writeups
中国科学技术大学第八届信息安全大赛的官方与非官方题解
0 人关注
hackergame2022-writeups
中国科学技术大学第九届信息安全大赛的官方与非官方题解
CSS · 0 人关注
hugo-theme-even
🚀 A super concise theme for Hugo https://blog.olowolo.com/example-site/
C · 0 人关注
Judger
Online judge sandbox based on seccomp | 需要Java JNI和php C extension集成,欢迎contribute
Python · 0 人关注
JudgeServer
Vue · 0 人关注
lightblog
Python · 0 人关注
LPTHW
the answers and exercises of Learn Python the HARD WAY, based on the THIRD EDITION of chinese.
0 人关注
lxdlam
Self-introduction
lxdlam

lxdlam

Stay hungry, stay foolish
V2EX 第 91515 号会员,加入于 2015-01-13 12:44:59 +08:00
今日活跃度排名 6785
根据 lxdlam 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
lxdlam 最近回复了
12 天前
回复了 HikariLan 创建的主题 Linux 从进程到协程:计算机的并发编程之路
async/await 真正的含义并不是“显式切换上下文”,如此说来为何 goroutine 也需要 "go func()" 才能启动并发调度?这难道不是一种类似于 "yield something" 的显式切换上下文吗?

从 Delimited Continuation 的角度说,async/await 是 F#/C# 发明出来用来模仿 Delimited Continuation 的 shift/reset, prompt/control 算子的,这一定程度上解释了函数染色问题从何而来:我们需要显式标记哪些部分能够被编译期改写,这样才能准确地把 k : Continuation 传到这些部分。与之相对的是 Scheme 的 continuation ,任何 continuation 都是无界的,也就是说会捕获到整个 runtime ,这对一个**后续接入** continuation 的语言实现有巨大的 breaking change (在 chez 中执行 `(call/cc (lambda (cc) (cc cc)))`,你会得到 `#<system continuation in new-cafe>`)。

而这样说有一些吊书袋,我们不妨简单思考一下所谓的 coroutine 是怎么编译的?

当我们遇到一个类似于如下的代码

```
let coro = async { time.sleep(5000) }

// some busywork

await coro
```
时,我们单纯从语法考虑,我们如何将 coro 正确编译成我们想要的结构呢?我们自然能想到很多种做法,至少我们可以为 coro 创建一个简单的 reference object ,去轮询来看它是否完成,并把 await 自动重写成 while not coro.ref.isFinished() {} 的一个 busyloop 就可以了(对于有栈来说可以是用户态的 uthread.join(),对于无栈来说可以是 state in [Done, Exception])。

所以,本质来说,async/await 是定界,界定了到底哪些代码需要被识别成一个 remote track 的对象,并正确插入调度代码。

这个的后续遗留了更多好玩的问题,感兴趣的朋友可以从这些起点思考:
1. 根据前文描述,"go func()" 某种程度也是定界,那跟 async/await 的核心区别是什么?这将为你导向有栈和无栈最核心的区别,究竟“栈”如何让 goroutine 不需要考虑函数染色问题?
2. 如何实现一个可用级别的编译器,编译我们的协程?他们的底层模型其实很相似,但是要搞懂无栈协程的编译难度比较大,你可能需要真的理解 continuation 和 cps conversion 才能明白看似简单的东西背后有多少篇 paper 和大佬支撑。
27 天前
回复了 lxdlam 创建的主题 职场话题 关于捐赠“抵扣”个税的经济账
@ltyj2003 是的,这个应该是主要动机。
在 GF(2) 域上解线性方程组。
54 天前
回复了 mario328 创建的主题 Android 为什么手机 DRM 等级会自动从 L1 下降到 L3
是索尼的问题,我是 Xperia 1 V ,偶发会掉,有的时候能一直是 L1 ,有的时候自己莫名其妙就掉 L3 了。最麻烦的地方在于每次都只有在比如开 Netflix 看剧的时候,看分辨率迟迟上不去才会发现,然后打开 DRM check 实锤了再重启,不胜其烦。
先问是不是再问为什么。

FP 跟 “OOP” 本来就是正交的概念,与 FP 相对的是 Imperitive Programming ,而 FP 可以看作一种 Declartive Programming 。在 1994 年确定的 ANSI Common Lisp 标准中,Common Lisp Object System ( CLOS )已经被完整定义,这是一个完整的对象系统,而被广泛实现的 Meta Object Protocol ,更是后面 Java AOP 的真正前驱。同样,1996 年 OCaml 继承 Caml 衣钵,在 StandardML 基础上发展出了完整的 Object 系统,这也是一个完整的 OOP 系统。而 Scala 跟 Clonjure 这种本身就诞生于 JVM 的语言,更是天生就具有 OOP 能力。
@SimonOne uv 是替代 pip 的,rye 是 flask 作者 mitsuhiko 创始的,他觉得 Python 的研发生态链比起 rust 实在是太烂了,自己搞了一个工具关注整个研发生命周期,使用 独立 python 解释器 + venv + pip + pyproject.toml 等既有生态来管理。后面 astral 团队开发完 uv 之后跟 mitsuhiko 沟通,接管了 rye 项目( https://astral.sh/blog/uv )。

从关系上来说,rye 是一个研发管理工具,基于 project 粒度隔离 python 解释器、venv ,自然也就隔离了包管理生态,uv 跟 pip 在 rye 里可以互换,ruff 也不是强制要求接入。

从我个人体感来说,rye + uv + ruff 就是目前最舒服的方案,我有用来实验的 jupyter 项目,也有打包成 oci 的纯 python 项目,rye 都能非常完美去接入和使用(除了某些模型代码里面写死了 pip 之外)。

P.S.,关于 Python 开发者体验和 rye 本身,mitsuhiko 在 rye 创始之初就有个 discussion ,值得一读: https://github.com/astral-sh/rye/discussions/6
@lxdlam 记忆有偏差,最近一年应该
最近两年都在用 rye ,切到 uv 之后体验丝滑
157 天前
回复了 srlp 创建的主题 Apple 大家有考虑用苹果官方的 passwords 程序吗?
1p 最近一两年一直在做 [developer experience]( https://developer.1password.com/),现在已经有了 `op` cli, python 和 typescript sdk ,以及两种 prod env 部署模式,对个人来说可以完全替代掉 vault 之类的专业密钥管理系统,就这一点不会让我切换到官方的 password 。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2409 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 15:57 · PVG 23:57 · LAX 07:57 · JFK 10:57
Developed with CodeLauncher
♥ Do have faith in what you're doing.