typing(_extensions).TypedDict: Fix to treat as open by default

trycast() was originally designed to recognize mypy_extensions.TypedDict (which is closed) and therefore assumes that all TypedDict instances are closed by default. This is incorrect when working with a typing.TypedDict or typing_extensions.TypedDict (which is open). Please fix trycast() to recognize the latter types as open correctly.
Background & History
The original mypy_extensions.TypedDict was closed by default: A typechecker would not allow you to add unrecognized keys to such an instance.
However the later-implemented typing.TypedDict and typing_extensions.TypedDict are open by default: A typechecker WILL allow you to add unrecognized keys to such an instance. (Typecheckers will however complain if you add unrecognized keys in a TypedDict literal.)
Appendix: Other Libraries
FWIW, all other notable runtime type checking libraries that recognize TypedDicts also incorrectly treat them as closed at the time of writing:

runtype – runtype.validation.isa(value, T)

Also there was considerable confusion on the typing-sig mailing list about the default open vs. closed state of TypedDicts recently:

Any way to express that a dict is expected to have a key(s) but don't care about other keys?

However the later-implemented typing.TypedDict and typing_extensions.TypedDict are open by default: A typechecker WILL allow you to add unrecognized keys to such an instance.

Hmm. I seem to be mistaken. Consider the following program run through mypy 0.950:
from typing import TypedDict

class Movie(TypedDict):
    name: str
    year: int

class BookBasedMovie(Movie):
    based_on: str

def foo() -> None:
    m: Movie = Movie(name='Matrix', year=1999)
    m['based_on'] = 'something'  # can add "unknown" key to Movie?
        # error: TypedDict "Movie" has no key "based_on"  [typeddict-item]
    m['on_dvd'] = True  # can add "unknown" key to Movie?
        # error: TypedDict "Movie" has no key "on_dvd"  [typeddict-item]

    bm: BookBasedMovie = BookBasedMovie(name='Matrix', year=1999, based_on='nothing')
    m = bm  # BookBasedMovie assigns to Movie?
        # OK
    reveal_type(m)
        # note: Revealed type is "TypedDict('tests.BookBasedMovie', ...)"
        # 🤔 Type of a variable with an explicit type declaration is not expected to change
    m['based_on'] = 'something'  # can add "unknown" key to X?
        # OK
        # 🤔 This assignment wasn't allowed before when m was a Movie...
    m['on_dvd'] = True  # can add "unknown" key to X?
        # error: TypedDict "BookBasedMovie" has no key "on_dvd"  [typeddict-item]

    m2: Movie = Movie(name='Matrix', year=1999, based_on='nothing')  # disallow instantiation with extra key?
        # error: Extra key "based_on" for TypedDict "Movie"  [typeddict-item]
    bm = m2  # Movie assigns to Movie?
        # error: Incompatible types in assignment (expression has type "Movie", variable has type "BookBasedMovie")  [assignment]

The very first occurrence of m['based_on'] = 'something' in the above program is treated as an error.

Welp, this discovery probably means my "Closed TypedDict" idea from the PyCon 2022 Typing Summit doesn't really make sense: TypedDicts actually are already closed.


embedded runner in lingo

I'm running into issues running multiple LF program regression tests on hardware.
Doing this by hand and collecting the results is quite tedious.
It would be nice for lingo run to utilize a probe-rs backend to allow for this automation for binaries meant for embedded devices.

@gundralaa do you want to tackle this?
This is a blank slate still, because there are no abstraction yet for runners.
See: https://github.com/lf-lang/lingo/blob/main/src/main.rs#L95


Do not add _interruption intent if there are no inputs in that dialog that have AllowInterruption set

At the moment, we cross train and add the _interruption intent to a dialog even if none of the inputs within that dialog have AllowInterruption set. If no inputs allow interruption, we do not need to cross-train interruption intent.
[Optimization, P1]

@vishwacsena if this dialog is not leave node  and it will accept the interruption from children. So for this scenario, even if no inputs allow interruption in this dialog, we still need _interruption intent.


Can it connect OpenAI with system proxy?

If it can connect OpenAI with system proxy ,it will be better!
China region cannot connect OpenAI without proxy!

This issue has been resolved in version 1.4.


ordered-imports does not support path aliases defined in tsconfig

Bug Report

TSLint version: 5.9.1
TypeScript version: 2.5.3
Running TSLint via: CLI (through Angular CLI)

TypeScript code being linted
import { CrudEntity } from<EMAIL_ADDRESS>import { EntityType } from<EMAIL_ADDRESS>
with tslint.json configuration:
        "ordered-imports": [
            true,
            {
                "grouped-imports": true,
                "import-sources-order": "lowercase-last",
                "named-imports-order": "lowercase-first",
                "module-source-path": "full"
            }
        ],

Actual behavior
imports starting with @app are considered as imports from libraries.
Expected behavior
However, tsconfig file specifies @app as:
        "baseUrl": "./src",
        "paths": {
            "@app/*": [
                "app/*"
            ],
            "@env/*": [
                "environments/*"
            ]
        }

So those import shall be considered as parent imports.

I agree this is a huge use case.  I do this for React as well to avoid long paths with many parent dir references (../).  If tslint is aware of tsconfig.json, maybe it should parse paths and baseUrl and resolve them to ../ paths

Facing same issue here. Would really love to use grouped-imports, both in our ReactJS and NodeJS apps, but ordered-imports isn't able to tell library from non-library imports.

I would agree with this. Aliases are becoming more popular and this would be super useful.

What if we could tell TSLint which paths are in fact relative, even though they can look as absolute ones.
{
  "ordered-imports": [
    true,
    {
      "grouped-imports": true,
      ...
      "path-alias-roots": ["$@src/", "$@typings/"]
    }
  ]
}

I use the same trick (add alias to tsconfig.json) but on karma test I get
HeadlessChrome 67.0.3396 (Windows 10.0.0) ERROR
  Uncaught Error: Missing: SyncTestZoneSpec
  at http://localhost:9876/_karma_webpack_/vendor.bundle.js:270128

Did I miss something ?

What if we could tell TSLint which paths are in fact relative

Typed rules are able to access program.getCompilerOptions() so we shouldn't have to manually provide this in the rule's configuration.
Since the requested behavior is apparently popular in the Angular community, it seems reasonable that this could be made into an OptionallyTypedRule to enable an opt-in configuration setting to read path aliases from the compiler settings.

@ppowstanski Late on the conversation, but we can simply define it like this:
"no-implicit-dependencies": [true, ["dev", "@src"]], // add any alias in the array

And avoid having to add fake optional dependencies in the package.json.

I'd prefer looking at program.getCompilerOptions() (as @JoshuaKGoldberg suggested) rather than adding additional rule configuration. That way, there's only one source of truth for custom path mappings.

☠ TSLint's time has come! ☠
TSLint is no longer accepting most feature requests per #4534. See typescript-eslint.io for the new, shiny way to lint your TypeScript code with ESLint. ✨
It was a pleasure open sourcing with you all!

🤖 Beep boop! 👉  TSLint is deprecated 👈 (#4534)  and you should switch to typescript-eslint! 🤖
🔒 This issue is being locked to prevent further unnecessary discussions. Thank you! 👋


Increase default timeout value

See https://github.com/gohugoio/hugo/issues/6501 etc.
The main motivation behind the timeout is to bail out of circular loops, and if that is 10 seconds or 30 seconds does not matter too much.
/cc @anthonyfok I noticed you did a recent change in Mage file. Maybe we should agree on a new default "higher value"

/cc @anthonyfok I noticed you did a recent change in Mage file. Maybe we should agree on a new default "higher value"

I did not set a custom timeout to magefile.go, but rather, just in .travis.yml, i.e. setting the environment variable HUGO_TIMEOUT=30000 specifically for the mage -v check run on arm64 (or non-amd64) because I thought it was somewhat specific to the current ARM64 hardware that Travis CI uses.
I am certainly fine with increasing the default timeout value to whatever is appropriate to fix e.g. #6501.  The only concern I could think of is that a longer timeout, if not accompanied by a message notifying what Hugo is currently doing, might leave the end user wondering why Hugo seemingly becomes unresponsive.  (though probably a non-issue)


Loading tests is... so... slow...

Yeah I think this is because we send the full serialization string over the wire. It's not needed.  We could just send the name.

It could also be related to the collection refiltering and the UI painting.

@CyrusNajmabadi and I looked at this. It's a confluence of several things:

Yes, we're serializing more than we need to. We can do less.
xUnit's TestMessageVisitor isn't all that efficient at dispatching messages due to tons of 'as' casts at the JIT level (see https://github.com/xunit/xunit/blob/fe8d78df7cfec55ddab93c29ea96b0032ca998a8/src/common/TestMessageVisitor.cs#L53). We can do better by implementing IMessageSink ourselves.
We're using AppDomains to do test discovery, which is overkill when we've got the worker process. We should just recycle the process.
We can do a better job of adding test cases to the UI in batches.

We can probably do more here, but PRs #37, #38 and #40 make this experience much better.


Silence most of the noise from smoke-tests

Slight convolutions with $CONTAINERID and weave_cmd_on to minimise diffs in the individual tests.
If you prefer to see indication of progress, run test with -v.

The weave_cmd_on thing is horrible. Overall, the solution here does not seem justified by the problem it is attempting to solve. The noise has never bothered me, and I much prefer it to a) littering the code with >/dev/null or constructing two flavours of a whole bunch of functions.

@awh @paulbellamy any opinions on this?

I've done the non-intrusive part of this on master. We are left with some container ids in the output. Doesn't bother me. -> closing.


demucs crash on ROCm 5.6.1 on RX 6700 XT

I posted an issue here, but it's not the right place, since it's occurring inside of PyTorch.
https://github.com/facebookresearch/demucs/issues/556

Maybe you should also open an issue under pytorch/pytorch

Closing this ticket as issue has been fixed in https://github.com/pytorch/pytorch/issues/111355


chore(flagd): refactoring codebase into multiple classes

This PR

refactor the codebase into more packages and classes

Related Issues

Fixes #365

Thanks @thisthat ! Looks much better IMO.


Fix: FetchResults truncates rows returned by the server

Description
Apache Hive thrift always sends HasMoreResults==false even when more results are available. This change updates the Next() method to continue fetching pages of results until an empty page is received.
This quirk of behaviour also affects the Databricks NodeJS connector and we work around it in a similar way there.

I added an e2e test for this behaviour. Double-checked that it failed prior to this fix and now passes. I also ran all the unit tests locally with go test and confirmed they pass.


Pressurized soft bodies can roll on their own

Gridded pressurized soft body meshes of high poly spheres roll to the right on completely flat ground. To recreate, change the spawned soft body in examplesceneblobs.cpp to have a poly count of 32 or higher, and up the rigidities.

Thank you. If you are using the area preserving feature in soft body objects, you need to release the internal springs. You can use the SetPassivationOfInternalSpringsEnabled(bool value) method for this. If you don't do this, both the internal springs and other pressure constraints will cause stress. Similarly, it is not recommended to use the shape matching feature.

Yeah, no problem, I've been looking for a softbody physics engine for some time, and appreciate that you're sharing your work.
I am not using the shape matching, and I have the internal springs disabled, as far as I can tell. The perams for my recreation case is as follows:
griddedPressuredBody->AddMesh( QMesh::CreateWithPolygon(32,64,QVector::Zero(),-1 ) );
griddedPressuredBody->SetRigidity(0.8f)->SetPosition(mousePosition)->SetMass(0.5f);
griddedPressuredBody->SetAreaPreservingEnabled(true)->SetPassivationOfInternalSpringsEnabled(true)->SetAreaPreservingRigidity(0.5f);

It's a change to lines 61 to 63 in examplesceneblobs.cpp I made to test this when I noticed similar behaviour in godot.

I will make a test again with your codes at tomorrow. I'll go back to you again.

I tried building with the latest commits, but things seem more broken now. In ExampleSceneMixedBodies and ExampleSceneSoftBodies, soft bodies seem to spin themselves to certain orientations. ExampleSceneBlobs does not spawn any blobs.

I tried building with the latest commits, but things seem more broken now. In ExampleSceneMixedBodies and ExampleSceneSoftBodies, soft bodies seem to spin themselves to certain orientations. ExampleSceneBlobs does not spawn any blobs.

The recent commits were about shape matching problems. Since we are still in the development versions and do not have a stable release yet, you may encounter various issues when trying out the commits. I will soon be working on the issues mentioned here and will write about them as well.

I addressed this issue in the latest update. Firstly, there is no calculation error in the area preserving implementation that could cause this problem. However, as the number of particles increases, the pressure exerted by the particles' weights on the area that needs to be preserved by the body causes it to move in one direction. To prevent this, the weight of the body can be reduced, the newly added air friction feature in the library for bodies can be increased (default is 0.01), the ratio of the preserved area can be decreased, and the existing potential pressure can be reduced. In the latest update, the particle count has been increased to 32 in the blobs example scene to observe the positive effect of air friction.  If you don't have any further questions or issues, I will close this issue for now.


BUG:? clEnqueueNDRangeKernel failed with error code -5 (Out of resources)

When trying to run bulk_csv.py, I got the opaque error "An internal error occured while running the GPU program". Setting STL to 'debug' gave the following additional info:
initializing the environment
Initializing the device
processing train_decomp_daily.csv
running stl
Running the program
Traceback (most recent call last):
  File "/home/feefladder/miniconda3/envs/hastl/lib/python3.11/site-packages/hastl/stl.py", line 205, in fit
    s_data, t_data, r_data = self._fut_obj.main(Y,
                             ^^^^^^^^^^^^^^^^^^^^^
  File "/home/feefladder/miniconda3/envs/hastl/lib/python3.11/site-packages/futhark_ffi/__init__.py", line 158, in wrapper
    self._errorcheck(err)
  File "/home/feefladder/miniconda3/envs/hastl/lib/python3.11/site-packages/futhark_ffi/__init__.py", line 108, in _errorcheck
    raise ValueError(self._get_string(self.lib.futhark_context_get_error(self.ctx)))
ValueError: build/temp.linux-x86_64-cpython-311/hastl._stl_opencl.c:38787: OpenCL call
  clEnqueueNDRangeKernel(ctx->opencl.queue, ctx->mainzisegmap_intragroup_217594, 1, ((void *)0), global_work_sizze_237177, local_work_sizze_237181, 0, ((void *)0), ctx->profiling_paused || !ctx->profiling ? ((void *)0) : opencl_get_event(&ctx->opencl, &ctx->mainzisegmap_intragroup_217594_runs, &ctx->mainzisegmap_intragroup_217594_total_runtime))
failed with error code -5 (Out of resources)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/media/feefladder/c/Git/hastl/examples/bulk_csv.py", line 87, in <module>
    process_file(stl_obj, dataset, "{}_decomp_{}.csv".format(out_name, periodicity), n_p)
  File "/media/feefladder/c/Git/hastl/examples/bulk_csv.py", line 24, in process_file
    seasonal, trend, remainder = stl_obj.fit(data.T, n_p = n_p, q_s=999)
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/feefladder/miniconda3/envs/hastl/lib/python3.11/site-packages/hastl/stl.py", line 230, in fit
    raise ValueError("An internal error occurred while running the GPU program") from from_err
ValueError: An internal error occurred while running the GPU program
Unreferencing block arr->mem (allocated as arr->mem) in space 'device': 0 references remaining.
39844928 bytes freed (now allocated: 481310880 bytes)

I've found the following SO questions that I think are related: https://stackoverflow.com/q/50953665
https://stackoverflow.com/a/40221197
EDIT: I forgot to mention that harmonic.py and loess_test.py both work when I set the backend to 'opencl'
CLinfo:

Number of platforms                               1
  Platform Name                                   NVIDIA CUDA
  Platform Vendor                                 NVIDIA Corporation
  Platform Version                                OpenCL 3.0 CUDA 12.2.138
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts cl_khr_gl_event cl_nv_create_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_nv_kernel_attribute cl_khr_device_uuid cl_khr_pci_bus_info cl_khr_external_semaphore cl_khr_external_memory cl_khr_external_semaphore_opaque_fd cl_khr_external_memory_opaque_fd
  Platform Extensions with Version                cl_khr_global_int32_base_atomics                                 0x400000 (1.0.0)
                                                  cl_khr_global_int32_extended_atomics                             0x400000 (1.0.0)
                                                  cl_khr_local_int32_base_atomics                                  0x400000 (1.0.0)
                                                  cl_khr_local_int32_extended_atomics                              0x400000 (1.0.0)
                                                  cl_khr_fp64                                                      0x400000 (1.0.0)
                                                  cl_khr_3d_image_writes                                           0x400000 (1.0.0)
                                                  cl_khr_byte_addressable_store                                    0x400000 (1.0.0)
                                                  cl_khr_icd                                                       0x400000 (1.0.0)
                                                  cl_khr_gl_sharing                                                0x400000 (1.0.0)
                                                  cl_nv_compiler_options                                           0x400000 (1.0.0)
                                                  cl_nv_device_attribute_query                                     0x400000 (1.0.0)
                                                  cl_nv_pragma_unroll                                              0x400000 (1.0.0)
                                                  cl_nv_copy_opts                                                  0x400000 (1.0.0)
                                                  cl_khr_gl_event                                                  0x400000 (1.0.0)
                                                  cl_nv_create_buffer                                              0x400000 (1.0.0)
                                                  cl_khr_int64_base_atomics                                        0x400000 (1.0.0)
                                                  cl_khr_int64_extended_atomics                                    0x400000 (1.0.0)
                                                  cl_nv_kernel_attribute                                           0x400000 (1.0.0)
                                                  cl_khr_device_uuid                                               0x400000 (1.0.0)
                                                  cl_khr_pci_bus_info                                              0x400000 (1.0.0)
                                                  cl_khr_external_semaphore                                          0x9000 (0.9.0)
                                                  cl_khr_external_memory                                             0x9000 (0.9.0)
                                                  cl_khr_external_semaphore_opaque_fd                                0x9000 (0.9.0)
                                                  cl_khr_external_memory_opaque_fd                                   0x9000 (0.9.0)
  Platform Numeric Version                        0xc00000 (3.0.0)
  Platform Extensions function suffix             NV
  Platform Host timer resolution                  0ns

  Platform Name                                   NVIDIA CUDA
Number of devices                                 1
  Device Name                                     Quadro M1000M
  Device Vendor                                   NVIDIA Corporation
  Device Vendor ID                                0x10de
  Device Version                                  OpenCL 3.0 CUDA
  Device UUID                                     c9d4ef51-2577-fa14-ef79-90b937af869d
  Driver UUID                                     c9d4ef51-2577-fa14-ef79-90b937af869d
  Valid Device LUID                               No
  Device LUID                                     6d69-637300000000
  Device Node Mask                                0
  Device Numeric Version                          0xc00000 (3.0.0)
  Driver Version                                  535.104.05
  Device OpenCL C Version                         OpenCL C 1.2
  Device OpenCL C all versions                    OpenCL C                                                         0x400000 (1.0.0)
                                                  OpenCL C                                                         0x401000 (1.1.0)
                                                  OpenCL C                                                         0x402000 (1.2.0)
                                                  OpenCL C                                                         0xc00000 (3.0.0)
  Device OpenCL C features                        __opencl_c_fp64                                                  0xc00000 (3.0.0)
                                                  __opencl_c_images                                                0xc00000 (3.0.0)
                                                  __opencl_c_int64                                                 0xc00000 (3.0.0)
                                                  __opencl_c_3d_image_writes                                       0xc00000 (3.0.0)
  Latest comfornace test passed                   v2022-10-05-00
  Device Type                                     GPU
  Device Topology (NV)                            PCI-E, 0000:01:00.0
  Device Profile                                  FULL_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Linker Available                                Yes
  Max compute units                               4
  Max clock frequency                             1071MHz
  Compute Capability (NV)                         5.0
  Device Partition                                (core)
    Max number of sub-devices                     1
    Supported partition types                     None
    Supported affinity domains                    (n/a)
  Max work item dimensions                        3
  Max work item sizes                             1024x1024x64
  Max work group size                             1024
  Preferred work group size multiple (device)     32
  Preferred work group size multiple (kernel)     32
  Warp size (NV)                                  32
  Max sub-groups per work group                   0
  Preferred / native vector sizes
    char                                                 1 / 1
    short                                                1 / 1
    int                                                  1 / 1
    long                                                 1 / 1
    half                                                 0 / 0        (n/a)
    float                                                1 / 1
    double                                               1 / 1        (cl_khr_fp64)
  Half-precision Floating-point support           (n/a)
  Single-precision Floating-point support         (core)
    Denormals                                     Yes
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 Yes
    Round to infinity                             Yes
    IEEE754-2008 fused multiply-add               Yes
    Support is emulated in software               No
    Correctly-rounded divide and sqrt operations  Yes
  Double-precision Floating-point support         (cl_khr_fp64)
    Denormals                                     Yes
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 Yes
    Round to infinity                             Yes
    IEEE754-2008 fused multiply-add               Yes
    Support is emulated in software               No
  Address bits                                    64, Little-Endian
  Global memory size<PHONE_NUMBER> (3.947GiB)
  Error Correction support                        No
  Max memory allocation<PHONE_NUMBER> (1010MiB)
  Unified memory for Host and Device              No
  Integrated memory (NV)                          No
  Shared Virtual Memory (SVM) capabilities        (core)
    Coarse-grained buffer sharing                 Yes
    Fine-grained buffer sharing                   No
    Fine-grained system sharing                   No
    Atomics                                       No
  Minimum alignment for any data type             128 bytes
  Alignment of base address                       4096 bits (512 bytes)
  Preferred alignment for atomics
    SVM                                           0 bytes
    Global                                        0 bytes
    Local                                         0 bytes
  Atomic memory capabilities                      relaxed, work-group scope
  Atomic fence capabilities                       relaxed, acquire/release, work-group scope
  Max size for global variable                    0
  Preferred total size of global vars             0
  Global Memory cache type                        Read/Write
  Global Memory cache size                        98304 (96KiB)
  Global Memory cache line size                   128 bytes
  Image support                                   Yes
    Max number of samplers per kernel             32
    Max size for 1D images from buffer            134217728 pixels
    Max 1D or 2D image array size                 2048 images
    Max 2D image size                             16384x16384 pixels
    Max 3D image size                             4096x4096x4096 pixels
    Max number of read image args                 256
    Max number of write image args                16
    Max number of read/write image args           0
  Pipe support                                    No
  Max number of pipe args                         0
  Max active pipe reservations                    0
  Max pipe packet size                            0
  Local memory type                               Local
  Local memory size                               49152 (48KiB)
  Registers per block (NV)                        65536
  Max number of constant args                     9
  Max constant buffer size                        65536 (64KiB)
  Generic address space support                   No
  Max size of kernel argument                     4352 (4.25KiB)
  Queue properties (on host)
    Out-of-order execution                        Yes
    Profiling                                     Yes
  Device enqueue capabilities                     (n/a)
  Queue properties (on device)
    Out-of-order execution                        No
    Profiling                                     No
    Preferred size                                0
    Max size                                      0
  Max queues on device                            0
  Max events on device                            0
  Prefer user sync for interop                    No
  Profiling timer resolution                      1000ns
  Execution capabilities
    Run OpenCL kernels                            Yes
    Run native kernels                            No
    Non-uniform work-groups                       No
    Work-group collective functions               No
    Sub-group independent forward progress        No
    Kernel execution timeout (NV)                 Yes
  Concurrent copy and kernel execution (NV)       Yes
    Number of async copy engines                  1
    IL version                                    (n/a)
    ILs with version                              <printDeviceInfo:186: get CL_DEVICE_ILS_WITH_VERSION : error -30>
  printf() buffer size                            1048576 (1024KiB)
  Built-in kernels                                (n/a)
  Built-in kernels with version                   <printDeviceInfo:190: get CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION : error -30>
  Device Extensions                               cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts cl_khr_gl_event cl_nv_create_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_nv_kernel_attribute cl_khr_device_uuid cl_khr_pci_bus_info cl_khr_external_semaphore cl_khr_external_memory cl_khr_external_semaphore_opaque_fd cl_khr_external_memory_opaque_fd
  Device Extensions with Version                  cl_khr_global_int32_base_atomics                                 0x400000 (1.0.0)
                                                  cl_khr_global_int32_extended_atomics                             0x400000 (1.0.0)
                                                  cl_khr_local_int32_base_atomics                                  0x400000 (1.0.0)
                                                  cl_khr_local_int32_extended_atomics                              0x400000 (1.0.0)
                                                  cl_khr_fp64                                                      0x400000 (1.0.0)
                                                  cl_khr_3d_image_writes                                           0x400000 (1.0.0)
                                                  cl_khr_byte_addressable_store                                    0x400000 (1.0.0)
                                                  cl_khr_icd                                                       0x400000 (1.0.0)
                                                  cl_khr_gl_sharing                                                0x400000 (1.0.0)
                                                  cl_nv_compiler_options                                           0x400000 (1.0.0)
                                                  cl_nv_device_attribute_query                                     0x400000 (1.0.0)
                                                  cl_nv_pragma_unroll                                              0x400000 (1.0.0)
                                                  cl_nv_copy_opts                                                  0x400000 (1.0.0)
                                                  cl_khr_gl_event                                                  0x400000 (1.0.0)
                                                  cl_nv_create_buffer                                              0x400000 (1.0.0)
                                                  cl_khr_int64_base_atomics                                        0x400000 (1.0.0)
                                                  cl_khr_int64_extended_atomics                                    0x400000 (1.0.0)
                                                  cl_nv_kernel_attribute                                           0x400000 (1.0.0)
                                                  cl_khr_device_uuid                                               0x400000 (1.0.0)
                                                  cl_khr_pci_bus_info                                              0x400000 (1.0.0)
                                                  cl_khr_external_semaphore                                          0x9000 (0.9.0)
                                                  cl_khr_external_memory                                             0x9000 (0.9.0)
                                                  cl_khr_external_semaphore_opaque_fd                                0x9000 (0.9.0)
                                                  cl_khr_external_memory_opaque_fd                                   0x9000 (0.9.0)

NULL platform behavior
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  NVIDIA CUDA
  clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   Success [NV]
  clCreateContext(NULL, ...) [default]            Success [NV]
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  No platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  No platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  Invalid device type for platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  No platform

ICD loader properties
  ICD loader Name                                 OpenCL ICD Loader
  ICD loader Vendor                               OCL Icd free software
  ICD loader Version                              2.2.14
  ICD loader Profile                              OpenCL 3.0

Any pointers would be very welcome, otherwise if I manage to fix this issue, I think other people might still appreciate this issue as a form of documentation :p

You have most likely run out of registers on your GPU. hastl has been optimized for high-end discrete GPUs. You can try experimenting with parameters of STL() and fit().

What would be a high-end GPU? I have so far tried on the following, and all gave this error:

Quadro M1000M (laptop, initial)

didn't try cropping, did try setting jump values, but nothing worked

Quadro P4000

If the csv's are cropped to 1440, it works, error occurs at 1441 lines

Number of platforms                               1
Platform Name                                   NVIDIA CUDA
Platform Vendor                                 NVIDIA Corporation
Platform Version                                OpenCL 3.0 CUDA 12.2.138
Platform Profile                                FULL_PROFILE
Platform Extensions                             cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts cl_khr_gl_event cl_nv_create_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_nv_kernel_attribute cl_khr_device_uuid cl_khr_pci_bus_info cl_khr_external_semaphore cl_khr_external_memory cl_khr_external_semaphore_opaque_fd cl_khr_external_memory_opaque_fd
Platform Extensions with Version                cl_khr_global_int32_base_atomics                                 0x400000 (1.0.0)
                                                cl_khr_global_int32_extended_atomics                             0x400000 (1.0.0)
                                                cl_khr_local_int32_base_atomics                                  0x400000 (1.0.0)
                                                cl_khr_local_int32_extended_atomics                              0x400000 (1.0.0)
                                                cl_khr_fp64                                                      0x400000 (1.0.0)
                                                cl_khr_3d_image_writes                                           0x400000 (1.0.0)
                                                cl_khr_byte_addressable_store                                    0x400000 (1.0.0)
                                                cl_khr_icd                                                       0x400000 (1.0.0)
                                                cl_khr_gl_sharing                                                0x400000 (1.0.0)
                                                cl_nv_compiler_options                                           0x400000 (1.0.0)
                                                cl_nv_device_attribute_query                                     0x400000 (1.0.0)
                                                cl_nv_pragma_unroll                                              0x400000 (1.0.0)
                                                cl_nv_copy_opts                                                  0x400000 (1.0.0)
                                                cl_khr_gl_event                                                  0x400000 (1.0.0)
                                                cl_nv_create_buffer                                              0x400000 (1.0.0)
                                                cl_khr_int64_base_atomics                                        0x400000 (1.0.0)
                                                cl_khr_int64_extended_atomics                                    0x400000 (1.0.0)
                                                cl_nv_kernel_attribute                                           0x400000 (1.0.0)
                                                cl_khr_device_uuid                                               0x400000 (1.0.0)
                                                cl_khr_pci_bus_info                                              0x400000 (1.0.0)
                                                cl_khr_external_semaphore                                          0x9000 (0.9.0)
                                                cl_khr_external_memory                                             0x9000 (0.9.0)
                                                cl_khr_external_semaphore_opaque_fd                                0x9000 (0.9.0)
                                                cl_khr_external_memory_opaque_fd                                   0x9000 (0.9.0)
Platform Numeric Version                        0xc00000 (3.0.0)
Platform Extensions function suffix             NV
Platform Host timer resolution                  0ns

Platform Name                                   NVIDIA CUDA
Number of devices                                 1
Device Name                                     Quadro P4000
Device Vendor                                   NVIDIA Corporation
Device Vendor ID                                0x10de
Device Version                                  OpenCL 3.0 CUDA
Device UUID                                     80209a82-ff25-4ccd-4581-dd6f602fae90
Driver UUID                                     80209a82-ff25-4ccd-4581-dd6f602fae90
Valid Device LUID                               No
Device LUID                                     6d69-637300000000
Device Node Mask                                0
Device Numeric Version                          0xc00000 (3.0.0)
Driver Version                                  535.104.05
Device OpenCL C Version                         OpenCL C 1.2
Device OpenCL C all versions                    OpenCL C                                                         0x400000 (1.0.0)
                                                OpenCL C                                                         0x401000 (1.1.0)
                                                OpenCL C                                                         0x402000 (1.2.0)
                                                OpenCL C                                                         0xc00000 (3.0.0)
Device OpenCL C features                        __opencl_c_fp64                                                  0xc00000 (3.0.0)
                                                __opencl_c_images                                                0xc00000 (3.0.0)
                                                __opencl_c_int64                                                 0xc00000 (3.0.0)
                                                __opencl_c_3d_image_writes                                       0xc00000 (3.0.0)
Latest comfornace test passed                   v2022-10-05-00
Device Type                                     GPU
Device Topology (NV)                            PCI-E, 0000:21:00.0
Device Profile                                  FULL_PROFILE
Device Available                                Yes
Compiler Available                              Yes
Linker Available                                Yes
Max compute units                               14
Max clock frequency                             1480MHz
Compute Capability (NV)                         6.1
Device Partition                                (core)
    Max number of sub-devices                     1
    Supported partition types                     None
    Supported affinity domains                    (n/a)
Max work item dimensions                        3
Max work item sizes                             1024x1024x64
Max work group size                             1024
Preferred work group size multiple (device)     32
Preferred work group size multiple (kernel)     32
Warp size (NV)                                  32
Max sub-groups per work group                   0
Preferred / native vector sizes
    char                                                 1 / 1
    short                                                1 / 1
    int                                                  1 / 1
    long                                                 1 / 1
    half                                                 0 / 0        (n/a)
    float                                                1 / 1
    double                                               1 / 1        (cl_khr_fp64)
Half-precision Floating-point support           (n/a)
Single-precision Floating-point support         (core)
    Denormals                                     Yes
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 Yes
    Round to infinity                             Yes
    IEEE754-2008 fused multiply-add               Yes
    Support is emulated in software               No
    Correctly-rounded divide and sqrt operations  Yes
Double-precision Floating-point support         (cl_khr_fp64)
    Denormals                                     Yes
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 Yes
    Round to infinity                             Yes
    IEEE754-2008 fused multiply-add               Yes
    Support is emulated in software               No
Address bits                                    64, Little-Endian
Global memory size<PHONE_NUMBER> (7.921GiB)
Error Correction support                        No
Max memory allocation<PHONE_NUMBER> (1.98GiB)
Unified memory for Host and Device              No
Integrated memory (NV)                          No
Shared Virtual Memory (SVM) capabilities        (core)
    Coarse-grained buffer sharing                 Yes
    Fine-grained buffer sharing                   No
    Fine-grained system sharing                   No
    Atomics                                       No
Minimum alignment for any data type             128 bytes
Alignment of base address                       4096 bits (512 bytes)
Preferred alignment for atomics
    SVM                                           0 bytes
    Global                                        0 bytes
    Local                                         0 bytes
Atomic memory capabilities                      relaxed, work-group scope
Atomic fence capabilities                       relaxed, acquire/release, work-group scope
Max size for global variable                    0
Preferred total size of global vars             0
Global Memory cache type                        Read/Write
Global Memory cache size                        688128 (672KiB)
Global Memory cache line size                   128 bytes
Image support                                   Yes
    Max number of samplers per kernel             32
    Max size for 1D images from buffer            268435456 pixels
    Max 1D or 2D image array size                 2048 images
    Max 2D image size                             16384x32768 pixels
    Max 3D image size                             16384x16384x16384 pixels
    Max number of read image args                 256
    Max number of write image args                16
    Max number of read/write image args           0
Pipe support                                    No
Max number of pipe args                         0
Max active pipe reservations                    0
Max pipe packet size                            0
Local memory type                               Local
Local memory size                               49152 (48KiB)
Registers per block (NV)                        65536
Max number of constant args                     9
Max constant buffer size                        65536 (64KiB)
Generic address space support                   No
Max size of kernel argument                     4352 (4.25KiB)
Queue properties (on host)
    Out-of-order execution                        Yes
    Profiling                                     Yes
Device enqueue capabilities                     (n/a)
Queue properties (on device)
    Out-of-order execution                        No
    Profiling                                     No
    Preferred size                                0
    Max size                                      0
Max queues on device                            0
Max events on device                            0
Prefer user sync for interop                    No
Profiling timer resolution                      1000ns
Execution capabilities
    Run OpenCL kernels                            Yes
    Run native kernels                            No
    Non-uniform work-groups                       No
    Work-group collective functions               No
    Sub-group independent forward progress        No
    Kernel execution timeout (NV)                 Yes
Concurrent copy and kernel execution (NV)       Yes
    Number of async copy engines                  2
    IL version                                    (n/a)
    ILs with version                              <printDeviceInfo:186: get CL_DEVICE_ILS_WITH_VERSION : error -30>
printf() buffer size                            1048576 (1024KiB)
Built-in kernels                                (n/a)
Built-in kernels with version                   <printDeviceInfo:190: get CL_DEVICE_BUILT_IN_KERNELS_WITH_VERSION : error -30>
Device Extensions                               cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_icd cl_khr_gl_sharing cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts cl_khr_gl_event cl_nv_create_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_nv_kernel_attribute cl_khr_device_uuid cl_khr_pci_bus_info cl_khr_external_semaphore cl_khr_external_memory cl_khr_external_semaphore_opaque_fd cl_khr_external_memory_opaque_fd
Device Extensions with Version                  cl_khr_global_int32_base_atomics                                 0x400000 (1.0.0)
                                                cl_khr_global_int32_extended_atomics                             0x400000 (1.0.0)
                                                cl_khr_local_int32_base_atomics                                  0x400000 (1.0.0)
                                                cl_khr_local_int32_extended_atomics                              0x400000 (1.0.0)
                                                cl_khr_fp64                                                      0x400000 (1.0.0)
                                                cl_khr_3d_image_writes                                           0x400000 (1.0.0)
                                                cl_khr_byte_addressable_store                                    0x400000 (1.0.0)
                                                cl_khr_icd                                                       0x400000 (1.0.0)
                                                cl_khr_gl_sharing                                                0x400000 (1.0.0)
                                                cl_nv_compiler_options                                           0x400000 (1.0.0)
                                                cl_nv_device_attribute_query                                     0x400000 (1.0.0)
                                                cl_nv_pragma_unroll                                              0x400000 (1.0.0)
                                                cl_nv_copy_opts                                                  0x400000 (1.0.0)
                                                cl_khr_gl_event                                                  0x400000 (1.0.0)
                                                cl_nv_create_buffer                                              0x400000 (1.0.0)
                                                cl_khr_int64_base_atomics                                        0x400000 (1.0.0)
                                                cl_khr_int64_extended_atomics                                    0x400000 (1.0.0)
                                                cl_nv_kernel_attribute                                           0x400000 (1.0.0)
                                                cl_khr_device_uuid                                               0x400000 (1.0.0)
                                                cl_khr_pci_bus_info                                              0x400000 (1.0.0)
                                                cl_khr_external_semaphore                                          0x9000 (0.9.0)
                                                cl_khr_external_memory                                             0x9000 (0.9.0)
                                                cl_khr_external_semaphore_opaque_fd                                0x9000 (0.9.0)
                                                cl_khr_external_memory_opaque_fd                                   0x9000 (0.9.0)

NULL platform behavior
clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  NVIDIA CUDA
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   Success [NV]
clCreateContext(NULL, ...) [default]            Success [NV]
clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  Invalid device type for platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  No platform

ICD loader properties
ICD loader Name                                 OpenCL ICD Loader
ICD loader Vendor                               OCL Icd free software
ICD loader Version                              2.2.14
ICD loader Profile                              OpenCL 3.0

Quadro RTX 6000

If the csv's are cropped to 1440, it works, error occurs at 1441 lines

```
    Number of platforms                               1
Platform Name                                   NVIDIA CUDA
Platform Vendor                                 NVIDIA Corporation
Platform Version                                OpenCL 3.0 CUDA 12.2.138
Platform Profile                                FULL_PROFILE
Platform Extensions                             cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_icd cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts cl_khr_gl_event cl_nv_create_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_nv_kernel_attribute cl_khr_device_uuid cl_khr_pci_bus_info cl_khr_external_semaphore cl_khr_external_memory cl_khr_external_semaphore_opaque_fd cl_khr_external_memory_opaque_fd
Platform Host timer resolution                  0ns
Platform Extensions function suffix             NV
Platform Name                                   NVIDIA CUDA
Number of devices                                 1
Device Name                                     Quadro RTX 6000
Device Vendor                                   NVIDIA Corporation
Device Vendor ID                                0x10de
Device Version                                  OpenCL 3.0 CUDA
Driver Version                                  535.104.05
Device OpenCL C Version                         OpenCL C 1.2
Device Type                                     GPU
Device Topology (NV)                            PCI-E, 01:00.0
Device Profile                                  FULL_PROFILE
Device Available                                Yes
Compiler Available                              Yes
Linker Available                                Yes
Max compute units                               72
Max clock frequency                             1620MHz
Compute Capability (NV)                         7.5
Device Partition                                (core)
Max number of sub-devices                     1
Supported partition types                     None
Supported affinity domains                    (n/a)
Max work item dimensions                        3
Max work item sizes                             1024x1024x64
Max work group size                             1024
Preferred work group size multiple              32
Warp size (NV)                                  32
Max sub-groups per work group                   0
Preferred / native vector sizes
char                                                 1 / 1
short                                                1 / 1
int                                                  1 / 1
long                                                 1 / 1
half                                                 0 / 0        (n/a)
float                                                1 / 1
double                                               1 / 1        (cl_khr_fp64)
Half-precision Floating-point support           (n/a)
Single-precision Floating-point support         (core)
Denormals                                     Yes
Infinity and NANs                             Yes
Round to nearest                              Yes
Round to zero                                 Yes
Round to infinity                             Yes
IEEE754-2008 fused multiply-add               Yes
Support is emulated in software               No
Correctly-rounded divide and sqrt operations  Yes
Double-precision Floating-point support         (cl_khr_fp64)
Denormals                                     Yes
Infinity and NANs                             Yes
Round to nearest                              Yes
Round to zero                                 Yes
Round to infinity                             Yes
IEEE754-2008 fused multiply-add               Yes
Support is emulated in software               No
Address bits                                    64, Little-Endian
Global memory size<PHONE_NUMBER>8 (22.16GiB)
Error Correction support                        Yes
Max memory allocation<PHONE_NUMBER> (5.54GiB)
Unified memory for Host and Device              No
Integrated memory (NV)                          No
Shared Virtual Memory (SVM) capabilities        (core)
Coarse-grained buffer sharing                 Yes
Fine-grained buffer sharing                   No
Fine-grained system sharing                   No
Atomics                                       No
Minimum alignment for any data type             128 bytes
Alignment of base address                       4096 bits (512 bytes)
Preferred alignment for atomics
SVM                                           0 bytes
Global                                        0 bytes
Local                                         0 bytes
Max size for global variable                    0
Preferred total size of global vars             0
Global Memory cache type                        Read/Write
Global Memory cache size                        2359296 (2.25MiB)
Global Memory cache line size                   128 bytes
Image support                                   Yes
Max number of samplers per kernel             32
Max size for 1D images from buffer            268435456 pixels
Max 1D or 2D image array size                 2048 images
Max 2D image size                             32768x32768 pixels
Max 3D image size                             16384x16384x16384 pixels
Max number of read image args                 256
Max number of write image args                32
Max number of read/write image args           0
Max number of pipe args                         0
Max active pipe reservations                    0
Max pipe packet size                            0
Local memory type                               Local
Local memory size                               49152 (48KiB)
Registers per block (NV)                        65536
Max number of constant args                     9
Max constant buffer size                        65536 (64KiB)
Max size of kernel argument                     32764 (32KiB)
Queue properties (on host)
Out-of-order execution                        Yes
Profiling                                     Yes
Queue properties (on device)
Out-of-order execution                        No
Profiling                                     No
Preferred size                                0
Max size                                      0
Max queues on device                            0
Max events on device                            0
Prefer user sync for interop                    No
Profiling timer resolution                      1000ns
Execution capabilities
Run OpenCL kernels                            Yes
Run native kernels                            No
Sub-group independent forward progress        No
Kernel execution timeout (NV)                 Yes
Concurrent copy and kernel execution (NV)       Yes
Number of async copy engines                  3
IL version                                    (n/a)
printf() buffer size                            1048576 (1024KiB)
Built-in kernels                                (n/a)
Device Extensions                               cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_icd cl_nv_compiler_options cl_nv_device_attribute_query cl_nv_pragma_unroll cl_nv_copy_opts cl_khr_gl_event cl_nv_create_buffer cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_nv_kernel_attribute cl_khr_device_uuid cl_khr_pci_bus_info cl_khr_external_semaphore cl_khr_external_memory cl_khr_external_semaphore_opaque_fd cl_khr_external_memory_opaque_fd
NULL platform behavior
clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  NVIDIA CUDA
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   Success [NV]
clCreateContext(NULL, ...) [default]            Success [NV]
clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  No platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  Invalid device type for platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  No platform
ICD loader properties
ICD loader Name                                 OpenCL ICD Loader
ICD loader Vendor                               OCL Icd free software
ICD loader Version                              2.2.11
ICD loader Profile                              OpenCL 2.1
NOTE:	your OpenCL library only supports OpenCL 2.1,
but some installed platforms support OpenCL 3.0.
Programs using 3.0 features may crash
or behave unexpectedly
</details>

The implementation is optimized for maximal performance on double precision and has been tested on NVIDIA A100 and AMD MI100. I don't have access to a GPU right now and can't help you more, but you can try experimenting with the threshold values (jump_threshold_1, jump_threshold_2, q_threshold_1 and q_threshold_2) in order to make hastl choose different kernel versions.

You won't believe it...
In stead of installing directly from PyPI, I installed from main like pip install https://github.com/mortvest/hastl/archive/main.zip and it worked even on the workstation (Nvidia P4000). I think I ran into "the issue with device memore" that was patched on 2 feb 2020, but didn't get updated on PyPI, since the latest version (0.1.7) is from jan 26...
I'll leave this open because the request would be to update PyPI :)
Thanks a lot for the quick replies!

Thanks so much for the investigation, I'll make sure to update it :smile:

Should be fixed with v0.1.8


3 questions/requests for this project..

Hi,
this project is exciting(!) for finally allowing updating Qualcomm drivers on some devices..
thinking about this project I have this 3 questions/requests:
1)Can share if there is some flag/env variable to Adreno Vulkan driver to enable additional (perhaps experimental?) extensions as seems for example some Qualcomm driver 512.615 roms expose lot of new exts more on Adreno 650 than even on Adreno 730 using same 512.615 driver:
http://vulkan.gpuinfo.org/compare.php?compare=compare&id[14524]=on&id[14505]=on#extensions
2)Qualcomm Vulkan drivers DB with download links?
I know how to extract Vulkan driver from OTAs and factory images but lazy to download large files (2-4GB) to just extract vulkan Adreno driver.. and seem every one must do the same lenghty way.. do you know of some easier way to acquire it? if not would be nice if somebody maintained a site/DB with these drivers (only Qualcomm Vulkan driver ".so" file) updated regularly..
I know it's not the scope of this work, but wanted to ask anyway..
3)Finally it would be great also an equivalent libmalitools project, reason is now with Pixel 6 devices having Mali GPUs, seems we are getting frequently updated Mali drivers, Google is shipping newer Mali drivers on Android 13 developer previews, for example for Pixel 6:
Android 12         : Mali r32p1
Android 13 dp1  : Mali r34p0
Android 13 dp2  : Mali r35p0
Mali r35 already have 9 new VK extensions (see http://vulkan.gpuinfo.org/compare.php?compare=compare&id[14514]=on&id[13271]=on#extensions ) and
and conformanceVersion <IP_ADDRESS> is vs <IP_ADDRESS> on r32p1 so new bug fixes..
on website says newest is r36 (https://developer.arm.com/tools-and-software/graphics-and-gaming/mali-drivers/valhall-kernel) and seems plausible DP3 to ship with these drivers..
It would be nice for example to use this updated Mali drivers on Samsung Sxx devices which use Mali GPUs on Europe at least..
All this is to motivate to try doing a libmalitools project..
can you at least answer if you expect to be much work or most work can be shared by libadrenotools (like hooking functionality) and should not be much work left to enable..
Thanks.

Hi, this project is exciting(!) for finally allowing updating Qualcomm drivers on some devices..
thinking about this project I have this 3 questions/requests:
1)Can share if there is some flag/env variable to Adreno Vulkan driver to enable additional (perhaps experimental?) extensions as seems for example some Qualcomm driver 512.615 roms expose lot of new exts more on Adreno 650 than even on Adreno 730 using same 512.615 driver: http://vulkan.gpuinfo.org/compare.php?compare=compare&id[14524]=on&id[14505]=on#extensions

See here https://gist.github.com/bylaws/04130932e2634d1c6a2a9729e3940d60
This config file can be edited without root using the file redirect adrenotools option

2)Qualcomm Vulkan drivers DB with download links? I know how to extract Vulkan driver from OTAs and factory images but lazy to download large files (2-4GB) to just extract vulkan Adreno driver.. and seem every one must do the same lenghty way.. do you know of some easier way to acquire it? if not would be nice if somebody maintained a site/DB with these drivers (only Qualcomm Vulkan driver ".so" file) updated regularly.. I know it's not the scope of this work, but wanted to ask anyway..
We're trying to work on a standardized format for drivers since it'll be helpful for skyline too but currently have other priorities, it's definitely something I want to do though
3)Finally it would be great also an equivalent libmalitools project, reason is now with Pixel 6 devices having Mali GPUs, seems we are getting frequently updated Mali drivers, Google is shipping newer Mali drivers on Android 13 developer previews, for example for Pixel 6: Android 12 : Mali r32p1 Android 13 dp1 : Mali r34p0 Android 13 dp2 : Mali r35p0 Mali r35 already have 9 new VK extensions (see http://vulkan.gpuinfo.org/compare.php?compare=compare&id[14514]=on&id[13271]=on#extensions ) and and conformanceVersion <IP_ADDRESS> is vs <IP_ADDRESS> on r32p1 so new bug fixes.. on website says newest is r36 (https://developer.arm.com/tools-and-software/graphics-and-gaming/mali-drivers/valhall-kernel) and seems plausible DP3 to ship with these drivers.. It would be nice for example to use this updated Mali drivers on Samsung Sxx devices which use Mali GPUs on Europe at least.. All this is to motivate to try doing a libmalitools project.. can you at least answer if you expect to be much work or most work can be shared by libadrenotools (like hooking functionality) and should not be much work left to enable..

Uh the name adrenotools is a bit of a lie really, it should with Mali already I just didn't consider it originally, maybe it's best I rename to something else

Thanks.

Hi,
thanks for answering!

must investigate the config file on how to forcibly enable more extensions than default..
good to know, hope it get's done eventually..
nice news, than Mali drivers can be updated also with this project.. has been tested already? if not maybe some minor bugfixes needed before it works..

also don't know if documented but should be specified if restrictions on supported GPU families for drivers updates apply..
for example Adreno r615 driver only works on Adreno 6xx GPUs so nobody tries to run on Adreno 530 for example..
I keep open for updates on point 2 but keep free to close if wanted..

Uh the name adrenotools is a bit of a lie really, it should work with Mali already I just didn't consider it originally, maybe it's best I rename to something else

Sounds too good to be true. There are no adreno specific parts?


BackdropFilter renders offscreen even if not repainted.

Issue:
Bad performance with lots of blur BackdropFilters even if background below them is always the same.
Steps to Reproduce

Add BackdropFilter anywhere in the app. (with visible child like text/etc)
Repaint any other part of screen.
Notice that BackdropFilter is rendered offscreen on every frame (via checkerboardOffscreenLayers and performance overlay).

Is this behavior intended?
If yes, is it possible to somehow cache the output to prevent offscreen re-rendering?
Minimal reproducing code
Should be fine to just drop into new flutter project main.dart
Code below tries to animate a small rectangle with background color and lags a lot due to GPU thread being completely filled with BackdropFilters rendering offscreen.
Note that they are not repainted and RepaintBoundary is not helping with the issue. Animation is not required, absolutely anything that causes frame to paint has the issue (like scrolling scrollview in some other part of screen)
import 'dart:ui';

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      checkerboardOffscreenLayers: true,
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
  AnimationController animation;

  @override
  void initState() {
    super.initState();
    animation = AnimationController(vsync: this, duration: Duration(seconds: 1));
    _startAnimation();
  }

  Future _startAnimation() async {
    try {
      await animation
          .repeat()
          .orCancel;
    } on TickerCanceled {}
  }

  @override
  Widget build(BuildContext context) {
    Widget text() {
      return BackdropFilter(
          filter: ImageFilter.blur(sigmaX: 5, sigmaY: 5),
          child: Column(
            children: <Widget>[
              Container(padding: EdgeInsets.all(5), child: Text("txt")),
            ],
          ));
    }

    Widget col() {
      return Column(children: [
        text(),
        text(),
        text(),
        text(),
        text(),
        text(),
        text(),
        text(),
        text(),
        text(),
        text(),
        text(),
        text(),
        text(),
        text(),
        text(),
        text(),
        text(),
      ]);
    }

    return Scaffold(
      backgroundColor: Colors.grey,
      body: Container(
        child: Column(
          children: [
            Expanded(
              child: RepaintBoundary(
                  child: Center(
                child: AnimatedBuilder(
                    animation: animation,
                    builder: (c, w) {
                      final val = (animation.value * 255).round();
                      return Container(
                        width: 50,
                        height: 50,
                        color: Color.fromARGB(255, val, val, val));
                    }),
              )),
            ),
            SizedBox(height: 50),
            RepaintBoundary(
              child: Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [
                col(),
                col(),
                col(),
                col(),
                col(),
              ]),
            ),
            SizedBox(height: 50),
          ],
        ),
      ),
    );
  }
}

Logs
flutter doctor -v:
[√] Flutter (Channel dev, v1.2.0, on Microsoft Windows [Version 10.0.17763.292], locale en-US)
    • Flutter version 1.2.0 at D:\programs\flutter
    • Framework revision 06b979c4d5 (2 weeks ago), 2019-01-25 14:27:35 -0500
    • Engine revision 36acd02c94
    • Dart version 2.1.1 (build 2.1.1-dev.3.2 f4afaee422)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at D:\programs\androidsdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = D:\programs\androidsdk
    • ANDROID_SDK_ROOT = D:\programs\androidsdk
    • Java binary at: D:\programs\android-studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
    • All Android licenses accepted.

[√] Android Studio (version 3.3)
    • Android Studio at D:\programs\android-studio
    • Flutter plugin version 32.0.1
    • Dart plugin version 182.5124
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[!] VS Code, 64-bit edition (version 1.25.0)
    • VS Code at C:\Program Files\Microsoft VS Code
    X Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (1 available)
    • Mi A2 Lite • <IP_ADDRESS>:5555 • android-arm64 • Android 9 (API 28)

! Doctor found issues in 1 category.

Flutter analyze output
Analyzing flutter_bug_test...
No issues found! (ran in 2.0s)

cc @liyuqian: Can we consider bumping up the priority of such layers for participation in the raster cache?

Yes, I have started working on adding options to RepaintBoundary to allow developers to explicitly enable raster cache. It should be useful for rotation (https://github.com/flutter/flutter/issues/24627), Opacity, and in this case BackdropFilter.
The work is currently postponed because of other higher priority issues. My estimation of finishing the work is Q2.

Just to be clear, the BackdropFilter blurs the entire screen by default so the animated rectangle is in the background of the text items.  As written, the test case can never optimize out the repaint of the blurred text widgets because technically their pixels depend on the animating pixels in the color-changing rectangle.
(It may be possible to avoid redrawing the actual text item in the last child since it is on top of everything that might change, but repainting it is not a performance issue here. And even with such an optimization, all of the other text objects in the grid contribute to the blurred background of the last text item and so they do need to be rerendered in order to provide the raw pixels for the blur operation of the final text item.)

I am curious what the goal was for the test case - what was it trying to achieve?  The BackdropFilter technically does include the entire screen as a background and so it is not possible to optimize out its repaints as suggested - in that way it is "working as the Widget intended" - but perhaps there is a different way to use it or a different Widget that will work "as the developer wants/intends"...?

At the time issue was filled BackdropFilter was affecting only area behind it.
Assume implicit ClipRect around BackdropFilter in code above. I updated the code in the original issue so it works on new flutter version.
So in the example blurred background for text shouldn't paint outside.
It would be good if there was another widget but so far BackdropFilter is the only one affecting widgets below it, due to SceneBuilder.pushBackdropFilter accepting only ImageFilter and no way to create those from flutter side at the moment.

Thanks for the update, the test case makes a lot more sense now.
I'll be looking into RepaintBoundary objects and other layer (in)dependence issues as part of issue #32662 linked above.
The only other question is whether a grid of 17x5 text items all with an individually blurred backgrounds is a necessary aspect of the original design or if that duplication is in the test case to demonstrate the cumulative performance impact.

Duplication is in the test case.
The original design where I encountered a problem had about 2*6 rounded rect "tiles" with pictures/text on them blurring background image behind. It was causing noticeable hiccup once they appeared (and on any view update afterwards) even when built with "--release".

Hi @ctrl-shift,
Can you confirm if this still happens on latest stable or master ?
I tried your code on latest stable and didn't notice backdropfilter rendering offscreen.
27677.mp4.zip

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


Automatic Door toggle keybind can only disable, won't re-enable

Is there an existing issue for this?

[X] I have searched the existing issues

Mod version
1.4.0
Is this a bug caused by this mod alone?
The bug was reproduced with this mod alone
List of mods to reproduce bug
No response
What happened?
Pressed Automatic Door enable/disable keybind and it disables as expected but pressing it again does nothing. If I also run the configuration manager mod I can re-enable it that way and use the keybind to disable it again, but again not re-enable.
Steps to reproduce the bug

Enable Automatic Door (optionally, observe it working as intended)
Bind a key to the Automatic Door enable/disable toggle
Press keybind for Automatic Door enable/disable toggle (observe disable message and non-auto doors)
Press keybind again, note lack of enable message and still non-automatic doors

Logs and screenshots
No response

Just came here to say I also have this issue, exact same circumstances. It won't re-enable.

This bug has been fixed in commit 5bddedc1244bb206e14ca1233af756c231d52f22.
Please wait for the bug fix release. Thank you for reporting the bug.


Update to SPDX 3.11

See https://github.com/spdx/license-list-XML/releases/tag/v3.11 for a
summary of the changes.

Codecov Report

Merging #37 (8a71592) into master (50762ba) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #37   +/-   ##
=========================================
  Coverage     97.58%   97.58%
  Complexity       45       45
=========================================
  Files             2        2
  Lines           124      124
=========================================
  Hits            121      121
  Misses            3        3

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 50762ba...8a71592. Read the comment docs.

Thanks


Feature/stats

Actually not about stats. Cleaning up navbar so the css looks nicer (bootstrap doesnt work well with routers, keep that in mind for future gg)
And about page

Looks good to me!


stty.c wrongly parse first argument as c_iflags

On Android 9, if I type
stty -F /dev/ttyS0 -echo
the new.c_iflag would become 0xffffff14
then I type
stty -F /dev/ttyS0
the new.c_iflag became normal as it should be.
after digging a while with my colleague
he found that in stty_main(),
else if (sscanf(arg, "%x:%x:%x:%x:%n", &new.c_iflag, &new.c_oflag,
&new.c_cflag, &new.c_lflag, &n) == 4)
should be responsible for this behavior.
no matter what argument is entered, new_c_iflag will be changed if the first letters in the argument is hexadecimal characters and/or the negative sign.
i understand this line of code is for convenience but it would break the functionality of stty.

i'm not certain exactly what you're trying to report (it's always helpful to include "what i did", "what i expected to see", and "what i actually saw" in a bug report), but i think you're talking about the bug fixed by 9c72f3136e9f5840a429a839da1313554bcc6c81 ?

@enh-google Actually I think they're talking about a different bug, that was worsened by that commit (because the sscanf happens earlier), because sscanf would modify new.c_iflag if the first character matches "%x", and then if the rest didn't match, the condition would fail and it would move on, but with a now incorrect new.c_iflag. I think the fix here would be using temporary variables for the sscanf, and if it succeeds entirely, setting the relevant members of new to them.

ah, right, so the example was meant to be stty 300 or somesuch.
yeah, that's broken as they describe (with c_iflags getting mangled to 0x300):
~/toybox-stty$ strace -v -e ioctl ./toybox stty -F /dev/tty 300 ; stty sane
ioctl(3, TCGETS, {c_iflags=0x7fffa516, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(3, TCGETS, {c_iflags=0x7fffa516, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(3, SNDCTL_TMR_CONTINUE or TCSETSF, {c_iflags=0x300, c_oflags=0x5, c_cflags=0xb7, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(3, TCGETS, {c_iflags=0x300, c_oflags=0x5, c_cflags=0xb7, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(3, TCGETS, {c_iflags=0x300, c_oflags=0x5, c_cflags=0xb7, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
+++ exited with 0 +++
~/toybox-stty$ make

this patch (which i'll send to the list momentarily) corresponds to your suggestion:
diff --git a/toys/pending/stty.c b/toys/pending/stty.c
index 4168b9ba..a997f49d 100644
--- a/toys/pending/stty.c
+++ b/toys/pending/stty.c
@@ -330,7 +330,7 @@ void stty_main(void)
   xtcgetattr(&old);

   if (*toys.optargs) {
-    struct termios new = old;
+    struct termios new = old, tmp;

     for (i=0; toys.optargs[i]; i++) {
       char *arg = toys.optargs[i];
@@ -340,11 +340,15 @@ void stty_main(void)
       else if (!strcmp(arg, "line")) new.c_line = get_arg(&i, NR_LDISCS);
       else if (!strcmp(arg, "min")) new.c_cc[VMIN] = get_arg(&i, 255);
       else if (!strcmp(arg, "time")) new.c_cc[VTIME] = get_arg(&i, 255);
-      else if (sscanf(arg, "%x:%x:%x:%x:%n", &new.c_iflag, &new.c_oflag,
-                        &new.c_cflag, &new.c_lflag, &n) == 4)
+      else if (sscanf(arg, "%x:%x:%x:%x:%n", &tmp.c_iflag, &tmp.c_oflag,
+                        &tmp.c_cflag, &tmp.c_lflag, &n) == 4)
       {
         int value;

+        new.c_iflag = tmp.c_iflag;
+        new.c_oflag = tmp.c_oflag;
+        new.c_cflag = tmp.c_cflag;
+        new.c_lflag = tmp.c_lflag;
         arg += n;
         for (j=0;j<NCCS;j++) {
           if (sscanf(arg, "%x%n", &value, &n) != 1) error_exit("bad -g string");

and works for me:
~/toybox-stty$ strace -v -e ioctl ./toybox stty -F /dev/tty 300 ; stty sane
ioctl(3, TCGETS, {c_iflags=0x2102, c_oflags=0x5, c_cflags=0xb7, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(3, TCGETS, {c_iflags=0x2102, c_oflags=0x5, c_cflags=0xb7, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(3, SNDCTL_TMR_CONTINUE or TCSETSF, {c_iflags=0x2102, c_oflags=0x5, c_cflags=0xb7, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(3, TCGETS, {c_iflags=0x2102, c_oflags=0x5, c_cflags=0xb7, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(3, TCGETS, {c_iflags=0x2102, c_oflags=0x5, c_cflags=0xb7, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
+++ exited with 0 +++

Looks good

First of all, I would apologize for the badly written bug report. This is my first bug report.
The bug is certainly what @E5ten described, once the beginning characters match %x format(signed hexadecimals) then the new.c_iflags will corrupt even the condition fails.
And thanks @enh-google, the patch works.
Another situation is whether stty 0x300 or stty 300 will also make new.c_iflags to 0x300 but this is also fixed by the patch.

cool, thanks for confirming that the suggested fix solves your problem!

I look forward to someday getting a chance to clean up the rest of the stuff in pending, but between work and toysh my brain's been full enough it's taken multiple attempts to switch dirtree_path() to a non-recursive implementation. :P


Connect to AWS S3 using Python and create query examples

Description: Write Python code to connect to AWS S3 using Boto3 or similar libraries. Include examples of uploading, retrieving, and querying data from S3.

Done with example to retrieve data from s3 bucket


MAINT: Linecheck link fixes

Title is self-explanatory.  Checked all links with make linkcheck and then verified by hand that the identified broken links were actually broken (not always the case).

Alright, I think I've fixed all of the broken links.  Any broken ones that you may see now when you run make linkcheck  can be confirmed by hand that they are not in fact broken AFAICT.  Comments are welcome!  Otherwise, should be good to merge.

thanks, merged


responsiveness in blog section

Issue
The blog section does not have responsiveness
Problem Description
Currently whenever the width is less than 1280px. Whole text of blog collapses to left side.
when width is less than 1280px

proposed solution
To address this issue, I suggest fixing the layout using flexbox and setting min and max widths for blog card. By using flexbox, we can ensure consistent alignment and spacing, while setting min and max widths will prevent content from overflowing or becoming too cramped, thereby improving the overall display and user experience.
Expected Outcome
Implementing the proposed solution will result in a more readable and a user-friendly blog section.
Additional Details

I will ensure that the proposed solution is compatible with different screen sizes and devices.

This enhancement may require adjustments to the existing CSS code.

Kindly assign this issue to me under GSSoC 24.

I can do that, assign this task to me.

Go for it!


WIP: Support Java 8

This is the tracking PR for issue #299.  Do not merge until the tasks are completed!

[x] Clean up the grunt configuration stuff
[x] Add missing natives
[x] Remove old Java 6 natives that we no longer need
[x] Make sure all current unit tests pass
[x] Add unit tests that cover polymorphic functions
[x] Add unit tests that cover InvokeDynamic and other new features
[x] Add unit tests that cover new default interface methods.
[x] Add unit tests that cover the extended invokeVirtual semantics
[x] Add support for new constant pool items to ldc (e.g. MethodHandle, MethodType...).
[x] Make sure all big programs still work:

[x] javac

[x] javap
[x] rhino
[x] kawa

All I need to do is fix the browser build, which I'll do tomorrow, and I will merge this in.
Then, it's on to even bigger and better changes!

StreamTest fails to terminate in the browser, so I need to take a look at that next...

And by 'fails to terminate', I mean that no JavaScript is running, so a thread didn't terminate in the expected manner.

:+1: :fireworks:

Will the new release support Java 8?

The current NPM release supports it. The demo is super old, and does not. (As a grad student, I haven't had the bandwidth to update the demo with the many improvements that have occurred since!)


Network transfer

Hi,
I can see how to get total network transfer (allocated) "total_transfer", but I can't seem to find out to get "network transfer out used"
Is this available?

I'm afraid the API V4 does not yet return used network transfer, so it's not available in this library yet either. However, I expect it to be returned by the API in the coming weeks, and we will introduce support here as soon as that happens.
If you'd like to leave this issue opened, I'll update it as soon as this feature is available.

Hi,
How can I get "transfer_used" and "transfer_used" values of the account instead of the individual host, as in the result from the linode-cli command?
linode account show -j

This can be accessed as follows:
transfer = client.account.get_transfer()

I tested it in version 4.1.3b0, seems that this method is not implemented:
In [1]: import linode

In [2]: client = linode.LinodeClient('SECRET....')

In [3]: client.account.get_invoices()
Out[3]: PaginatedList (122 items)

In [4]: client.account.get_transfer()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-4-e8b5c027483f> in <module>()
----> 1 client.account.get_transfer()

AttributeError: 'AccountGroup' object has no attribute 'get_transfer'

Sorry, this feature is on master but I haven't made a new release for it yet. It will be available in 4.1.3b1, or you can install it from source to get it early

I test the function in 4.1.3b1, it works, however, the value does not match the output of command line 'linode account show -j', maybe I misunderstood the meaning of some variables:
In [30]: t = client.account.get_transfer()

In [31]: t.used / t.quota
Out[31]: 0.8429962513586052

In [32]: t.used / t.max
Out[32]: 0.6767236467236467

In [33]: ret = subprocess.getoutput("linode account show -j")

In [34]: s = json.loads(ret)['info']

In [35]: s['transfer_used'] / s['transfer_pool']
Out[35]: 0.8042381283572814

In [36]: s
Out[36]:
{'balance': 0,
 'billing_method': 'metered',
 'managed': False,
 'request_action': 'show',
 'request_error': '',
 'transfer_billable': 0,
 'transfer_pool': 1351540,
 'transfer_used': 1086960}

In [37]: t.used
Out[37]: 950120

In [38]: t.quota
Out[38]: 1127075

In [39]: t.max
Out[39]: 1404000

Thank you :)


Fix provider type errors in NetworkController and its downstream packages

Explanation

Resolve type errors in NetworkController and its downstream packages that were marked with @ts-expect-error TODO: annotations in https://github.com/MetaMask/core/pull/1653.
Affected packages: network-controller, selected-network-controller, transaction-controller, gas-fee-controller

Tasks
Provider type alignment

ProxyWithAccessibleTarget<SafeEventEmitterProvider> (@metamask/network-controller) vs. Provider (@metamask/eth-query)

 error TS2345: Argument of type 'ProxyWithAccessibleTarget<SafeEventEmitterProvider>' is not assignable to parameter of type 'Provider<JsonRpcParams, Json>'.
  Types of property 'sendAsync' are incompatible.
    Type '(req: JsonRpcRequest<JsonRpcParams>, callback: (error: unknown, providerRes?: any) => void) => void' is not assignable to type '<Params, Result>(payload: SendAsyncPayload<Params>, callback: ProviderSendAsyncCallback<Result>) => void'.
      Types of parameters 'req' and 'payload' are incompatible.
        Type 'SendAsyncPayload<Params>' is not assignable to type 'JsonRpcRequest<JsonRpcParams>'.

SafeEventEmitterProvider
ProviderProxy
FakeProvider

References

https://github.com/MetaMask/core/issues/1975
https://github.com/MetaMask/utils/pull/140
https://github.com/MetaMask/eth-json-rpc-provider/pull/14
https://github.com/MetaMask/core#workspaces/shared-libraries-621e46b4d7103800171d1b02/issues/zh/244

What's left on this ticket?

I think we need to make the following updates to SafeEventEmitterProvider in @metamask/eth-json-rpc-provider to make it align with the @metamask/utils updates.
diff --git a/packages/eth-json-rpc-provider/src/safe-event-emitter-provider.ts b/packages/eth-json-rpc-provider/src/safe-event-emitter-provider.ts
index fbf2db3ae..db9298cf0 100644
--- a/packages/eth-json-rpc-provider/src/safe-event-emitter-provider.ts
+++ b/packages/eth-json-rpc-provider/src/safe-event-emitter-provider.ts
@@ -1,6 +1,11 @@
 import type { JsonRpcEngine } from '@metamask/json-rpc-engine';
 import SafeEventEmitter from '@metamask/safe-event-emitter';
-import type { JsonRpcRequest } from '@metamask/utils';
+import type {
+  Json,
+  JsonRpcParams,
+  JsonRpcRequest,
+  JsonRpcResponse,
+} from '@metamask/utils';

 /**
  * An Ethereum provider.
@@ -34,9 +39,12 @@ export class SafeEventEmitterProvider extends SafeEventEmitter {
    * @param req - The request to send.
    * @param callback - A function that is called upon the success or failure of the request.
    */
-  sendAsync = (
-    req: JsonRpcRequest,
-    callback: (error: unknown, providerRes?: any) => void,
+  sendAsync = <
+    Params extends JsonRpcParams = JsonRpcParams,
+    Result extends Json = Json,
+  >(
+    req: JsonRpcRequest<Params>,
+    callback: (error: unknown, providerRes?: JsonRpcResponse<Result>) => void,
   ) => {
     this.#engine.handle(req, callback);
   };
@@ -51,9 +59,12 @@ export class SafeEventEmitterProvider extends SafeEventEmitter {
    * @param req - The request to send.
    * @param callback - A function that is called upon the success or failure of the request.
    */
-  send = (
-    req: JsonRpcRequest,
-    callback: (error: unknown, providerRes?: any) => void,
+  send = <
+    Params extends JsonRpcParams = JsonRpcParams,
+    Result extends Json = Json,
+  >(
+    req: JsonRpcRequest<Params>,
+    callback: (error: unknown, providerRes?: JsonRpcResponse<Result>) => void,
   ) => {
     if (typeof callback !== 'function') {
       throw new Error('Must provide callback to "send" method.');

I'm still seeing the following error in this PR https://github.com/MetaMask/smart-transactions-controller/pull/237, even after updating @metamask/eth-query and @metamask/network-controller to the latest versions.
src/SmartTransactionsController.ts:334:31 - error TS2345: Argument of type 'ProxyWithAccessibleTarget<SafeEventEmitterProvider>' is not assignable to parameter of type 'Provider'.
  Types of property 'sendAsync' are incompatible.
    Type '(req: JsonRpcRequest<JsonRpcParams>, callback: (error: unknown, providerRes?: any) => void) => void' is not assignable to type '<Params, Result>(payload: SendAsyncPayload<Params>, callback: ProviderSendAsyncCallback<Result>) => void'.
      Types of parameters 'req' and 'payload' are incompatible.
        Type 'SendAsyncPayload<Params>' is not assignable to type 'JsonRpcRequest<JsonRpcParams>'.
          Type 'SendAsyncPayload<Params>' is not assignable to type '{ params?: ((Record<string, Json> | Json[]) & ExactOptionalGuard) | undefined; id: string | number | null; method: string; jsonrpc: "2.0"; }'.
            Types of property 'params' are incompatible.
              Type 'Params' is not assignable to type '((Record<string, Json> | Json[]) & ExactOptionalGuard) | undefined'.
                Type 'Params' is not assignable to type 'Json[] & ExactOptionalGuard'.
                  Type 'Params' is not assignable to type 'Json[]'.

334       ethQuery = new EthQuery(networkClient.provider);

The above is caused by the @metamask/eth-query version bump in controller-utils (https://github.com/MetaMask/core/pull/2028) not being released yet. Will be resolved by the next release that includes the unreleased changes in all of @metamask/eth-query's downstream packages in core.


To build an image which base is in ECR and needs additional authentication

Is there a way to build an image based on another image stored in our ECR in AWS? We haven't been able to pass the proper authentication to pull the base image, failing with an ACCESS DENIED error.
Thanks.

The recommended way is to fetch the image via registry-image-resource first and then pass it into the build-task. See https://github.com/vito/oci-build-task/issues/14#issuecomment-757014837 for more details

I just bumped into this because I had a similar situation, only my base image was on Google Cloud Artifact Registry. I implemented the setup as described by @vito in #52 and it worked flawlessly.

Going to close this per the last two comments - that's the recommended approach, as supporting the same level of auth/access that the registry-image resource type supports is a lot of duplicate effort. Using registry-image resource to represent the base image also allows the input to be versioned and controlled more precisely.


IMplement the new Capistrano Scm plugin system

Running with Capistrano 3.7.0 I get the following warning:
[Deprecation Notice] `set :scm, :copy` is deprecated.
To ensure this custom SCM will work with future versions of Capistrano,
please upgrade it to a version that uses the new SCM plugin mechanism
documented here:

http://capistranorb.com/documentation/advanced-features/custom-scm

Looks like this was introduced in Capistrano 3.7, so an implementation of this interface in capistrano-scm-copy would either make it incompatible with older versions of Capistrano prior to 3.7.0, or a version detection mechanism would be necessary, using the current implementation if Capistrano::SCM::Plugin is not present.

I haven't tested it myself, but it may be as simple as adding a require "capistrano/scm/plugin" and changing from Capistrano::Plugin to Capistrano::SCM::Plugin.
(looking at the changes here)
`

For what it's worth, there's a plugin that already does a local git repo copy without the need to set scm. Check it out here. All you need to do is follow the readme and also set set :repo_url, '.' in your deploy.rb file.


Register sun.nio.ch.SelectorImpl fields for unsafe access.

Motivation:
On JDK > 9 Netty uses Unsafe to write two internal JDK fields: sun.nio.ch.SelectorImp.selectedKeys and sun.nio.ch.SelectorImpl.publicSelectedKeys. This is done in transport/src/main/java/io/netty/channel/nio/NioEventLoop.java:225, in openSelector() method. The GraalVM analysis cannot do the Unsafe registration automatically because the object field offset computation is hidden behind two layers of calls.
Modifications:
This PR updates the Netty GraalVM configuration by registering those fields for unsafe access.
Result:
Improved support for Netty on GraalVM with JDK > 9.

@netty-bot test this please

@netty-bot test this please

@netty-bot test this please

@cstancu thanks a lot!

@cstancu  Looks like allowUnsafeAccess takes no effect a demo in https://github.com/mageddo/micronaut-creating-first-graal-app/commits/14ee04194455c91cc775bccabf81cb57844d7b49


Fixes regression padding on messages after (partially) moving to a mixin

Fixes #2408. While some unordered list declarations were moved to a mixin, there is an explicit override on .messages. This caused a small regression on messages. Verified by the styleguide.

Merged in 4b4b5fd601849542278ce20724f0eba69eb46acb - thanks!