LlamaCpp on Mac generates nonsense

Describe the issue as clearly as possible:
When using standard text generation based on a LlamaCpp model, the generation is completely random and makes no sense.
Steps/code to reproduce the bug:
import outlines

model = outlines.models.llamacpp("TheBloke/Mistral-7B-Instruct-v0.1-GGUF/mistral-7b-instruct-v0.1.Q4_K_M.gguf", device="cpu")
generator = outlines.generate.text(model)
sequence = generator("Q: Name the planets in the solar system?

Hit me being rocket    Topic-Petalotanie/subscribe
A/ Telegram.toyosmc
Answer: Logout

### Error message:

```shell
llama_model_loader: loaded meta data with 20 key-value pairs and 291 tensors from /Users/maxime/.cache/lm-studio/models/TheBloke/Mistral-7B-Instruct-v0.1-GGUF/mistral-7b-instruct-v0.1.Q4_K_M.gguf (version GGUF V2)
llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output.
llama_model_loader: - kv   0:                       general.architecture str              = llama
llama_model_loader: - kv   1:                               general.name str              = mistralai_mistral-7b-instruct-v0.1
llama_model_loader: - kv   2:                       llama.context_length u32              = 32768
llama_model_loader: - kv   3:                     llama.embedding_length u32              = 4096
llama_model_loader: - kv   4:                          llama.block_count u32              = 32
llama_model_loader: - kv   5:                  llama.feed_forward_length u32              = 14336
llama_model_loader: - kv   6:                 llama.rope.dimension_count u32              = 128
llama_model_loader: - kv   7:                 llama.attention.head_count u32              = 32
llama_model_loader: - kv   8:              llama.attention.head_count_kv u32              = 8
llama_model_loader: - kv   9:     llama.attention.layer_norm_rms_epsilon f32              = 0.000010
llama_model_loader: - kv  10:                       llama.rope.freq_base f32              = 10000.000000
llama_model_loader: - kv  11:                          general.file_type u32              = 15
llama_model_loader: - kv  12:                       tokenizer.ggml.model str              = llama
llama_model_loader: - kv  13:                      tokenizer.ggml.tokens arr[str,32000]   = ["<unk>", "<s>", "</s>", "<0x00>", "<...
llama_model_loader: - kv  14:                      tokenizer.ggml.scores arr[f32,32000]   = [0.000000, 0.000000, 0.000000, 0.0000...
llama_model_loader: - kv  15:                  tokenizer.ggml.token_type arr[i32,32000]   = [2, 3, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, ...
llama_model_loader: - kv  16:                tokenizer.ggml.bos_token_id u32              = 1
llama_model_loader: - kv  17:                tokenizer.ggml.eos_token_id u32              = 2
llama_model_loader: - kv  18:            tokenizer.ggml.unknown_token_id u32              = 0
llama_model_loader: - kv  19:               general.quantization_version u32              = 2
llama_model_loader: - type  f32:   65 tensors
llama_model_loader: - type q4_K:  193 tensors
llama_model_loader: - type q6_K:   33 tensors
llm_load_vocab: special tokens definition check successful ( 259/32000 ).
llm_load_print_meta: format           = GGUF V2
llm_load_print_meta: arch             = llama
llm_load_print_meta: vocab type       = SPM
llm_load_print_meta: n_vocab          = 32000
llm_load_print_meta: n_merges         = 0
llm_load_print_meta: n_ctx_train      = 32768
llm_load_print_meta: n_embd           = 4096
llm_load_print_meta: n_head           = 32
llm_load_print_meta: n_head_kv        = 8
llm_load_print_meta: n_layer          = 32
llm_load_print_meta: n_rot            = 128
llm_load_print_meta: n_embd_head_k    = 128
llm_load_print_meta: n_embd_head_v    = 128
llm_load_print_meta: n_gqa            = 4
llm_load_print_meta: n_embd_k_gqa     = 1024
llm_load_print_meta: n_embd_v_gqa     = 1024
llm_load_print_meta: f_norm_eps       = 0.0e+00
llm_load_print_meta: f_norm_rms_eps   = 1.0e-05
llm_load_print_meta: f_clamp_kqv      = 0.0e+00
llm_load_print_meta: f_max_alibi_bias = 0.0e+00
llm_load_print_meta: n_ff             = 14336
llm_load_print_meta: n_expert         = 0
llm_load_print_meta: n_expert_used    = 0
llm_load_print_meta: rope scaling     = linear
llm_load_print_meta: freq_base_train  = 10000.0
llm_load_print_meta: freq_scale_train = 1
llm_load_print_meta: n_yarn_orig_ctx  = 32768
llm_load_print_meta: rope_finetuned   = unknown
llm_load_print_meta: model type       = 7B
llm_load_print_meta: model ftype      = Q4_K - Medium
llm_load_print_meta: model params     = 7.24 B
llm_load_print_meta: model size       = 4.07 GiB (4.83 BPW)
llm_load_print_meta: general.name     = mistralai_mistral-7b-instruct-v0.1
llm_load_print_meta: BOS token        = 1 '<s>'
llm_load_print_meta: EOS token        = 2 '</s>'
llm_load_print_meta: UNK token        = 0 '<unk>'
llm_load_print_meta: LF token         = 13 '<0x0A>'
llm_load_tensors: ggml ctx size =    0.22 MiB
ggml_backend_metal_buffer_from_ptr: allocated buffer, size =  4095.08 MiB, ( 4095.16 / 49152.00)
llm_load_tensors: offloading 32 repeating layers to GPU
llm_load_tensors: offloading non-repeating layers to GPU
llm_load_tensors: offloaded 33/33 layers to GPU
llm_load_tensors:        CPU buffer size =    70.31 MiB
llm_load_tensors:      Metal buffer size =  4095.07 MiB
...............................................................................................
llama_new_context_with_model: n_ctx      = 512
llama_new_context_with_model: freq_base  = 10000.0
llama_new_context_with_model: freq_scale = 1
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M3 Max
ggml_metal_init: picking default device: Apple M3 Max
ggml_metal_init: default.metallib not found, loading from source
ggml_metal_init: GGML_METAL_PATH_RESOURCES = nil
ggml_metal_init: loading '/Users/maxime/anaconda3/envs/torch/lib/python3.11/site-packages/llama_cpp/ggml-metal.metal'
ggml_metal_init: GPU name:   Apple M3 Max
ggml_metal_init: GPU family: MTLGPUFamilyApple9  (1009)
ggml_metal_init: GPU family: MTLGPUFamilyCommon3 (3003)
ggml_metal_init: GPU family: MTLGPUFamilyMetal3  (5001)
ggml_metal_init: simdgroup reduction support   = true
ggml_metal_init: simdgroup matrix mul. support = true
ggml_metal_init: hasUnifiedMemory              = true
ggml_metal_init: recommendedMaxWorkingSetSize  = 51539.61 MB
ggml_backend_metal_buffer_type_alloc_buffer: allocated buffer, size =    64.00 MiB, ( 4165.03 / 49152.00)
llama_kv_cache_init:      Metal KV buffer size =    64.00 MiB
llama_new_context_with_model: KV self size  =   64.00 MiB, K (f16):   32.00 MiB, V (f16):   32.00 MiB
llama_new_context_with_model:        CPU input buffer size   =     9.01 MiB
ggml_backend_metal_buffer_type_alloc_buffer: allocated buffer, size =     0.02 MiB, ( 4165.05 / 49152.00)
ggml_backend_metal_buffer_type_alloc_buffer: allocated buffer, size =    80.31 MiB, ( 4245.34 / 49152.00)
llama_new_context_with_model:      Metal compute buffer size =    80.30 MiB
llama_new_context_with_model:        CPU compute buffer size =     8.80 MiB
llama_new_context_with_model: graph splits (measure): 3
Failed to convert token (b'\x80'): 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
Failed to convert token (b'\x81'): 'utf-8' codec can't decode byte 0x81 in position 0: invalid start byte
Failed to convert token (b'\x82'): 'utf-8' codec can't decode byte 0x82 in position 0: invalid start byte
Failed to convert token (b'\x83'): 'utf-8' codec can't decode byte 0x83 in position 0: invalid start byte
Failed to convert token (b'\x84'): 'utf-8' codec can't decode byte 0x84 in position 0: invalid start byte
Failed to convert token (b'\x85'): 'utf-8' codec can't decode byte 0x85 in position 0: invalid start byte
Failed to convert token (b'\x86'): 'utf-8' codec can't decode byte 0x86 in position 0: invalid start byte
Failed to convert token (b'\x87'): 'utf-8' codec can't decode byte 0x87 in position 0: invalid start byte
Failed to convert token (b'\x88'): 'utf-8' codec can't decode byte 0x88 in position 0: invalid start byte
Failed to convert token (b'\x89'): 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
Failed to convert token (b'\x8a'): 'utf-8' codec can't decode byte 0x8a in position 0: invalid start byte
Failed to convert token (b'\x8b'): 'utf-8' codec can't decode byte 0x8b in position 0: invalid start byte
Failed to convert token (b'\x8c'): 'utf-8' codec can't decode byte 0x8c in position 0: invalid start byte
Failed to convert token (b'\x8d'): 'utf-8' codec can't decode byte 0x8d in position 0: invalid start byte
Failed to convert token (b'\x8e'): 'utf-8' codec can't decode byte 0x8e in position 0: invalid start byte
Failed to convert token (b'\x8f'): 'utf-8' codec can't decode byte 0x8f in position 0: invalid start byte
Failed to convert token (b'\x90'): 'utf-8' codec can't decode byte 0x90 in position 0: invalid start byte
Failed to convert token (b'\x91'): 'utf-8' codec can't decode byte 0x91 in position 0: invalid start byte
Failed to convert token (b'\x92'): 'utf-8' codec can't decode byte 0x92 in position 0: invalid start byte
Failed to convert token (b'\x93'): 'utf-8' codec can't decode byte 0x93 in position 0: invalid start byte
Failed to convert token (b'\x94'): 'utf-8' codec can't decode byte 0x94 in position 0: invalid start byte
Failed to convert token (b'\x95'): 'utf-8' codec can't decode byte 0x95 in position 0: invalid start byte
Failed to convert token (b'\x96'): 'utf-8' codec can't decode byte 0x96 in position 0: invalid start byte
Failed to convert token (b'\x97'): 'utf-8' codec can't decode byte 0x97 in position 0: invalid start byte
Failed to convert token (b'\x98'): 'utf-8' codec can't decode byte 0x98 in position 0: invalid start byte
Failed to convert token (b'\x99'): 'utf-8' codec can't decode byte 0x99 in position 0: invalid start byte
Failed to convert token (b'\x9a'): 'utf-8' codec can't decode byte 0x9a in position 0: invalid start byte
Failed to convert token (b'\x9b'): 'utf-8' codec can't decode byte 0x9b in position 0: invalid start byte
Failed to convert token (b'\x9c'): 'utf-8' codec can't decode byte 0x9c in position 0: invalid start byte
Failed to convert token (b'\x9d'): 'utf-8' codec can't decode byte 0x9d in position 0: invalid start byte
Failed to convert token (b'\x9e'): 'utf-8' codec can't decode byte 0x9e in position 0: invalid start byte
Failed to convert token (b'\x9f'): 'utf-8' codec can't decode byte 0x9f in position 0: invalid start byte
Failed to convert token (b'\xa0'): 'utf-8' codec can't decode byte 0xa0 in position 0: invalid start byte
Failed to convert token (b'\xa1'): 'utf-8' codec can't decode byte 0xa1 in position 0: invalid start byte
Failed to convert token (b'\xa2'): 'utf-8' codec can't decode byte 0xa2 in position 0: invalid start byte
Failed to convert token (b'\xa3'): 'utf-8' codec can't decode byte 0xa3 in position 0: invalid start byte
Failed to convert token (b'\xa4'): 'utf-8' codec can't decode byte 0xa4 in position 0: invalid start byte
Failed to convert token (b'\xa5'): 'utf-8' codec can't decode byte 0xa5 in position 0: invalid start byte
Failed to convert token (b'\xa6'): 'utf-8' codec can't decode byte 0xa6 in position 0: invalid start byte
Failed to convert token (b'\xa7'): 'utf-8' codec can't decode byte 0xa7 in position 0: invalid start byte
Failed to convert token (b'\xa8'): 'utf-8' codec can't decode byte 0xa8 in position 0: invalid start byte
Failed to convert token (b'\xa9'): 'utf-8' codec can't decode byte 0xa9 in position 0: invalid start byte
Failed to convert token (b'\xaa'): 'utf-8' codec can't decode byte 0xaa in position 0: invalid start byte
Failed to convert token (b'\xab'): 'utf-8' codec can't decode byte 0xab in position 0: invalid start byte
Failed to convert token (b'\xac'): 'utf-8' codec can't decode byte 0xac in position 0: invalid start byte
Failed to convert token (b'\xad'): 'utf-8' codec can't decode byte 0xad in position 0: invalid start byte
Failed to convert token (b'\xae'): 'utf-8' codec can't decode byte 0xae in position 0: invalid start byte
Failed to convert token (b'\xaf'): 'utf-8' codec can't decode byte 0xaf in position 0: invalid start byte
Failed to convert token (b'\xb0'): 'utf-8' codec can't decode byte 0xb0 in position 0: invalid start byte
Failed to convert token (b'\xb1'): 'utf-8' codec can't decode byte 0xb1 in position 0: invalid start byte
Failed to convert token (b'\xb2'): 'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte
Failed to convert token (b'\xb3'): 'utf-8' codec can't decode byte 0xb3 in position 0: invalid start byte
Failed to convert token (b'\xb4'): 'utf-8' codec can't decode byte 0xb4 in position 0: invalid start byte
Failed to convert token (b'\xb5'): 'utf-8' codec can't decode byte 0xb5 in position 0: invalid start byte
Failed to convert token (b'\xb6'): 'utf-8' codec can't decode byte 0xb6 in position 0: invalid start byte
Failed to convert token (b'\xb7'): 'utf-8' codec can't decode byte 0xb7 in position 0: invalid start byte
Failed to convert token (b'\xb8'): 'utf-8' codec can't decode byte 0xb8 in position 0: invalid start byte
Failed to convert token (b'\xb9'): 'utf-8' codec can't decode byte 0xb9 in position 0: invalid start byte
Failed to convert token (b'\xba'): 'utf-8' codec can't decode byte 0xba in position 0: invalid start byte
Failed to convert token (b'\xbb'): 'utf-8' codec can't decode byte 0xbb in position 0: invalid start byte
Failed to convert token (b'\xbc'): 'utf-8' codec can't decode byte 0xbc in position 0: invalid start byte
Failed to convert token (b'\xbd'): 'utf-8' codec can't decode byte 0xbd in position 0: invalid start byte
Failed to convert token (b'\xbe'): 'utf-8' codec can't decode byte 0xbe in position 0: invalid start byte
Failed to convert token (b'\xbf'): 'utf-8' codec can't decode byte 0xbf in position 0: invalid start byte
Failed to convert token (b'\xc0'): 'utf-8' codec can't decode byte 0xc0 in position 0: invalid start byte
Failed to convert token (b'\xc1'): 'utf-8' codec can't decode byte 0xc1 in position 0: invalid start byte
Failed to convert token (b'\xc2'): 'utf-8' codec can't decode byte 0xc2 in position 0: unexpected end of data
Failed to convert token (b'\xc3'): 'utf-8' codec can't decode byte 0xc3 in position 0: unexpected end of data
Failed to convert token (b'\xc4'): 'utf-8' codec can't decode byte 0xc4 in position 0: unexpected end of data
Failed to convert token (b'\xc5'): 'utf-8' codec can't decode byte 0xc5 in position 0: unexpected end of data
Failed to convert token (b'\xc6'): 'utf-8' codec can't decode byte 0xc6 in position 0: unexpected end of data
Failed to convert token (b'\xc7'): 'utf-8' codec can't decode byte 0xc7 in position 0: unexpected end of data
Failed to convert token (b'\xc8'): 'utf-8' codec can't decode byte 0xc8 in position 0: unexpected end of data
Failed to convert token (b'\xc9'): 'utf-8' codec can't decode byte 0xc9 in position 0: unexpected end of data
Failed to convert token (b'\xca'): 'utf-8' codec can't decode byte 0xca in position 0: unexpected end of data
Failed to convert token (b'\xcb'): 'utf-8' codec can't decode byte 0xcb in position 0: unexpected end of data
Failed to convert token (b'\xcc'): 'utf-8' codec can't decode byte 0xcc in position 0: unexpected end of data
Failed to convert token (b'\xcd'): 'utf-8' codec can't decode byte 0xcd in position 0: unexpected end of data
Failed to convert token (b'\xce'): 'utf-8' codec can't decode byte 0xce in position 0: unexpected end of data
Failed to convert token (b'\xcf'): 'utf-8' codec can't decode byte 0xcf in position 0: unexpected end of data
Failed to convert token (b'\xd0'): 'utf-8' codec can't decode byte 0xd0 in position 0: unexpected end of data
Failed to convert token (b'\xd1'): 'utf-8' codec can't decode byte 0xd1 in position 0: unexpected end of data
Failed to convert token (b'\xd2'): 'utf-8' codec can't decode byte 0xd2 in position 0: unexpected end of data
Failed to convert token (b'\xd3'): 'utf-8' codec can't decode byte 0xd3 in position 0: unexpected end of data
Failed to convert token (b'\xd4'): 'utf-8' codec can't decode byte 0xd4 in position 0: unexpected end of data
Failed to convert token (b'\xd5'): 'utf-8' codec can't decode byte 0xd5 in position 0: unexpected end of data
Failed to convert token (b'\xd6'): 'utf-8' codec can't decode byte 0xd6 in position 0: unexpected end of data
Failed to convert token (b'\xd7'): 'utf-8' codec can't decode byte 0xd7 in position 0: unexpected end of data
Failed to convert token (b'\xd8'): 'utf-8' codec can't decode byte 0xd8 in position 0: unexpected end of data
Failed to convert token (b'\xd9'): 'utf-8' codec can't decode byte 0xd9 in position 0: unexpected end of data
Failed to convert token (b'\xda'): 'utf-8' codec can't decode byte 0xda in position 0: unexpected end of data
Failed to convert token (b'\xdb'): 'utf-8' codec can't decode byte 0xdb in position 0: unexpected end of data
Failed to convert token (b'\xdc'): 'utf-8' codec can't decode byte 0xdc in position 0: unexpected end of data
Failed to convert token (b'\xdd'): 'utf-8' codec can't decode byte 0xdd in position 0: unexpected end of data
Failed to convert token (b'\xde'): 'utf-8' codec can't decode byte 0xde in position 0: unexpected end of data
Failed to convert token (b'\xdf'): 'utf-8' codec can't decode byte 0xdf in position 0: unexpected end of data
Failed to convert token (b'\xe0'): 'utf-8' codec can't decode byte 0xe0 in position 0: unexpected end of data
Failed to convert token (b'\xe1'): 'utf-8' codec can't decode byte 0xe1 in position 0: unexpected end of data
Failed to convert token (b'\xe2'): 'utf-8' codec can't decode byte 0xe2 in position 0: unexpected end of data
Failed to convert token (b'\xe3'): 'utf-8' codec can't decode byte 0xe3 in position 0: unexpected end of data
Failed to convert token (b'\xe4'): 'utf-8' codec can't decode byte 0xe4 in position 0: unexpected end of data
Failed to convert token (b'\xe5'): 'utf-8' codec can't decode byte 0xe5 in position 0: unexpected end of data
Failed to convert token (b'\xe6'): 'utf-8' codec can't decode byte 0xe6 in position 0: unexpected end of data
Failed to convert token (b'\xe7'): 'utf-8' codec can't decode byte 0xe7 in position 0: unexpected end of data
Failed to convert token (b'\xe8'): 'utf-8' codec can't decode byte 0xe8 in position 0: unexpected end of data
Failed to convert token (b'\xe9'): 'utf-8' codec can't decode byte 0xe9 in position 0: unexpected end of data
Failed to convert token (b'\xea'): 'utf-8' codec can't decode byte 0xea in position 0: unexpected end of data
Failed to convert token (b'\xeb'): 'utf-8' codec can't decode byte 0xeb in position 0: unexpected end of data
Failed to convert token (b'\xec'): 'utf-8' codec can't decode byte 0xec in position 0: unexpected end of data
Failed to convert token (b'\xed'): 'utf-8' codec can't decode byte 0xed in position 0: unexpected end of data
Failed to convert token (b'\xee'): 'utf-8' codec can't decode byte 0xee in position 0: unexpected end of data
Failed to convert token (b'\xef'): 'utf-8' codec can't decode byte 0xef in position 0: unexpected end of data
Failed to convert token (b'\xf0'): 'utf-8' codec can't decode byte 0xf0 in position 0: unexpected end of data
Failed to convert token (b'\xf1'): 'utf-8' codec can't decode byte 0xf1 in position 0: unexpected end of data
Failed to convert token (b'\xf2'): 'utf-8' codec can't decode byte 0xf2 in position 0: unexpected end of data
Failed to convert token (b'\xf3'): 'utf-8' codec can't decode byte 0xf3 in position 0: unexpected end of data
Failed to convert token (b'\xf4'): 'utf-8' codec can't decode byte 0xf4 in position 0: unexpected end of data
Failed to convert token (b'\xf5'): 'utf-8' codec can't decode byte 0xf5 in position 0: invalid start byte
Failed to convert token (b'\xf6'): 'utf-8' codec can't decode byte 0xf6 in position 0: invalid start byte
Failed to convert token (b'\xf7'): 'utf-8' codec can't decode byte 0xf7 in position 0: invalid start byte
Failed to convert token (b'\xf8'): 'utf-8' codec can't decode byte 0xf8 in position 0: invalid start byte
Failed to convert token (b'\xf9'): 'utf-8' codec can't decode byte 0xf9 in position 0: invalid start byte
Failed to convert token (b'\xfa'): 'utf-8' codec can't decode byte 0xfa in position 0: invalid start byte
Failed to convert token (b'\xfb'): 'utf-8' codec can't decode byte 0xfb in position 0: invalid start byte
Failed to convert token (b'\xfc'): 'utf-8' codec can't decode byte 0xfc in position 0: invalid start byte
Failed to convert token (b'\xfd'): 'utf-8' codec can't decode byte 0xfd in position 0: invalid start byte
Failed to convert token (b'\xfe'): 'utf-8' codec can't decode byte 0xfe in position 0: invalid start byte
Failed to convert token (b'\xff'): 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

Outlines/Python version information:
Version information

```
0.0.28
Python 3.11.7 (main, Dec 15 2023, 12:09:56) [Clang 14.0.6 ]
absl-py==2.1.0
accelerate==0.26.1
addict==2.4.0
aiobotocore==2.7.0
aiofiles==23.2.1
aiohttp==3.9.3
aioitertools==0.11.0
aiosignal==1.3.1
alembic==1.13.1
altair==5.2.0
annotated-types==0.6.0
anyio==4.2.0
appdirs==1.4.4
appnope @ file:///home/conda/feedstock_root/build_artifacts/appnope_1707233003401/work
art==6.1
asttokens @ file:///home/conda/feedstock_root/build_artifacts/asttokens_1698341106958/work
attrs==23.2.0
-e git+https://github.com/maximegmd/axolotl.git@e25fe924718f97fd426bd40b434f7f3a303ed98d#egg=axolotl
bitsandbytes==0.42.0
black==24.1.1
blinker==1.7.0
botocore==1.31.64
cachetools==5.3.2
certifi==2024.2.2
cfgv==3.4.0
charset-normalizer==3.3.2
click==8.1.7
cloudpickle==3.0.0
colorama==0.4.6
coloredlogs==15.0.1
comm @ file:///home/conda/feedstock_root/build_artifacts/comm_1704278392174/work
contourpy==1.2.0
cycler==0.12.1
databricks-cli==0.18.0
datasets==2.16.1
debugpy @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_563_nwtkoc/croot/debugpy_1690905063850/work
decorator @ file:///home/conda/feedstock_root/build_artifacts/decorator_1641555617451/work
dill==0.3.7
diskcache==5.6.3
distlib==0.3.8
distro==1.9.0
docker==7.0.0
docker-pycreds==0.4.0
docstring-parser==0.15
einops==0.7.0
entrypoints==0.4
evaluate==0.4.0
exceptiongroup @ file:///home/conda/feedstock_root/build_artifacts/exceptiongroup_1704921103267/work
executing @ file:///home/conda/feedstock_root/build_artifacts/executing_1698579936712/work
fastapi==0.109.1
ffmpy==0.3.1
filelock==3.13.1
fire==0.5.0
Flask==3.0.2
fonttools==4.47.2
frozenlist==1.4.1
fschat==0.2.34
fsspec==2023.10.0
gcsfs==2023.10.0
gitdb==4.0.11
GitPython==3.1.41
google-api-core==2.16.2
google-auth==2.27.0
google-auth-oauthlib==1.2.0
google-cloud-core==2.4.1
google-cloud-storage==2.14.0
google-crc32c==1.5.0
google-resumable-media==2.7.0
googleapis-common-protos==1.62.0
gradio==3.50.2
gradio_client==0.6.1
grpcio==1.60.1
gunicorn==21.2.0
h11==0.14.0
hf_transfer==0.1.5
httpcore==1.0.2
httpx==0.26.0
huggingface-hub==0.20.3
humanfriendly==10.0
identify==2.5.33
idna==3.6
importlib-metadata @ file:///home/conda/feedstock_root/build_artifacts/importlib-metadata_1703269254275/work
importlib-resources==6.1.1
interegular==0.3.3
ipykernel @ file:///Users/runner/miniforge3/conda-bld/ipykernel_1707326353119/work
ipython @ file:///home/conda/feedstock_root/build_artifacts/ipython_1706795662110/work
itsdangerous==2.1.2
jedi @ file:///home/conda/feedstock_root/build_artifacts/jedi_1696326070614/work
Jinja2==3.1.3
jmespath==1.0.1
joblib==1.3.2
jsonschema==4.21.1
jsonschema-specifications==2023.12.1
jupyter_client @ file:///home/conda/feedstock_root/build_artifacts/jupyter_client_1699283905679/work
jupyter_core @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_782yoyc_98/croot/jupyter_core_1698937318631/work
kiwisolver==1.4.5
lark==1.1.9
llama_cpp_python==0.2.39
llvmlite==0.42.0
Mako==1.3.2
Markdown==3.5.2
markdown-it-py==3.0.0
markdown2==2.4.12
MarkupSafe==2.1.5
matplotlib==3.8.2
matplotlib-inline @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-inline_1660814786464/work
mdurl==0.1.2
mlflow==2.10.0
mpmath==1.3.0
multidict==6.0.5
multiprocess==0.70.15
mypy==1.8.0
mypy-extensions==1.0.0
nest_asyncio @ file:///home/conda/feedstock_root/build_artifacts/nest-asyncio_1705850609492/work
networkx==3.2.1
nh3==0.2.15
nodeenv==1.8.0
numba==0.59.0
numpy==1.26.3
oauthlib==3.2.2
openai==1.12.0
optimum==1.16.2
orjson==3.9.13
outlines==0.0.28
packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1696202382185/work
pandas==2.2.0
parso @ file:///home/conda/feedstock_root/build_artifacts/parso_1638334955874/work
pathspec==0.12.1
peft @ git+https://github.com/huggingface/peft.git@ce925d844a0bc54b951fcb69229dfe740c9afa45
pexpect @ file:///home/conda/feedstock_root/build_artifacts/pexpect_1706113125309/work
pickleshare @ file:///home/conda/feedstock_root/build_artifacts/pickleshare_1602536217715/work
pillow==10.2.0
platformdirs @ file:///home/conda/feedstock_root/build_artifacts/platformdirs_1706713388748/work
pre-commit==3.6.0
prompt-toolkit==3.0.43
protobuf==4.23.4
psutil @ file:///Users/cbousseau/work/recipes/ci_py311_2/psutil_1678995687212/work
ptyprocess @ file:///home/conda/feedstock_root/build_artifacts/ptyprocess_1609419310487/work/dist/ptyprocess-0.7.0-py2.py3-none-any.whl
pure-eval @ file:///home/conda/feedstock_root/build_artifacts/pure_eval_1642875951954/work
pyarrow==15.0.0
pyarrow-hotfix==0.6
pyasn1==0.5.1
pyasn1-modules==0.3.0
pydantic==2.6.1
pydantic_core==2.16.2
pydub==0.25.1
Pygments @ file:///home/conda/feedstock_root/build_artifacts/pygments_1700607939962/work
PyJWT==2.8.0
pynvml==11.5.0
pyparsing==3.1.1
python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1626286286081/work
python-multipart==0.0.7
pytz==2023.4
PyYAML==6.0.1
pyzmq @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_43pxpbos3z/croot/pyzmq_1705605108344/work
querystring-parser==1.2.4
referencing==0.33.0
regex==2023.12.25
requests==2.31.0
requests-oauthlib==1.3.1
responses==0.18.0
rich==13.7.0
rpds-py==0.17.1
rsa==4.9
s3fs==2023.10.0
safetensors==0.4.2
scikit-learn==1.2.2
scipy==1.12.0
semantic-version==2.10.0
sentencepiece==0.1.99
sentry-sdk==1.40.0
setproctitle==1.3.3
shortuuid==1.0.11
shtab==1.6.5
six @ file:///home/conda/feedstock_root/build_artifacts/six_1620240208055/work
smmap==5.0.1
sniffio==1.3.0
SQLAlchemy==2.0.25
sqlparse==0.4.4
stack-data @ file:///home/conda/feedstock_root/build_artifacts/stack_data_1669632077133/work
starlette==0.35.1
svgwrite==1.4.3
sympy==1.12
tabulate==0.9.0
tensorboard==2.15.1
tensorboard-data-server==0.7.2
termcolor==2.4.0
threadpoolctl==3.2.0
tiktoken==0.5.2
tokenizers==0.15.0
toolz==0.12.1
torch==2.2.0
torchaudio==2.2.0
torchvision==0.17.0
tornado @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_3a5nrn2jeh/croot/tornado_1696936974091/work
tqdm==4.66.1
traitlets @ file:///home/conda/feedstock_root/build_artifacts/traitlets_1704212992681/work
transformers @ git+https://github.com/huggingface/transformers.git@bebeeee01275c32fccec3fa36d8b148d3813a7dc
trl==0.7.10
typing_extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1702176139754/work
tyro==0.7.1
tzdata==2023.4
urllib3==2.0.7
uvicorn==0.27.0.post1
virtualenv==20.25.0
wandb==0.16.2
wavedrom==2.0.3.post3
wcwidth @ file:///home/conda/feedstock_root/build_artifacts/wcwidth_1704731205417/work
websockets==11.0.3
Werkzeug==3.0.1
wrapt==1.16.0
xxhash==3.4.1
yarl==1.9.4
zipp @ file:///home/conda/feedstock_root/build_artifacts/zipp_1695255097490/work
```

Context for the issue:
Cannot use Outlines at all as it is on Mac

Duplicate of https://github.com/outlines-dev/outlines/issues/611

@maximegmd my test suggests your issue is resolved by https://github.com/outlines-dev/outlines/pull/556
You may try it early via pip install git+https://github.com/dtiarks/outlines@llama-logits-processor && pip install llama-cpp-python==0.2.37

Can confirm the PR solves the issues


Clarify what is meant by "kernel"

It would be great to clarify this in the Project Goals. For example, I noticed that the functions don't include universal constants or physical properties. For gravity, this is ok since getting the gravity field is a matter of simple multiplication. For magnetics, the combination is a bit more difficult since it involves a dot product with the vector magnetisation. So it would be worth having that in a function already instead of requiring users to code it. It also may be necessary since doing it out of the jit compiled function would mean losing parallel and low memory execution.
It would be worth clarifying the scope of the package with this in mind. A good way to go about it would be to try to add a magnetic dipole implementation to see how it fits with the current paradigm.
Or maybe the "kernel" could mean the version without the for loops? It may be worth making that available in the API for use in external jit-compiled code (like tesseroids).

I agree that the use of "kernel" is a too loose at the moment. I still struggle to give a closed definition to it. I've been using this name for grouping a set of low-level functions used in the forward models for gravity and magnetics.
The name "kernel" is inherited from the integral kernels involved in the forward modelling functions of potential fields.
For example, for any three dimensional body $\Gamma$, a potential field $\phi$ on an observation point $\mathbf{p}$ can be computed as:
$$ \phi(\mathbf{p}) = \int\limits_\Gamma g(\mathbf{p}) k(\mathbf{p}, \mathbf{q}) \text{d}\mathbf{q} $$
where $k(\mathbf{p}, \mathbf{q})$ is the integral kernel and $\mathbf{g(\mathbf{p})}$ is a function that doesn't depend on the integration variable and it's usually constant for gravity and magnetic forward modelling.
For the gravity potential it would be:
$$
V_\text{grav}(\mathbf{p}) =
G
\int\limits_\Gamma
\frac{
\rho(\mathbf{q})
}{
\lVert \mathbf{p} - \mathbf{q} \rVert
}
\text{d}\mathbf{q}
$$
And for magnetic potential (in absence of currents):
$$
V_\text{mag}(\mathbf{p}) =
\frac{\mu_0}{4\pi}
\int\limits_\Gamma
\mathbf{M(\mathbf{q})}
\cdot
\nabla_\mathbf{q} \left( \frac{1}{\lVert \mathbf{p} - \mathbf{q} \rVert} \right)
\text{d}\mathbf{q}
$$
If we want to continue with this idea of a "kernel" function, then the physical properties (density and magnetization) must be included in them.

It would be worth clarifying the scope of the package with this in mind. A good way to go about it would be to try to add a magnetic dipole implementation to see how it fits with the current paradigm.

I agree. In my head the implementation of the magnetic dipole would ask the coordinates of the observation point, the coordinates of the dipole and its magnetization vector.

Or maybe the "kernel" could mean the version without the for loops? It may be worth making that available in the API for use in external jit-compiled code (like tesseroids).

For now I'm only adding functions without the for loops, so: single computation point and single source. There is a broad interest in having those functions without the for loops.

Nevertheless, there are some caveats. We perform the prism forward model by evaluating the analytical solution to these integrals, so we are not actually computing the integral kernel. Should we use a different name for that function then? Which one? Could we still include it in the "kernel" group?

After a discussion we had during a meeting this week we decided to stick with the following design for Choclo.
Everything is JIT compiled
We could offer non-jit compiled versions of our functions, although there are some caveats. Some functions are written to support floats (like the safe_log and safe_atan ones). If the would have to support comparisons for arrays, we would need to introduce some checks there. We want these functions to run quick and dirty, no extra steps.
Besides, the forward modelling functions we will offer in Choclo (single source, single computation point) are meant to be run using Numba for loops, so it makes sense for everything to be JIT compiled.
No external loops
Choclo will not offer (at least for now) functions that compute forward models over sets of computations points and/or sets of sources. It will only offer forward modelling functions for single computation point and single source.
The reason behind this is that the outer for loops can be optimized and written in many different combinations depending on the specific problem the user want to tackle. It's easier to leave that part to them rather than offering a collection of different functions that perform almost the same, but through different ways. Besides, with the functions that Choclo will offer, these outer loops only cost two to three extra lines, e.g.:
Full forward model
import choclo as ch

@numba.jit(parallel=True)
def gravity_potential(...):
    result = np.zeros(N)
    for point in prange(N):
        for source in range(M):
            result[point] += ch.point.gravity_pot(...)
    return result

Build Jacobian matrix
import choclo as ch

@numba.jit(parallel=True)
def jacobian(...):
    A = np.empty(shape)
    for i in prange(shape[0]):
        for j in range(shape[1]):
            A[i, j] = ch.point.gravity_pot(..., density=1)

Architecture
Choclo will be split in submodules, one for each source type plus a utils one (will include the distance functions).
Each submodule will have a two level system of functions.

Level 1: Low-level kernel functions that only perform the math. They don't call any other function within Choclo. For example, for point sources, they compute 1/r and its derivatives. They will use the following name convention: kernel_pot (for the kernel function used in the potential field), kernel_e, kernel_n, kernel_u (for the kernels used in the gradient of the potential) and kernel_ee, kernel_nn, kernel_uu, kernel_en, kernel_ez, kernel_nz (for the kernels used in the tensor components and magnetic field).
Level 2: Higher-level functions that perform the forward modelling of a single source on a single computation point. These will depend on the Level 1 functions and on the utils functions. These functions will take the physical property of the source (density, magnetization vector) and will make use of universal constants. They will return every result in SI units. Their naming conventions will be:

gravity_pot(coordinates, source, density)
gravity_e
gravity_n
gravity_u
gravity_ee
gravity_en
gravity_eu
gravity_nn
gravity_nu
gravity_uu
magnetic_e(coordinates, source, magnetizaton_vector)
magnetic_n
magnetic_u
magnetic_tf_anomaly(coordinates, source, magnetizaton_vector, igrf_inc, igrf_dec)

Docs
The docs will include instructions on how to use Choclo functions properly and in an optimized way, showing examples on how to build a full forward model and a Jacobian matrix.


FPGA Optimizations

This issue for tracking different work items for optimizing Ibex for FPGA deployment. @ganoam will join us in January and as part of his Master thesis look into this. Things to investigate:

[x] Register file: Leverage RAM32M primitives or similar instead of FFs/latches.
[ ] ALU: Add a new single-cycle multiplier that makes better use of the available DSP slices. (https://github.com/lowRISC/ibex/issues/527)
[ ] CSRs: Investigate the effect of the counter width of performance monitors on resource utilization and timing (64-bit counters are known to map badly to FPGA).
[ ] Further ideas?

In addition to looking at Xilinx FPGAs let's investigate fitting an Ibex into the ICE40 family (http://www.latticesemi.com/iCE40). They're popular for open hardware FPGA boards and an open source tool chain exists for them.
I tried a brief experiment targeting the LP8K and it just about fit in terms of LUTs but I terminated it before it finished place & route (I suspect it will fail to fit in the device because of this). I can't remember whether I used the E register file or the full register file and whether I hacked out any CSRs. I'll see if I can find it and I'll report back more details.
Bonus points for getting it working with the IceStorm (http://www.clifford.at/icestorm/) flow.

CC @wallento who I think started looking at Ibex+ice40?
This is great as a tracking issue (thanks Pirmin!), but we should move any further discussion of the more concrete steps to linked issues (at least the reg file and MUL).

Hi,
yes, I have been starting to port it to the Fomu during the summit, but it did not fit so far. Happy to share what I have done as a patch to the Fomu workshop repository, which is a great starting point. Will do so asap.
Cheers

Hi everyone,
Thank you @vogelpi for the introduction. I am looking forward to working with you.
see you soon,
Noam

Hi everyone,
I have implemented a first version of the new reg file. See linked Pull request. This is my first PR, so if I did anything wrong, please let me know.

This issue for tracking different work items for optimizing Ibex for FPGA deployment. @ganoam will join us in January and as part of his Master thesis look into this. Things to investigate:
* [ ]  Register file: Leverage RAM32M primitives or similar instead of FFs/latches:  #555

* [ ]  ALU: Add a new single-cycle multiplier that makes better use of the available DSP slices. (#527)

* [ ]  CSRs: Investigate the effect of the counter width of performance monitors on resource utilization and timing (64-bit counters are known to map badly to FPGA).

* [ ]  Further ideas?

Hi everyone,
In my premature Pull Request, implementing a single cycle multiplier implementation, there has been a discussion weather to implement a full single cycle multiplier, or implementing a version, which would execute MUL instructions in a single cycle and MULH instructions in 2 cycles. It was suggested that the former would significantly increase the critical path while not resulting in significant benefits in terms of IPC.
I have now investigated the issue with an implementation of both versions. I have based the evaluation on two possible core configurations, using Greg's draft PR adding a third-stage (#568 ), once including the new Branch Target ALU and the third pipeline stage and once using the existing 2 stage configuration. The evaluated implementations have been synthesized with the corresponding parameters. Also, since the new multiplier implementation will primarily be targeted to FPGA synthesis, I have included the FPGA register file.
The utilization and timing results are listed in the following table:
Core Configuration | Mult. Implementation | Logic LUTs | Critical Path /ns | Max. Freq /MHz
-------------------------------------------------------------------------------------------
2 stage            | Baseline             | 2358       | 14.023            | 71.3
  + FPGA Reg. File | MUL 1cc MULH 1cc     | 2270       | 14.755            | 67.8 (-3.5)
                   | MUL 1cc MULH 2cc     | 2300       | 14.436            | 69.3 (-2.0)
-------------------------------------------------------------------------------------------
3 stage + BT ALU   | Baseline             | 2303       | 15.235            | 65.6
  + FPGA Reg. File | MUL 1cc MULH 1cc     | 2288       | 15.499            | 64.5 (-1.1)
                   | MUL 1cc MULH 2cc     | 2317       | 14.997            | 66.8 (+1.2)
-------------------------------------------------------------------------------------------

Implementation was executed using Vivado's Performance_explore implementation strategy.
For the 2stage configuration we observe a decrease of the maximum frequency for both versions of the new multiplier. However MUL 1cc MULH 2cc yields a 1.5 MHz higher maximum frequency than MUL 1cc MULH 2cc. For the 3 stage core configuration we even observe an increase of the maximum frequency for MUL 1cc MULH 2cc However, IMO, the benefits are pretty small.
I have also run coremark in order to compare the impact of the design decision on the IPC as a measure of performance. The results are listed in the following table (The core configuration has no influence):
 Mult. Implementation | Total Ticks        | Ret. Instructions | IPC
-------------------------------------------------------------------------------
 Baseline             | 416639             | 275768            | 0.662
 MUL 1cc MULH 1cc     | 407243             |                   | 0.677 (+0.015)
 MUL 1cc MULH 2cc     | 407243             |                   | 0.677 (+0.015)
-------------------------------------------------------------------------------

Apparently, in coremark the MULH instruction is not used once. I therefore think that indeed we could implement the additional latency without significant performance loss.
Another consideration brought in by Davide, is, if the marginal gain in maximum frequency for MUL 1cc MULH 2cc is worth the  additional complexity of the code which has to be maintained. I will attach the two versions of my implementation here, for your consideration.
multdiv_versions.zip
What are your opinions on this? Which route should we go?
Also, how should I integrate the new multiplier into the existing codebase? ( @GregAC has suggested to introduce a SingleCycleMultiply parameter into the ibex_multdiv_fast module. Which I think would be a good idea.)
cheers,
Noam

Nice work @ganoam ! Thanks for providing all the numbers.
There is no notable difference in terms of resource utilization. As you mentioned, there is also little difference in terms of max clock frequency only. I think the +2.3 MHz we get from the from the "MUL 1cc MULH 2cc" version with the 3-stage pipeline currently are not really worth the code complexity (although the code is also not super complex, it's not too bad actually). However, if I remember correctly the critical path for the "MUL 1cc MULH 1cc" version always goes through one of the DSP slices, whereas for the "MUL 1cc MULH 2cc" version, the critical path was somewhere else. Meaning this could further improve depending on how the final 3-stage pipeline implementation will look like.
On the other hand, if we are also considering ASICs, the "MUL 1cc MULH 1cc" might give better results as a smart synthesis tool can optimize more.

It's important to consider the impact on ASIC implementation also. From a quick look at the RTL the MUL 1cc MULH 2cc version is using 3x16-bit multipliers + a 3 way A + B + C 34-bit adder. The MUL 1cc MULH 1cc version uses a single 1x33-bit multiplier.
I'd suspect the MUL 1cc MULH 2cc version has area advantage in ASIC implementation, less certain about how much it matter to timing.

About the frequencies: The results I reported are not very rigid. Yesterday, I have truncated some unused signals from the MUL 1cc MULH 1cc design (which I am quite sure, the synthesis tool optimized away anyways) and re-run the implementation twice, once with a target period of 14ns and 14.5ns. The reported critical paths were 15.656ns and 14.708ns respectively for the two-stage core configuration. For the 3 stage configuration it reported 15.054ns (with a target period of 14ns), which is a lot closer to the MUL 1cc MULH 2cc version than originally measured, and better than the baseline. So I think what we can say is, the new multiplier is about half a ns slower for the 2 stage configuration, with the MUL 1cc MULH 2cc version having a slight advantage over the MUL 1cc MULH 2cc version. But the differences between the two versions is very small.
For the 3 stage configuration it is really very hard to tell. Not only because of the apparent volatility of the synthesis tool but also because it was measured with what is likely not the final implementation.
@vogelpi Yes, the critical path seems to be more likely to traverse a DSP slice in the MUL1cc MULH cc implementation. Using the implementation runs I reported yesterday, I have extracted the longest paths through the multiplier (i.e. paths that include the signal which is assigned with the result of the multiplication.)
Core Configuration | Mult. Implementation | Longest Path Through Mult /ns
---------------------------------------------------------------------
2 stage            | Baseline             | 12.879
  + FPGA Reg. File | MUL 1cc MULH 1cc     | 14.755 (crit. path)
                   | MUL 1cc MULH 2cc     | 14.338
---------------------------------------------------------------------
3 stage + BT ALU   | Baseline             | 13.676
  + FPGA Reg. File | MUL 1cc MULH 1cc     | 15.088
                   | MUL 1cc MULH 2cc     | 14.137
---------------------------------------------------------------------

@GregAC  I have not yet done any ASIC analysis, since I thought that this optimization would be targeting FPGAs which have the necessary hardware to spare. I am happy to do the investigation, but I think, considering the pretty modest IPC advantage, it would not be worth it to chose either one of the new implementations for ASICs:
I am quite sure that both versions will have quite unsatisfactory results: The MUL 1cc MULH2cc version will consume at least 3x the area of the original implementation (3 of multipliers of the original size + a larger addition structure). The 33-bit multiplier, as @davideschiavone explained to me would blow up in contrast to the 17 bit multiplier he implemented, which is why he implemented it the way he did. As for the timing, I really don't have the experience to speculate.
I am not sure if we should base our decision on the ASIC synthesis. I think it is really unlikely anyone would want to spend the extra area for this little benefit.

Thanks @ganoam for the additional info. I think we should go for the MUL 1cc MULH 2cc version.
There is a slight advantage on the FPGA in terms of timing but more importantly the multiplier/DSP is not in the critical path for the 3-stage implementation. I would not go into the ASIC domain yet. You will do this once working on the B-extension. Looking at the original paper, one can also see that the 32-bit multiplier of RI5CY is roughly 4x bigger than the baseline 16-bit multiplier (Zero-riscy in the paper). So even if the MUL 1cc MULH 2cc is 3x bigger than the baseline, it is still around 25% smaller than the 32-bit multiplier.
So, unless @GregAC , @tomroberts-lowrisc or @imphil oppose, go ahead and update your PR with the MUL 1cc MULH 2cc version.

I'm happy with the MUL 1cc MULH 2cc version. I'll push it through my Yosys flow when the PR is ready and see what it makes of it. Thanks @ganoam

Alright. I'll prepare the PR then. Do you want me to make it dependent on a parameter within the original ibex_multdiv_fast.sv?

I was thinking about that. Having three separate modules seems bad as there's code duplication. However having the multiply configuration handled by two separate parameters (choose fast or slow then single cycle or not) seems messy.
I think ideally we'd have a div module and multiple different multiplier modules, though that's out of the scope for this task.
So implementing this within multdiv_fast with a parameter to choose single cycle mul or not is good enough for now. Then let's open an issue for someone to take a look at it all and see if we can refactor into something cleaner.

Yes, I agree with @GregAC .
Let's include it in the ibex_multdiv_fast.sv for now (we are still sharing some logic with the divider, so this makes sense).

Sounds good to me. No matter where the code ends up living, I'd like to keep a single MultiplierImplementation parameter on the toplevel.

Ok, the PR (#559) is finally ready for review.
Making it available to chose from the top level required a little bit of meddling with the ex block. I am not sure if this is the proper way to do things...
I have also updated the documentation.

The single-cycle multiplier for FPGA has been merged. Nice work @ganoam! I have created a new issue to discuss options and progress on the CSR/performance counter optimizations here: https://github.com/lowRISC/ibex/issues/601

To keep this Issue up to date:

A PR concerning inference of DSP counters for performance monitors is available: #624.
I have had a quick look at using DSPs for a barrel shifter: #625

This work has been concluded. I am thus closing the issue.


Add CI workflow

Add Github Action CI workflow to test, build and deploy apps.

hey @giacomolicari, could you please check out from development? otherwise there's a lot of conflicts :/

hey @giacomolicari, could you please check out from development? otherwise there's a lot of conflicts :/

Yes that's right, doing it


Inconsistency between xr.where() and da.where()

What is your issue?
xr.where() and da.where() behave in seemingly opposite ways.
Example:
da = xr.DataArray(np.arange(10)
print(xr.where(da < 5, 0, da).values)
print(da.where(da < 5, 0).values)

[0 0 0 0 0 5 6 7 8 9]
[0 1 2 3 4 0 0 0 0 0]

It seems like these two methods with the same name should have the same functionality, but they give inverse results.

to elaborate on that, xr.DataArray.where uses self as "then" and the second argument as "other", while for xr.where the second argument is "then" and the third argument is "other" (the condition is the first argument for both).

Thanks for the replies
So while xr.where(cond, x, y) is semantically, "where condition is true, x, else y", da.where(cond, x) is "where condition is true da, else x".
The latter feels quite unintuitive to me. Is the reason they're different only for the mask example you provided? Where NaN is returned as the default 'x' value?

According to #503, there's two reasons: the fact that for masking this is so much easier to write (including when method chaining), and it is also API inherited from pandas.

Thanks for the replies
So while xr.where(cond, x, y) is semantically, "where condition is true, x, else y", da.where(cond, x) is "where condition is true da, else x".
The latter feels quite unintuitive to me. Is the reason they're different only for the mask example you provided? Where NaN is returned as the default 'x' value?

I think da.where(cond, x) becomes a bit more intuitive when you compare to Python's ternary:
# da.where(cond, x)
da if cond else x


[BUG] User not allowed when logging in with URL.

Can't log in to wallet.
I'm using URL to log in: "https://legend.lnbits.com/wallet?usr=xxxxx...".
When using this URL, the URL gets changed to: https://demo.lnbits.com/wallet?usr=xxxxx..."
getting this error:

+1 same issue.
I've also tried taking the 'xxxxxx' value of the usr parameter from the 'https://legend.lnbits.com/wallet?usr=xxxxx...' URL and tried to login with it on https://demo.lnbits.com/ but get back an error: "User ID does not exist. 401"

Legend is gone forever
New testing server is demo.lnbits.com and users have not been migrated

Understood. Is there a plan to eventually migrate the users?

Is there a way to get back the sats from legend?

@prusnak Do you know if there is a plan to eventually migrate the users from Legend to demo? Or is there any other way to get back the sats from Legend?

This was a demo and testing server that should never have been using for anything in production. We had many disclaimers and warnings to this end, and reminded user repeatedly. Some people choose to ignore these warnings and used the server in production, which is a responsibility they must shoulder.
As a testing server, we tested on it, a hacker stole the funds, so we closed the server and created a new one. The new server is far more explicit to try and discourage users using in production.
PLEASE DO NOT USE THE DEMO SERVER IN PRODUCTION OR FOR FUNDS YOU ARE NOT WILLING TO USE.
We will run the server at some point with voidwallet so users can access info and for any users who were using wallets for lnurlauth, but the funds are gone. This was a demo and testing server running insecure software for testing only.
Closing as this is not an issue for the LNbits software.


Update the game over message

Update the game over message so people know how to play again!

i love hitgub actions


Single dash long options if no shorthand defined.

I have had issues migrating from https://github.com/koding/multiconfig or other https://golang.org/pkg/flag/ based configuration to pflag. This is because existing users were using the long options with a single dash (-option vs --option). The pflag package does not seem to support this and just errors trying to interpret these as shorthand options (e.g., -option => -o -p -t -i -o -n).
To allow easier migration when not using the shorthand option feature, I made a small change to interpret single dash options as double dash options when no shorthand options are defined. This seemed the least intrusive and did not seem to mess up anyone using shorthand options while truly making this a drop-in replacement for the flag package which it was not really before due to this.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Brian Rectanus seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Used wrong email in commit - redoing this.


Usage for not stable version of Flutter SDK [非稳定版本SDK使用依赖的方法]

Some of the newer version (since 0.5.3) of extended_image has some BREAKING CHANGES that any SDK version below current stable cannot use this package normally.
So in order to use the package below the stable SDK version (such as 1.12), you must specific your pubspec.yaml with extended_image and extended_image_library to a fixed version, as the code below。
Though, we STRONGLY SUGGEST you to use the latest stable version of Flutter SDK.
较新的extended_image（自0.5.3起）的部分版本，包含了一些非向前兼容的改动，使得该依赖无法在Flutter SDK版本低于当前稳定版本的环境下使用。
若您需要在低于SDK版本（比如1.12.13）的环境下使用该依赖，必须在pubspec.yaml内同时指定extended_image和extended_image_library为指定或更低的版本，如代码所示。
我们仍然强烈建议您使用最新的稳定渠道的Flutter SDK。
dependencies:
  extended_image: 0.7.2
  extended_image_library: 0.2.1

extended_image for v1.9.1
extended_image: 0.6.7
extended_image_library: 0.1.8

extended_image for v1.5.4
extended_image: 0.5.1
extended_image_library: 0.1.3

extended_image for v1.5.4
extended_image: 0.5.1
extended_image_library: 0.1.3

extended_image for v1.12.13
extended_image: 0.7.2
extended_image_library: 0.2.1

good

v 6.2.2. for flutter 3.0.5  on github v3.0.0 branch
v 6.4.1 for flutter 3.3.0 on github v3.3.0 branch

v 7.0.0 for flutter 3.7.0
v 8.0.0 for flutter 3.10.0


Heroku App down

Hi, looks like heroku proxy is down.

Looks up and running to me.

Ok now, thanks.

I still have trouble, it was running for a sec now it seems to be down again.

It is still up here. I have started to pipe logs to a temporary file, please let me know if you experience a failure again. Then I'll check the logs.

Yes, it was running and now there's 503 again.
The problems started like 3-4 hours ago or so.

Up again, thank you.

down again? (application error, 503)


Fix float32/float64 import

Tests were failing because of the removal of julia-0.4 deprecations.

Coverage remained the same at 74.292% when pulling 3f85a07d59692eeacd2aab7213d6183e78a8cbcc on teh/fix0.5 into 7581b753a1f5c1a4129436e5ce98764f17198600 on master.


[BEAM-8500] update trigger phrase for beam_PreCommit_Website_Stage_GCS in README

modified Jenkins job trigger command description to the correct one.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

R: @markflyhigh


BZ-1310820 - Can't signal sub process when using the EJB API

(cherry picked from commit 6b3cb39b55a3cefeeac8120aa472356aee396259)
back port of #405

merged into 6.4.x


Connect to hidden WiFi networks

findAndConnect method can't connect to hidden WiFi networks.
Is it possible to add this feature or is there any other workarounds?

I've added a new method connectToHiddenNetwork and created a PR.

Hi @hassanmojab your PR has been merged, thank you for your collaboration!


Add support for AuthSecret from file

related to: https://github.com/prometheus/alertmanager/issues/2498

Something's weird with CircleCI reporting Could not find a usable config.yml, you may have revoked the CircleCI OAuth app.... Have you enabled CircleCI on your fork repository?

I am not aware of doing any Circle CI related stuff on my fork. I just forked and worked on the fix.

Documentation is not up to date with regards to auth_password_file nor auth_secret_file.


Invoking contracts (and estimating invoke fees) fails

Describe the bug (observed vs expected behavior)
Invoking UDC or any manually deployed contract on devnet fails for no clear reason. Additionally, estimating fees for those invoke txs fails as well.
estimateFee
To Reproduce
Steps to reproduce the behavior:

Run devnet-rs:

starknet-devnet --host <IP_ADDRESS> --port 5051 --seed<PHONE_NUMBER>

Send an estimate fee request:

{"jsonrpc":"2.0","method":"starknet_estimateFee","id":0,"params":{"request":[{"sender_address":"0x5203543c86954365dd0702cb342d7b292128c5a2fc6fdd18248dcce8ef94504","calldata":["0x1","0xd2293372629f5c27adfdc6881d86096acd1fe0dd9d42459ec147b063af3d5b","0x362398bec32bc0ebb411203221a35a0301193a96f317ebe5e40be9f60d15320","0x0","0x1","0x1","0xa"],"signature":["0x746caa8659ff129f7a8fb77684d9ba531115b07d638582841b0a1745943ba13","0x30edbe1072dad654d21588a46058092224a818acbe9b422719d039db8fbfe0c"],"max_fee":"0x0","version":"0x100000000000000000000000000000001","nonce":"0x1","type":"INVOKE"}],"block_id":"pending"}}

Expected:
fee gets estimated normally
Actual:
{"jsonrpc":"2.0","id":0,"error":{"code":40,"message":"Transaction execution has failed."}}

Invoke contract
Steps to reproduce the behavior:

Create an account using cast:

sncast --json --path-to-scarb-toml /var/folders/z3/j6qq2t4n0tn0ycjgt4ssnz740000gn/T//Contracts/Scarb.toml --accounts-file /var/folders/z3/j6qq2t4n0tn0ycjgt4ssnz740000gn/T//starknet_open_zeppelin_accounts.json --url http://<IP_ADDRESS>:5051/rpc --account __default__ account create --name __default__ --class-hash 0x4d07e40e93398ed3c76981e72dd1fd22557a78ce36c0515f679e27f0bb5bc5f

Deploy the account:

sncast --json --path-to-scarb-toml /var/folders/z3/j6qq2t4n0tn0ycjgt4ssnz740000gn/T//Contracts/Scarb.toml --accounts-file /var/folders/z3/j6qq2t4n0tn0ycjgt4ssnz740000gn/T//starknet_open_zeppelin_accounts.json --url http://<IP_ADDRESS>:5051/rpc --account __default__ account deploy --name __default__ --max-fee 0x38d7ea4c68000 --class-hash 0x4d07e40e93398ed3c76981e72dd1fd22557a78ce36c0515f679e27f0bb5bc5f

Declare a Cairo 1 contract:

sncast --json --path-to-scarb-toml /var/folders/z3/j6qq2t4n0tn0ycjgt4ssnz740000gn/T//Contracts/Scarb.toml --accounts-file /var/folders/z3/j6qq2t4n0tn0ycjgt4ssnz740000gn/T//starknet_open_zeppelin_accounts.json --url http://<IP_ADDRESS>:5051/rpc --account __default__ declare --contract-name Balance --max-fee 0x38d7ea4c68000
4.  Failure reason: \"Failed to deserialize param #1\".\nCairo traceback (most recent call last):\nUnknown location (pc=0:174)\nUnknown location (pc=0:127)\n","finality_status":"ACCEPTED_ON_L2","block_hash":"0x3b2711fe29eba45f2a0250c34901d15e37b495599fac1a74960a09cc83e1234","block_number":4}}

Not reproducible on alpha-goerli

[x] This issue is only present on Devnet and cannot be reproduced on alpha-goerli (check the box if true).

Devnet version

I am using Devnet version: f505557f7fd77f096a3fd532bac8c4fa5ae67913
[ ] This happens with a dockerized Devnet (check the box if true).
This does not appear on the following Devnet version: 8c4b73361cb1e15412c68f18ef18da08586a8461

System specifications

OS: macOS aarch64

About the first part (fee estimation), error visibility on failed fee estimation has now been improved. This is what I get:
{"jsonrpc":"2.0","id":0,"error":{"code":40,"message":"Transaction validation has failed."}}

Are you sure you are signing everything correctly?

The SDK used to generate the requests works fine with f505557f7fd77f096a3fd532bac8c4fa5ae67913 and testnet/integration nodes, so I'm quite confident the signatures are correct.

Sorry for the slow responsiveness about this, but I'm having a hard time reproducing this.
I don't remember anymore how I tried to reproduce the estimation error, but I think the nonce was invalid (0x1 instead of 0x0), so I had to change that, but by doing that I invalidated the signature.

Are you aware of any changes to the way transactions are signed in any new RPC versions?
Both starknet.jvm and starknet.swift tests started to fail, cast deploy fails (which invokes UDC under the hood).
All of said tools worked fine with 8c4b73361cb1e15412c68f18ef18da08586a8461 and the signatures seem to be accepted by integration/testnet nodes.

The provided request body contains nonce=0x1, and on Devnet startup, all predeployed accounts require nonce=0x0. So by just POSTing that request with curl, I get this:
{"jsonrpc":"2.0","id":0,"error":{"code":40,"message":"Invalid transaction nonce of contract at address ContractAddress(PatriciaKey(StarkFelt(\"0x05203543c86954365dd0702cb342d7b292128c5a2fc6fdd18248dcce8ef94504\"))). Expected: Nonce(StarkFelt(\"0x0000000000000000000000000000000000000000000000000000000000000000\")); got: Nonce(StarkFelt(\"0x0000000000000000000000000000000000000000000000000000000000000001\"))."}}

Also, I see in the report you mention that you are using commit f505557f7fd77f096a3fd532bac8c4fa5ae67913, but I can't find it, so I'm experimenting with the our repository's tag json-rpc-v0.4.0.
Another thing, I see the provided request mentions sender_address: "0x5203543c86954365dd0702cb342d7b292128c5a2fc6fdd18248dcce8ef94504", but I don't see that among the predeployed accounts when using --seed<PHONE_NUMBER>.

Hmmm, I see, maybe I misscopied the commit SHA.
I think the issue was present in 6548e0ab9e30ebceeac751fb6896526509491664 already, generally, tested in both on 0.5.0 spec branch and the revision of devnet that preceded merge of 0.5.0.

The provided request body contains nonce=0x1, and on Devnet startup, all predeployed accounts require nonce=0x0.

Maybe that is something that was changed since previous revisions? All the SDKs mentioned use getNonce under the hood, so there shouldn't be any situation where the unexpected nonce is sent in request. Although the issue seems to be present with manually deployed accounts as well, as you see form the cast repro.

Maybe that is something that was changed since previous revisions?

It could be that you used the account for one transaction (thus increasing the nonce), and then attempted to use it for the estimation provided above (with the increased nonce). What type of tx is it anyway?

What type of tx is it anyway?

Which one are you referring to? Currently from what I see, the invoke transactions are broken.
I'm not sure about predeployed accounts affecting this, they're not used in the tests, only the predeployed cairo 0 account contract is used, and from what I see, deploying a new account using said contract results in no issues (the receipts are successful). All the invokes, however, fail.

What type of tx is it anyway?

Which one are you referring to? Currently from what I see, the invoke transactions are broken.

I meant the estimation, what type of tx is it estimating?

As I said, all the mentioned SDKs don't ever get nonce out of nowhere, they always call starknet_getNonce before sending an estimate fee request and sending a transaction.

I understand that you are not providing the nonce value manually. What I'm trying to say is that perhaps you didn't provide all the txs in which the account was involved and which increased the account's expected nonce. The estimation is clearly using nonce=1, but when I start Devnet, the nonce of the provided sender address (0x5203543c86954365dd0702cb342d7b292128c5a2fc6fdd18248dcce8ef94504) is 0.

@tabaktoni can you check this scenario from starknet.js side?
All of Starknet.js tests pass with the latest devnet

I believe I've identified the reason behind the error.
All invokes seem fine. The only one that fails is the UDC invoke when the contract requires arguments, but none are actually passed.
That caused all the declare txs to fail and therefore all the other invoke calls to declared contract to fail (this was not obvious from the empty revert messages).
Previously, it worked on devnet, presumably because zeros were passed by default. To verify whether this is a bug or a feature, I tested it on testnet: https://testnet.starkscan.co/tx/0x3b7c2acebf191a7a851ad85efbc48d7c42f6627576c8da7ee0d25bc783d422c
It appears that, at least for Cairo 2 contracts, all arguments required by the constructor should always be passed. So this is indeed a feature, and I apologise for any trouble 😅


chapter2: fix example for open_pic

rename open-pic to open_pic to be syntactically valid
add a name@addr to open_pic, because dtc otherwise says it cannot be found

resolves #75

Happily compiles - thank you! :)

this now compiles without warnings


#973 footer problem, changed button class,  align h1

Fixes #973
Describe the changes you have made in this PR -

Footer issue fixed
made h1 and notification count align in same line
Changed the class of the button to make it look more like a button.

Screenshots of the changes (If any) -

Coverage remained the same at 84.266% when pulling a37ff64e068a340c71975f81a94471b44d958a00 on abstrekt:UI into 0499c088b162e52aa8bbe2dbaf68a002beef5c0c on CircuitVerse:master.

Please hold, there are a few more fixes to be done, for mobile view, something don't look right.

I hope it's done. @MrBartusek


Remove tmpdir and tmpfile utility context managers

We have tmpdir and tmpfile utility context managers
https://github.com/dask/dask/blob/b46d8710ea648dbc822e104b0991f8a29bf5d125/dask/utils.py#L124-L125
https://github.com/dask/dask/blob/b46d8710ea648dbc822e104b0991f8a29bf5d125/dask/utils.py#L106-L107
which I suspect were originally introduced back when Dask still supported Python 2.7.
Today, since our minimum supported Python version is 3.7, we can replace our internal usage of tmpdir with tempfile.TemporaryDirectory (or the pytest tmpdir fixture when used in a test) and tmpfile with tempfile.TemporaryFile from the standard library.

I'm not sure if using tempfile.TemporaryFile (or tempfile.NamedTemporaryFile) is the right way to proceed. From the documentation it seems that it can cause troubles on Windows:

Whether the name can be used to open the file a second time, while the named temporary file is still open, varies across platforms (it can be so used on Unix; it cannot on Windows NT or later).

More info here. This is further confirm by the fact that the failing test in the draft are only on Windows environments.
In addition, if I understood correctly, tmpfile only returns the name of the file not the file itself, it creates the file and removes it immediately after.

extension = "." + extension.lstrip(".")
handle, filename = tempfile.mkstemp(extension, dir=dir)
os.close(handle)
os.remove(filename)

try:
    yield filename

A possible solution would be to do something around this line, but I don't know if is better than what is currently implemented.

Nice detective work @mesejo! I left a comment over in https://github.com/dask/dask/pull/7803

@jrbourbeau checking in here, I noticed that the PR that "fixes" this issue was closed and not merged since there is still use for tmpdir and tmpfile. See https://github.com/dask/dask/pull/7803#issuecomment-893899855 . Should we close this issue then?


Replace white space from base64 string

When there is white space in the encoded data, the system converts it into a jpeg. But it cannot decode to a real image. Replacing the white spaces with '+' sign handles the issue.

Base64 encoded string cannot contain whitespace by specification: https://en.wikipedia.org/wiki/Base64
If your string does contain it, please fix it where it should be fixed (on the client for example, that sends the incorrect string)

But will it not be better to handle the situation if the client is sending Base64 encoded string with space? Even raising an exception may also help the user to understand the problem.
I faced this issue and it was really frustrating & hard to find the problem.

@sjdrabbani raising an exception might be ok actually. Removing spaces should be done in the app controller then imo, not in the gem


Upgrade org.springframework.boot:spring-boot-test 2.7.11 -> 2.7.12

This PR contains the following updates:

Package
Type
Update
Change

org.springframework.boot:spring-boot-test (source)
compile
patch
2.7.11 -> 2.7.12

Release Notes

spring-projects/spring-boot
v2.7.12
Compare Source
:lady_beetle: Bug Fixes

Welcome page may return a 404 when an acceptable response cannot be produced #35552
Invalid reference format error when tagging images using Podman #35358
FactoryBean.getObject for non-singleton executed when resetting mocks #35324
Can't use PEM encoded PKCS#8 EC keys with server.ssl.certificate-private-key #35322
Webflux server gracefulshutdown throws NullPointerException #35264
Health actuator mail details shows the port as -1 when using the default port #35247
SessionRepositoryFilterConfiguration can cause early initialization of SessionRepository beans including Redis #35240
Devtools main method search algorithm can find incorrect main method #35214
When a WebFlux app is deployed to Cloud Foundry some metrics are lost and numerous beans are ineligible for post-processing #35163
Liveness and readiness probes return down when lazy initialization is enabled #35161
Treating a null Flyway-specific password as an empty string prevents the use of PGPASS for authentication #35110
WebClient auto-configuration tries to use HttpComponentsClientHttpConnector when all required classes are not present #34964
MinIdle and MaxValidationTime properties missing for R2DBC pools #34724

:notebook_with_decorative_cover: Documentation

Polish formatting of permitAll() endpoint security Kotlin example #35454
Wrong anchors in Maven plugin documentation #35371
Correct list of annotations that are equivalent to @SpringBootApplication #35180
Harmonize references to application.yaml files in reference docs #34628

:hammer: Dependency Upgrades

Upgrade to Elasticsearch 7.17.10 #35339
Upgrade to Hazelcast 5.1.6 #35440
Upgrade to Johnzon 1.2.20 #35340
Upgrade to Json-smart 2.4.11 #35549
Upgrade to Micrometer 1.9.11 #35290
Upgrade to Netty 4.1.92.Final #35441
Upgrade to Reactor Bom 2020.0.32 #35291
Upgrade to Spring Data Bom 2021.2.12 #35292
Upgrade to Spring Integration 5.5.18 #35294
Upgrade to Tomcat 9.0.75 #35442

:heart: Contributors
Thank you to all the contributors who worked on this release:
@JunJaBoy, @aasaru, @davin111, and @ivandimitrov8080

[ ] If you want to rebase/retry this PR, check this box

Suggested commit message:
Upgrade Spring Boot 2.7.11 -> 2.7.12

See:
- https://github.com/spring-projects/spring-boot/releases/tag/v2.7.12
- https://github.com/spring-projects/spring-boot/compare/v2.7.11...v2.7.12


support py39

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

Not sure why a new build is necessary but go ahead with merging. 👍

This is to compile for Python 3.9, however the build is failing. I didn't actually notice I was requesting a review.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

requirements: run: matplotlib-base<=3.3 must contain a space between the name and the pin, i.e. matplotlib-base <=3.3

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender


Fix table in LOW_LEVEL_API_GUIDE.md

Any reason why this pull request hasn't yet been merged?

Any reason why this pull request hasn't yet been merged?

The issue will be fixed as part of the next release. So I close this pull request.


Fix iOS 11.4 bug

Fix on iOS 11.4 the following error : "this.getCurrentRange is not a function".
I got this error on my webapp when was going from a page with a bootstrap-wysiwg area to another page.

Thanks @pierre42100! Looks good to implement, will just run some tests to confirm.
Does this only appear on iOS? I wonder if we were getting this error elsewhere too.

In fact, I am sure this bug does not occurs on Firefox, but I have not tested any other browser...


lubuntu audio

since this isn't really a bug but have you tested lubuntu on this or is it the same as normal ubuntu?

As long as you stick to the latest release, it should work like normal.

i have 22.04.3 is that good?

you want 23.10


Show Channel Reserves in the UI

Get 1M sat channel opened to you (from LSP or ask someone to open a channel to you)
Deposit 6000 sats
Balance still shows 0 (6000/10000 in channel reserve).

@reneaaron do you have an idea for a nice UX for this?

This has been added to the channel list.


Add paging capability to iterate method

Hi Jens, I am with GreatVines in Portland, USA. I used IDBWrapper to create a mock implementation of the Salesforce SmartStore (a database component in the Salesforce Mobile SDK). Since SmartStore is able to "paging" with a configurable page size, we added this capability to the IDBWrapper's iterate method. Maybe this feature could be added to IDBWrapper.
Peter

Pagination available in version 1.5, closing this.


:herb: Remove generators from the legacy API

This PR removes generators from the legacy API otherwise the legacy api since you dont want that to affect the SDKs anymore.

Thanks @dsinghvi 🙏


[SP-5936] Backport of PDI-19132 - JSON Input step behavior changes wh…

…en the order of the fields is changed (9.1 Suite)
cherry-pick of 7cf543b47b3c10356b60bc75af754c73946a87ba and 096157df1fc11bf2a36a4d0f772a1c322c74e5bc
from https://github.com/pentaho/pentaho-kettle/pull/7943
@smmribeiro @bcostahitachivantara @moraesvc

:white_check_mark: Build finished in 8m 4s
Build command:
mvn clean verify -B -e -Daudit -amd -pl plugins/json/core

:ok_hand: All tests passed!
Tests run: 83, Failures: 0, Skipped: 0    Test Results

:information_source:  This is an automatic message


Nested pool/with-connection

It would be really nice if pool/with-connection could ignore nested pool/with-connection's otherwise, in some situations, it's hard to get the same connection previously obtained from the top level pool/with-connection to keep working in the same transaction.

Hm, that one sounds quite strange to me. How can you have nested pool/with-connection expressions? I know it's possible technically but I think one should avoid this at any cost. Usually, you obtain a connection, do the logic, and return the connection back.
Maybe you share some code fragments?

@igrishaev Yeah, this might seem strange and I didn't find an example of such behavior in JDBC but certain application architectures could benefit from this.
For example if you have a clean separation of concerns in your application you might end up with several logical layers such business logic layer, data management layer and interface layer(e.g., HTTP API). Each of these layers should know as little as possible about each other. Control flow would look something like this: interface -> business logic -> data layer. (Module dependency graph would different, see https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)
The problem is that business logic layer, primary user of the data layer, shouldn't know about DB connections or any other low level data layer detail, so if we instantiate DB connection on each HTTP request inside request handler and pass this connection through business logic layer to data layer then we would leak data layer implementation details to two unrelated application layers.
To achieve this separation it is tempting to move DB connection instantiation to the data layer, so that only the data layer is responsible for grabbing a connection from the pool and doing its work. But doing it this way leads us to possibility of nested with-connection calls within data layer in situations similar to the one I described in https://github.com/igrishaev/pg2/issues/12#issuecomment-2227427536, just replace "transaction" with "connection".

Since #12 has been fixed, I'd like to ask if this one is still actual. I've been thinking about a case with two nested pool/with-connection macros but I could not. Of course, it's possible but to me, it clearly signals about something wrong in the code. One should never mix a pool and a connection because it leads to a mess.

Closing as I'm not sure if it's really needed.


Option to release memory after solving finishes

We are running a program flow that solves three different large mip or lp problems in a row. Subsequent problems' parameters or constants are dependant on the results of the previous problems. The issue we have is memory occupation. The large mip problems use multiple gigabytes of memory and sometimes up to 50 Gb. In the program flow, we saw almost no memory release when one problem solving is finished and the memory ocupation remains very high and grows as the next problem starts. Solving also takes a long time (about one hour). When the memory usage is high, solving takes even longer as the machine has its limitations.
We would like to have an option to release memory when one problem is solved so RAM is saved for the next problem. We have done some research and found that Problem._clear_solution() does this by assigning None to variables, constraints, dual_variables, _value, _status, _solution and it does release about a fifth of the memory.
We are wondering if there are more attributes we should clear to reduce memory effectively.

Quote from @PTNobel on discord: "Probably the easiest thing to do here is spawn a subprocess for each solve and serialize the information you need for the next problem
When a subprocess exits, it'll automatically clear all its memory
And since your solve times are around an hour, the overhead of the process spawning and IPC is probably negligible".


CAMEL-11304

Added functionality for distinct queries in the camel-mongodb3 component.  Source code has been merged with latest from upstream and code style has been verified.

Hi, Could you squash your changes to a single commit?

This looks good, btw as @onders86 suggested it's better to squash the commit.

We can also squash it for you, I have a squash alias I find handy
squash	 => !f(){ git reset --soft HEAD~${1} && git commit --edit -m"$(git log --format=%B --reverse HEAD..HEAD@{1})"; };f

I found it somewhere on one of those git expert sites
And remember to run a --rebase before merging so the git tree is a straight line

Okay I have cherry-picked the commit into master, this PR can be closed


Typo: MilliSeconds shouldn't be camelcase

Found it this way in a few files

specification/cognitiveservices/resource-manager/Microsoft.CognitiveServices/stable/2017-04-18/examples/GetOperations.json
specification/monitor/resource-manager/microsoft.insights/preview/2017-05-01-preview/metricDefinitions_API.json
specification/monitor/resource-manager/microsoft.insights/preview/2017-05-01-preview/metrics_API.json
specification/monitor/resource-manager/microsoft.insights/stable/2016-03-01/metricDefinitions_API.json
specification/monitor/resource-manager/microsoft.insights/stable/2016-09-01/metrics_API.json
specification/monitor/resource-manager/microsoft.insights/stable/2018-01-01/metricDefinitions_API.json
specification/monitor/resource-manager/microsoft.insights/stable/2018-01-01/metrics_API.json
specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/6.2/servicefabric.json
specification/servicefabric/data-plane/Microsoft.ServiceFabric/stable/6.3/servicefabric.json

Not going to pursue this


Question: Does BAAI/bge-reranker-v2-minicpm-layerwise work with CPU or it only supports CUDA?

I do think minicpm works on CPU, but does your model work on CPU? If not, can you provide an example of providing inference service using your model or even a Docker container?

It works well with FlagEmbedding on CPU. Closing the issue.


[gitlab] Fix deb gpg key retrieval in arm Dogstatsd package job

What does this PR do?

Removes the AWS_CONTAINER_CREDENTIALS_RELATIVE_URI variable definition in the dogstatsd_deb-arm64 job definition.
Motivation

arm64 runners do not need that variable definition. It makes the aws CLI look for credentials in the wrong place for these runners.
Fixes an issue with #10574.
Describe how to test/QA your changes

Run a complete pipeline, check that the dogstatsd_deb-arm64 job does not fail.
Reviewer's Checklist

[x] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[x] The appropriate team/.. label has been applied, if known.
[x] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[x] A release note has been added or the changelog/no-changelog label has been applied.
[x] Changed code has automated tests for its functionality.
[x] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[x] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[x] If applicable, the need-change/operator and need-change/helm labels have been applied.
[x] If applicable, the config template has been updated.

@albertvaka could you have a look? CI is having a bit of trouble but I think the errors are unrelated to this change


Checked attributes array and mutators

This will allow to get the value from a mutator, for example, if a method called getTitleAttribute is set on the model, the method getBuyableDescription will return it's values.
    public function getTitleAttribute()
    {
       return $this->color . ' ' . $this->length;
    }

This way there is no need to override the method getBuyableDescription

Can't you just implement the Buyable interface? And why can't you override the method?


RFC for plan preview feature

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

Let's make this roll 🎸
/lgtm

Thank you for the great RFC!


Move Prismic Linting over to Github actions, occur once a day only

Prismic linting is a Buildkite task that runs on every branch's every commit that is pushed to Github. It's also triggered every 20 minutes of office hours. I believe that it is not necessary. The linting report get consulted at most once a day, so putting this on a once a day schedule instead would be a better use of resources.
The script currently scours the Prismic data for these checks;

Look for eur01 safelinks.  These occur when somebody has copied a URL directly from Outlook and isn't using the original URL.
Look for preview.wellcomecollection.org links.
Look for broken links to interpretation types on events.
Contributor links that don't begin with http or https will be treated as relative URLs on the front-end, e.g. www.example.com becomes wc.org/articles/www.example.com.
Stories without a Promo image should be rare as they are considered required now, but older articles won't necessarily have them.
Contributors have a sameAs field which is used to generate links to their pages elsewhere, e.g. social media or organisation websites.

I don't think any of this requires the script to be run that often.
Had a chat with @kenoir, he's expressed interest in taking it away from Buildkite into a Github action. This would also mean having to set up appropriate AWS access for Github actions in the wc.org repo, which would probably be useful in the future anyway. That has been done before in other repos so there is a reference available.

Depends on https://github.com/wellcomecollection/platform/issues/5752 being done

Changes are deployed so we'll see when we get back if it ran at 8am.

The action worked the last few days 👍 people were told about the change in Slack and we've tweaked the schedule to be earlier to account for BST/GMT (will now run at 4UTC)


[Update Request]: Nlitesoft.NTLite newer version.  Installer hash does not match.

What type of update are you requesting?
A new version of an existing package
Current Package Identifier
Nlitesoft.NTLite
Package Version
v2024.11.10166
Please describe the changes you would like to see
The current NTLite installation package was built for v2024.11.10163.0 and includes the hash for that version.
However, NTlite has been updated on the download site to v2024.11.10166.0, which has a different hash.
Installation or updates fail with error message: Installer hash does not match
Please update package to current hash found at: https://www.ntlite.com/download/

This issue appears to have resolved in pull request #191323 .

This issue appears to have resolved in pull request Automatic update of Nlitesoft.NTLite from 2024.11.10163.0 to 2024.11.10166.0 #191323 .

If this is incorrect, please @ me and I'll reopen.


Update documentation for react-native-reanimated and bump version in Example

react-native-reanimated v2 has quite a bit more set-up. It's not immediately clear that when installing the library, you have to be using v2 of the library.
Also, things like Direct Debugging are things that people who install v2 may not be expecting.
Also, we should bump the version in the example to 2.0.0-rc.2

I'm facing this issue when trying to bump the version https://github.com/software-mansion/react-native-reanimated/issues/1640
The workaround is to comment out the line responsible for the issue inside the node_modules. But wouldn't be able to deploy the preview from github actions.

I'm facing this issue when trying to bump the version https://github.com/software-mansion/react-native-reanimated/issues/1640
The workaround is to comment out the line responsible for the issue inside the node_modules. But wouldn't be able to deploy the preview from github actions.

@PedroBern I had to --reset-cache to make this go away I think?

@PedroBern I had to --reset-cache to make this go away I think?

I tried all kind of reset cache, including the metro bundler, but I still have the issue.

here is the explanation

I'm facing this issue when trying to bump the version software-mansion/react-native-reanimated#1640

While trying to test #58 in an actual app I've also ran into this. None of the reanimated rc versions worked (0, 1 or 2).
What did you do for a workaround @PedroBern? Commenting out the offending line is not something I can do in this project.

@andreialecu I did nothing, kept the rc.0. I faced this issue only with rc.1 and rc.2. Are you using expo? here are some useful commands to clean all the cache I tried (just updated to yarn) without success.
But you are not supposed to have this issue if not using expo.

I'm not using expo, on rc.0 I'm getting a different error instead though:
ReferenceError: Can't find variable: _globalSetter

Which seems to be reported here: https://github.com/software-mansion/react-native-reanimated/issues/1587
I cleared the caches using --reset-cache, without success.

Oh, nevermind. After adding the babel plugin it works now (on rc.0, didn't try the others):
  plugins: ['react-native-reanimated/plugin'],

I had this issue too and right now I'm pretty confused on what I should to.

You will be unable to use Remote JS Debugging if you use the new APIs from Reanimated 2
Expo (https://docs.expo.io/versions/latest/sdk/reanimated/)

It should be mentioned somewhere


Next and Previous buttons don't disable

When you load an image that is in a folder with more than one image, the next and previous buttons are enabled.  If you then load an image that is by itself in a folder, they do not disable.  Further, when clicked, they cycle through the folder with multiple images.

isn't the cycling intentionally, at least in the code and test it does it:
            'next': allImages[(index + 1) % len(allImages)]

The problem is here: https://github.com/DigitalSlideArchive/HistomicsTK/blob/master/web_client/views/layout/HeaderImageView.js#L73-L75 (and similar for previous).  If there is only one image, _nextImage is not initially set and is not changed.


Datetime picker not working with aot

Code (from example):
<mat-form-field>
    <input matInput [ngxMatDatetimePicker]="picker" placeholder="Choose a date" [formControl]="dateControl">
    <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
    <ngx-mat-datetime-picker #picker></ngx-mat-datetime-picker>
</mat-form-field>

Error:
Type 'NgxMatDatetimePicker' is not assignable to type 'MatDatepicker'.

Hi,
This repo is no longer supported, please consider using the repository angular-material-components instead.
This issue was fixed in @angular-material-components/datetime-picker v2.0.1
npm install --save  @angular-material-components/datetime-picker

Free free to open issue here.
Thank you very much.


Identify a suitable source of fundamentals data

Option 1 - from LSE - URL can be constructed from their securities download...
http://www.londonstockexchange.com/exchange/prices/stocks/summary/fundamentals.html?fourWayKey=GB0031348658GBGBXSET0

Option 2 - from Reuters...
http://uk.reuters.com/business/quotes/financialHighlights?symbol=BARC.L


Edit this page button 404 error

Edit this page button assumes master is the name of our main branch. Need to force Edit this page button to point to main not master.

Should be resolved!


Problem with the checklistbank

Frontend version: 5160964 March 15, 2022 5:32 AMBackend version: 6a9c69c March 4, 2022 12:00 AM
Yesterday's CoL conversion is running 27 hours, and still is in progress:
https://www.checklistbank.org/imports/running?limit=10&offset=0&state=waiting&state=preparing&state=downloading&state=processing&state=deleting&state=inserting&state=matching&state=indexing&state=analyzing&state=archiving&state=exporting
Last time, in February, a conversion took ~16h

the search index rebuilt in parallel interferred. We should avoid that in the future, there are some table locks I need to avoid

killed the indexing and now its fine


Fixed invisible escape character on line 22

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Markdown exhibiting some weird behavior (back ticks not producing inline code mark), so I used the 'code' tags and escaped the backslash directly.

Thank you for your contribution to the page! 👍
We're happy to accept these changes, and look forward to future contributions. 🎉


FIX: allowing these changes made in halinterface components

through https://code.rdkcentral.com/r/32338
Signed-off-by: manigandan.gopalakrishnan<EMAIL_ADDRESS>

https://jenkins.code.rdkcentral.com/job/github-triggered/133/ started

https://jenkins.code.rdkcentral.com/job/build-component-rdk-next/8727/ started.


ARROW-302: [C++/Python] Implement C++ IO interfaces for interacting with Python file and bytes objects

This will enable code (such as arrow IPC or Parquet) that only knows about Arrow's IO subsystem to interact with Python objects in various ways. In other words, when we have in C++:
std::shared_ptr<io::ReadableFileInterface> handle = ...;
handle->Read(nbytes, &out);

then the C++ file handle could be invoking the read method of a Python object. Same goes for arrow::io::OutputStream and write methods. There's data copying in some places overhead because of the rigid memory ownership semantics of the PyBytes type, but this can't be avoided here.
Another nice thing is that if we have some data in a Python bytes object that we want to expose to some other C++ component, we can wrap it in the PyBytesReader which provides zero-copy read access to the underlying data.

@xhochy there's a small API change here, I will patch Parquet and bump the pinned hash

+1

I hope to get some time to setup clang-static-analyzer for arrow in the future. That should help us in the question about where you need virtual for destructors and also notify us of virtual method calls in constructors.


Update nf-core template

Description of feature
A new version of the nf-core tools and template is available. Let's update 🚀

Closed by PR #121


Extend traffic shifting test to include VM tests

This PR extends pilot/traffic_shifting.go test to include tests for VMs. This test keeps the original non-vm tests, and added pre- and post-submit tests.
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[X] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

/test all

@ZhengzheYang: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
4052db5064a4bc08046471908a17a5efae2b2566
link
/test integ-pilot-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@ZhengzheYang: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
4052db5064a4bc08046471908a17a5efae2b2566
link
/test integ-pilot-k8s-tests_istio

integ-multicluster-k8s-tests_istio
ce88d4771197ac77d34471f07cbb5acf73cf111b
link
/test integ-multicluster-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@ZhengzheYang: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
4052db5064a4bc08046471908a17a5efae2b2566
link
/test integ-pilot-k8s-tests_istio

integ-multicluster-k8s-tests_istio
ce88d4771197ac77d34471f07cbb5acf73cf111b
link
/test integ-multicluster-k8s-tests_istio

unit-tests_istio
ce88d4771197ac77d34471f07cbb5acf73cf111b
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@ZhengzheYang: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
ce88d4771197ac77d34471f07cbb5acf73cf111b
link
/test unit-tests_istio

integ-security-k8s-tests_istio
ce88d4771197ac77d34471f07cbb5acf73cf111b
link
/test integ-security-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

/retest

@howardjohn Could you please take a look?

So this is a Pod -> 3 VMs? Is that accurate? Whatever it is we can comment above the test to clarify.
Yes, this is a Pod-> 3 VMs. I will make it clear after I address your next comment.

I feel like it may be more useful to have a pod -> {1 vm, 2 pods}. Then we can verify you can route between the two. We don't even really need a test that is pod -> {3 pods} in this case, as its pretty redundant? What do you think
I think this makes sense. Thanks for pointing this out, since we indeed only need 1 test to test both VM and pods. That is more clever and cleaner. Will update!

@ZhengzheYang: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-multicluster-k8s-tests_istio
e905218a964fca6626a64a359dac528e37009404
link
/test integ-multicluster-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ZhengzheYang: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-multicluster-k8s-tests_istio
e905218a964fca6626a64a359dac528e37009404
link
/test integ-multicluster-k8s-tests_istio

lint_istio
e905218a964fca6626a64a359dac528e37009404
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ZhengzheYang: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-multicluster-k8s-tests_istio
e905218a964fca6626a64a359dac528e37009404
link
/test integ-multicluster-k8s-tests_istio

lint_istio
e905218a964fca6626a64a359dac528e37009404
link
/test lint_istio

gencheck_istio
e905218a964fca6626a64a359dac528e37009404
link
/test gencheck_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.