Here is an essay version of my class notes from Class 1 of CS183: Startup. Errors and omissions are my own. Credit for good stuff is Peter’s entirely.
CS183: Startup—Notes Essay—The Challenge of the Future
Purpose and Preamble
| iex([email protected])16> Oban.check_queue(queue: "amazon_textract_reply")iex(mynode-a@127. | |
| %{ | |
| name: "Oban", | |
| node: "[email protected]", | |
| running: [], | |
| queue: "amazon_textract_reply", | |
| started_at: ~U[2025-10-23 10:55:30.382229Z], | |
| global_limit: nil, | |
| local_limit: 100, | |
| uuid: "019a10b5-a24e-7a23-9216-825da58bda50", |
Here is an essay version of my class notes from Class 1 of CS183: Startup. Errors and omissions are my own. Credit for good stuff is Peter’s entirely.
CS183: Startup—Notes Essay—The Challenge of the Future
Purpose and Preamble
| $ make -j10 tests | |
| test/check_name_clashes.sh | |
| mkdir -p "test_data" | |
| erlc +debug_info -o test_data test/known_problems/should_fail/arith_op.erl test/known_problems/should_fail/exhaustive_argumentwise.erl test/known_problems/should_fail/exhaustive_map_variants.erl test/known_problems/should_fail/exhaustive_remote_map_variants.erl test/known_problems/should_fail/guard_should_fail.erl test/known_problems/should_fail/infer_any_pattern.erl test/known_problems/should_fail/intersection_with_any_should_fail.erl test/known_problems/should_fail/lambda_wrong_args.erl test/known_problems/should_fail/map_refinement_fancy.erl test/known_problems/should_fail/poly_lists_map_should_fail.erl test/known_problems/should_fail/refine_ty_vars.erl test/known_problems/should_fail/rigid_type_variables_fail.erl test/known_problems/should_fail/sample.erl test/known_problems/should_fail/tuple_union_arg.erl test/known_problems/should_pass/any_doesnt_have_type_none_should_pass.erl test/known_problems/should_pass/arith_op_arg_types.erl test/kn |
| $ make -j10 tests | |
| test/check_name_clashes.sh | |
| mkdir -p "test_data" | |
| erlc +debug_info -o test_data test/known_problems/should_fail/arith_op.erl test/known_problems/should_fail/exhaustive_argumentwise.erl test/known_problems/should_fail/exhaustive_map_variants.erl test/known_problems/should_fail/exhaustive_remote_map_variants.erl test/known_problems/should_fail/guard_should_fail.erl test/known_problems/should_fail/infer_any_pattern.erl test/known_problems/should_fail/intersection_with_any_should_fail.erl test/known_problems/should_fail/lambda_wrong_args.erl test/known_problems/should_fail/map_refinement_fancy.erl test/known_problems/should_fail/poly_lists_map_should_fail.erl test/known_problems/should_fail/refine_ty_vars.erl test/known_problems/should_fail/rigid_type_variables_fail.erl test/known_problems/should_fail/sample.erl test/known_problems/should_fail/tuple_union_arg.erl test/known_problems/should_pass/any_doesnt_have_type_none_should_pass.erl test/known_problems/should_pass/arith_op_arg_types.erl test/kn |
| *.beam | |
| *.erltypes |
| Gradualizer v0.1.3-150-gef2dbb7 | |
| _build/default/lib/aoc_erlang/ebin//aoc2019_day03.beam: Nonexhaustive patterns on line 35 at column 1 | |
| Example values which are not covered: | |
| [] | |
| _build/default/lib/aoc_erlang/ebin//aoc2019_day03.beam: The function call on line 62 at column 9 is expected to have type [35m[T, ...][0m but it has type [35m[B][0m | |
| map_smallest(Fun, List) -> | |
| lists:min([36mlists:map(Fun, List)[0m). | |
| [36m^^^^^^^^^^^^^^^^^^^^[0m |
| FROM vectorized/redpanda:v21.10.2 | |
| USER root | |
| RUN apt-get update \ | |
| && apt-get install -y build-essential gcc g++ libcap2-bin \ | |
| && apt-get clean \ | |
| && rm -rf /var/cache/apt/archives | |
| COPY sched.cc sched.cc |
Let's set the stage - we have a project with a source file under a subdir of src/.
When we compile it the first time, everything looks good - the code returns the value
defined by the macro:
$ cd /tmp
$ git clone https://github.com/erszcz/rebar_src_not_recompiled.git src_not_recompiled
$ cd src_not_recompiled
$ rg -C1 MACRO src/
src/subdir/m.erl
| Last login: Tue Mar 30 17:45:28 on ttys027 | |
| 11:13:23 erszcz @ x6 : ~ | |
| $ cd work/josefs/gradualizer/ | |
| 11:13:49 erszcz @ x6 : ~/work/josefs/gradualizer (record-field-zip-fix) | |
| $ asdf local erlang 24.0-rc1 | |
| 11:14:13 erszcz @ x6 : ~/work/josefs/gradualizer (record-field-zip-fix %) | |
| $ cat > rebar.config | |
| {edoc_opts, [{doclet, edoc_doclet_chunks}, | |
| > {layout, edoc_layout_chunks}, | |
| > {preprocess, true}, |
These are tests results of running EDoc from erlang/otp#2803 over all OTP and more than 20 top Hex.pm Erlang libraries.
See https://github.com/erszcz/non-otp-libraries and https://github.com/erszcz/otp/blob/edoc-chunk-support/lib/edoc/test/test_libs.sh for the tools.
Use test_libs.sh like this - see the script for more details:
VERBOSE=no LIB_DIR=/Users/erszcz/work/erlang/non-otp-libraries/_build/default/lib ERL_LIBS=/Users/erszcz/work/erlang/non-otp-libraries/_build/default/lib ERL_TOP=/Users/erszcz/work/erlang/otp EDOC=~/work/erlang/build.otp/lib/erlang/lib/edoc-0.12/bin/edoc ./test/test_libs.sh | tee non-otp-libs.log