Skip to content

Instantly share code, notes, and snippets.

View ericphanson's full-sized avatar

Eric Hanson ericphanson

View GitHub Profile
Read https://docs.julialang.org/en/v1/manual/style-guide/, https://docs.julialang.org/en/v1/manual/performance-tips/, https://docs.sciml.ai/SciMLStyle/stable/. Then assess the Julia code base (src) against these. Write three docs, one for julia style guide adherence, perf tips adherence, and sciml style guide adherence with lists of specific deviations. Score the impact of the deviation in terms of the effect on the codebase, 0 = no impact, 5 = highly consequential. Sort the docs from most-severe to least. Check them into docs/logs/$date-$name.md and push. Don't make any changes to the code or other files.
I'll help you assess the LibLinearJL.jl codebase against the Julia style guides. Let me break this down into tasks:
Update Todos
Fetching Julia style guide documentation
Fetch Julia performance tips documentation
Fetch SciML style guide documentation
Read and analyze src/ directory code
Write Julia style guide adherence report
Write performance tips adherence report

First, read

docs/ ├── 2025-10-26-focused-translation-plan.md (Detailed 2-phase plan) ├── phase2-subagent-prompts.md docs/logs/2025-10-27-phase2g-completion.md docs/logs/phase2-todos.md docs/logs/2025-10-27-numerical-divergence.md

docs/logs/2025-10-27-phase2h-progress.md You will be orchestrating subagents to finish Phase 2 of this implementation plan, using the prompts in phase2-subagent-prompts.md. We are translating liblinear to Julia.

Review the docs/logs/phase2-todos.md TODOs. Some of these are actually already done but not checked off; do a first review to identify and check these off. This list should cover every task you need to do. Many are done already.

Dispatch at most 1-4 subagents at a time in parallel, if you know they won't conflict. If you're concerned, do 1 at a time. Start with 1 at first to avoid issues. Then as you progress, you can do a some in parallel.

First, read
docs/ ├── 2025-10-26-focused-translation-plan.md (Detailed 2-phase plan) ├── phase2-subagent-prompts.md
You will be orchestrating subagents to run Phase 2 of this implementation plan, using the prompts in phase2-subagent-prompts.md. We are translating liblinear to Julia.
Make a large todo list in docs/logs/phase2-todos.md with checkboxes. This should cover every task you need to do. There will likely be 30+.
Dispatch at most 1-4 subagents at a time in parallel, if you know they won't conflict. If you're concerned, do 1 at a time. Start with 1 at first to avoid issues. Then as you progress, you can do a some in parallel.
@ericphanson
ericphanson / Arrow IPC with named pipe: REPL
Last active October 13, 2023 21:20
Arrow IPC with named pipe
julia> include("consumer.jl");
Julia done: got Arrow.Table with 4 rows, 3 columns, and schema:
:f0 Union{Missing, Int64}
:f1 Union{Missing, String}
:f2 Union{Missing, Bool}
@ericphanson
ericphanson / Basic IPC with named pipes: REPL
Last active October 13, 2023 09:38
Basic IPC with named pipes
julia> include("consumer.jl");
Python started
Python done
Julia done: got hello world
@ericphanson
ericphanson / examples.txt
Created January 20, 2022 03:10
Julia script to run processes with 2 second timeout
❯ ./timeout.jl ps
PID TTY TIME CMD
697 ttys000 0:00.16 -zsh
1132 ttys001 0:00.09 /bin/zsh --login
3115 ttys002 0:00.09 /bin/zsh -l
3632 ttys003 0:00.32 /bin/zsh -l
11816 ttys003 0:00.32 /Users/eph/.asdf/installs/julia/1.7.1/bin/julia --color=yes --startup-file=no -O0 --compile=min ./timeout.jl ps
❯ ./timeout.jl sleep 3 && echo "done"
@ericphanson
ericphanson / Cancel.yml
Created October 17, 2021 14:05
GitHub actions workflow for cancelling CI when a newer commit is pushed
name: Cancel
on:
push:
branches:
- main
- master
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
jobs:
cancel:
@ericphanson
ericphanson / exp.jl
Last active August 28, 2021 01:06
Naive Julia port of rlibm32's exp implementation
# https://github.com/rutgers-apl/rlibm-32/blob/44560acbd2ee22242989bdac259ad3665fa85d06/source/float/exp.c
include("constants.jl")
function rlibm_exp_ported(x::Float32)
# u is fx.x in the original code
u = reinterpret(UInt32, x)
# Take care of special cases
if (0x42b17218 <= u <= 0xb3000000)
@ericphanson
ericphanson / Manifest.toml
Created June 26, 2021 23:55
TransformDagger
# This file is machine-generated - editing it directly is not advised
[[ArgTools]]
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
[[Artifacts]]
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
[[Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
@ericphanson
ericphanson / Manifest.toml
Created June 6, 2020 16:36
EAGO / Gurobi / MOI error ?
# This file is machine-generated - editing it directly is not advised
[[ASL_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "7fa8d4626ddb4a142e82a8ce07279c1315803433"
uuid = "ae81ac8f-d209-56e5-92de-9978fef736f9"
version = "0.1.1+3"
[[Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"