Memory-related error when used under Blender

Affects: JuliaCall
Describe the bug
Some time ago I made a proof-of-concept of using Julia within Blender (which embeds a Python interpreter) to do some geometry processing. That was with Julia 1.8.5 and Blender 3.4.2 and it worked great.
However, an at-exit memory error occurred, related to munmap_chunk() (see below, probably an invalid free()?). That already happened with the older versions of Julia and Blender, and today I tried to update that code to Julia 1.11.1 and Blender 4.2.3, but the issue is still there.
Given this simple script:
$ cat t_init.py
print('Initializing Julia environment ...')

from juliacall import Main as jl
jl.println("Hello from Julia!")

print("Active Julia project = %s" % jl.seval("Base.active_project()"))

Running it from within Blender gives a memory-related error at exit:
melis@blackbox 11:51:~/concepts/blender-julia-test$ ~/software/blender-4.2.3-linux-x64/blender -b -P t_init.py
Blender 4.2.3 LTS (hash 0e22e4fcea03 built 2024-10-14 23:31:34)
Initializing Julia environment ...
[juliapkg] Found dependencies: /home/melis/software/blender-4.2.3-linux-x64/4.2/python/lib/python3.11/site-packages/juliacall/juliapkg.json
[juliapkg] Found dependencies: /home/melis/software/blender-4.2.3-linux-x64/4.2/python/lib/python3.11/site-packages/juliapkg/juliapkg.json
[juliapkg] Locating Julia ~1.6.1, ~1.7, ~1.8, ~1.9, =1.10.0, ^1.10.3
[juliapkg] Using Julia 1.11.1 at /home/melis/.julia/juliaup/julia-1.11.1+0.x64.linux.gnu/bin/julia
[juliapkg] Using Julia project at /home/melis/.julia/environments/pyjuliapkg
[juliapkg] Installing packages:
           julia> import Pkg
           julia> Pkg.Registry.update()
           julia> Pkg.add([Pkg.PackageSpec(name="PythonCall", uuid="6099a3de-0909-46bc-b1f4-468b9a2dfc0d")])
           julia> Pkg.resolve()
           julia> Pkg.precompile()
    Updating registry at `~/.julia/registries/General.toml`
   Resolving package versions...
    Updating `~/.julia/environments/pyjuliapkg/Project.toml`
  [6099a3de] + PythonCall v0.9.23
    Updating `~/.julia/environments/pyjuliapkg/Manifest.toml`
  [992eb4ea] + CondaPkg v0.2.23
  [9a962f9c] + DataAPI v1.16.0
  [e2d170a0] + DataValueInterfaces v1.0.0
  [82899510] + IteratorInterfaceExtensions v1.0.0
  [692b3bcd] + JLLWrappers v1.6.1
  [0f8b85d8] + JSON3 v1.14.1
  [1914dd2f] + MacroTools v0.5.13
  [0b3b1443] + MicroMamba v0.1.14
  [bac558e1] + OrderedCollections v1.6.3
  [69de0a69] + Parsers v2.8.1
  [fa939f87] + Pidfile v1.3.0
  [aea7be01] + PrecompileTools v1.2.1
  [21216c6a] + Preferences v1.4.3
  [6099a3de] + PythonCall v0.9.23
  [ae029012] + Requires v1.3.0
  [6c6a2e73] + Scratch v1.2.1
  [856f2bd8] + StructTypes v1.11.0
  [3783bdb8] + TableTraits v1.0.1
  [bd369af6] + Tables v1.12.0
  [e17b2a0c] + UnsafePointers v1.0.0
  [f8abcde7] + micromamba_jll v1.5.8+0
  [0dad84c5] + ArgTools v1.1.2
  [56f22d72] + Artifacts v1.11.0
  [2a0f44e3] + Base64 v1.11.0
  [ade2ca70] + Dates v1.11.0
  [f43a241f] + Downloads v1.6.0
  [7b1f6079] + FileWatching v1.11.0
  [b77e0a4c] + InteractiveUtils v1.11.0
  [4af54fe1] + LazyArtifacts v1.11.0
  [b27032c2] + LibCURL v0.6.4
  [76f85450] + LibGit2 v1.11.0
  [8f399da3] + Libdl v1.11.0
  [56ddb016] + Logging v1.11.0
  [d6f4376e] + Markdown v1.11.0
  [a63ad114] + Mmap v1.11.0
  [ca575930] + NetworkOptions v1.2.0
  [44cfe95a] + Pkg v1.11.0
  [de0858da] + Printf v1.11.0
  [3fa0cd96] + REPL v1.11.0
  [9a3f8284] + Random v1.11.0
  [ea8e919c] + SHA v0.7.0
  [9e88b42a] + Serialization v1.11.0
  [6462fe0b] + Sockets v1.11.0
  [f489334b] + StyledStrings v1.11.0
  [fa267f1f] + TOML v1.0.3
  [a4e569a6] + Tar v1.10.0
  [8dfed614] + Test v1.11.0
  [cf7118a7] + UUIDs v1.11.0
  [4ec0a83e] + Unicode v1.11.0
  [deac9b47] + LibCURL_jll v8.6.0+0
  [e37daf67] + LibGit2_jll v1.7.2+0
  [29816b5a] + LibSSH2_jll v1.11.0+1
  [c8ffd9c3] + MbedTLS_jll v2.28.6+0
  [14a3606d] + MozillaCACerts_jll v2023.12.12
  [83775a58] + Zlib_jll v1.2.13+1
  [8e850ede] + nghttp2_jll v1.59.0+0
  [3f19e933] + p7zip_jll v17.4.0+2
  No Changes to `~/.julia/environments/pyjuliapkg/Project.toml`
  No Changes to `~/.julia/environments/pyjuliapkg/Manifest.toml`
Hello from Julia!
Active Julia project = /home/melis/.julia/environments/pyjuliapkg/Project.toml

Blender quit
munmap_chunk(): invalid pointer

[27088] signal 6 (-6): Aborted
in expression starting at none:0
unknown function (ip: 0x7e000fca53f4)
gsignal at /usr/lib/libc.so.6 (unknown line)
abort at /usr/lib/libc.so.6 (unknown line)
unknown function (ip: 0x7e000fc34353)
unknown function (ip: 0x7e000fcaf764)
unknown function (ip: 0x7e000fcafa3b)
__libc_free at /usr/lib/libc.so.6 (unknown line)
close_unit_1 at /workspace/srcdir/gcc-13.2.0/libgfortran/io/unit.c:742
close_units at /workspace/srcdir/gcc-13.2.0/libgfortran/io/unit.c:800
unknown function (ip: 0x7e0029c8c0f1)
unknown function (ip: 0x7e0029c8f3ed)
unknown function (ip: 0x7e000fc4e890)
exit at /usr/lib/libc.so.6 (unknown line)
unknown function (ip: 0xfa208b)
unknown function (ip: 0x72f440)
unknown function (ip: 0x7e000fc34e07)
__libc_start_main at /usr/lib/libc.so.6 (unknown line)
unknown function (ip: 0x83ebfd)
Allocations: 4063190 (Pool: 4062988; Big: 202); GC: 5
Aborted (core dumped)

GDB stacktrace:
Blender quit
[Thread 0x7fffc8c00000 (LWP 138853) exited]
[Thread 0x7fffc9200000 (LWP 138852) exited]
[Thread 0x7fffca400000 (LWP 138850) exited]
[Thread 0x7fffcac00000 (LWP 138849) exited]
[Thread 0x7fffcbe00000 (LWP 138847) exited]
[Thread 0x7fffcd400000 (LWP 138845) exited]
[Thread 0x7fffcda00000 (LWP 138844) exited]
munmap_chunk(): invalid pointer

Thread 1 "blender" received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44	      return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007fffeb2a5463 in __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:78
#2  0x00007fffeb24c120 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007fffeb2334c3 in __GI_abort () at abort.c:79
#4  0x00007fffeb234354 in __libc_message_impl (fmt=fmt@entry=0x7fffeb3c22f5 "%s\n") at ../sysdeps/posix/libc_fatal.c:132
#5  0x00007fffeb2af765 in malloc_printerr (str=str@entry=0x7fffeb3c4f30 "munmap_chunk(): invalid pointer") at malloc.c:5772
#6  0x00007fffeb2afa3c in munmap_chunk (p=p@entry=0x7fffd8a33bb0) at malloc.c:3040
#7  0x00007fffeb2b461a in __GI___libc_free (mem=0x7fffd8a33bc0) at malloc.c:3388
#8  0x00007fffa4073010 in close_unit_1 (u=0xa9d1820, locked=locked@entry=1) at /workspace/srcdir/gcc-13.2.0/libgfortran/io/unit.c:742
#9  0x00007fffa407319a in _gfortrani_close_units () at /workspace/srcdir/gcc-13.2.0/libgfortran/io/unit.c:800
#10 0x00007ffff7fc80f2 in _dl_call_fini (closure_map=closure_map@entry=0x7fffce3a4300) at dl-call_fini.c:43
#11 0x00007ffff7fcb3ee in _dl_fini () at dl-fini.c:114
#12 0x00007fffeb24e891 in __run_exit_handlers (status=0, listp=0x7fffeb3f6680 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:108
#13 0x00007fffeb24e95e in __GI_exit (status=<optimized out>) at exit.c:138
#14 0x00000000014c6dfa in WM_exit (C=0x7fffd7c3e068, exit_code=0) at /home/melis/c/blender-4.2.3/source/blender/windowmanager/intern/wm_init_exit.cc:712
#15 0x000000000046f624 in main (argc=4, argv=0x7fffffffe0a8) at /home/melis/c/blender-4.2.3/source/creator/creator.cc:587

Blender also comes with a separate python, which does not show the error:
melis@blackbox 12:13:~/concepts/blender-julia-test$ ~/software/blender-4.2.3-linux-x64/4.2/python/bin/python3.11 t_init.py
Initializing Julia environment ...
Hello from Julia!
Active Julia project = /home/melis/.julia/environments/pyjuliapkg/Project.toml

So somehow the embedded version, together with however Blender sets up the Python embedding, causes the issue. Blender's WM_exit in the trace above simply calls exit(exit_code) at line 712, so it seems to go wrong in the exit handlers after that.
I don't have JULIA_NUM_THREADS set, but I do have PYTHON_JULIACALL_HANDLE_SIGNALS=yes set.
I'm not entirely sure where all this originates. I've tried running blender under valgrind, to get some insight into what could be accessed that is wrong, but for some reason that causes PythonCall to get precompiled and leads to different behaviour overall it seems:
melis@blackbox 12:08:~/concepts/blender-julia-test$ valgrind ~/software/blender-4.2.3-linux-x64/blender -b -P t_init.py
==29435== Memcheck, a memory error detector
==29435== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al.
==29435== Using Valgrind-3.23.0 and LibVEX; rerun with -h for copyright info
==29435== Command: /home/melis/software/blender-4.2.3-linux-x64/blender -b -P t_init.py
==29435==
==29435== Warning: set address range perms: large range [0x2979f000, 0x4179f000) (noaccess)
Blender 4.2.3 LTS (hash 0e22e4fcea03 built 2024-10-14 23:31:34)
Initializing Julia environment ...
...
==29435==    by 0x49CAA07F: ???
==29435==    by 0x49647907: ???
==29435==
Precompiling PythonCall...
==29435== Conditional jump or move depends on uninitialised value(s)
==29435==    at 0x4E6A6AB0: jl_genericmemory_to_string (genericmemory.c:202)
==29435==    by 0x5E07C93E: String; (string.jl:78)
...
==29435==
┌ Warning: The call to compilecache failed to create a usable precompiled cache file for PythonCall [6099a3de-0909-46bc-b1f4-468b9a2dfc0d]
│   exception = Required dependency Base.PkgId(Base.UUID("e17b2a0c-0bdf-430a-bd0c-3a23cae4ff39"), "UnsafePointers") failed to load from a cache file.
└ @ Base loading.jl:2509
==29435== Conditional jump or move depends on uninitialised value(s)
...
==29435==    by 0x83AE0887: ???
==29435==
Precompiling UnsafePointers...
  1 dependency successfully precompiled in 1 seconds
ERROR: LoadError: Unable to find compatible target in cached code image.
Target 0 (skylake): Rejecting this target due to use of runtime-disabled features

Stacktrace:
  [1] ==29435== Conditional jump or move depends on uninitialised value(s)
==29435==    at 0x4E6A6AB0: jl_genericmemory_to_string (genericmemory.c:202)
...
==29435==    by 0x574DC89B: ???
==29435==
_include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any}, ignore_native::Bool; register::Bool)
    @ Base ./loading.jl:1204
  [2] _include_from_serialized
    @ ./loading.jl:1169 [inlined]
  [3] _tryrequire_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String)
    @ Base ./loading.jl:1902
  [4] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:2507
  [5] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2315
  [6] #invoke_in_world#3
    @ ./essentials.jl:1089 [inlined]
  [7] invoke_in_world
    @ ./essentials.jl:1086 [inlined]
  [8] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2302
  [9] macro expansion
    @ ./loading.jl:2241 [inlined]
 [10] macro expansion
    @ ./lock.jl:273 [inlined]
 [11] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2198
 [12] #invoke_in_world#3
    @ ./essentials.jl:1089 [inlined]
 [13] invoke_in_world
    @ ./essentials.jl:1086 [inlined]
 [14] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2191
 [15] include(mod::Module, _path::String)
    @ Base ./Base.jl:557
 [16] include(x::String)
    @ PythonCall ~/.julia/packages/PythonCall/Nr75f/src/PythonCall.jl:1
 [17] top-level scope
    @ ~/.julia/packages/PythonCall/Nr75f/src/PythonCall.jl:7
 [18] include(mod::Module, _path::String)
    @ Base==29435== Conditional jump or move depends on uninitialised value(s)
==29435==    at 0x4E390A0B: ???
...
==29435==    by 0x5D929AF7: ???
==29435==
 ./Base.jl:557
 [19] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:2531
 [20] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2315
 [21] #invoke_in_world#3
    @ ./essentials.jl:1089 [inlined]
 [22] invoke_in_world
    @ ./essentials.jl:1086 [inlined]
 [23] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:2302
 [24] macro expansion
    @ ./loading.jl:2241 [inlined]
 [25] macro expansion
    @ ./lock.jl:273 [inlined]
 [26] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2198
 [27] #invoke_in_world#3
    @ ./essentials.jl:1089 [inlined]
 [28] invoke_in_world
    @ ./essentials.jl:1086 [inlined]
 [29] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:2191
 [30] top-level scope
    @ none:8
in expression starting at /home/melis/.julia/packages/PythonCall/Nr75f/src/C/C.jl:1
in expression starting at /home/melis/.julia/packages/PythonCall/Nr75f/src/PythonCall.jl:1Traceback (most recent call last):
  File "/home/melis/concepts/blender-julia-test/t_init.py", line 3, in <module>
    from juliacall import Main as jl
  File "/home/melis/software/blender-4.2.3-linux-x64/4.2/python/lib/python3.11/site-packages/juliacall/__init__.py", line 287, in <module>
    init()
  File "/home/melis/software/blender-4.2.3-linux-x64/4.2/python/lib/python3.11/site-packages/juliacall/__init__.py", line 239, in init
    raise Exception('PythonCall.jl did not start properly')
Exception: PythonCall.jl did not start properly

Blender quit
==29435==
==29435== HEAP SUMMARY:
==29435==     in use at exit: 155,257,953 bytes in 150,624 blocks
==29435==   total heap usage: 4,452,715 allocs, 4,302,091 frees, 2,095,545,574 bytes allocated
==29435==
==29435== LEAK SUMMARY:
==29435==    definitely lost: 814,372 bytes in 235 blocks
==29435==    indirectly lost: 65,812 bytes in 5 blocks
==29435==      possibly lost: 14,316,681 bytes in 54,383 blocks
==29435==    still reachable: 140,060,348 bytes in 95,998 blocks
==29435==         suppressed: 740 bytes in 3 blocks
==29435== Rerun with --leak-check=full to see details of leaked memory
==29435==
==29435== Use --track-origins=yes to see where uninitialised values come from
==29435== For lists of detected and suppressed errors, rerun with: -s
==29435== ERROR SUMMARY: 36 errors from 34 contexts (suppressed: 0 from 0)

Your system
Arch Linux, 64-bit, kernel 6.11.2-arch1-1
Julia 1.11.1, Python 3.11.7
melis@blackbox 11:54:~/concepts/blender-julia-test$ cat ~/.julia/environments/pyjuliapkg/Project.toml
[deps]
PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"

[compat]
PythonCall = "=0.9.23"

melis@blackbox 11:55:~/concepts/blender-julia-test$ ~/software/blender-4.2.3-linux-x64/4.2/python/bin/python3.11 -m pip list
DEPRECATION: Loading egg at /home/melis/.local/lib/python3.11/site-packages/fsb5-1.0-py3.11.egg is deprecated. pip 23.3 will enforce this behaviour change. A possible replacement is to use pip for package installation..
DEPRECATION: Loading egg at /home/melis/.local/lib/python3.11/site-packages/lz4-4.3.2-py3.11-linux-x86_64.egg is deprecated. pip 23.3 will enforce this behaviour change. A possible replacement is to use pip for package installation..
DEPRECATION: Loading egg at /home/melis/.local/lib/python3.11/site-packages/decrunch-0.4.0.post1-py3.11-linux-x86_64.egg is deprecated. pip 23.3 will enforce this behaviour change. A possible replacement is to use pip for package installation..
DEPRECATION: Loading egg at /home/melis/.local/lib/python3.11/site-packages/unitypack-0.10.0-py3.11.egg is deprecated. pip 23.3 will enforce this behaviour change. A possible replacement is to use pip for package installation..
Package            Version
------------------ -----------
autopep8           1.6.0
certifi            2021.10.8
charset-normalizer 2.0.10
Cython             0.29.30
decrunch           0.4.0.post1
decrunch           0.4.0.post1
fsb5               1.0
fsb5               1.0
fsb5               1.0
idna               3.3
juliacall          0.9.23
juliapkg           0.1.13
lz4                4.3.2
lz4                4.3.2
numpy              1.24.3
pip                23.2.1
pycodestyle        2.8.0
requests           2.27.1
semver             3.0.2
setuptools         63.2.0
toml               0.10.2
unitypack          0.10.0
unitypack          0.10.0
urllib3            1.26.8
zstandard          0.16.0

Adding
jl.seval("using InteractiveUtils")
print(jl.seval("versioninfo()"))

to t_init.py gives this info:
Julia Version 1.11.1
Commit 8f5b7ca12ad (2024-10-16 10:53 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 8 × Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, skylake)
Threads: 1 default, 0 interactive, 1 GC (on 8 virtual cores)
Environment:
  JULIA_PYTHONCALL_EXE = /home/melis/software/blender-4.2.3-linux-x64/4.2/python/bin/python3.11

Adding
jl.seval("using Pkg")
print(jl.seval("Pkg.status()"))

to t_init.py actually gives a new segfault:
Package status:
[Detaching after vfork from child process 28993]

Thread 1 "blender" received signal SIGSEGV, Segmentation fault.
0x0000000000fde979 in ?? ()
(gdb) bt
#0  0x0000000000fde979 in ?? ()
#1  0x00007fffafb33e82 in uv__finish_close (handle=0xa436c90) at src/unix/core.c:342
#2  0x00007fffafb33ec8 in uv__run_closing_handles (loop=0x7fffb000d900 <default_loop_struct>) at src/unix/core.c:356
#3  0x00007fffafb34170 in uv_run (loop=0x7fffb000d900 <default_loop_struct>, mode=UV_RUN_NOWAIT) at src/unix/core.c:445
#4  0x00007fffafa906e2 in ijl_process_events () at /cache/build/builder-demeter6-6/julialang/julia-master/src/jl_uv.c:395
#5  0x00007fff9c31c4df in process_events () at libuv.jl:125
#6  julia_wait_65223 () at task.jl:1023
#7  0x00007fff9ad81dd0 in julia_#wait#731_65234 () at condition.jl:130
#8  0x00007fff9b93fc5d in wait () at condition.jl:125
#9  julia_wait_readnb_49617 () at stream.jl:416
#10 0x00007fff9c6fb81b in julia_eof_49609 () at stream.jl:106
#11 0x00007fff9bcb6f3d in jfptr_eof_49610 () from /home/melis/.julia/juliaup/julia-1.11.1+0.x64.linux.gnu/lib/julia/sys.so
#12 0x00007fff745d77da in julia_eof_42260 () at io.jl:472
#13 0x00007fff743bbd2a in julia_#read_tarball#45_41967 () at /cache/build/builder-demeter6-6/julialang/julia-master/usr/share/julia/stdlib/v1.11/Tar/src/extract.jl:352
#14 0x00007fff74510eb2 in read_tarball () at /cache/build/builder-demeter6-6/julialang/julia-master/usr/share/julia/stdlib/v1.11/Tar/src/extract.jl:341
#15 #19 () at /cache/build/builder-demeter6-6/julialang/julia-master/usr/share/julia/stdlib/v1.11/Pkg/src/Registry/registry_instance.jl:264
#16 julia_#open#891_41952 () at process.jl:447
#17 0x00007fff743a69c0 in open () at process.jl:428
#18 julia_uncompress_registry_27784 () at /cache/build/builder-demeter6-6/julialang/julia-master/usr/share/julia/stdlib/v1.11/Pkg/src/Registry/registry_instance.jl:263
#19 0x00007fff7436f186 in julia_RegistryInstance_33428 () at /cache/build/builder-demeter6-6/julialang/julia-master/usr/share/julia/stdlib/v1.11/Pkg/src/Registry/registry_instance.jl:330
#20 0x00007fff7438c817 in julia_#reachable_registries#25_27842 () at /cache/build/builder-demeter6-6/julialang/julia-master/usr/share/julia/stdlib/v1.11/Pkg/src/Registry/registry_instance.jl:436
#21 0x00007fff7453e345 in reachable_registries () at /cache/build/builder-demeter6-6/julialang/julia-master/usr/share/julia/stdlib/v1.11/Pkg/src/Registry/registry_instance.jl:406
#22 julia_#download_default_registries#39_27931 () at /cache/build/builder-demeter6-6/julialang/julia-master/usr/share/julia/stdlib/v1.11/Pkg/src/Registry/Registry.jl:107
#23 0x00007fff743c9365 in download_default_registries () at /cache/build/builder-demeter6-6/julialang/julia-master/usr/share/julia/stdlib/v1.11/Pkg/src/Registry/Registry.jl:106
#24 julia_#status#97_32293 () at /cache/build/builder-demeter6-6/julialang/julia-master/usr/share/julia/stdlib/v1.11/Pkg/src/API.jl:149
#25 0x00007fff745d6ec7 in jfptr_YY.statusYY.97_32294 () from /home/melis/.julia/juliaup/julia-1.11.1+0.x64.linux.gnu/share/julia/compiled/v1.11/Pkg/tUTdb_GYsA8.so
#26 0x00007fff74555cfe in julia_status_34033 () at /cache/build/builder-demeter6-6/julialang/julia-master/usr/share/julia/stdlib/v1.11/Pkg/src/API.jl:148
#27 0x00007fff74423483 in jfptr_status_34034 () from /home/melis/.julia/juliaup/julia-1.11.1+0.x64.linux.gnu/share/julia/compiled/v1.11/Pkg/tUTdb_GYsA8.so
#28 0x00007fff7432fa6d in julia_#status#99_32308 () at /cache/build/builder-demeter6-6/julialang/julia-master/usr/share/julia/stdlib/v1.11/Pkg/src/API.jl:174
#29 0x00007fff742868e6 in julia_status_32289 () at /cache/build/builder-demeter6-6/julialang/julia-master/usr/share/julia/stdlib/v1.11/Pkg/src/API.jl:165
#30 0x00007fff7432fb09 in jfptr_status_32290 () from /home/melis/.julia/juliaup/julia-1.11.1+0.x64.linux.gnu/share/julia/compiled/v1.11/Pkg/tUTdb_GYsA8.so
#31 0x00007fffafa70365 in jl_apply (nargs=1, args=0x7fffffffc700) at /cache/build/builder-demeter6-6/julialang/julia-master/src/julia.h:2157
#32 do_call (args=0x7fffa5117580, nargs=nargs@entry=1, s=s@entry=0x7fffffffc990) at /cache/build/builder-demeter6-6/julialang/julia-master/src/interpreter.c:126
#33 0x00007fffafa6fe2d in eval_value (e=e@entry=0x7fffa51175b0, s=s@entry=0x7fffffffc990) at /cache/build/builder-demeter6-6/julialang/julia-master/src/interpreter.c:223
#34 0x00007fffafa70f98 in eval_stmt_value (s=0x7fffffffc990, stmt=<optimized out>) at /cache/build/builder-demeter6-6/julialang/julia-master/src/interpreter.c:174
#35 eval_body (stmts=<optimized out>, s=s@entry=0x7fffffffc990, ip=1, ip@entry=0, toplevel=toplevel@entry=1) at /cache/build/builder-demeter6-6/julialang/julia-master/src/interpreter.c:663
#36 0x00007fffafa71b3e in jl_interpret_toplevel_thunk (m=m@entry=0x7fff9fb9b870 <jl_system_image_data+50367280>, src=0x7fffa754b460) at /cache/build/builder-demeter6-6/julialang/julia-master/src/interpreter.c:821
#37 0x00007fffafa8dfde in jl_toplevel_eval_flex (m=m@entry=0x7fff9fb9b870 <jl_system_image_data+50367280>, e=<optimized out>, fast=fast@entry=1, expanded=expanded@entry=0)
    at /cache/build/builder-demeter6-6/julialang/julia-master/src/toplevel.c:943
#38 0x00007fffafa8e92a in jl_toplevel_eval_flex (m=m@entry=0x7fff9fb9b870 <jl_system_image_data+50367280>, e=e@entry=0x7fffa5117170, fast=fast@entry=1, expanded=expanded@entry=0)
    at /cache/build/builder-demeter6-6/julialang/julia-master/src/toplevel.c:886
#39 0x00007fffafa8f40c in ijl_toplevel_eval (m=m@entry=0x7fff9fb9b870 <jl_system_image_data+50367280>, v=v@entry=0x7fffa5117170) at /cache/build/builder-demeter6-6/julialang/julia-master/src/toplevel.c:952
#40 0x00007fffafa8f996 in ijl_toplevel_eval_in (m=0x7fff9fb9b870 <jl_system_image_data+50367280>, ex=0x7fffa5117170) at /cache/build/builder-demeter6-6/julialang/julia-master/src/toplevel.c:994
#41 0x00007fffb4326d56 in ?? ()
#42 0x0000000000000000 in ?? ()

Edit: managed to get a more useful stacktrace by building a debug version of Blender, slightly updated some text
Edit 2: commenting out the at_jl_exit definition in blender-4.2.3-debug/4.2/python/lib/python3.12/site-packages/juliacall/__init__.py did not help

Ah, after digging some further the exit issue seems to be caused by Blender using jemalloc. If I build blender with WITH_MEM_JEMALLOC=OFF the munmap_chunk() error goes away. That's unfortunate, as the official Blender binaries use jemalloc (and so does my Arch blender package).


[#114186797] Remove smoke/acceptance test errand defintions.

What
These are no longer needed now that we're running these tests in
concourse, and not in an errand. Left behind after #127.
How to review
Deploy this branch, verify that the smoke and acceptance tests still run.
Who can review
Anyone but myself

These come from the CF release manifest. If we remove them, I guess we stop tracking changes made to these - which would show if anything has changed about the tests... (e.g. new properties, needs bigger instance type etc.)

This is only removing the errand definitions, not the properties. We'll still want to track changes to the properties, but I don't see why we'd need to track changes to the errands as we're not using errands any more.

We're not using errands, but it's the official way to run the tests. There might be some changes about errands perhaps (instance types? networks? jobs?), not very likely, but who knows...

I don't think it's necessary to maintain these errands here to be able to track any changes to upstream. When playing the most recent upgrade story, the easiest way to see theupstream changes was to look at the diff between the 2 tags in the upstream manifests. That will hilight any changes in these errand definitions that might be relevant to us.

I don't think it's necessary to maintain these errands here to be able to track any changes to upstream. When playing the most recent upgrade story, the easiest way to see the upstream changes was to look at the diff between the 2 tags in the upstream manifests. That will highlight any changes in these errand definitions that might be relevant to us.

:+1: this


Cultural Delights compat

Cultural Delights
Avocado Trees leave behind Avocado Bundles (culturaldelights:avocado_bundle) and don't show their stripped variants while chopping them down.
Originally posted by @thimblebird in https://github.com/hammertater/treechop/issues/44#issuecomment-1280764474

Fixed per https://github.com/Nyancatpig/Cultural-Delights-1.19.2/issues/3


rpc: allow wumbo invoices

In this commit, we remove the restriction surrounding the largest
invoices that we'll allow a user to create. After #3967 has landed,
users will be able to send in aggregate a payment larger than the
current max HTLC size limit in the network. As a result, we can just
treat that value as the system's MTU, and allow users to request
payments it multiples of that MTU value.
A follow up to this PR at a later time will also allow wumbo channels.
However, that requires us to tweak the way we scale CSV values, as post
wumbo, there is no true channel size limit, only the
local limit of a given node. We also need to implement a way for nodes
to signal to other nodes their accepted max channel size.

Updated to remove the sending limits in the main RPC server and the router rpc. Once the main splitting PR is in, I'll circle back and add sanity checks for things like trying to send more coins than will ever exist.

Pushed up a slightly modified version that leaves the limit in place for the legacy RPC as that doesn't actually support payment splitting.


Support for vessel and cuboid surface types

Hello OpenMC team,
I’ve been working with a Serpent input file, and I’ve come across some surface types that currently aren’t supported by the openmc_serpent_adapter tool. Specifically, I need to use the cuboid and vessel surfaces. These are common surface types in Serpent, and I was wondering if there’s any interest or ongoing effort to include these in the adapter tool?
For reference, here’s the Serpent documentation that defines surface types.
The Serpent input file I'm working with also includes the trans function a lot. I'm wondering if there is any ongoing effort to include this as well?
I’d be happy to contribute to these efforts but would appreciate some guidance on where and how to get started.
Thanks!
Soha

Hey @sohhae! Adding support for cuboid would be very simple since it is equivalent to the openmc.model.RectangularParallelepiped class in OpenMC. If you look at the parse_surf_cards function, you would just need to add another case on the big if/elif/else block.
Support for vessel would be a little more complicated since we don't have a matching composite surface in OpenMC. You would first need to add a new class in openmc/model/surface_composition.py in the main OpenMC repo to match the vessel surface in Serpent. You can take a look at the existing classes in that file to get a sense of what's involved.
As for trans, it depends on which kind of transformation you need. Some are already supported while others are not. You can take a look at the parse_trans_cards function in serpent_conversion.py.

Hi @sohhae! We updated openmc_serpent_adapter and added support for cuboid and vessel. The adapter should now work correctly with those surfaces. If you have any other issues with them, please don't hesitate to let me know.
Regarding the trans cards, could you tell me which kind of transformation you need so that I can prioritize them?

Support for cuboid and vessel surfaces has now been added. I also fixed the issue with cones by using the new ConicalFrustum class in OpenMC. Note that you'll need the develop branch of OpenMC for these fixes to work until we get a new release of OpenMC out, hopefully soon.

Closing this issue; I created a separate issue for universe transformations (#2)


Whither can I get the open source about "Dpuv3Int8Controller",for DPUCADF8H

Hi @simplelins ,
Could you clarify what source code you are looking for?
The Vitis AI runtime source code is available at https://github.com/Xilinx/Vitis-AI/tree/v2.0/tools/Vitis-AI-Runtime/VART

Hi @simplelins , please reopen this issue if you still have any other questions. thanks!


Self Signed Certificate In Certificate Chain

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Storage Explorer Version
1.23.1
Regression From
No response
Architecture
x64
Storage Explorer Build Number
20220406.1
Platform
Windows
OS Version
Windows 10
Bug Description
When connecting to a storage account via SAS, an error is thrown regarding there being a self signed certificate in the certificate chain. However, when trying to locate the certificate using OpenSSL, no self signed certificate could be found. This same issue has come up for several of our clients.
Steps to Reproduce

Launch storage explorer
Connect to a storage account using SAS
Error is displayed on connection with no access to resources given

Actual Experience
Error is thrown when connecting with SAS for certain clients with the error that there is a self signed certificate in the certificate chain. Connection is made but no resources are visible or accessible. No self signed certificate could be found with OpenSSL. Was able to get around this by opening storage explorer with the --ignore-certificate-errors flag but this is not a permanent solution.
Expected Experience
Storage account opens without error and resources are listed and accessible
Additional Context
The issue seems to have become more common in the past couple months. We have clients who have used SAS for a long time without ever having certificate issues but for our more recent clients this seems to be a common recurring issue. This has not been resolved for any affected clients thus far, except for advising opening storage explorer with the --ignore-certificate-errors flag, which is not an ideal solution.

I wonder if your clients are working in a proxy environment? When that's the case, we have seen people who is able to mitigate this issue by turning on "System Proxy". Could you let your clients try going to Edit->Configure Proxy -> Use System Proxy (in the source dropdown) and see if mitigates this issue?


Fix initial text toolbar location [#175631464]

[#175631464]
The bug is essentially an order-of-initialization problem. During the initialization sequence the resize handler is called before the text toolbar has installed its handler, so it doesn't know the size of the tile when it comes time to determine the initial toolbar location. The fix here is to have the TextTool cache the size locally so that when the toolbar installs its handler the handler can be provided with the cached dimensions.

I'm going to merge this pre-review in the interest of moving the release process forward.


(uglify) WARN: Output exceeds 32000 characters

Jason et al, I was experimenting with bundling some 3rd party css packages, and ran into this. To reproduce:
npm install material-design-lite --save
# add line to main.js
import '../../node_modules/material-design-lite/material.css';
# production build
export NODE_ENV=production
npm run build
> WARN: Output exceeds 32000 characters

The warning is coming from uglify, but I cannot figure out how or whether is possible to make postcss generate the injected styles with shorter line length. Just for background, this is an issue for both Js and Css files which is why uglify warns about it.

Why are there random line feeds in compiled scripts?
The Closure Compiler intentionally adds line breaks every 500 characters or so. Firewalls and proxies sometimes corrupt or ignore large JavaScript files with very long lines. Adding line breaks every 500 characters prevents this problem. Removing the line breaks has no effect on a script's semantics. The impact on code size is small, and the Compiler optimizes line break placement so that the code size penalty is even smaller when files are gzipped.
https://developers.google.com/closure/compiler/faq#linefeeds

@guidorice Hey, thanks for reading! I think this issue would be better suited for https://github.com/postcss/postcss and/or https://github.com/mishoo/UglifyJS2 — this is a tutorial for Rollup, so I'm unable to offer much help with PostCSS/UglifyJS.
Good luck!


Stateful tests with Dataset

I was curious to see if the hypothesis stateful testing would catch an inconsistent sequence of index manipulation operations like #8646. Turns out rename_vars is basically broken? (filed #8659) :P
PS: this blog post is amazing.
E           state = DatasetStateMachine()
E           state.assert_invariants()
E           > ===
E
E            <xarray.Dataset>
E           Dimensions:  ()
E           Data variables:
E               *empty*
E           ===
E
E
E           > vars: ('1', '1_')
E           state.add_dim_coord(var=<xarray.Variable (1: 1)>
E           array([0], dtype=uint32))
E           state.assert_invariants()
E           > ===
E
E            <xarray.Dataset>
E           Dimensions:  (1: 1)
E           Coordinates:
E             * 1        (1) uint32 0
E           Data variables:
E               1_       (1) uint32 0
E           ===
E
E
E           > renaming 1 to 0
E           state.rename_vars(newname='0')
E           state.assert_invariants()
E           > ===
E
E            <xarray.Dataset>
E           Dimensions:  (1: 1)
E           Coordinates:
E             * 0        (1) uint32 0
E           Dimensions without coordinates: 1
E           Data variables:
E               1_       (1) uint32 0
E           ===
E
E
E           state.teardown()

Great idea! Really cool.
I even wonder to what extent this could replace vast swathes of our tests — anything where the output is calculated from the input.
We'll always want some unit tests to code to when developing, but plausibly the unit tests are either a) examples or b) some saved cases that have failed these model-based tests before.

instead some valid cases require skipping the default indexes invariant check.

Can we write down rules for when these checks are needed?

Yes although I think it is easier to write rules for when these checks aren't needed.
One example: skip the default indexes invariant test when the name of an existing dimension coordinate is passed as input kwarg or dict key to .rename_vars().

This seems to have found at least 3 edge-case failures for swap_dims:

swapping a dimension to itself
swapping from Index to a MultiIndex level
swapping from MultiIndex to a level of the same MultiIndex

Hah now our strategy tests are failing

Thanks for the review @Zac-HD


Quantization Error (2)

Observed when attempting to quantize alpindale/miqu-1-70b-fp16
$ python convert.py -i ~/.cache/huggingface/hub/models--alpindale--miqu-1-70b-fp16/snapshots/f8267dda117a9192ed42ad31aba3c4b4e1fb9907/ -o ./miqu-3.0bpw -b 3.0
<... some output I didn't fully log ...>
 --   model.layers.78.mlp                                3.3595 bpw - exp. error: 0.01445030
 --   model.layers.79.self_attn                          2.2185 bpw - exp. error: 0.00499376
 --   model.layers.79.mlp                                2.5856 bpw - exp. error: 0.01804905
 -- Tokenizing samples...
 -- Token embeddings again...
 -- Quantizing...
 -- Layer: model.layers.0 (Attention)
 -- Linear: model.layers.0.self_attn.q_proj -> 0.1:3b_64g/0.9:2b_64g s4, 2.16 bpw
 ## Quantization error (2)

The output directory is like this:
$ tree miqu-3.0bpw/
miqu-3.0bpw/
├── cal_data.safetensors
├── hidden_states.safetensors
├── job_new.json
├── measurement.json
└── out_tensor
    └── model.layers.0.self_attn.q_proj.safetensors

1 directory, 5 files

When retrying to resume:
 -- Resuming job
 !! Note: Overriding options with settings from existing job
 -- Input: /home/user/.cache/huggingface/hub/models--alpindale--miqu-1-70b-fp16/snapshots/f8267dda117a9192ed42ad31aba3c4b4e1fb9907/
 -- Output: ./miqu-3.0bpw
 -- Using default calibration dataset
 -- Target bits per weight: 3.0 (decoder), 6 (head)
 -- Max shard size: 8192 MB
 -- Quantizing...
 -- Layer: model.layers.0 (Attention)
 -- Linear: model.layers.0.self_attn.q_proj -> 0.1:3b_64g/0.9:2b_64g s4, 2.16 bpw
 ## Quantization error (2)

This is caused by this line of exllamav2. I'm not sure why it happens.

I've been working on that model for a bit, and it appears to be a broken conversion, though I can't figure out what's broken about it. Yet. FP16 inference on wikitext gives really high perplexity even before quantizing.
The error during quantization is because it catastrophically fails to quantize and then reconstruct the first layer, which suggests out-of-bounds values or some such, maybe even in the RMS norm weights or the embeddings. I'm looking into it.

my suspicion is that the conversion from fp16 gguf -> fp16 pytorch is broken on the attn weights specifically, due to unaddressed permutations from the pytorch -> gguf conversion.
i don't think the rest of the weights can be bad. Especially e.g. the embeddings have to be shaped correct because the pytorch model still generates semi-relevant text given an input prompt.

It turns out the weights were indeed broken, and there are now correct FP16 (and EXL2) versions on HF.


code fixes for SA1600.

Hi,
The old style cop code fixes in resharper used to provide default text for properties and methods that made it really easy to document code elements.
I note that SA1600 does not currently have a code fix.
I would be open to implementing it myself if I still needs to be done.

The one case where we currently support a code fix for SA1600 (and CS1591) is InheritdocCodeFixProvider. In general we've avoided providing code fixes for documentation except in cases where we expect to provide meaningful documentation. Specific cases include:

Adding <inheritdoc/> to undocumented elements which override or implement an inherited member (this is the previously mentioned code fix)
The <returns> element for asynchronous unit tests
The <value> element for properties that are already documented with <summary>
The <summary> element for constructors and finalizers (as specified by SA1642/SA1643)

I'm marking this as a duplicate of #764.


Great source for learning, is there any way to run on localhost with VS Studio Code.

Great source for learning, is there any way to run on localhost with VS Studio Code.
If anyone knows how to run it with VS Studio Code with address: <IP_ADDRESS>:xxx, please guide me.
Thanks

In my workflow I usually push test builds to a staging worker on Cloudflare instead of running it locally. The main reason I do this is because I'm usually testing embeds, which requires a publicly routable URL. However, if you want to run it locally either for API purposes or to use with something like ngrok you should be able to use run npx wrangler dev to fire it up locally. If you encounter any issues doing that feel free to follow up. Make sure you configured your wrangler.tomlfile before you do this.

I have been able to run according to your instructions.
_Thanks


ARROW-7072: [Java] Support concating validity bits efficiently

For scenarios when we need to concate vectors (like the scenario in ARROW-7048, and delta dictionary), we need a way to concat validity bits.
Currently, we have bit level API to read/write individual validity bit. However, it is not efficient , and we need a way to copy more bits at a time.

+1 thank you.


Dark Theme/Custom Themes

From: Google Groups

This is pretty cool...im the guy that asked about the dark theme.   Is this a place that you ask for help?? I know nothing about all this.  The only geekiest thing im into is running gaming servers.

Okay...did my research on waffle.io  ....pretty cool....so its basically a project manager that others can interact with you on.

@atheistics yes, waffle is a layout for Github which holds the code and backlog, just a lot easier to handle the backlog in waffle then Github directly. BTW, I did not know anything about Github until I put Practical Startpage here early this year.

@atheistics got a potential designer to help me with colors will meet to review this coming week.

Hi -
I actually left a similar comment on the google web store page until I realized this was all open source on GitHub. I can get this going as well - I'm working on getting the package installed/running on my own machine so I can tinker. I am not really familiar with all the intracies of npm/gulp
What is the build process to take the source and tinker/test on my own?

@slapyak
That would be great, I am a bit swamped with other stuff at the moment and there is still a complicated bug I need to trash out..
To develop you don't really need gulp it is used just for release. You just load the appdev folder in chrome and code away. Gulp is just for release.
The colors of all menus etc can easily be changed if there was just an interface to do so. The color variables already load dynamically and are stored in the chrome storage. The background will be a bit more tricky but check out http://semantic-ui.com/.  And last step will be to make final adjustments with custom CSS rules.

FYI.  I am working on this and making pretty good progress.  I have the interface set up and tied into a preview element. I expect to have it capable of applying a theme sometime next week.
Layout -- http://imgur.com/a/bqUiB -- ugly colors to simply show what's going on.

Hell yea...this is going to be awesome ...great work.  Cant wait to candy up my practical start page!

is it possible for me to install this and tinker?

Sure. You can pull it from my github. At this time only a few buttons are actually connected to the preview, and there's no way to skin the actual interface. I need to create new tags for a majority of the components - which is the step I'm working on now. Give it until Monday and you'll be able to apply a usable theme throughout the site.

@atheistics once you have the the local copy from github, Load the appdev folder from chrome extensions and you can test. You also down load a zip repository from github.

@slapyak I saw your good progress. It would be great when you are done if we could review the code together. This is my first major app so any thoughts on coding etc. would be appreciated

Sure thing. I'm actually working to keep it completely modular. So far I
think I've only had to modify one file (in addition to adding references
and calls where appropriate).
On Fri, Aug 26, 2016 at 2:59 PM, Paul<EMAIL_ADDRESS>wrote:

@slapyak https://github.com/slapyak I saw your good progress. It would
be great when you are done if we could review the code together. This is my
first major app so any thoughts on coding etc. would be appreciated
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PD75/practical-startpage/issues/102#issuecomment-242822419,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUEaEdTd5v3nGfxuubsvMA6tjE-QGQ8wks5qjzeIgaJpZM4IlHh9
.

Well, my thoughts may not be worth much. I'm not a pro by any stretch. I write little apps to make my life easier at home and work. I like to approach things with a modular approach and try to make things as compartmentalized as possible. It looks like you've done a good job doing the same with this app. And while I don't have enough knowledge to know what is from the template and what is your original creation, the overall setup of the project dev and working directories seems to make sense.
As far as you reviewing what I've put together prior to inclusion, I've taken the theme generated by semantic and basically written some additional css to go over top. I'm sure it's not ideal coding procedure, but I'm basically overruling the semantic classes and redefining elements - including changing elements labeled as 'black' and turning that into the themed secondary'bar' color.
I can forward the markup i put together to identify what areas should be controlled together and walk you through what is happening in the code. The simple explanation is that there are css variables called out in the css file. The javascript picks up the selected colors and stores it in the appropriate variables, changing the colors on the fly. This trick  luckily works in Firefox and Chrome, but IE has limited support from what I've read. The highlight and active colors for each user selected type is also generated in JS and stored back into the CSS variable.
As of right now, the color selection, preview, and application are all working. The only thing I have not tackled is how to store the changes and make them persistent for each user. Perhaps adding a few pre-defined themes would be a good idea as well. That's simple enough with a few tuples and a dropdown menu.

Dig it:
http://imgur.com/a/gXdve
https://github.com/slapyak/practical-startpage/tree/feature_theming

@slapyak
Looked good last screen shots! How is it going? Have you figured out how to save or do you want tome guidance?

It works! Check out my fork.

Waaaaa!  Loving the mint color!  Legit work man!

Thanks. I think it should be pretty compartmentalized. I had to tap into the layout JS file to get it loaded at startup. And there are a few spots where an !important flag was overriding my theming in another CSS file or two. But most of the actual work is in the options/appearance directory.
The function may be something to discuss - it loads the last applied theme on startup. When you go into the options page, you are shown the currently applied theme. From that point on, any changes you make are held in the options pane (in case you don't apply, you still won't have to redo any changes). I think another button to reset the preview might be good. I already have a function that does that, just need to apply it to a button.
Let me know what you think. I can squash the commits down and send over a pull request whenever you think it's ready to integrate.

@slapyak , finally got time to look at it, looks great. Do you have time to walk through the changes? We could use Skype and share screens, Would be great if you had the time. I am in Europe, so I guess morning would be best your time, saw your profile is EST.

Yeah. I can do that. I could do around 5pm EST any weekday, or sometime
saturday morning.
On Wed, Sep 28, 2016 at 10:26 AM, Paul<EMAIL_ADDRESS>wrote:

@slapyak https://github.com/slapyak , finally got time to look at it,
looks great. Do you have time to walk through the changes? We could use
Skype and share screens, Would be great if you had the time. I am in
Europe, so I guess morning would be best your time, saw your profile is
EST.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PD75/practical-startpage/issues/102#issuecomment-250182124,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUEaEdqHTGlKZ9EXK5PP3cQiJjzbvsdiks5qunj4gaJpZM4IlHh9
.

@slapyak,
I sent you a mail, lets aim for saturday if that works for you.
In the mean time here are some comments:

All text needs to be translatable except examples
Use directive ps-i18n the actual words you need to put in _locales/en/message.json,
Reuse if there is already text, other wise one or two words alphabetically in the first section, longer code c_o_
You need to update the extension to load the new text from _ locales
Needs to register with storage options to allow synchronization.
Need to work down the amount of DOM manipulation and find Angular alternatives, otherwise the code will be hard to maintain, and prone to breaking when changes are made to layout.

OK.

This is easy enough. I had just put it off until after the functionality
was complete.

This was the part I had the most difficulty with - I'm not sure exactly
where to add this registration. Could you point me to an example of another
function which already does this properly?

If you're referring to the CSS, there's not really a good way around
this. The issue is that the semantic ui stuff is generated on the fly and
there's no good way to plug into that system at runtime - which is
obviously where you need to be to change an applied theme. If you mean the
example 'page' in the settings dialogue, then I think that could be
changed, though I basically hard-coded it to make sure that everything we
needed to see was present. I didn't see an advantage of generating that
dynamically. It still references the semantic infrastructure - so if you
were to change the semantic layout style, the examples would change as well.

On Mon, Oct 3, 2016 at 4:46 AM, Paul<EMAIL_ADDRESS>wrote:

@slapyak https://github.com/slapyak,
I sent you a mail, lets aim for saturday if that works for you.
In the mean time here are some comments:

All text needs to be translatable except examples

Use directive ps-i18n the actual words you need to put in
_locales/en/message.json,
Reuse if there is already text, other wise one or two words
alphabetically in the first section, longer code c_o_
You need to update the extension to load the new text from _
locales

Needs to register with storage options to allow synchronization.
Need to work down the amount of DOM manipulation and find Angular
alternatives, otherwise the code will be hard to maintain, and prone to
breaking when changes are made to layout.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/PD75/practical-startpage/issues/102#issuecomment-251055585,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AUEaEQv6HvW7MskRPjSF-shLYLH9lgq3ks5qwMD4gaJpZM4IlHh9
.

Just wondering if this is ready for applying?  If so how do i use it?

This is 2 legit!!! Exactly what i was looking for!  By the way I am @atheistics ,  i created a new github for my gaming community so thats why my name has changed.  Great work guys!!!  Does anyone here mess with mysql by chance?

@atheistics , I do SQL, mostly T-SQL, but the dialects are not so different. But the actual installation I don't really have any experience, just ones or twice.

@atheistics looking for time to give @slapyak input, started freelance consulting so time is very limited.

Oh that's awesome PD75!  Congrats on the consulting.  I thought about getting into IT consulting myself.  May pursue that one day.  Any way.  Love the work you all have done.  Im new to all this github jazz but learning new things every day.  So from what i understand.... i can basically Fork the themed version and make one of my own?  I would like to mess around with it and add custom things to it to make it rediculous looking for myself.  Also i enabled the google badge.  how do i add more of them?

@x-cessive the badges are self-sufficient you need to create a angular directive add it to JSON in badges,constants.js if you want to save settings I need to add instruction for @slapyak as well, but it was some time since I did it so I will need to spend some time.

Hey @PD75 can i rewrite some things in this to use it as a collaboration tool for my gaming community staff?  What i was thinking is that i could use the "whats new" area to post links and such to the tools we use while editing our servers and such.  And the "home" button for our website shortcut.  And the "Bug" area that links to our github.   So basically when we get new staff we would have them download the private chrome extension to use as a guide of sorts.  I would give full credit to you guys of course.  Just thought it would make a great addon to our project we have going on.  :)

@x-cessive I moved the discussion to #114

@slapyak

You need to use:
javascript    dataService.setData({      objectname(theme): object,     }).then(...);
use then only if you need to do something after
 dataServices.getData({...
add object and description to test/dataModel.js this allows validation during development
lots of examples if you serach for setData and getData

@slapyak also please reset the original theme to what it was, if you want a new light theme keep it as an option.

Hi, how can I use this theme? it would be very nice for step by step instructions, thank you :)


Release compiler flag configuration based on targetCompatibility results in stack overflow

Configuring the --release compiler flag based on the targetCompatibility of a project causes a stackoverflow.
Expected Behavior
When configuring the release flag via
compileTask.getOptions().getRelease().set(
    project.provider(() -> {
        JavaVersion javaVersion =
        JavaVersion.toVersion(compileTask.getTargetCompatibility());
            return Integer.parseInt(javaVersion.getMajorVersion());
        }
    }
)

I would expect the release flag to be derived from the targetCompatibility property.
Current Behavior
The snippet above causes a stackoverflow as by default the targetCompatibility level is calculated from the new release flag. To fix this behaviour locally
it is required to override the convention mapping:
compileTask.getConventionMapping().map("targetCompatibility", () -> java.getTargetCompatibility().toString());

Context
We have a 300+ projects multiproject build with different configured targetCompatibilities and make heavy use of this.
Before Gradle we configured the --release flag manually via commandlineArguments deriving the version as mentioned. Changing the order in our setup to use the release property and derive compatibilty settings from that property is quite invasive and potential error prone as it introduces a change in behaviour in our build:
E.g. developers set the targetCompatibility and will be surprised of that setting not taking any effect.
Steps to Reproduce
Our build is open source at https://github.com/elastic/elasticsearch

So we have been thinking some more about this decision, and we need to keep it as-is. We are even using the same principle for the upcoming toolchains feature in Gradle 6.7.
The main reason is compatibility. IDE imports and other ecosystem integrations rely on the sourceCompatibility or targetCompatibility both at the project and compile task level to expose the configured language level.
When introducing first class support for the release flag or for toolchains, we need builds that opt-in to use the new feature to still reflect that choice on these properties so that tooling makes the right decision.
While the request makes sense for some use cases, it would break IDE import and other features out there.
So neither release nor toolchains should be set based on the values of sourceCompatibility or targetCompatibility. This will cause the exception described here.

No changes planned on the Gradle side - closing


Question: How can I run the formatter on Maven sub projects?

Hello,
I am experimenting with this plugin. It is nicely detecting rule violations in the root of a project (e.g. in POM.xml) but it is not detecting violations in Java files.
The exemple project is this one:
https://github.com/Oliver-Loeffler/scenebuilder/tree/issue-485-demo
What would be the right way to configure the plugin and to run the plug in order to detect and correct format violations in Java sources as well? I was playing with many different settings the last days but nothing worked like expected - however, my expectation can be wrong as well.
I was using:
mvn editorconfig:check
mvn editorconfig:format

with the following config:
# EditorConfig is awesome: https://EditorConfig.org
root = true

[*.java]
indent_style = space
indent_size = 4

[*.fxml]
indent_style = space
indent_size = 2

[*.yml]
indent_style = space
indent_size = 2

[pom.xml]
indent_style = space
indent_size = 4

The source file app\src\main\java\com\oracle\javafx\scenebuilder\app\AppPlatform.java is full of tabs and I'd expect a complaint/violation for this file. It works well with the main (reactor) POM.xml but not with any of the sources.
The plugin is configured like:
    <build>
        <pluginManagement>
            <plugin>
                    <groupId>org.ec4j.maven</groupId>
                    <artifactId>editorconfig-maven-plugin</artifactId>
                    <version>0.1.3</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
               <plugin>
                    <groupId>org.ec4j.maven</groupId>
                    <artifactId>editorconfig-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>check</id>
                            <phase>verify</phase>
                            <goals>
                                <goal>check</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
        <plugins>
    </build>

Thanks in advance!
Oliver

Thanks for the report @Oliver-Loeffler

What would be the right way to configure the plugin and to run the plug in order to detect and correct format violations in Java sources as well?

No way for the indentation unfortunately, see https://github.com/ec4j/editorconfig-linters/issues/23
As hinted around here: https://github.com/ec4j/editorconfig-maven-plugin?tab=readme-ov-file#how-it-works java files are currenly handled only by the TextLinter which supports only end_of_line, trim_trailing_whitespace and insert_final_newline
It is the same for YAML.
If fxml is XML, then you can map it to XMLLinter using the linters config option, something like
      <plugin>
        <groupId>org.ec4j.maven</groupId>
        <artifactId>editorconfig-maven-plugin</artifactId>
        <version>...</version>
        <configuration>
          <linters>
            <linter>
              <className>org.ec4j.linters.XmlLinter</className>
              <includes>
                <include>**/*.fxml</include>
              </includes>
            </linter>
          </linters>
        </configuration>
      </plugin>

Hello @ppalaga ,
thanks for the swift explanation. I was just not sure if this is still the recent state. Thank you for clarification. Also thanks for pointing out how to possibly format the FXML file. This is something worth to consider. As of this moment, the checkstyle plugin and the editorconfig-maven-plugin could complement each other.


:bug: Fix CI merge_ok step to check matrix results properly

There have been several occasions when CIB merges happened despite failing builds - I think this is the reason.
See https://github.com/orgs/community/discussions/26822

Yes - because build_and_test is a matrix, it counts as "success" for another job that "needs" it, when any of them succeeds, apparently. This changes that.


VCS Debugger Breakpoints' paths are changed to the wrong value

Im attempting to connect my debugger to a dotnet3.1 service running inside an alpine container, im attempting to use these docs https://github.com/OmniSharp/omnisharp-vscode/wiki/Attaching-to-remote-processes#installing-vsdbg-on-the-server
Environment data
dotnet --info output:
VS Code version: 1.71.1
C# Extension version: 0.7.7
The dll's for my application are stored in /app inside the docker image. My service is published in the Dockerfile using Debug configuration with  portable
my launch.json task
        {
            "name": ".NET Core Docker Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "1",
            "pipeTransport": {
                "pipeProgram": "docker",
                "pipeArgs": [ "exec", "-i", "2862e1254f00" ],
                "debuggerPath": "/root/vsdbg/vsdbg",
                "pipeCwd": "${workspaceFolder}/src/DB.API",
                "quoteArgs": false
            },
            "logging": {
                "moduleLoad": false,
                "engineLogging": true,
                "trace": true
            },
            "sourceFileMap": {
                "/app": "${workspaceFolder}/src/DB.API" //the csproj file of my api is here
            },
        }

OmniSharp log
-> (C) {"command":"setBreakpoints","arguments":{"source":{"name":"HealthCheckController.cs","path":"/Users/isaac.patterson/dev/dbx/document-branding-service/src/DB.API/Controllers/HealthCheckController.cs","checksums":[{"algorithm":"SHA1","checksum":"fcc6f4f0342c29bf4e22856510c2018cccd51a34"},{"algorithm":"SHA256","checksum":"55eb2d1c3a09808508a447561c3529d082c76a3695be60a3f978bd72dc3d0bdc"},{"algorithm":"SHA1","checksum":"b51b4e9c6015bc25cd7a2ee70185c5eebe4abf6f"},{"algorithm":"SHA256","checksum":"2fee18185ea8c7e7ba35c61b7781ef18c556f930781bfc68307e5f50ffb1a922"}]},"lines":[48],"breakpoints":[{"line":48}],"sourceModified":false},"type":"request","seq":9}

<- (R) {"seq":263,"type":"response","request_seq":9,"success":true,"command":"setBreakpoints","body":{"breakpoints":[{"id":1,"verified":true,"source":{"name":"HealthCheckController.cs","path":"/src/Controllers/HealthCheckController.cs","sourceReference":0,"checksums":[{"algorithm":"SHA256","checksum":"55eb2d1c3a09808508a447561c3529d082c76a3695be60a3f978bd72dc3d0bdc"}]},"line":48,"endLine":48,"offset":0}]}}

Expected  behavior
/Users/isaac.patterson/dev/dbx/document-branding-service/src/DB.API/Controllers/HealthCheckController.csshould map to /src/DB.API/Controllers/HealthCheckController.cs but DB.API/ is missing
Actual behavior
Maps to /src/Controllers/HealthCheckController.cs which is not a file

When I hit the endpoint with the breakpoint, the request does not go all the way through as if the breakpoint is working - however on my vcs nothing shows
Additional context
Add any other context about the problem here.

The debugger is just reporting the source info in your PDBs. So the problem lies in how your code is being compiled. Are you building in a different container? Using the compiler option to change file paths?

Hey, thanks for the reply im using a multistage build which is probably part of the problem. My DB.API.pdb is in /app after the image is built

FROM <SENSITIVEURL>/dotnet/core/aspnet:3.1-bionic AS base
LABEL<EMAIL_ADDRESS>WORKDIR /app
EXPOSE 80
EXPOSE 443

# Install enteraws: <SENSITIVEURL>
ADD <SENSITIVEURL>/enteraws/v0.0.25/linux/enteraws /usr/bin/enteraws
RUN chmod +x /usr/bin/enteraws

FROM <SENSITIVEURL>/dotnet/core/sdk:3.1-bionic AS build
WORKDIR /src
COPY ["nuget.config", "."]
COPY ["DB.API.csproj", "./"]

RUN dotnet restore "DB.API.csproj"
COPY . .
RUN dotnet publish "DB.API.csproj" -c Debug -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=build /app/publish .

# Install New Relic APM
ARG NewRelicKey
ARG NewRelicHome=/usr/local/newrelic-netcore20-agent
ARG NewRelicUrl=https://download.newrelic.com/dot_net_agent/previous_releases/8.36.0/newrelic-netcore20-agent_<IP_ADDRESS>_amd64.tar.gz
ARG git_sha="0000000000000000000000000000000000000000"

ENV CORECLR_ENABLE_PROFILING="1" \
  CORECLR_PROFILER="{36032161-FFC0-4B61-B559-F6C5D41BAE5A}" \
  CORECLR_NEWRELIC_HOME=$NewRelicHome \
  CORECLR_PROFILER_PATH=$NewRelicHome/libNewRelicProfiler.so \
  NEW_RELIC_LICENSE_KEY=${NewRelicKey} \
  NEW_RELIC_DISTRIBUTED_TRACING_ENABLED=true \
  GIT_SHA=$git_sha

RUN mkdir -p "${NewRelicHome}" && \
  cd /usr/local && apt update -y && apt install wget -y && wget -O - "${NewRelicUrl}" | gzip -dc | tar xf -

RUN curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l ~/vsdbg

ARG build_version=<IP_ADDRESS>
ENV BUILD_VERSION=$build_version

ENTRYPOINT ["enteraws", "dotnet", "DB.API.dll"]

PDB files contain, by default, the full path to the source files used to compile. So the problem is that your build container has the source files of your project in a directory called 'src', but your sourceFileMap isn't mapping '/src'. What you probably want to do is map your project's source files to a more distinct directory, since '/src' is really generic, and set your sourceFileMap up accordingly.
 Source file records are not relative to the path of the pdb.

Ahhhh ok I misunderstood. So you have to have the unbuilt src files in the container aswell. I got this working by adding in all those files and src mapping them to my local. Is there no way to do it without src files in the container? trying to make my images as small as possible


Suggestion: Plane (not plain) Terrain type

Terrain type similar to a super-flat world, but generating around Y=60, with a few even layers of the world material, and either no bedrock, or bedrock with random holes sandwiched between layers of said material.

But the flat terrain is already like that isn't it? I mean in rftools dimensions (you reported to the wrong mod btw)

Oops on the wrong mod bit...
And no, not like 'Flat' terrain. This would literally be only a few layers thick, and then void beneath so you could build above and below. This thought was inspired by some comments I came across regarding the Invertigo terrain.


text: enable to render emojis

Ebitengine Version
2.5.2
Operating System

[ ] Windows
[X] macOS
[ ] Linux
[ ] FreeBSD
[ ] OpenBSD
[ ] Android
[ ] iOS
[ ] Nintendo Switch
[ ] Xbox
[ ] Web Browsers

Go Version (go version)
1.19.4
What steps will reproduce the problem?
I tried to draw some emojis using a font pack that could parse emoji, but the result was blank, and if I used a font that didn't contain emojis, the result was a box。
The fonts I've tried to include emoticon characters are as follows：
1 AppleColorEmoji_2x.ttf
2 NotoColorEmoji-Regular.ttf
I saw in another issue that truetype was recommended for loading Noto characters, and in fact that's exactly what I did。
What is the expected result?
strings: ♈♏😁0123456789

And result :
(use AppleColorEmoji_2x.ttf)

(use NotoColorEmoji-Regular.ttf)

(use other ttf-no emoji)

What happens instead?
see result.
Anything else you feel useful to add?
No response

This is an issue in golang.org/x/image/font, rather than Ebitengine. I am not sure this is solvable.

I changed this issue a request rather than a bug.

To be more specific, see https://pkg.go.dev/golang.org/x/image/font/sfnt#pkg-variables ErrColoredGlyph (sfnt doesn't support colored glyphs like most emojis).
My take is that even if we used a library that supported colored glyphs, this would complicate the text package models quite a bit, and text is already pretty complex as it is. With Ebitengine being a game engine, not a general application development framework, focusing on creating a way to combine regular *ebiten.Images with text may be a more productive approach.
In practice, it's really hard to draw a reasonable line somewhere between minimal text support and universal browser-like text layout. There are too many features and possibilities, and most of them make a lot of sense in isolation and certain use-cases, but very few are actually relevant in a range of cases wide enough to justify going out the way to cover for them.
If you want to expand explaining what's your use case, I'm sure we can give more context on the topic, because if it's something like a text editor, emojis will be the least of your problems.

I think using<EMAIL_ADDRESS>would solve this issue, but this is not easy.


[QST] Is it possible to extract indices and continuous features rules from NVTabular workflow?

We are trying to optimize features preprocessing step for the real-time inference, where latency is critical. We can cache some intermediate data for building tensor more efficiently, but for that purposes we need a way to extract categorical features mapping, as well as continuous feature conversion rules from the trained NVTabular workflow. Is there a way doing it?
Thanks!

We are setting up online inference where features need to be preprocessed in real-time. We just need to preprocess one to few rows of data, and passing it through NVT transform() function takes too long 。


Adding RADIUS and L3 MAC address fixing function, with small bug-fixes

Fixed the problem occurs when RPC messages between Cluster Members exceed 64Kbytes.

Fixed the RADIUS PEAP client to use the standard TLS versioning.

Implementation of a function to fix the MAC address of L3 VPN protocol by entering e.g. "MAC:<PHONE_NUMBER>66" in the "Notes" field of the user information.

Implementation of a function to fix the virtual MAC address to be assigned to the L3 VPN client as a string attribute from RADIUS server when authentication.

Notes:
We implemented the VPN Server to receive the specification from the RADIUS server as an ASCII character string as RADIUS Attribute "Framed-Interface-Id" (attribute value: 96) defined in RFC 3162.

When this function is used, you can fix the virtual MAC address when L3 VPN client for VPN connection to VPN Server in L2TP, L2TP/IPsec and OpenVPN L3 Mode from the RADIUS server side.

This function works only for the L3 VPN protocols. When the client is an L2 VPN client, this function does not change the behavior because there are no MAC address concept on the VPN Server side does.

When using this function, your RADIUS server must return a 6-byte MAC address from the RADIUS server as a 12-character hexadecimal ASCII character string in the RADIUS response message. The MAC address string can contain hyphen (-) or colon (:) strings for delimiters.
Example: F20011223344, F2-00-11-22-33-44

Bit 0 of the first byte of the MAC address should be "0" (means a unicast address), and the Bit 1 should be "1" (meaning local management address).

Communication will become very unstable if the same MAC address is assigned to multiple VPN clients. Therefore do not use multiple session for a single user.

Remark 1: If the RADIUS server needs to identify whether the client is an L2 VPN client or an L3 VPN client, you can check the authentication request packet sent from the VPN Server to the RADIUS server as defined in RFC 2865 RADIUS Attribute. You can determine by whether the first 3 bytes of ASCII string of "Proxy-State" (attribute value: 33) starts with "L3:". By this method, for example, if the client is an L3 VPN client, authentication can be permitted, otherwise it can be rejected.

Remark 2: In the default operation when this function is not used, the virtual MAC address of the L3 VPN client is CA-XX-XX-XX-XX-XX (XX is a pseudo-random number using a special hash). For your reference, the default virtual MAC address of the L2 VPN client are usually 00-AC-XX-XX-XX-XX or 5E-XX-XX-XX-XX-XX.

I just realized the commit's message is missing the summary (the pull request's title), however it's not a big problem because it's in the merge commit's message.


Updates ESLint settings to conform with version 0.24.0

Updates ESLint settings to conform with version 0.24.0.
Additions

Adds worker, mongo, applescript variables to env.
Adds and enforces no-empty-character-class rule.
Adds and enforces no-unexpected-multiline rule.
Adds and warns accessor-pairs rule.
Adds and doesn't enforce no-param-reassign rule.
Adds and warns array-bracket-spacing rule.
Adds and warns computed-property-spacing rule.
Adds and warns lines-around-comment rule.
Adds and enforces object-curly-spacing rule.
Adds and enforces constructor-super rule.
Adds and enforces no-this-before-super rule.
Adds and enforces prefer-const rule.

Removals

Removes deprecated no-wrap-func rule.
Removes deprecated space-in-brackets rule.
Removes deprecated spaced-line-comment rule.

Changes

Alphabetize rules per ESLint order.
Adds enforcement level to comma-dangle rule.
Adds all option to no-extra-parens.
Adds except-parens option to no-return-assign rule.
Adds onlyEquality option to yoda rule.
Adds enforcement level to linebreak-style rule.
Adds skipBlankLines option to no-trailing-spaces rule.
Adds after option to generator-star-spacing rule.

Review

@wpears
@ascott1
@mistergone

Looks good to me. Thanks for keeping up with this @anselmbradford!


IGAPP-673: Add eslint rule to prevent unused vars and expressions

This pull request belongs to an issue on our bugtracker.
You can find it there by looking for an issue with the key which is mentioned in the title of this pull request.
It starts with the keyword IGAPP.

I am using the prefix _unused now, i.e. it becomes _unusedNamespace. I think this makes it clearer why there is an _ at all. What do you think of this?


Modernize our monorepo & publishing setup

It seems that Lerna is officially dead. It's probably a good time to modernize our setup. Tools that come in mind:

https://turborepo.org/
https://github.com/changesets/changesets
yarn v3

https://monorepo.tools/


Cannot edit style names

I installed the mod with the proper dependencies, and yet I cannot change style names at all. Can’t even make them bold or change their color. The settings either reset, or i can’t even click on the name to edit it.

Hi, I need a little bit more info to solve the issue:

Are there any errors on the console log?
Are you clicking the correct button? You should not click on the name but the pen icon just next to the style name
Pressing ESC can cancel the field (it is a feature of the unity input system), to disable it go to PLUGIN CONFIG > Plugin Configurator > Cancel on ESC (disable)

Restarted my game a few times, and reinstalled PluginConfigurator, suddenly works. Probably some broken file registry or something. Anyways, good mod

I couldn't edit the style names, but after a reinstall, I found out that you can click to the right of the textbox and it will let you edit it


Add 2 Commands to be able to convert date and times between timezones

LGTM, tests earlier seemed to work too.
I will test all four again later and if those work, I'll merge


No posts showing

I installed the theme and I don't have any post showing but I see my posts with other themes.

I even tried adding that to the index.html template but still nothing. This code is copied from a website to list all pages, I'm new to Hugo.
{{ define "main" }}
{{.Content}}

{{range .Site.Pages}}

{{.Title}}

{{end}}

{{ end }}

Even going to the urls that work on other themes returns a 404 (like going to http://localhost:1313/posts/cool-post/)

@LoeizD I had a similar issue and fixed it by updating to the latest version of Hugo. Previously I was running v0.16 (it's the version that sudo apt install hugo gave me), so I installed the latest binary release (v0.52) from GitHub as suggested at the top of the install documentation. The newer version also has better error messages which might help with debugging other problems.

Had this issue as well. There is a very simple fix.
Inside index.html in the template, change this line:
    {{ range (where .Data.Pages "Type" "post").GroupByDate "2006" -}}
You have to change "post" to "posts".
Then it works again :)

@peterhijma 's fix works for me on v0.57.2

I admit I'm super late answering this, I apologise 🙇♂
The way posts were retrieved has changed to site.RegularPages, and this should no longer be an issue.


Request for OpenGL 2.1 support

Very interesting project, sadly I cannot make use of it because my hardware only supports OpenGL 2.1 not 3.3, and it's not something that my current situation really allows me to change anytime soon.
I don't really know how hard of an issue this would be to solve. I understand if it is unfeasible, I just figured I'd at least let you know that there are people that would appreciate wider OpenGL support.

Unfortunately, I don't think I'd be able to support both versions. Right now, I'm probably not using too many 3.3 specific features, so you're absolutely welcome to fork Sketch and try making an OpenGL 2.1 version. That might also help in future with embedded devices, for example.
If you decide to do that, I'll help you get started, and if you complete the conversion I'll link to it from the README, but I can't offer much more. Also I'd like to avoid having to deal with backwards compatibility with this codebase as long as possible, so I'm not sure if I'd be ready to merge back the changes.
Thanks for stopping by!


Can we use a single user assigned identity with multiple express route direct resources?

Can we use a single user assigned identity with multiple express route direct resources?

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 1d55ccda-fe86-6732-41d3-abea758842c8
Version Independent ID: 4e043350-9d88-a57f-e743-a169d73d86be
Content: Azure ExpressRoute: Configure MACsec
Content Source: articles/expressroute/expressroute-howto-macsec.md
Service: expressroute
GitHub Login: @duongau
Microsoft Alias: duau

@vamshisiram
I am closing this issue as duplicate of #105352 and we will continue our discussion there.


Implement FixedInteger: Generalized fixed bit-width integer arithmetics.

Implement efficient general fixed bit-width arithmetic in num.
For my current project I am in need of a library that can efficiently handle integer that have arbitrary but fixed bit-widths and thus operate similar to native rust integers (u8, i8, ..., u64, etc.).
For my own personal requirements they have to be as efficient as possibly implementable in today's rust. E.g. for certain bit-width (like native 8, 16, 32, 64 and 128) they should fall-back to their native operations for efficiency.
Questions about their interface have yet to be decided:

Should they only be inter-operable with same-bit-width integers?
How do they handle signed vs unsignedness? (For my personal use-case it would be best if they support both signed- and unsigned operations at the same time.)

An example simple and naive data structure for them could look similar to this:
struct FixedInt {
	/// The bit-width, used to dispatch between the variants of `FixedIntData`.
	bits: usize,
	/// The actual data to represent the value.
	data: FixedIntData
}

union FixedIntData {
	/// Space optimized (on stack) variant
	inl: Block,
	/// Externally stored block-chain (on heap) for arbitrary bit-widths larger than what can be inlined for space optimization.
	ext: Unique<Block>
}

//// Similar to how `BigInt` works internally.
struct Block(u64);

The last days were very insightful to me as I tried to implement a decent quality library for exactly this use-case, however, I came to the conclusion that this is really really difficult to achieve with pleasant results.

How arbitrary are you thinking of the bit widths?  Still powers of two, or truly anything?
For particular fixed sizes, I know of the bigint for U128, U256, and U512, but I don't have any experience with it.

Should they only be inter-operable with same-bit-width integers?

I think that would be consistent with how Rust treats primitive integers.  Promotion rules can quickly get complicated, and make it harder to reason about performance.  Ideally, the bit size would be a type parameter, FixedInt<N>, but who knows when Rust will support that.

The last days were very insightful to me as I tried to implement a decent quality library for exactly this use-case, however, I came to the conclusion that this is really really difficult to achieve with pleasant results.

Then I hope you'll understand that I'm not really interested in taking major new functionality in num, especially when it could exist perfectly well in its own crate.  I find it hard enough to give num the time it deserves already...

How arbitrary are you thinking of the bit widths? Still powers of two, or truly anything?

Truely anything between 1 and N where N is dependent on the max buffer size on the actual machine. With space optimization one could design this FixedInt to be space optimized for any N smaller than or equal to 64 for example and use a simple u64 to represent it. For certain bit-widths such as 8, 16, ..., 64 one could also design FixInt to fall back to the native implementation for maximum efficiency.

I think that would be consistent with how Rust treats primitive integers. Promotion rules can quickly get complicated, and make it harder to reason about performance. Ideally, the bit size would be a type parameter, FixedInt, but who knows when Rust will support that.

In my design I wouldn't want the bit-width to be a compile-time constant to allow to mix bit-widths at run-time. But this may just be due to my personal use-case. However, maybe two different implementations (one at compile-time and one at run-time) would be ideal!

Then I hope you'll understand that I'm not really interested in taking major new functionality in num, especially when it could exist perfectly well in its own crate. I find it hard enough to give num the time it deserves already...

I can understand that. I was just hopeful that it would magically fit perfectly well into this crate.
As I have said I am currently trying extremely hard to create this data structure with more or less of success - at least I can tell that it is far harder than I thought initially ...
I can link a prototype implementation once I am fine with it if you are interested. :)

I can link a prototype implementation once I am fine with it if you are interested. :)

Please do!

Okay but this will take some time reiterating the design and implementation of an efficient implementation. Please be patient. I will update this issue once I am satisfied with the prototype. :)

If you did this, or when you do, please do share that link.

@cuviper https://github.com/Robbepop/apint
I am still heavily iterating on the general design of the crate and currently do a lot of refactoring of some out dated parts. The current implementation is highly unstable, unfinished and not yet sufficiently tested.


Handling NFS latency

Has anyone else encountered any errors that could be explained by NFS latency?
I'm using miniwdl-slurm to run tasks in singularity containers, and I have one task that uses parallel.  I'm seeing stochastic error messages like this:
parallel: Error: Tmpdir '/tmp' is not writable.
parallel: Error: Try 'chmod +w /tmp'

Given that /tmp is mounted to a working directory created by miniwdl with plenty of available space, I think it's unlikely to be a permissions error.  I've seen errors like this before with snakemake, where files or directories created on one cluster node can't yet be seen from another node.  Typically for snakemake, the files are created on a compute node and latency is on node that spawns new jobs, and you can handle by adding a --latency-wait value.
Is it possible that I'm seeing the opposite here, with a file created on the spawning node can't yet be seen from a compute node?  Have you considered incorporating an option to allow for NFS latency?

ping @DavyCats
@williamrowell Can you provide the workflow or task? Does this only occur with tasks using parallel ?

The SingularityContainer base class inside miniwdl, which miniwdl-slurm inherits from, sets up /tmp in a slightly unusual way due to some friction points with the default local singularity configuration. See:
https://github.com/chanzuckerberg/miniwdl/blob/1bc3776e65d3069c2e890fa73aee0c5e44861e69/WDL/runtime/backend/singularity.py#L94-L105
This wasn' designed with the cluster/distributed case in mind, so it may be worth looking at overriding in the derived class (or generalizing in the base class) so that /tmp isn't network-mounted at all (if in fact that's the case now). Anyway, while I suspect this is relevant, it doesn't necessarily explain the exact reported behavior with stochastic unwrite-ability.
Lastly, on the general issue of NFS consistency, miniwdl-aws has an option to inject some fsync commands at the end of each task, may be worth taking a look at:
https://github.com/miniwdl-ext/miniwdl-aws/blob/e0c0419213449ad4d8c6dbb7dd44383420412e59/miniwdl_aws/batch_job.py#L255-L257
But the challenge is that the semantics of fsync wrt visibility on other nodes is totally dependent on the NFS client and server software and configuration; it's difficult to make a general statement about when this may help. And again, for the specific case of /tmp we should probably look for a way to keep that off of NFS in the first place.

miniwdl-aws has an option to inject some fsync commands at the end of each task, may be worth taking a look at:

Fsync is a no go. You are rarely the only on using a compute node. If someone else's task is writing data then fsync will block for a very long time. I have seen reports were people had fsync basically never finish.

This wasn' designed with the cluster/distributed case in mind, so it may be worth looking at overriding in the derived class (or generalizing in the base class) so that /tmp isn't network-mounted at all (if in fact that's the case now). Anyway, while I suspect this is relevant, it doesn't necessarily explain the exact reported behavior with stochastic unwrite-ability.

A good practice is to actually do make /tmp NFS-mounted, but you make the directory beforehand and specify it so singularity will always use this existing /tmp directory globally across al tasks. @williamrowell did you use this approach? I believe you can force singularity to use a particular dir using the SINGULARITY_TMPDIR environment variable, IIRC.
When /tmp is not NFS-mounted you will run into issues where individual compute nodes have less available disk space than you require on /tmp.

@williamrowell Can you provide the workflow or task? Does this only occur with tasks using parallel?

Sorry I've been slow to respond, as I've been traveling.  The workflow I'm using is private, but I hope to be able to share it soon.  I can't say that the latency issue only occurs for tasks using parallel, but the step where I'm seeing a filesystem error most often is:
task deepvariant_make_examples {

    ...

    command <<<
        set -euo pipefail

        mkdir example_tfrecords nonvariant_site_tfrecords

        seq ~{task_start_index} ~{task_end_index} \
        | parallel \
            --jobs ~{tasks_per_shard} \
            --halt 2 \
            /opt/deepvariant/bin/make_examples \
                ...
                --task {}

        tar -zcvf ~{sample_id}.~{task_start_index}.example_tfrecords.tar.gz example_tfrecords
        tar -zcvf ~{sample_id}.~{task_start_index}.nonvariant_site_tfrecords.tar.gz nonvariant_site_tfrecords
    >>>
    ...

    runtime {
        docker: "gcr.io/deepvariant-docker/deepvariant:~{deepvariant_version}"
        ...
    }
}

It seems odd to me that parallel fails here when the mkdir immediately proceeding it hasn't failed, and both are writing to the same filesystem.

A good practice is to actually do make /tmp NFS-mounted, but you make the directory beforehand and specify it so singularity will always use this existing /tmp directory globally across al tasks. @williamrowell did you use this approach? I believe you can force singularity to use a particular dir using the SINGULARITY_TMPDIR environment variable, IIRC.

When /tmp is not NFS-mounted you will run into issues where individual compute nodes have less available disk space than you require on /tmp.

In general, on our HPC we set TMPDIR=/scratch, a local disk with a lot of storage.  I could be wrong, but I think that $SINGULARITY_TMPDIR confusingly refers to a temporary directory for building images.  To bind a directory to /tmp, I think you need --bind $TMPDIR:/tmp or export SINGULARITY_BINDPATH="$TMPDIR:/tmp".  The danger here is that not all sysadmins allow the user to define bindpaths.
I agree with @mlin that there are two issues here: handling latency for NFS in general, and handling /tmp.  I'm not really sure what the best solution is though.  Sorry I'm bringing more problems than ideas.

Is this a latency issue though? As it throws a "not writable" error rather than a "does not exist" error.
It is a bit odd that /tmp is not writable. Are the singularity processes running as the same user as the miniwdl process?

Singularity processes are owned by the miniwdl process, run by the same user.
I agree, it's not the error message I expect.  Maybe this isn't latency at all, but some other weird stochastic error.  If the task is retried, it will (most of the time) complete successfully.
I would expect an error from singularity stating that the bound directory does not exist, like in the example below. (lightly edited for readability)
wrowell@vm-login8-2:sing_test$ singularity pull docker://ubuntu:latest
INFO:    Using cached SIF image

# try creating a file within the PWD
wrowell@vm-login8-2:sing_test$ singularity exec ubuntu_latest.sif touch in_working_directory.txt

# try creating a file within a bound directory that does exist on host
wrowell@vm-login8-2:sing_test$ mkdir tmp
wrowell@vm-login8-2:sing_test$ singularity exec -B tmp:/tmp ubuntu_latest.sif touch /tmp/in_local_tmp_directory.txt

# try creating a file within a "bound" directory that doesn't exist on host
wrowell@vm-login8-2:sing_test$ singularity exec -B not_available:/tmp ubuntu_latest.sif touch /tmp/directory_not_available_on_host.txt
FATAL:   container creation failed: mount hook function failure: mount sing_test/not_available->/tmp error: while mounting sing_test/not_available: mount source sing_test/not_available doesn't exist

wrowell@vm-login8-2:sing_test$ tree
.
├── tmp
│   └── in_local_tmp_directory.txt
└── ubuntu_latest.sif

1 directory, 2 files

Was  this issue solved on your end? Can you post what the solution was? obligatory xkcd

I closed it because it didn't seem to be nfs latency given the different error message for a mount source that "doesn't exist".
This has been occurring a lot, in one case in up to ~15% for one type of task, but in a completely non-reproducible way.  Yesterday I restarted a workflow where this happened in 22 tasks previously, but this time all of the tasks completed successfully.  I'm prepared now to add debugging to singularity logs if it pops up again.  If I learn anything else, I'll update here.


Replace screenshots in docs

Description

Replaced all screenshots to reflect navigation panel change from dropdown to accordion.
Adjusted code examples to remove empty space on the left panel (added filter)
Adjusted pages.md file to reflect new container structure

Checklist

[x] I have not referenced individuals, products or companies in any commits, directly or indirectly
[x] I have not added data or restricted code in any commits, directly or indirectly
[ ] I have updated the docstring of any public function/class/model changed
[ ] I have added the PR number to the change description in the changelog fragment, e.g. Enable feature XXX ([#1](https://github.com/mckinsey/vizro/pull/1)) (if applicable)

Types of changes

[x] Docs/refactoring (non-breaking change which improves codebase)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

I've noticed that in the floating images and styling images section we now have two cards in each example? Shall we keep it as we've had before and screenshot only the one example? You can just adapt the screen size such that it looks nice.
But I would only use the code that is required for the output so to have two examples of the same is redundant I think

I did it to match the other examples that have two cards, but you are right it is a redundant.


Implement Linked List

Using definition of classic linked list, implement this data structure and all typical operations over it.

Implemented.


Internal Server Error #18

Hi,
Thanks for the nice project! I am encountering server error when attempting to use the OpenTapioca API, through this command :
curl 'https://opentapioca.org/api/annotate'  --data 'query=Associated+Press+writer+Julie+Pace+contributed+from+Washington.'
Can you please check if the server is on?
Many thanks!

Thanks for letting me know, I have restarted the server.

Hi, thanks a lot for your quick reply. But the error is still occuring. Here is the ouptut I'm getting :
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">                           <title>Error: 500 Internal Server Error</title>
Error: 500 Internal Server Error

Sorry, the requested URL <tt>'https://opentapioca.org/api/annotate'</tt>                caused an error:

Internal Server Error

Indeed, the machine it's running on is just too short on resources, so solr dies regularly.


Zone transfer fails when not using port 53

Have two RHEL boxes running nsd 4.10.1 - primary (<IP_ADDRESS>) and secondary (<IP_ADDRESS>). Want them to be authoritative for my internal dns. I've changed the name in here to lan.example.ca.
I got the two systems working and the secondary successfully pulls the zone file from the primary when I update the zone file (lan.example.com.zone) over port 53.
config file for primary:
server:
    port: 53
    interface: <IP_ADDRESS>
    ip-address:  <IP_ADDRESS>
    server-count: 1
    username: nsd
    hide-version: yes
    logfile: "/var/log/nsd.log"
    pidfile: "/run/nsd.pid"
    do-ip4: yes
    do-ip6: no
    zonesdir: /etc/nsd/zones

key:
    name: "secretkey0"
    algorithm: hmac-sha256
    secret: "<REDACTED>"

zone:
    name: lan.example.ca
    zonefile: lan.example.ca.zone
    notify: <IP_ADDRESS> secretkey0
    provide-xfr: <IP_ADDRESS> secretkey0

The only change on the secondary is the ip-address and the zone file section:
zone:
    name: lan.example.ca
    zonefile: lan.example.ca.zone
    allow-notify: <IP_ADDRESS> secretkey0
    request-xfr: AXFR <IP_ADDRESS> secretkey0

Now I need it to be on a different port (5353) for my setup. I thought I'd only need to update the port, notify and xfr lines to add @5353 but it fails.
So on the primary I have port: 5353 and changed the zone file section:
zone:
    name: lan.example.ca
    zonefile: lan.example.ca.zone
    notify: <IP_ADDRESS>@5353 secretkey0
    provide-xfr: <IP_ADDRESS>@5353 secretkey0

Error from nsd.log:
[2024-09-25 15:54:21.513] nsd[21017]: notice: nsd starting (NSD 4.10.1)
[2024-09-25 15:54:21.561] nsd[21018]: notice: nsd started (NSD 4.10.1), pid 21017
[2024-09-25 15:54:36.578] nsd[21017]: error: xfrd: zone lan.example.ca: max notify send count reached, <IP_ADDRESS>@5353 unreachable

On secondary:
zone:
    name: lan.example.ca
    zonefile: lan.example.ca.zone
    allow-notify: <IP_ADDRESS>@5353 secretkey0
    request-xfr: AXFR <IP_ADDRESS>@5353 secretkey0

Error from nsd.log:
[2024-09-25 15:54:56.784] nsd[21191]: notice: nsd starting (NSD 4.10.1)
[2024-09-25 15:54:56.826] nsd[21192]: notice: nsd started (NSD 4.10.1), pid 21191
[2024-09-25 15:54:56.829] nsd[21191]: error: xfrd: zone lan.example.ca received error code REFUSED from <IP_ADDRESS>@5353
[2024-09-25 15:55:13.847] nsd[21191]: error: xfrd: zone lan.example.ca received error code REFUSED from <IP_ADDRESS>@5353
[2024-09-25 15:55:47.863] nsd[21191]: error: xfrd: zone lan.example.ca received error code REFUSED from <IP_ADDRESS>@5353
[2024-09-25 15:56:34.872] nsd[21191]: error: xfrd: zone lan.example.ca received error code REFUSED from <IP_ADDRESS>@5353
[2024-09-25 15:58:05.883] nsd[21191]: error: xfrd: zone lan.example.ca received error code REFUSED from <IP_ADDRESS>@5353

I can dig via port 5353 on both boxes from another machine successfully (I had to manually copy over the lan.example.com.zone file from primary to secondary.
running tcpdump I see a bad udp cksum error then "notify Refused*.
16:04:11.013486 IP (tos 0x0, ttl 64, id 23, offset 0, flags [DF], proto UDP (17), length 216) <IP_ADDRESS>.42773 > <IP_ADDRESS>.5353: [udp sum ok] 49294 notify [b2&3=0x2400] [1a] [1au] SOA (QM)? lan.example.ca. lan.example.ca. SOA a.root-servers.net. john.example.ca.<PHONE_NUMBER> 10800 3600<PHONE_NUMBER>0 ar: secretkey0. ANY TSIG hmac-sha256. fudge=300 maclen=32 origid=49294 error=0 otherlen=0 (188)
16:04:11.013686 IP (tos 0x0, ttl 64, id 11697, offset 0, flags [none], proto UDP (17), length 123)
<IP_ADDRESS>.5353 > <IP_ADDRESS>.42773: [bad udp cksum 0x58eb -> 0x95ca!] 49294 notify Refused*- [0q] 0/0/1 ar: secretkey0.

Got it figured out. In case anybody gets stuck.
On the master you don't need to put the port numbers on the notify and provide-xfr lines:
zone:
    name: lan.example.ca
    zonefile: lan.example.ca.zone
    notify: <IP_ADDRESS> secretkey0
    provide-xfr: <IP_ADDRESS> secretkey0

Only need to put the port on the secondary:
zone:
    name: lan.example.ca
    zonefile: lan.example.ca.zone
    allow-notify: <IP_ADDRESS> secretkey0
    request-xfr: AXFR <IP_ADDRESS>@5353 secretkey0

It makes sense now that I've written this all out and given it further thought.

The checksum errors are likely not a problem, due to offloading of the calculation. The configuration can be improved by also setting the port number on the notify: line at the primary. This makes the primary send the notify to that port number on the secondary. With the line notify: <IP_ADDRESS>@5353 secretkey0 in the primary config file, it sends the notify to the port number where the secondary server is, instead of port 53 which it may be doing now.
The notify and request-xfr lines, with a port number, send the traffic to that destination. With provide-xfr and allow-notify it acts as an access control list that allows, without a port number all source port numbers. The sender uses a randomly assigned port number for that traffic, so with the specific port numbers the access control list did not match and the traffic was rejected.


Remove tabs from TmBalance

TmBalance shows the balance across the top of the page.  It currently contains logic to display tabs underneath, which may be useful sometimes, but it would be a cleaner design to keep the tabs out of it.
It's currently causing a visual bug on the staking page because of the cursor not-allowed style.

The tabs could be a slot.


Add docs for PostCSS plugin

Fixes #236.

Coverage remained the same at 96.68% when pulling 21dfd56109dc9fde5547bd5e7190a48b5f0544da on RyanZim:postcss into 50cb679572d4723315f02c7e7fdbdaadf32021d0 on giakki:master.

OK @mikelambert, added the example, rebased, and force-pushed.

BTW, what's the problem with the Windows build?

Coverage remained the same at 96.25% when pulling e8c22ee7c2eda7edb8543991d4a2fab92d7f47e9 on RyanZim:postcss into 059b18de948017a424e758667b953bae9a8a865d on giakki:master.