text:
Elixir + Wasm

Hey @bryanjos! I've been interested in your work here.
What are your thoughts on WebAssembly? That's my main interest and I began elixir-wasm to outline some ideas. I've thought about using ElixirScript as the foundation for compiling and creating JavaScript host bindings, so I have some stuff to share. :smile:

WebAssembly compilers usually generate JavaScript "host bindings", because the user would have to write their own to execute the program meaningfully. For example see Emscripten's preamble.js. This means all the JS code generation is still useful. Another way its useful is asm.js as a fallback to WebAssembly.

Standalone WebAssembly is still important for host environments that aren't JavaScript. People asked me about Elixir WASM with distributed platforms more than regular web apps (for example ewasm).

I think HTML output would be good for convenience. It is nice to compile a program and have 0 extra steps for loading it in the browser.

For host bindings another good example is Rust's wasm-bindgen. For ElixirScript, different bindings than src/javascript could be made.

Hey @jamen, I can agree with mostly all of what you have said. I've peeked at your project a couple of times this year. I think one of the bigger issues is the lack of garbage collection in wasm currently. Any plans around that?
I'm down to help in any way I can towards the goal.

That is an important concern.  WebAssembly has a garbage collection proposal, but in the meantime it would need its own garbage collection. I dont know exactly how I'll structure the odds and ends of the WebAssembly output yet, but for now I was seeing it its okay to start doing that here. Ultimately the goal is taking advantage of whatever APIs necessary to mimick BEAM processes and scheduling sufficiently, and compromising where it makes sense.
I'll return with more technical discussion and pull requests. This might take a while for me to wrap my head around (I'm no expert in WebAssembly, and especially not BEAM). But I'm determined to get something and learn lots.

Maybe this is the way you can go? https://github.com/bettio/AtomVM

Definitely something to do some research on

@lahwran I haven't been able to put much time into this. I played with ElixirScript's code a bit, but nothing worth showing yet. My focus has shifted away from WebAssembly lately, but I'm still interested in this, and any help is appreciated. 😄

Oh man! I misunderstood from the readme at https://github.com/jamen/elixir-wasm that this whole github project was under initial development with this issue tracking it. I didn't realize that this would be a v2!

Leaving this link here for others to see:  https://github.com/lumen/lumen

Since Lumen exists now, I think this can be closed

authors: bryanjos fazibear foucist jamen lahwran

repo: elixirscript/elixirscript


text:
白名单模式记录的ip为容器内ip，失去白名单审查效果

使用docker开启白名单模式后，通过任意客户端访问8080端口第一次以后，之后无论是什么ip的客户端访问其都显示“already added”
经查看log发现是其ip记录都为docker内网ip

按理不应该，你看到 nginx 的日志也是你的内网设备吗？你的 docker 启动完整命令是什么。

source: gharchive/issue

repo: ellermister/mtproxy

license: MIT

license_type: permissive

license_source: github-api


text:
atuin on ARM64

Hello,
I would like to use atuin on ARM64 (Debian). I can see in the install script that there is a amd64.deb package.
ARTIFACT_URL="https://github.com/ellie/atuin/releases/download/$LATEST_VERSION/atuin_${LATEST_VERSION//v/}_amd64.deb"
Would it be possible to build atuin for ARM64?
Thank you so much for this wonderful peace of software.
Cheers - Willi

Hey! We're looking at this at the moment, but would like to ensure it's done properly. Dupe of #1032

Thank you Ellie.

authors: ellie willifehler

repo: ellie/atuin


text:
Version 3.0.1

Version 3.0.1 is available on NPM but I can't find the source code here.
As this version is the only one working with Angular 9, it would be good to have the source code to pushed on NPM.

@elliotforbes : Any updates on this one ?

authors: FredPraca jbacquet

repo: elliotforbes/ng-diff-match-patch

license: mit

license_source: bigquery


text:
Incorrect output for COBWEB and UPHILL

Code:
from eng_syl.syllabify import Syllabel
cobweb = syllabler.syllabify("COBWEB")
print(cobweb)
uphill = syllabler.syllabify("UPHILL")
print(uphill)

Output is:
CO-BWEB
UPHILL

Output should be:
COB-WEB
UP-HILL

Hey man, thanks for letting me know. I'll update the package with a fresher model; the newer model correctly syllabifies "COBWEB."
"UPHILL" is an orthographically ambiguous word however. The new model will syllabify the word as "U-PHILL."

Thanks! Neither of these words is ambiguous because they're both compound.
Definition: a word is compound if you can split it into 2 words. Can you
use that as a heuristic in your model?
Best,
Paul
On Thursday, June 1, 2023, ellipse-liu @.***> wrote:

Hey man, thanks for letting me know. I'll update the package with a
fresher model; the newer model correctly syllabifies "COBWEB."
"UPHILL" is an orthographically ambiguous word however. The new model will
syllabify the word as "U-PHILL."
—
Reply to this email directly, view it on GitHub
https://github.com/ellipse-liu/eng-syl/issues/3#issuecomment-1572652266,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIMFN4GIKU6DLBDPSECFIPDXJDUEJANCNFSM6AAAAAAYWW5KNM
.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Best wishes,
Paul von Hippel
Professor, Associate Dean for Research
LBJ School of Public Affairs
University of Texas, Austin
PaulvonHippel.com http://paulvonhippel.com
@PaulvonHippel https://twitter.com/paulvonhippel

authors: ellipse-liu paulvonhippel

repo: ellipse-liu/eng-syl


text:
Potential behavior regression between 4.0.0 and master

I am interested in the today change in #37 and so jumped from 4.0.0 to master with that change. Unfortunately my page with multiple DatePickers on it stopped working smoothly. I fail to understand what is going on but essentially the date change only works once out of everything 3-4 attempts. When it fails the Pick message simple never makes it to the DatePicker update. Switching back to 4.0.0 fixes everything even with the today patch.
I will attempt to generate a reproducible set up if it isn't reproducible with a single DatePicker widget.

I suspect this is associated with my always using the date value from the DatePicker.update instead of only using it when it is not Nothing. I suspect that there are just more messages or different order of them with the latest changes and that means I'm more likely to result in Nothing being set.
It doesn't completely explain the behaviour I've seen (in my limited understanding anyway) but I should test some more before considering this as an issue.
Sorry for the trouble.

repo: elm-community/elm-datepicker


text:
no line number given when EOF is reached with unbalanced parens

In this example
main = (

The following error message is produced:
-- SYNTAX PROBLEM -------------------------------------------------------------

I ran into something unexpected when parsing your code!

I am looking for one of the following things:

    whitespace

A more helpful message would point to the opening ( on line 1, or at least state that it reached the end of file while looking for whitespace.

I got this error (no line number, same message) without the parens - just forgetting to finish an infix expression.
module Bitty (..) where
f a b = a +

Tracking in meta issue #177

Been improving parser. The new message for this case is:

@jessitron's is different, and would be a good issue of its own. It is also improved by the new parser though:

Really happy to see error messages keep getting better.  This one was bothersome when I ran into it occasionally in larger files, and now it just won't be.  \o/

authors: avh4 evancz jessitron knewter

repo: elm-lang/error-message-catalog


text:
Debugger causes slowdown when model contains a large list

When an app's model contains a large list, the debugger (specifically its 'expando' functionality) seems to traverse the entire list after every update, which for sufficiently large lists can cause a noticeable performance hit (or a stack overflow for very large lists). On my machine (Windows 10 64-bit, Chrome 57, Elm 0.18), building and running the following code as a standalone (non debug mode) HTML file runs fine (60 FPS) but running it using Elm Reactor slows down to about 8 FPS:
module Main exposing (..)

import Html exposing (Html)
import AnimationFrame
import Time

type alias Model =
    { numbers : List (List Int)
    , fps : Float
    }

type Msg
    = Tick Float

init : ( Model, Cmd Msg )
init =
    ( { numbers = List.repeat 1000 (List.range 1 1000), fps = 0 }, Cmd.none )

update : Msg -> Model -> ( Model, Cmd Msg )
update (Tick delta) model =
    ( { model | fps = Time.second / delta }, Cmd.none )

view : Model -> Html Msg
view model =
    Html.text (toString model.fps ++ " fps")

subscriptions : Model -> Sub Msg
subscriptions model =
    AnimationFrame.diffs Tick

main : Program Never Model Msg
main =
    Html.program
        { init = init
        , update = update
        , view = view
        , subscriptions = subscriptions
        }

(I used nested lists since that resulted in enough data to cause a significant slowdown without causing a stack overflow - using a single flat list like List.range 1 20000 causes a stack overflow instead.)
This code is also available in a GitHub repository; just git clone, elm package install and then either elm reactor to see the performance hit or elm make --output Main.html Main.elm and open the result to see that performance is fine without the debugger.
Evan, you mentioned lazy evaluation in the debugger as a potential solution, but could a simpler (perhaps temporary) fix be to have the debugger basically do a List.take 100 on any list it finds, then just display ... if the list is longer than that? I think it's reasonable that the debugger would only show you the first 100 items in any given list.
If it helps anyone, I posted a workaround you can use for this issue - basically just 'hide' the problematic value inside a function, since the debugger will not attempt to introspect functions.
I suspect this is related to #80 and #86.

Tracking in #98. Thanks for the report!

authors: evancz ianmackenzie

repo: elm-lang/virtual-dom


text:
Wont compile

just tells me this:
../include/HTTPRequest.hpp: In member function 'http::Response http::Request::send(const string&, const std::vector&, const std::vector<std::basic_string >&, std::chrono::milliseconds)':
../include/HTTPRequest.hpp:537:13: error: 'addrinfo' was not declared in this scope
537 |             addrinfo hints = {};
|             ^~~~~~~~
../include/HTTPRequest.hpp:538:13: error: 'hints' was not declared in this scope; did you mean 'int'?
538 |             hints.ai_family = getAddressFamily(internetProtocol);
|             ^~~~~
|             int
../include/HTTPRequest.hpp:541:23: error: 'info' was not declared in this scope
541 |             addrinfo* info;
|                       ^~~~
../include/HTTPRequest.hpp:542:17: error: 'getaddrinfo' was not declared in this scope
542 |             if (getaddrinfo(domain.c_str(), port.c_str(), &hints, &info) != 0)
|                 ^~~~~~~~~~~
../include/HTTPRequest.hpp:545:55: error: 'freeaddrinfo' was not declared in this scope
545 |             const std::unique_ptr<addrinfo, decltype(&freeaddrinfo)> addressInfo{info, freeaddrinfo};
|                                                       ^~~~~~~~~~~~
../include/HTTPRequest.hpp:545:68: error: template argument 2 is invalid
545 |             const std::unique_ptr<addrinfo, decltype(&freeaddrinfo)> addressInfo{info, freeaddrinfo};
|                                                                    ^
../include/HTTPRequest.hpp:545:70: error: scalar object 'addressInfo' requires one element in initializer
545 |             const std::unique_ptr<addrinfo, decltype(&freeaddrinfo)> addressInfo{info, freeaddrinfo};
|                                                                      ^~~~~~~~~~~
../include/HTTPRequest.hpp:586:17: warning: declaration of 'headers' shadows a parameter [-Wshadow]
586 |                 headers,
|                 ^~~~~~~
../include/HTTPRequest.hpp:529:55: note: shadowed declaration is here
529 |                       const std::vectorstd::string& headers,
|                       ~~~~~~~~~~~~~~~~~~~~~~~~^
../include/HTTPRequest.hpp:587:17: warning: declaration of 'body' shadows a parameter [-Wshadow]
587 |                 body
|                 ^~
../include/HTTPRequest.hpp:528:51: note: shadowed declaration is here
528 |                       const std::vector<uint8_t>& body,
|                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
make: *** [Makefile:37: main.o] Error 1
i tried including the libs it just makes more errors

This is fixed in https://github.com/elnormous/HTTPRequest/commit/9c4e6477df3392c91749c2d7872a90e1ea32e961 by adding support for Cygwin.

repo: elnormous/HTTPRequest

license: Unlicense


text:
Method with final class as parameter

I can't get around this situation:
<?php

final class FinalClass {}

class SomeClass
{
    public function someMethod(FinalClass $p) {}
}

$p = new FinalClass;

$handle = mock(SomeClass::class);
$handle->someMethod->with($p)->returns('something');

It throws a Eloquent\Phony\Mock\Exception\FinalClassException as soon as $handle->someMethod is called.
I know final classes can't be mocked but I can't figure out why it is a problem here. Is it a limitation of the library and is there a workaround for this?

My bad - seems to be a problem with the return type.

repo: eloquent/phony


text:
Master

New homework

Моля сложете решенията си в папка "03"

Условието на задачата числото и цифрите в него е различно.

source: gharchive/pull-request

authors: Fanatique1337 bankin tborisova

repo: elsys/po-homework


text:
Server tests are failing when calling _cc_pipeline directly

Describe the issue
The 2 new tests introduced in #1957 are failing as a result of changes made in #1968. The get_display_name() function introduced in the latter PR expects a ContainerOp object whereas the tests create a TaskSpec object. The disconnect appears to happen due to some of the internals of the KFP compiler that we do not have access to.
Related to #1756 as well.
Screenshots or log output
Test failure output is below.
Log Output

Error constructing component Filter text: 'TaskSpec' object has no attribute 'set_display_name'

Expected behavior
Eventually, all invocations of _cc_pipeline() should produce the same output. For now, we'll skip these tests.
Deployment information
Describe what you've deployed and how:

Elyra version: latest master

Added some in-line comments as workarounds i.e black boxing the compiler and asserting against the pipeline file afterwards
# We arent able to access the container op level here since the runtime component is a taskspec
    constructed_pipeline_function = lambda: processor._cc_pipeline(pipeline=pipeline, pipeline_name='test_pipeline')

    # We can check again both argo and tekton compilations
    # we can check the pipeline file for `correctness`
    compiled_pipeline = kfp_argo_compiler.Compiler().compile(constructed_pipeline_function, pipeline_path)

    ```

authors: akchinSTC kiersten-stokes

repo: elyra-ai/elyra


text:
Pipeline editor: pipeline should be validated when a user attempts to save it

It appears that some (but not all) canvas operations validate the pipeline and issue a warning ("open pipeline") or refuse to perform the requested task ("export", "run)". However, if a user saves an invalid pipeline (e.g. because it is a work in progress) no warning is displayed.
It'd be nice if a warning is displayed just like it is already done when a user opens an invalid pipeline):

We should be careful here.  This may be viewed as a nuisance since other pieces in the eco-system do not behave this way (at least that I know of).  Also, if we wanted to add any kind of periodic checkpointing (auto-saving), then we wouldn't want this happening either (although I suppose we could determine the difference between auto-save and explicit-save).  I think leaving this associated with the actual action (run, export) is more appropriate.

Should we validate at save? Maybe.
But we should definitely not cancel save if there are validation errors.

authors: kevin-bates lresende ptitzler


text:
ws: Add autoReconnect option?

After migrating from VueUse useWebSocket, I realized that EdenWS doesn't have an auto-reconnect option.
Would you welcome a PR adding an autoReconnect option?

Makes sense, if you ask me, ws should accept the same options as the underlying ws implementation.

The auto-reconnect is not actually present in the underlying (bare) WebSocket, but since handling disconnects (by reconnecting) is a fairly common need, I think it could be warranted to add in Eden.

ahh right, I think it would be welcome if you created a PR with it (But I'm not the maintainer or anything, I'll be happy to give you a review, but I cannot merge it of course)

authors: crishoj dandeduck

repo: elysiajs/eden


text:
Support mobile devices using PhoneGap/Cordova

I think this would require a new shim to support https://github.com/blocshop/sockets-for-cordova probably also using Forge to provide TLS like the existing one does

Emailjs works great on Cordova using the cordova-plugin-chrome-apps-sockets-tcp plugin. The plugin you listed is actually much slower and more error prone.

Closing, no action needed.

authors: RedHatter nifgraup tomchiverton

repo: emailjs/emailjs-tcp-socket


text:
Cocoapods support

Thank you for great lib!
Please add support for pods

why not since now ?
I got confused :(
~

Why no cocoapods support? is it on the roadmap? should be soon?

I've been on the fence about adding Cocoapods support for a while, and when I was finally able to drop the ASL dependency, I thought it would be easier and began to seriously consider it.
But then I spent 3 hours this morning fighting Cocoapods on another project for probably the hundredth time in my career, and it reminded me of all the reasons I don't want to add support for Cocoapods.
Take a look at the issues filed against other Cocoapods-based projects on GitHub. How many of them are related to problems with Cocoapods itself? Life's too short to become an unpaid support person for a platform I don't control and that I didn't want to use in the first place.
Carthage is a truly great package manager: it's simple, it relies on standard Apple build procedures, and it tends not to break with every new release of Xcode or Swift.
Unlike with Cocoapods, I don't need to do anything special to support Carthage;  it's very friendly to the maintainers of open-source projects. It's not invasive to my Xcode project files, it doesn't require me to learn an arcane new language to configure and maintain, and it doesn't demand that I structure everything in my project its specific way.
I've been using Carthage for years and it's been remarkably stable. I have plenty of experience with Cocoapods, and I can't say the same.
For all those reasons and many more that I could expound upon at great length, I will never be adding Cocoapods support to this or any other project I maintain.
This decision is final and will not be revisited. If this rules out CleanroomLogger for you, then I'm sorry this package couldn't meet your needs; I hope you can find one that does.

pod 'CleanroomLogger', :git => 'https://github.com/farice/CleanroomLogger.git'
Warning: If I get lazy and let this fall behind on keeping this up to date with @emaloney then send me a pull request.

For those who care, the above link is now no long there, please follow the below for Cocoapod Access for this lib
https://github.com/vikramhimanshu/KleanroomLogger

authors: Exey emaloney farice gal-orlanczyk iShawnWang vikramhimanshu

repo: emaloney/CleanroomLogger


text:
Cannot add any modules after embark new appname command

Hi All !
Apologies for opening another github issue.
I have been trying to add modules( to boiler plate code created from embark new appname command.
I have tried npm install -g and the -s and both of them dont work for require().
I am trying to install mysql ( https://github.com/mysqljs/mysql) but its not just that... i cant do mssql (https://github.com/patriksimek/node-mssql) in as well. ( did try express as well, failed miserably)
Am i missing something here????
Is there anything that needs to be added to embark.json????

Hey @syedshahzebhasnain
I know this has been laying around here for a long time now.. From your description it's very hard to follow what you're trying to achieve..
Embark has changed by now, but you should be good doing
$ npm install -g embark
$ embark new some-app
$ cd some-app
$ embark run

I'm not sure I follow how installing mysql is related to this. Again I know this issue is super old and probably not relevant to you anymore, but maybe we can at least clarify the current state of things and close it :)

Closing due to inactivity.

authors: PascalPrecht syedshahzebhasnain

repo: embark-framework/embark


text:
Use lychee in updated base image

Thank you for helping out with embedded-graphics development! Please:

[x] Check that you've added passing tests and documentation
[x] Add a CHANGELOG.md entry in the Unreleased section under the appropriate heading (Added, Fixed, etc) if your changes affect the public API
[x] Run rustfmt on the project
[x] Run just build (Linux/macOS only) and make sure it passes. If you use Windows, check that CI passes once you've opened the PR.

PR description
Paired with https://github.com/embedded-graphics/build-tools/pull/4

Thanks :)

repo: embedded-graphics/embedded-graphics


text:
Linux port of the stack

A Linux port of the stack would be very helpful for evaluation and demo purposes. I started a Linux port with TIMER and CAN driver which can be found here canopen-linux. NVM driver is not implemented yet. I would be happy to complete and contribute it to the project.
Cheers,
Sandro

Sorry for the long delay (I was very busy and can't find a spare hour for the stack). Your effort is a great step for the canopen stack ecosystem! Thanks a lot for your time. I will try to setup a Linux system and play with your drivers soon.

authors: michael-hillmann sandrogort

repo: embedded-office/canopen-stack


text:
support metal-views

Is it possible to create a branch for non metamorph applications, in favor of HTMLBars recent builds?

Don't you guys get "renderer is undefined" with the described setup ?
Sorry to revive a closed issue

@shturm are you using canary?

authors: jonnii marcemira shturm

repo: emberjs/list-view


text:
Cache 'gradle' and '.m2' directories to speed up Travis build

This PR enables Travis to cache 'gradle' and '.m2' directries. Since Embulk requires many dependency libraries, It takes a few mins to download their artifacts from Maven repo to '.m2' directory.

This PR assumes https://github.com/embulk/embulk/pull/716.
reference: https://docs.travis-ci.com/user/speeding-up-the-build/

@dmikurube Please take a look when you have time.

@dmikurube Agree. As talked directly to you, I'm closing this ticket. Not merge. Because,

Travis CI build is stable recently. The build speed is good. AppVeyor also good:-)
I don't want any issues caused by the caching.

repo: embulk/embulk


text:
bug in VSPatch adaptive threshold

not coming down when activity is too low.

this was fixed

repo: emer/axon


text:
Improving edit_control with adding ID to marker, polygon, polyline, rectangle, circle, circlemarker

Suggestions I'd like to make with specifically edit_control, probably extremely nitche and petty but if we could receive a geojson_edit response from the edit specific tool in EditControl that would be amazing.
For reference, I designed Dash EmojiMart and am currently working on a map index app:

I have been able to set it up so EmojiMart and select an icon and add it to the map from a callback which references  an input of clickData but haven't been able to set up the same functionality from the EditControl.
I'd like to use the EditControl to add marker's, I can add a blue base leaflet-marker-icon however their is no id for me to hit with a callback to replace it with a custom icon which I have setup. My suggestion would be to base id's on marker, polygon, polyline, rectangle, circle, circlemarker from EditControl id so adding a marker would return for example edit_control_marker_1 and iter from that. This would allow a developer to reference the individual marks created via EditControl and change them live.

I like the concept of extending the flexibility. Other options could be to pass a (JS) render function, which will control the icon. I'll be happy to look at a PR, which ever route you find most appropriate.

One suggestion that might work is using a dynamic id like:  id={"type": "dynamic-input", "index": location["pk"]} Not entirely sure if its relevant but I needed to create markers with id's that can be called over and over again and what I came up with is:
dl.Marker(
            position=[location["lat"], location["lon"]],
            children=dl.Tooltip(
                children=html.Img(
                    src=location["image"],
                    style={
                        "width": "30vw",
                        "height": "20vh",
                        "max-width": "250px",
                        "max-height": "250px",
                    },
                ),
                direction="top",
            ),
            icon=custom_icon,
            id={"type": "dynamic-input", "index": location["pk"]},
        )

Also considering how much work you've put into dash leaflet I think you might enjoy checking out the app I've been building with it: https://dash.geomapindex.com . Just launched it this past weekend, still in active development but the main focus of development is around dash leaflet.

authors: emilhe pip-install-python

repo: emilhe/dash-leaflet


text:
example doesn't link in Windows (11): "cannot find -lshlwapi"

Describe the bug
As directed by the readme (after cloning egui and entering the directory), I run:
cargo run --release -p egui_demo_app

According to the readme it should work out-of-the-box on Windows, however it cannot find the shlwapi library:
   Compiling egui_demo_app v0.21.0 (C:\Users\frank\repos\egui\crates\egui_demo_app)
error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  |
  = note: "x86_64-w64-mingw32-gcc" "-Wl,C:\\Users\\frank\\AppData\\Local\\Temp\\rustcTHMga8\\list.def" "-fno-use-linker-plugin" "-Wl,--dynamicbase" "-Wl,--disable-auto-image-base" "-m64" "-Wl,--high-entropy-va" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained\\dllcrt2.o" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "C:\\Users\\frank\\AppData\\Local\\Temp\\rustcTHMga8\\symbols.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.0.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.1.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.10.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.11.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.12.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.13.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.14.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.15.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.2.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.3.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.4.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.5.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.6.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.7.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.8.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.egui_demo_app.6692ed00-cgu.9.rcgu.o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.2a7tq0lk1nd9aadl.rcgu.o" "-L" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps" "-L" "C:\\Users\\frank\\.cargo\\registry\\src\\github.com-1ecc6299db9ec823\\winapi-x86_64-pc-windows-gnu-0.4.0\\lib" "-L" "C:\\Users\\frank\\.cargo\\registry\\src\\github.com-1ecc6299db9ec823\\windows_x86_64_gnu-0.42.1\\lib" "-L" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bstatic" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libegui_demo_lib-f2fa9f36ac8615a8.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libunicode_names2-665b15b82d955f7a.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libenum_map-ef4f3a02cafa584b.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libegui_extras-ea8804caa6f626c4.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libchrono-cc24da761089f866.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libnum_integer-45a031b14b7b6779.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libnum_traits-0a1f07aee3d719bc.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libtime-d2e619cbf149e0d8.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libeframe-cf2372693a6af555.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libdirectories_next-bd6c30aeb79fcdc9.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libdirs_sys_next-4aadb0de72fd065a.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libglutin_winit-0d18957431e0646e.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libglutin-d61af45ca3b6918d.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libglutin_wgl_sys-4a7054750aebc2dd.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\liblibloading-30ac1615d0e8082b.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libglutin_egl_sys-552847bcb1f06681.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libegui_winit-2e11938f71167a8b.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libwebbrowser-50d828052537663a.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\liburl-e6c143d8afee16b4.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libidna-7f804b280cd8ab8e.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libunicode_normalization-010e5bee440d3178.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libtinyvec-e9e327c80ff0734f.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libtinyvec_macros-6c5370b2b307d8ae.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libunicode_bidi-1784d961beb0b6c7.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libform_urlencoded-386e8c3267c4e3a5.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libpercent_encoding-e46675f994681242.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libarboard-6962620103966358.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libclipboard_win-497ecb7726e1440f.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\liberror_code-7089bf28ccca8103.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\liblibc-49c3355935eab2cf.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libstr_buf-4d7095deaba3fc2b.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libwinapi-4cd6f257053981da.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libthiserror-090283ef86637d03.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libwinit-11814a1445a7b615.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libraw_window_handle-08bcb72108cbb7fa.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libcty-c4955ff0fee0afe8.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libinstant-d5e3c68cbf06cced.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\liblog-5dfba02aa77ed920.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libegui_glow-ee7c2c7c25c7a6db.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libmemoffset-fa9200355fa82d4e.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libglow-419bda9617dbe034.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libegui-8917f96948d20a05.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libron-f4b36d22415be328.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libbase64-bbc0c41760168ffb.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libbitflags-e3e9b32a70e0019e.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libtracing-77ade26e0a528461.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libpin_project_lite-2d54438324ea06fb.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libtracing_core-313d2173c1e7c45a.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libepaint-6af12d19deb60bb8.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libnohash_hasher-7201463007d07628.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libecolor-78f7c655fb8145f4.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libahash-996a6fa297a648b6.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libonce_cell-7ccfc295fffb20de.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libab_glyph-e3aa5a8f7fea46fc.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libowned_ttf_parser-a92b6ee87ead3841.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libttf_parser-6d4c76dbc4ef1b40.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libab_glyph_rasterizer-d4d698a9e75f6644.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libparking_lot-50ffe61f2ec5eeec.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libparking_lot_core-c6bdb9d9213a0746.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libwindows_sys-0e54445fdbcfcc4f.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libcfg_if-0d6f9e92cbe234c8.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libsmallvec-3aaa653790f7ab52.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\liblock_api-532655889c8d4a93.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libscopeguard-9713dd8fd004d2f1.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libemath-4626d272410a7ceb.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libbytemuck-5367cb207cd14176.rlib" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libserde-8c47970fc3be5e5d.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd-e363be82127e72d4.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libpanic_unwind-271c0a4c2400bd0e.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libobject-3b3a88ddf57ad9b8.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libmemchr-c38acbaaa0512e61.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libaddr2line-a777dde688506f47.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libgimli-00e812c5215e2bb4.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_demangle-9824443ffde90bb7.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libstd_detect-c9cae9f57d72c5d8.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libhashbrown-80b5e088fad27661.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libminiz_oxide-25b744457ec6a6b9.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libadler-b662208514509737.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-70e1db2cbff7c5e3.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libunwind-bc622eac43f92150.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcfg_if-da38528f9991ea5d.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liblibc-0217604e5fc185ea.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\liballoc-094368c19a10127d.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\librustc_std_workspace_core-9310325d5d5607bd.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcore-5c3fe6fc6388f93c.rlib" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-d765c9bc514400ee.rlib" "-Wl,-Bdynamic" "-lopengl32" "-lshlwapi" "-lwinapi_advapi32" "-lwinapi_cfgmgr32" "-lwinapi_gdi32" "-lwinapi_kernel32" "-lwinapi_msimg32" "-lwinapi_ole32" "-lwinapi_opengl32" "-lwinapi_runtimeobject" "-lwinapi_shell32" "-lwinapi_shlwapi" "-lwinapi_synchronization" "-lwinapi_user32" "-lwinapi_winspool" "-lwindows" "-lkernel32" "-ladvapi32" "-luserenv" "-lkernel32" "-lws2_32" "-lbcrypt" "-lgcc_eh" "-l:libpthread.a" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-luser32" "-lkernel32" "-Wl,--nxcompat" "-nostartfiles" "-L" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-L" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\self-contained" "-o" "C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\egui_demo_app.dll" "-Wl,--gc-sections" "-shared" "-Wl,--out-implib=C:\\Users\\frank\\repos\\egui\\target\\release\\deps\\libegui_demo_app.dll.a" "-Wl,-O1" "-nodefaultlibs" "C:\\Users\\frank\\.rustup\\toolchains\\stable-x86_64-pc-windows-gnu\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: ld: cannot find -lshlwapi

Expected behavior
Work as documented
Desktop (please complete the following information):

OS: Windows 11

Additional context
toolchain appears fine; I tried reinstalling stable-x86_64-pc-windows-gnu and removing ./rust-toolchain but that didn't make a difference.

For what it's worth, it works fine with msvc. MinGW is kind of finicky in my experience, maybe you're just missing some package or path configuration?

I'm using rustup so it's supposed to just work without any configuration. I'm guessing it's an issues in another crate, but shwapi is from the legacy windows API and the winapi crate doesn't seem to have been touched in years.
It does seem that this issues wasn't there a few days earlier, but I have no idea why it would fail now since I'm not doing anything with C++/mingw/msvc.

I started experiencing this (on windows 10) after updating my terminal emulation environment from an old mingw-w64 distribution with git bash to a modern clean git bash distribution with no C/C++ toolchain stuff lying around. Just did a clean rustup and everything just to be sure that everything rust thinks should be there is there. It's only happening with egui projects, not rust projects in general. The error happens when using the stable-x86_64-pc-windows-gnu toolchain, but not when using the stable-x86_64-pc-windows-msvc toolchain.

I already had the MSYS2 installation when trying the command in Windows CMD and failing. I assume performing things from MinGW takes care of the DLL issues, which maybe can otherwise be addressed by only using files provided by MinGW as suggested in https://users.rust-lang.org/t/rust-not-compiling-project-exit-code-1/95821 ; without working explicitly in this environment and relying on its package management to provide Rust.

I temporary solved with the solution suggested here. In particular, I added this to config-toml:
`
[target.x86_64-pc-windows-gnu]
rustflags = [
"-LC:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0\um\x64"
]
`
(of course the windows kit need to be installed. I installed mine with Visual Studio Installer.)

(of course the windows kit need to be installed. I installed mine with Visual Studio Installer.)

While this is great if it works for you, I feel like it does not address some underlying issues. At least in my case, the interest in the GNU toolchain stems from the apparent impossibility to compile company code (with some minor exceptions) to MSVC without Microsoft Build Tools or equivalent, requiring a paid Visual Studio license. AFAIK, same goes for the Windows Kit, and not for MinGW.
Though I get that for some, working with the GNU ABI may be required for basic interoperability needs with other software compiled as such.
I mimicked the solution for MinGW by doing
[target.x86_64-pc-windows-gnu]
# linker = "x86_64-w64-mingw32-gcc"
# ar = "x86_64-w64-mingw32-gcc-ar"
rustflags = [
    "-LC:\\msys64\\mingw64\\lib"
]

and it seems to work. Thanks for the input on the use of rustflags for this.
I assume this in itself does not address the issue that things should compile "out-of-the-box" or be documented.

I've just started getting this error when returning to my egui project, where both RustRover and egui/eframe had updated. The solution above did not seem to work.
error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  |
  = note: "x86_64-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--dynamicbase" "-Wl,--disable-auto-image-base" "-m64" "-Wl,--high-entropy-va" ...
  = note: ld: cannot find -lshlwapi: No such file or directory

I can offer a solution that is a "dirty workaround". But it is basically universal for all linking problems. Maybe it will help someone like me who is looking for a simple solution.
The point: add .dll to the directory with toolchain libraries.
First of all, you need to download the file itself, for us it is shlwapi.dll. The link I used (I am not responsible for the source, download at your own risk)
Next, you need to find out your toolchain. Enter the command rustup show into your command line:
active toolchain
----------------

1.76.0-x86_64-pc-windows-gnu (overridden by 'D:\Programming\egui\rust-toolchain')
rustc 1.76.0 (07dca489a 2024-02-04)

After that, find the directory with your toolchains. For me it is C:\Users\Alex\.rustup\toolchains.
Next, you need to go to the root directory of libraries of specific toolchain, and just add the downloaded file there! The final path in my case: C:\Users\Alex\.rustup\toolchains\1.76.0-x86_64-pc-windows-gnu\lib\rustlib\x86_64-pc-windows-gnu\lib
I saw that the IDE also pulled in the wasm-unknown-unknown target. So, I copied the dll there too (just in case): C:\Users\Alex\.rustup\toolchains\1.76.0-x86_64-pc-windows-gnu\lib\rustlib\wasm32-unknown-unknown\lib
After these steps, the project compilation was successful😎

Ok, I think I found a "clean" solution by using MSYS2 and without M$ SDK stuff, so completely GNU toolchain:

Install rust via rustup and choose "stable-x86_64-pc-windows-gnu" toolchain.

Install msys2 :
https://www.msys2.org/

Open the msys2 command prompt and install the gnu stuff (incl. gcc linker)
pacman-key --init pacman-key --populate msys2 pacman -S mingw-w64-x86_64-gcc

For some reason I first got a error message:
error: failed to synchronize all databases (invalid or corrupted database (PGP signature))
So after calling
pacman-key --init pacman-key --populate msys2
again, suddenly it worked... whatever...
So now the gcc linker should be there:
C:\msys64\mingw64\bin\gcc.exe
Just switch to windows command prompt and go to this folder:
cd C:\msys64\mingw64\bin\
and execute
gcc.exe --version
If everything was ok, you should get a version.
So, now you have to set the PATH variable, so that rust can find the gcc.exe
set PATH=%PATH%;C:\msys64\mingw64\bin
Now go to your egui example folder and set the "RUSTFLAGS", by entering following in your windows command prompt:
set RUSTFLAGS=-C linker=x86_64-w64-mingw32-gcc
finally type
cargo build
And now you are hopefully happy.

authors: Totoro83 Unactived YgorSouza fr-an-k keriefie m0rph3usX wareya xairaven

repo: emilk/egui


text:
Move egui::util::cache to egui::cache; add FramePublisher

This moves egui::util::cache to egui::cache (the old path is deprecated, but still works).
It also adds the FramePublisher helper, which can be used to publish a value which will be retained for this frame and the next:
pub type MyPublisher = egui::cache::FramePublisher<MyKey, MyValue>;

// Publish:
ctx.memory_mut(|mem| {
    mem.caches.cache::<MyPublisher>().set(key, value);
});

// Retrieve:
let value: Option<MyValue> = ctx.memory_mut(|mem| {
    mem.caches
        .cache::<MyPublisher>()
        .get(key)
        .clone()
})

If I call CacheStorage::cache somewhere, it will insert a Cache that implements the CacheTrait.
Although Cache will call evict_cache to clear the internal cache, even if the length of the internal cache of cache is 0, it still seems to exist in the CacheStorage.
So would it be better to delete the cache with a cache length of 0 in the CacheStorage::update?

@emilk I tested this new feature and found that it works well in general, but when you have an Immediate Viewport, it will return None.
Here is my test code.
type MyPublisher = egui::cache::FramePublisher<String, u32>;

fn main() -> eframe::Result {
    eframe::run_simple_native("Example", eframe::NativeOptions::default(), |ctx, _| {
        let outer_key = String::from("outer_key");
        let value = ctx.memory_mut(|m| m.caches.cache::<MyPublisher>().get(&outer_key).copied());
        println!("outer {value:?}"); // None
        ctx.memory_mut(|m| m.caches.cache::<MyPublisher>().set(outer_key, 0));

        ctx.show_viewport_immediate(
            egui::ViewportId::from_hash_of("ExampleViewport"),
            Default::default(),
            |ctx, _| {
                let inner_key = String::from("inner_key");
                let value = ctx.memory_mut(|m| m.caches.cache::<MyPublisher>().get(&inner_key).copied());
                println!("inner: {value:?}"); // None
                ctx.memory_mut(|m| m.caches.cache::<MyPublisher>().set(inner_key, 0));
            },
        );
    })
}

authors: emilk zhatuokun


text:
is that possible to ads some alias for some logging level

I usually use LOG_F(), but if I want to print some "PROGRESS" or "DEBUG" information, I would use LOG_F(1, ...), but it is not elegant. Because it is a macro function, I can not use #define PROGRESS 1 to avoid the log level as integer. Since C++ does not stop enum name pointing to existing value. Can you add some alias to
Verbosity_1  = 1
Verbosity_PROGRESS = 1
Verbosity_VERBOSITY2 = 2
I am not sure if Verbosity_DEBUG = 5 will cause some trouble as DEBUG may be a common user-defined macro.
loguru is really nice library! Thank you!

LOG_* always uses named verbosity levels, but you can use VLOG_* to pass an integer verbosity instead:
#define PROGRESS 1
VLOG_F(PROGRESS, "Working hard");

great!, you can close this issue now, sorry, I am not familiar with all API.

No problem - you can read more here: https://emilk.github.io/loguru/index.html#logging/logfunctions/vlog_f(verbosity,fmt,...)

authors: emilk qingfengxia

repo: emilk/loguru


text:
testing helm charts on Apple Silicon fails due to helm chart testing cli not supporting arm64

Describe the bug
When running make test-chart on Apple Silicon it will fail due to v3.0.0-rc.1 of helm chart-testing due to it having a transitive dependency on an older version of golang.org/x/sys/unix not supporting arm64.
To Reproduce
Steps to reproduce the behavior:

clone repository
run make test-chart on an M1 Mac
see error

golang.org/x/sys/unix
../../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200327173247-9dae0f8f5775/unix/syscall_darwin.1_13.go:25:3: //go:linkname must refer to declared function or variable

Closed via PR #4205

repo: emissary-ingress/emissary


text:
Wybrać i przetestować segmentator

Na chwilę obecną brakuje konkretnego modelu do segmentacji obrazu dla wnętrz mieszkań. Potrzebne rozpoznanie

@MatOgr przejrzyj sobie czy ten tool się nada https://labelstud.io/ - mamy już postawione dwie instancje tego toola

Segmentator został wybrany i przetestowany (wygenerowane zostały maski do zdjęć treningowych CycleGANa), pozostaje pytanie czy robimy w tym zakresie coś więcej teraz czy zostawiamy na później?

authors: Adelionek MatOgr

repo: emkarcinos/AITech-flats


text:
UserGroup

FrontEnd

[x] missing delete group
[x] improve creating groups with multiple selecting multiple checkboxes
[ ] missing edit group
[x] missing preview of permissions for group

Service

[ ] do not allow deletion of user and admin group

Dao

[x] add groupsHavingPermission() test

Merged into #81

repo: empt-ak/meditor


text:
Improve event data handling in usecases

Right now the event code in all usecases checks the complete stored dataset for the needed functionality. Instead it should use the provided data set from the payload only.
This way it can be made sure that events are only fired if the last incoming dataset really includes the data point for the message. If the remote service uses partial messages, this will work better with this change.

Fixed in https://github.com/enbility/cemd/commit/74909ddb2fda024cd74fb6a15d31e814d189c239

repo: enbility/cemd


text:
Fix pickle error when saving cached annotations

I got a error when run test_faster_rcnn.sh
Saving cached annotations to /root/Workspace/tf-faster-rcnn/data/VOCdevkit2007/VOC2007/ImageSets/Main/test.txt_annots.pkl
Traceback (most recent call last):
  File "./tools/test_net.py", line 121, in <module>
    test_net(sess, net, imdb, filename, max_per_image=args.max_per_image)
  File "/root/Workspace/tf-faster-rcnn/tools/../lib/model/test.py", line 192, in test_net
    imdb.evaluate_detections(all_boxes, output_dir)
  File "/root/Workspace/tf-faster-rcnn/tools/../lib/datasets/pascal_voc.py", line 283, in evaluate_detections
    self._do_python_eval(output_dir)
  File "/root/Workspace/tf-faster-rcnn/tools/../lib/datasets/pascal_voc.py", line 246, in _do_python_eval
    use_07_metric=use_07_metric, use_diff=self.config['use_diff'])
  File "/root/Workspace/tf-faster-rcnn/tools/../lib/datasets/voc_eval.py", line 122, in voc_eval
    pickle.dump(recs, f)
TypeError: write() argument must be str, not bytes

I  think that cache file open as text file.

It is duplicated #83.

repo: endernewton/tf-faster-rcnn


text:
[argocd] Add 2.8

See https://github.com/argoproj/argo-cd/releases/tag/v2.8.0.

authors: adriens marcwrobel


text:
Move to ”happo” org

The ”enduire” organization doesn’t make sense to most people. The ”happo” name was already taken, so I had to get creative (”enduire” is short for ”end ui regressions”).
The @happo user has no activity except for a forked repo, so I thought I’d try to reach out with an at-mention here in the hopes that they would be willing to hand over the github handle. 🙏

Hi @trotzig ,
I let you the name ;)
It was my first account on GitHub, and I don't use it anymore, I've an account more professional for my it school
Do I need to close the account ? Is there another way to do it ?
If you have some clues, I'll take it !
By the way, you're project is very interesting

Thank you, that’s very generous! Let’s sync this over email, shall we? Send me an email at henric.trotzig@happo.io and we’ll take it from there!

Just to summarize things (for anyone wondering) this is what we did:

@MaximeNeuville renamed his @happo account, then told me the name was available
I renamed the enduire organization to happo.
Done!

Again, I'd like to thank @MaximeNeuville for his generous action.

I'm glad to help you !

authors: MaximeNeuville happo trotzig


text:
Fix c cpp includes codeswap

Fixes the codeswap function for c/cpp. Previously would place any #includes inside the int main() boilerplate. For example input (cpp):
#include <iostream> std::cout<<"test"<<std::endl;
Previous output with added boilerplate would be:
int main() { #include <iostream> std::cout<<"test"<<std::endl; }
Whereas now it outputs:
#include <iostream> int main() { std::cout<<"test"<<std:endl; }

It's important that the #import statements are not on the same line as the "code" because whenever a line starts with #import that whole line would be added to the import block

It's important that the #import statements are not on the same line as the "code" because whenever a line starts with #import that whole line would be added to the import block

Apologies, it removed the new lines when I pasted to the code block - I had tested with them on separate lines. I think having an #import on the same line as the main function would cause a compiler error anyway, so you would need to split to a new line after the #import statement then add the boilerplate.

Apologies, it removed the new lines when I pasted to the code block - I had tested with them on separate lines. I think having an #import on the same line as the main function would cause a compiler error anyway, so you would need to split to a new line after the #import statement then add the boilerplate.

That's what I thought.
Thank you for your time.

That's what I thought.
Thank you for your time.

authors: LamboSV brtwrst

repo: engineer-man/piston-bot


text:
How do I publish children of children or multiple cursors?

How do I publish children of children or multiple cursors?
I have following 2 collections:
VehicleBodyType collection has sub body type:
VehicleBodyType.insert({
    name: 'Car',
    enabled: true,
    icon_url: '/img/car_body_types/car.png'
    bodyTypes: [
        {
            name: 'Sedan',
            enabled: true,
            icon_url: '/img/car_body_types/sedan.png'
        },
        {
            name: 'SUV',
            enabled: true,
            icon_url: '/img/car_body_types/jeep.png'
        },
        {
            name: 'Coupe',
            enabled: true,
            icon_url: '/img/car_body_types/sport.png'
        },
        {
            name: 'Pickup',
            enabled: true,
            icon_url: '/img/car_body_types/pickup.png'
        },
        {
            name: 'Convertible',
            enabled: true,
            icon_url: '/img/car_body_types/van.png'
        }
    ]
});
VehicleBodyType.insert({
    name: 'Bus',
    enabled: true,
    icon_url: '/img/car_body_types/bus.png'
});
VehicleBodyType.insert({
    name: 'Heavy Truck',
    enabled: true,
    icon_url: '/img/car_body_types/heavy_truck.png'
});
VehicleBodyType.insert({
    name: 'Motorcycle',
    enabled: true,
    icon_url: '/img/car_body_types/motorcycle.png'
});

VehicleModel has bodyType property:
VehicleModel.insert({
    make: 'BMW',
    model: X5,
    year: 2015,
    bodyType: 'SUV'
});
VehicleModel.insert({
    make: 'Toyota',
    model: Yaris,
    year: 2012,
    bodyType: 'Sedan'
});

How to publish VehicleBodyType with each bodyTypes list?
I tried following, but throws exception:
Meteor.publishComposite('vehicleBodyTypesWithModelData', function(limit) {
    return {
        find: function() {
            return VehicleBodyType.find({});
        },
        children: [
            {
                find: function(vehicleBodyType) {
                    // find latest cars for this body type
                    var subs = [];
                    if (vehicleBodyType.bodyStyles) {
                        for (var i in vehicleBodyType.bodyStyles) {
                            subs.push(Car.find({ bodyType: vehicleBodyType.bodyTypes[i].name }, {}, limit: limit}));
                        }
                    }
                    subs.push(Car.find({ bodyType: vehicleBodyType.name }, {}, limit: carCount}));
                    return subs;
                }
            }
        ]
    }
});

You're referencing a property bodyStyles that is not defined in any of your documents. You also reference a variable carCount that isn't declared anywhere. Beyond those two problems, each find function must only return one cursor, not an array of cursors. You could use mongodb's $or operator to get all the necessary records in one query.

repo: englue/meteor-publish-composite


text:
More enhanced™

Instead of creating a static .css file in a user's ./public directory, hydrate that CSS file and provide a Lambda for serving it. Additionally, add a helper function to dynamically inline styles or create a  tag for that .css file.
See the HTML in the test route for new usage https://github.com/enhance-dev/arc-plugin-styles/blob/c3609e74200fe264c125518b6219dd973ae7ba33/test/mock/src/http/get-index/index.mjs
Some feedback implemented. We should release an RC and test in arc-plugin-enhance

I ran into two issues testing this plugin out locally.

There is an error due to a missing sandbox.start command
When running the app the plugin can't find the generated css file

ENOENT: no such file or directory, open '.../node_modules/@enhance/arc-plugin-enhance/src/http/any-catchall/node_modules/@architect/shared/enhance-styles/generated.css'

Thanks for testing out @kristoferjoseph
I wonder if (2) is caused by (1). If the plugin balks then a .css file wouldn't be created in that destination

ENOENT: no such file or directory, open '.../node_modules/@enhance/arc-plugin-enhance/src/http/any-catchall/node_modules/@architect/shared/enhance-styles/generated.css'

(1) might be an issue with the Architect plugin API where it expects a start() method if sandbox is provided by the plugin. Since we're now using hydrate.copy, we don't need to do things on sandbox|deploy.start.
For now we may just be able to provide a no-op sandbox.start. This is easy to test locally. I can do that!
Then we can look into investigating the potential Arc "bug" -- maybe it's intended? unsure.

Ah, no (2) was not caused by (1). Working on correct that.

Okay, whew. I released an arc-plugin-styles RC from this branch.
I also released an experimental arc-plugin-enhance that consumes this RC
Then I made a sample application that uses the experimental release of Enhance here

authors: kristoferjoseph tbeseda

repo: enhance-dev/arc-plugin-styles


text:
Feature/customizable alerts

In response to #38 regarding PrometheusRule customization:

allow injection of additional alert groups
make the built-in alert group optional by a disabling flag
permit deployment of extra objects with the release

:tada: This PR is included in version 3.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

authors: monkeynator npdgm


text:
[HOT FIX] Rootstock ledger derivation path fix

Description
While sending tx signed by ledger on rootstock network, tx rejected with error ERROR Error: Returned error: the sender account doesn't exist due to malformed dpath in config.
ERROR Error: Returned error: the sender account doesn't exist

This PR fixes rootstock dpath in config so that ledger could sign tx accurately.

Testing
Tested this PR on rootstock mainnet by sending transactions. Fix worked find. 👍
Would be great if this PR could be considered and released on priority so that users could be unblocked to use ledger on rootstock network 🙏

will get it released this week!

authors: ahsan-javaiid kvhnuke

repo: enkryptcom/enKrypt


text:
Always return "Value cannot be null. Parameter name: source"

First of all, thank your team for developing this wonderful component. I am very excited.
I'm trying it out, but it always gives me an "Value cannot be null. Parameter name: source" in an advise panel.
Is there something wrong with my input?
Token and model were set according to README.
The model is "gpt-3.5-turbo".

environment

win11
ghpt v1.2(via package manager)

Hey @hrntsm can you try running this PR in debug and letting me know what the Advice panel says now?
#3

I got the same error. You have to make sure when you type in the "GPT model*:" that it is the exact same name you have given the generated API key.

Hi @clicketyclackety,
I tried #3 and it works well.

But I couldn't get any meaningful results; I'm trying with GPT-3.5-turbo, so maybe it's a bit predictable and weak.
I have signed up for the GPT-4 waiting list and look forward to testing its capabilities in full.
Thank you for your quick response.

Hi @clicketyclackety,
I tried #3 and it works well.

But I couldn't get any meaningful results; I'm trying with GPT-3.5-turbo, so maybe it's a bit predictable and weak.
I have signed up for the GPT-4 waiting list and look forward to testing its capabilities in full.
Thank you for your quick response.

Awesome @hrntsm , I'll try it myself again and release a new build if it works for me too. Yeah it struggles with rectangles. I think it wants the component but currently it creates a parameter. I'll do some GPT3.5/4 comparisons

Error: 429 Too Many Requests {
"error": {
"message": "You exceeded your current quota, please check your plan and billing details.",
"type": "insufficient_quota",
"param": null,
"code": null
}
}

authors: clicketyclackety hrntsm hverbrugge lionmad


text:
User can only edit himself

How do you control when the user can only edit himself, unless it is the administrator role?
How do you control it so it does not edit other users? But that the administrator can edit all.

I think this must work:
class UserController {
  async user ({ auth, params }) {
     const user = await User.findByOrFail('id', params.id)
     const canEditUsers = await auth.user.can('edit_users')
     if (!canEditUsers && user.id !== auth.user.id) {
        throw new Error('You not allowed to this resource')
     }
     ...
  }
}

or
class UserController {
  async user ({ auth, params }) {
     const user = await User.findByOrFail('id', params.id)
     const isAdministrator = await auth.user.is('administrator')
     if (!isAdministrator && user.id !== auth.user.id) {
        throw new Error('You not allowed to this resource')
     }
     ...
  }
}

authors: danielsalles enniel

repo: enniel/adonis-acl


text:
Better handling of complex trigger elements

Hi,
We've been using ezpz-tooltips in one of our projects but we've had problems when the trigger element contains child elements; for the sake of discussion let's say we have a TD -> A situation and the tooltip trigger is set on the TD.
Whenever the mouse would pass from TD onto the A, the tooltip would disappear and appear again. This may not be noticable on smaller tooltips, but we've put quite a lot of data into ours and they are also AJAX loaded, so the flicker became problematic.
To conserve server resources, we made another adjustment for ourselves: we've added a delay option to the ezpz_tooltip constructor (I can push that to the main version if you are interested) so users wouldn't accidentaly trigger the AJAX tooltips and now the tooltip hide/show bug became REALLY annoying.
Anyways, just wanted to contribute back, pull this if you agree with the changes.

Hi - I was also having problems with the flicker caused by child elements, the solution I've used simply swaps mouseover and mouseout for mouseenter and mouseleave events.

Closing due to inactivity & quite frankly the age of this pull request :laughing:

authors: danksearle gregopet

repo: enriquez/ezpz-tooltip


text:
Add brew formula

I've never written one of these before, but it seems to work as expected. In the future when things are more stable it could be added to homebrew core.

I would like to do something like that, i already have  a PR about using wget as well and i think we should support different pkg managers

There's also #196 for Arch, maybe that should be split out into an INSTALLING.md at some point.

Perhaps a more descriptive path name? e.g. misc/homebrew/..., then you could have misc/pacman/..., misc/apt/... etc.

@1stvamp I was looking at this as a temporary thing until ds is stable enough that we could just add the formula to homebrew core. I don't think hosting packages/pkgbuilds/etc here for every distribution would be the best long term solution

From experience it generally makes it easier to release new packages for a
lot of systems (snaps, debs as immediate examples) if the package metadata
is part of the source, but I'm not going to die on this hill. :heart:

@zacanger thank you for that 💖

@dmfay @moogacs not trying to steal your thunder, but if this gets merged we'd end up having conflicts so I brought your changes in here.
Closes #196
Closes #185

authors: 1stvamp moogacs zacanger

repo: entropic-dev/entropic


text:
Crash on macOS with invalid DNS name

Title:
Crash on macOS with invalid DNS name
Description:
I worked on a change that involved updating Envoy to latest 1.17.1. On my host machine, I found a crash noted below which was using test data and a bad hostname.
[2021-04-14 15:50:52.613][8367287][info][main] [external/envoy/source/server/server.cc:731] starting main dispatch loop
[2021-04-14 15:50:57.615][8367287][critical][assert] [external/envoy/source/common/network/apple_dns_impl.cc:304] assert failure: interface_index == 0. Details: unexpected interface_index=4294967295
[2021-04-14 15:50:57.615][8367287][critical][backtrace] [bazel-out/darwin-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:104] Caught Abort trap: 6, suspect faulting address 0x7fff20435462
[2021-04-14 15:50:57.615][8367287][critical][backtrace] [bazel-out/darwin-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:91] Backtrace (use tools/stack_decode.py to get line numbers):
[2021-04-14 15:50:57.615][8367287][critical][backtrace] [bazel-out/darwin-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:92] Envoy version: d6a4496e712d7a2335b26e2f76210d5904002c26/1.17.1/clean-getenvoy-bb8060d-envoy/RELEASE/BoringSSL

Repro steps:
I used a bad hostname for endpoint socket address on this platform:
Darwin MacBook-Pro.local 20.3.0 Darwin Kernel Version 20.3.0: Thu Jan 21 00:07:06 PST 2021; root:xnu-7195.81.3~1/RELEASE_X86_64 x86_64

Config:

Logs:
[2021-04-14 15:50:52.613][8367287][info][main] [external/envoy/source/server/server.cc:731] starting main dispatch loop
[2021-04-14 15:50:57.615][8367287][critical][assert] [external/envoy/source/common/network/apple_dns_impl.cc:304] assert failure: interface_index == 0. Details: unexpected interface_index=4294967295
[2021-04-14 15:50:57.615][8367287][critical][backtrace] [bazel-out/darwin-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:104] Caught Abort trap: 6, suspect faulting address 0x7fff20435462
[2021-04-14 15:50:57.615][8367287][critical][backtrace] [bazel-out/darwin-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:91] Backtrace (use tools/stack_decode.py to get line numbers):
[2021-04-14 15:50:57.615][8367287][critical][backtrace] [bazel-out/darwin-opt/bin/external/envoy/source/server/_virtual_includes/backtrace_lib/server/backtrace.h:92] Envoy version: d6a4496e712d7a2335b26e2f76210d5904002c26/1.17.1/clean-getenvoy-bb8060d-envoy/RELEASE/BoringSSL

@junr03 this is using the Apple DNS resolver.

authors: codefromthecrypt htuch

repo: envoyproxy/envoy


text:
LUA filter httpCall() buffers original request body,

In lua filter we are making a httpCall to another service.  This is simple post call with no response body
But get 413 too large error if original request size is > 1MB
Seems before making http call, it streams and buffers original request body.

not clear why original request body is buffered

cc @snowp

@sumitaneja Can you share the entire Lua script you're using? Feel free to edit it if it contains information you don't want to share, just looking for the general shape of it

@snowp Simplified view of lua script part of envoy Lua filter.

applyTo: HTTP_FILTER
match:
context: SIDECAR_OUTBOUND
patch:
operation: INSERT_BEFORE
value:
name: envoy.lua
typed_config:
'@type': type.googleapis.com/envoy.config.filter.http.lua.v2.Lua
inlineCode: |
function envoy_on_request(request_handle)
local p = request_handle:headers():get(":path")
local rlHeaders = {}
local sid = request_handle:headers():get("someheader")
local ridOr = request_handle:headers():get("someHedaer")
local rid = string.gsub(ridOr, "/", "%%2F")
local rlkey = sid .. "/" .. rid
rlHeaders[":method"] = "PUT"
rlHeaders[":path"] = "/someURL/" .. rlkey
rlHeaders[":authority"] = "cluster.svc.cluster.local"
local headers, body = request_handle:httpCall(
"lua_cluster",
rlHeaders,
nil,
5000)
     end

When i make request with payload size >1mb it fails with 413 too large error.  Using istio 1.6

Envoy version
12cfbda324320f99e0e39d7c393109fcd824591f/1.14.1/Clean/RELEASE/BoringSSL

Reproduced with sandbox lua filter. https://www.envoyproxy.io/docs/envoy/latest/start/sandboxes/lua
cat envoy.yaml
static_resources:
listeners:
- name: main
address:
socket_address:
address: 0.0.0.0
port_value: 8000
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains:
- "*"
routes:
- match:
prefix: "/"
route:
cluster: web_service
http_filters:
- name: envoy.filters.http.lua
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
inline_code: |
local mylibrary = require("lib.mylibrary")
            function envoy_on_request(request_handle)
              request_handle:headers():add("foo", mylibrary.foobar())
              request_handle:logWarn("WENTRY")
              local head,body = request_handle:httpCall("lua_cluster",
              {
                   [":method"] = "GET",
                   [":path"] = "/v3/875b1e5a-0a25-47e4-a9f7-ae33b988edb3",
                   [":authority"] = "run.mocky.io"
              },nil, 5000)
              request_handle:logWarn("status " .. head[":status"])
              request_handle:logWarn("EXIT")
            end
            function envoy_on_response(response_handle)
              body_size = response_handle:body():length()
              response_handle:headers():add("response-body-size", tostring(body_size))
            end
      - name: envoy.filters.http.router
        typed_config: {}

clusters:

name: lua_cluster
connect_timeout: 0.25s
type: STRICT_DNS # static
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: lua_cluster
endpoints:

lb_endpoints:

endpoint:
address:
socket_address:
address: run.mocky.io
port_value: 80

name: web_service
connect_timeout: 0.25s
type: STRICT_DNS # static
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: web_service
endpoints:

lb_endpoints:

endpoint:
address:
socket_address:
address: web_service
port_value: 80

@sumitaneja can you surround all of your quoted code and log traces with ``` - it will make it a lot easier to read

@phlax Thanks.updated comments.

@sumitaneja can you surround all of your quoted code and log traces with ``` - it will make it a lot easier to read

@phlax Thanks.updated previous comments.

When issuing a synchronous httpCall the filter will pause the stream until we get the response (since we handle the response inline in the Lua), which then ends up having to buffer the request when making a fall during on_request.
The API lets you fire and forget the request (by setting the async param), but I don't think there is a way to asynchronously handle the response of the http call. If someone can figure out a way for that to make sense in the API I wouldn't be opposed to adding it, but I think it would take some careful thought

@snowp Is it not possible to not to buffer request during filter execution. That was understanding while using filter. We expect filter not to read body unless explicitly requested and API exposed by lua filter gives optimal performance.
Else whats the alternative, We have requirement to do some request and response validation by external service.
Request payload can be upto 1 gb. and filter doesn't need to read payload.

Currently the code will buffer the request while waiting for the response (I assume in order to allow code to read the body after the call), unless you set the https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/lua_filter#httpcall asynchronous value to true. This would mean that you don't get to see the response of the httpCall however. Any other changes to this behavior would require code change in some way.
Besides this you could always do this as a native C++ filter which provides more control over control flow, or if WASM API provides more flexibility around this (I'm not very familiar with it) that might be an option.

That would need envoy/istio upgrade.
for current release If we increase buffering limit, Can you confirm if buffering happens in-memory or in some temp file for large payloads.
.

It's all in memory

authors: phlax snowp sumitaneja


text:
docs: links broken for items like http_filters/grpc_json_transcoder_filter

Title: docs: links broken for items like http_filters/grpc_json_transcoder_filter
Description:
Links to documentation like that found in the Sample Envoy configuration for gRPC JSON transcoding use a link path that predates #8027. Following these links yield page not found. Also the web links no longer need to use the www prefix.

seems it is tc in  #19101

authors: ankatare kriswuollett


text:
Prometheus buckets do not have inclusive upper bound

Title: Prometheus buckets do not have inclusive upper bound
Description:
According to https://prometheus.io/docs/concepts/metric_types/#histogram the output for histogram buckets should be <basename>_bucket{le="<upper inclusive bound>"}. However, the stats from /stats/prometheus seem to not include the upper bound.
Repro steps:
The way I ran into this was when I configured custom buckets for the cryptomb private key provider contrib extension. I ran the contrib image provided by Envoy with different configs:
docker run --rm -ti -p 9000:9000 -p 9001:9001 -v $(pwd)/conf-1.yaml:/conf.yaml -v $(pwd)/key.pem:/tmp/key.pem -v $(pwd)/cert.pem:/tmp/cert.pem --cpuset-cpus=0-1 envoyproxy/envoy-contrib:v1.21.1 -c /conf.yaml
docker run --rm -ti -p 9000:9000 -p 9001:9001 -v $(pwd)/conf-2.yaml:/conf.yaml -v $(pwd)/key.pem:/tmp/key.pem -v $(pwd)/cert.pem:/tmp/cert.pem --cpuset-cpus=0-1 envoyproxy/envoy-contrib:v1.21.1 -c /conf.yaml
Then I created a request to the configured endpoint:
curl -k https://localhost:9000
After a short amount of time the request should have been recorded with a value of 1:
curl localhost:9001/stats/prometheus?filter=cryptomb
I created the self-signed certificate used for testing with:
openssl req -x509 -newkey rsa:2048 -nodes -subj '/CN=localhost' -keyout key.pem -out cert.pem
Admin and Stats Output:
with conf-1.yaml:
curl localhost:9001/stats/prometheus?filter=cryptomb:
# TYPE envoy_listener_cryptomb_rsa_queue_sizes histogram
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="1"} 0
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="2"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="3"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="4"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="5"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="6"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="7"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="8"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="+Inf"} 1
envoy_listener_cryptomb_rsa_queue_sizes_sum{envoy_listener_address="0.0.0.0_9000"} 1.0500000000000000444089209850063
envoy_listener_cryptomb_rsa_queue_sizes_count{envoy_listener_address="0.0.0.0_9000"} 1

with conf-2.yaml:
curl localhost:9001/stats/prometheus?filter=cryptomb:
# TYPE envoy_listener_cryptomb_rsa_queue_sizes histogram
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="1.5"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="2.5"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="3.5"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="4.5"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="5.5"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="6.5"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="7.5"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="8.5"} 1
envoy_listener_cryptomb_rsa_queue_sizes_bucket{envoy_listener_address="0.0.0.0_9000",le="+Inf"} 1
envoy_listener_cryptomb_rsa_queue_sizes_sum{envoy_listener_address="0.0.0.0_9000"} 1.0500000000000000444089209850063
envoy_listener_cryptomb_rsa_queue_sizes_count{envoy_listener_address="0.0.0.0_9000"} 1

Config:
conf-1.yaml:
stats_config:
  histogram_bucket_settings:
    match:
      contains: "cryptomb"
    buckets: [1,2,3,4,5,6,7,8]

static_resources:
  listeners:
  - address:
      socket_address:
        address: 0.0.0.0
        port_value: 9000
    filter_chains:
      transport_socket:
        name: envoy.transport_sockets.tls
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.DownstreamTlsContext
          common_tls_context:
            tls_certificates:
              certificate_chain: { "filename": "/tmp/cert.pem" }
              private_key_provider:
                provider_name: cryptomb
                typed_config:
                  "@type": "type.googleapis.com/envoy.extensions.private_key_providers.cryptomb.v3alpha.CryptoMbPrivateKeyMethodConfig"
                  poll_delay: 0.1s
                  private_key: { "filename": "/tmp/key.pem" }
      filters:
      - name: envoy.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          codec_type: auto
          stat_prefix: ingress_http
          route_config:
            name: local_route
            virtual_hosts:
            - name: backend
              domains:
              - "*"
              routes:
              - match: { prefix: / }
                direct_response: { status: 200 }
          http_filters:
          - name: envoy.filters.http.router
            typed_config: {}
admin:
  access_log_path: "/dev/null"
  address:
    socket_address:
      address: 0.0.0.0
      port_value: 9001

conf-2.yaml (only difference to conf-1.yaml are the buckets):
stats_config:
  histogram_bucket_settings:
    match:
      contains: "cryptomb"
    buckets: [1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5]

...

cc @jmarantz can you further inspect whether this is a bug related only to cryptomb or if something else needs to be done when sending Envoy's histograms?

The code in histogram_impl.cc that computes this uses hist_approx_count_below() which is documented to Returns the number of values in buckets that are entirely lower than or equal to threshold. I wonder if we're hitting issues with int->double->int conversion and imprecision in that process?

authors: VillePihlava adisuissa ggreenway


text:
Envoy proxy match and case sensitive

Title: Envoy proxy match and case sensitive
Description:
in my current project, I have many routes of the same but different Case example
Home/test and home/Test or home/test
Envoy doesn't recognize these differences as one, so I have to repeat the configuration per route
                        - match:
                            prefix: /Home/test/
                          route:
                            cluster: application-cluster
                        - match:
                            prefix: /home/test
                          route:
                            cluster: application-cluster

any way to configure Envoy such that it's not cause sensitive
[optional Relevant Links:]

Any extra documentation required to understand the issue.

regex

You'll want to use SafeRegex for that something like

There is also the case_sensitive boolean on route matchers.

@htuch  thanks a lot it works really fine using case_sensitive, didn't know the default is true

authors: 13567436138 RiverPhillips alimhabib htuch


text:
improved runtime guard checks

right now runtime guard checks appear to only work if the guard is mentioned in the first change.  If one adds envoy.reloadable_features.foo
area: http
  change: |
    changed implemented something guarded by  ``envoy.reloadable_features.foo``

will pass but
area: http
  change: |
    preexisting feature
  change: |
    changed implemented something guarded by  ``envoy.reloadable_features.foo``

appears to fail

cc @phlax

hmm - i wasnt sure if we allowed multiple changes for an entry - im not sure its handled correctly
there was an issue that came up during the last release so i was going to add linting to prevent it (cf #22222 )

that said - im not opposed to it working this way so maybe its easier to fix that than add linting

thinking further on this - there are a few moving parts in terms of changing to allow multiple changes
i think for now i will just clean up and fix the linting - we can revisit if we think there is a need to

hmm, checking this further - multiple change per entry wont work as its not valid yaml - its a duplicate key
i was wondering why this was not being picked up by the tool already as it is quite strictly typed - it seems that pyyaml doesnt fail on duplicate keys it just ignores all but the last (its possible to add a custom yaml loader that would detect this but im not convinced that is the right way)
i think we will need to add yamllint to resolve this - which i have been meaning to do anyway - i have been running it from time to time to do cleanups

authors: alyssawilk phlax


text:
Internal Redirect: Add support for configurable maximum hops

Title: Internal Redirect: Add support for configurable maximum hops and request with body
Description:
Add configurable maximum number of hops internal redirect should follow. The current behavior is that maximum_hops always equals to 1. The state is tracked by existence of x-envoy-original-url. We should do this bookkeeping in StreamInfo::FilterState once #9143 is done.
Number of maximum hops can be configured at the HCM level or the route level.
HCM level is easier to implement.
route level is confusing since route can change across redirects, but maybe we can always respect the config on the first route a request hits?

@alyssawilk


text:
docs: Update build instructions for docs

Signed-off-by: Ryan Northey ryan@synca.io
Commit Message: docs: Update build instructions for docs
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
[Optional Runtime guard:]
[Optional Fixes #Issue] Partial fix for #13229
[Optional Deprecated:]

i think the  mac test fail is unrelated - its been failing all day on the brew update


text:
docs: Fix release notes for v1.15.1 release.

Commit Message:
docs: Fix release notes for v1.15.1 release.

Remove reference to non existing version.
Add missing newline before itemized list.
Use v1.15.1.rst instead of current.rst to bypass format check

Do you want to just land this fix and not rebuild docs? I'm fine either way. If you want to rebuild we obviously need to re-tag.


text:
Windows flaky test: //test/extensions/transport_sockets/tls:handshaker_test

Commit Message:
flaky test: //test/extensions/transport_sockets/tls:handshaker_test
This test is flaky due to msys2 openssl DLL load failures
See: https://github.com/envoyproxy/envoy/pull/13276
Additional Description: N/A
Risk Level: Low
Testing: N/A
Docs Changes: N/A
Release Notes: N/A

Same reason this PR is failing currently: https://github.com/envoyproxy/envoy/pull/13264


text:
test: remove unused code in config_test.cc

Commit Message:
Signed-off-by: Yuchen Dai silentdai@gmail.com
Additional Description:
Risk Level: LOW
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/assign adip
Since Adi is the author. Should be easy to confirm.

/assign adisuissa


text:
deps: Bump com_github_nlohmann_json -> 3.11.2

Fix #22692
Signed-off-by: Ryan Northey ryan@synca.io
Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/retest

/lgtm deps

authors: phlax wrowe


text:
ci: Fix dep checker permissions

Signed-off-by: Ryan Northey ryan@synca.io
Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

cc @sashashura - seems that more permissions are needed for the dep checker action - i think this change is what is required

Thank you for fixing this. I missed that the checker uses the token somehow.

authors: phlax sashashura


text:
route: improve route entry for matcher

Commit Message: route: improve route entry for matcher

support dynamic clusters for matcher
run route callback after route match for matcher

Additional Description:
There are 2 problems in RouteAction and RouteList of matcher:

After route matches, the route in the config will be returned directly. But we should return the result of matches. Otherwise, the dynamic cluster(like cluster header) won't work.
They doesn't handle the route callback logic.
(I hit the first problem, but found the second when I fixes the first)

Without the fix, the tests will fail:
[ RUN      ] RouteMatcherTest.TestMatchTreeDynamicCluster
external/envoy/test/common/router/config_impl_test.cc:1430: Failure
Expected equality of these values:
  "www2"
  route->clusterName()
    Which is: ""

[ RUN      ] RouteMatcherTest.TestRouteListDynamicCluster
external/envoy/test/common/router/config_impl_test.cc:1585: Failure
Expected equality of these values:
  "www2"
  route->clusterName()
    Which is: ""

[ RUN      ] RouteMatchOverrideTest.RouteListVerifyRouteOverrideStops
external/envoy/test/common/router/config_impl_test.cc:10748: Failure
Expected equality of these values:
  accepted_route->routeEntry()->clusterName()
    Which is: "foo_bar"
  "foo"

Risk Level: Low
Testing: unit tests
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

/assign-from @envoyproxy/first-pass-reviewers

Thanks! Conflicts resolved.

/retest


text:
ext_authz: ensure both raw body/body will be used for http authorization request

Commit Message: ext_authz: ensure both raw body/body will be used for http authorization request
Additional Description:
To close #27220
Risk Level: Low.
Testing: unit.
Docs Changes: n/a.
Release Notes: added.
Platform Specific Features: n/a.

/assign @ggreenway

Has merge conflict
/wait

friendly ping @ggreenway 😸

authors: RyanTheOptimist ggreenway wbpcode


text:
json: move the shared logic to shared class

Commit Message: json: move the shared logic to shared class
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

cc @jmarantz per our previous discussion, we may could extract the shared logic of json serializer to same base. Here is a a possible way.

/retest

Per discussion, close this PR first.


text:
http: add support for forwarding peer cert chains

Description: This adds support for forwarding peer cert chains via the XFCC header.
Risk Level: Low
Testing: Updated existing tests
Docs Changes: Updated XFCC doc
Release Notes: Added a note about the feature
Fixes #6135
Also see #6230
/cc @PiotrSikora

/retest

@PiotrSikora I've addressed your comments in ede69e8.

@lizan addressed your comments in ee0527b.

/retest


text:
http: preserve empty header values for inlined headers

Description:
This PR changes the headermap impl. to preserve empty headers, even for inlined headers. Since inlined headers are comma-concatenated, this means a list like ("a", "", "b") is now comma-concatenated as "a,,b".
Risk Level:

Low.
Testing:
I needed to modify :header_map_impl_test to expect the new behavior.

Docs Changes: n/a
Release Notes: n/a
Fixes #7521

Seeking feedback on whether or not this necessitates a doc change.

This makes sense to me without having gone back through the spec, but would like to here from @PiotrSikora

/retest

/retest

@PiotrSikora pinging for review.


text:
Shows an empty process/connection/message list

Latest SuperSU on rooted Cyanogen S4 has OS Monitor granted Super User permissions, all good.
Happened immediately after SuperSU update: OS Monitor app starts, but processes, connections, messages lists show up as empty.
ONLY OS Monitor stopped working (had been working all along for years), the other apps that require root continue to work with SuperSU.

Same on my OPO that runs Cyanogen-12.1 (YOG7DAS2K1).
If "Enable root privilege" option is disabled everything gets back.

Same symptoms as described by OP on a newly set up moto XT1572 running 5.1.1.
On the said device, it could be circumvented by settings SELinux to permissive, e.g. su -c setenforce 0, in a terminal.

authors: codefolder kennethho yevgenyz

repo: eolwral/OSMonitor


text:
🛑 eos_genesys_front is down

In 11e4d7a, eos_genesys_front ($EOS_GENESYS_FRONT_URL) was down:

HTTP code: 0
Response time: 0 ms

Resolved: eos_genesys_front is back up in 9b65830 after 8 minutes.

repo: eos-technology/uptime


text:
[BUG] How to generate models without hashcode override

Could not resolve annotation for int get hashCode.
╷
1 │ @override
│ ^^^^^^^^^
╵

Hi @bawantha
We can add option to not generate it if it's not needed. But what is actual problem?

line 1, column 384153 of package:app/swagger_generated_code/generic_search.models.swagger.dart: Could not resolve annotation for `int get hashCode`.
  ╷
1 │ @override
  │ ^^^^^^^^^
  ╵
[SEVERE] Failed after 248ms

I'm getting this error, I don't know why

@bawantha  could you please share part of swagger code with this model? I will take a look into it

@bawantha  ping

I'm sorry brother I cannot share the swagger with you, it's confidential If I have time I will recreate issue with different swagger, until then 👋

@bawantha  You can share just part of it and modify it as you wish to keep confidential data. I just want to understand root cause to avoid such situations.


text:
feat(chat-e2e): monitoring tests

Description:
implemented tests for monitoring Dial setups
Checklist:

[x] the pull request name complies with Conventional Commits
[x] the pull request name starts with fix(<scope>):, feat(<scope>):, feature(<scope>):, chore(<scope>):, hotfix(<scope>): or e2e(<scope>):. If contains breaking changes then the pull request name must start with fix(<scope>)!:, feat(<scope>)!:, feature(<scope>)!:, chore(<scope>)!:, hotfix(<scope>)!: or e2e(<scope>)!: where <scope> is name of affected project: chat, chat-e2e, overlay, shared, sandbox-overlay, etc.
[ ] the pull request name ends with (Issue #<TICKET_ID>) (comma-separated list of issues)
[x] I confirm that do not share any confidential information like API keys or any other secrets and private URLs

/deploy-review

repo: epam/ai-dial-chat


text:
Click on 'Valid' button finishes extraction job

Preconditions:
Extraction job is created.
Steps to reproduce:

Open the job as validator.
Press 'Valid' button.

Result:
The job is finished. The corresponding request is sent in dev console.
Expected result:
The button 'Finish validation' should be enabled after 'Valid' click and only click on 'Finish' should finishes the job.

Verified, closed.

repo: epam/badgerdoc


text:
It is impossible to choose zoom value from zoom drop down list

Description:
It is impossible for a user to change zoom choosing zoom value from zoom drop down.
Steps to Reproduce:

Click zoom drop down.
Choose zoom value from the zoom drop down list.

Expected result:
Zoom drop down is shown when clicking. It is possible to change zoom value using the zoom drop down list.
Actual Result:
Zoom drop down is shown and hidden at the same time when clicking. It is impossible to choose zoom value from the zoom drop down list.

Status: PASS
Build: Release 2.1
OS/Browser: Win10/Chrome

The issue is reopened because cut, copy and paste functions do not work.
Description:
It is impossible for a user to cut, copy or paste structures.
Steps to Reproduce:

Draw a structure.
Select it with a selection tool.
Click "Cut" button (or use shortcut Ctrl+X).
Click "Paste" button (or use shortcut Ctrl+V).
Click "Copy" button (or use shortcut Ctrl+C).

Click "Paste" button (or use shortcut Ctrl+V).

Actual Result:
The structure is not cut, copied or pasted.
Paste function is not available via menu.

Expected result:
The structure is cut, copied and pasted.
Paste function is available via menu.

Status: PASS
Build: Release 2.1.0
OS/Browser: Win10/Chrome
Actual result:
The structure is cut, copied and pasted.

repo: epam/ketcher


text:
how to use ketcher as viewer without any toolbar shown

ketcher as viewer
I did not found any method of the ketcher to set it as a vewer without any toolbar shown,
could anybody tell me how to set it? please.

Hi, I found a method to use ketcher-standalone without iframe as viewer(version 2.18)
I current use the following code:
document.getElementsByClassName('BottomToolbar-module_root__kjkSm App-module_bottom__tQA2B').item(0).remove()
document.getElementsByClassName('App-module_top__SBeSV css-2yv69u').item(0).remove()
document.getElementsByClassName('LeftToolbar-module_root__yhhZm App-module_left__2iz-i').item(0).remove()
document.getElementsByClassName('RightToolbar-module_root__1D5hp App-module_right__U7A5Q').item(0).remove()
maybe more convient method by configuring settings  is appreciated.


text:
Macro: System displays chain as two sequences

Steps to Reproduce

Switch to Macro
Load from file: System displays nucleotide as @ symbol.zip
Switch to Sequence mode

Actual behavior
System displays chain as two sequences

Expected behavior
System shows one sequence

As per specification:

In sequence view nucleotide should be displayed as a letter which corresponds to the natural analog of base that is a part of nucleotide. If nucleotide has a modified component (phosphate, sugar, or base), then a letter should be marked by some unambiguous designation (see mockups in comments).

Modified phosphate - any phosphate except 'P'
Modified sugar - any sugar except 'R'
Modified base - any base except 'A', 'C', 'G', 'T', 'U'

Versions:
Windows 10
Chrome Version 112.0.5615.138 (Official Build) (64-bit)
Ketcher Version 2.20.0-rc.2 Build at 2024-04-02; 05:31:05
Indigo Toolkit Version 1.20.0-dev.1.19-gd0224f91-wasm32-wasm-clang-12.0.0
Issue found in the context of testing - https://github.com/epam/ketcher/issues/3734

The issue has been moved from 2.21.0-rc.2 to 2.22.0-rc.1 after discussion with management and in accordance with the testing flow process.

Moved to Refined Backlog since not fixed over 1 release

authors: AlexeyGirin Zhirnoff


text:
Manual run for Ketcher Verison 2.21 - part 2

[ ] Sequence representation - 3h
[ ] Bond Tool - 2h

Verified for Version 2.21.0-rc.1
Build at 2024-04-15; 20:00:15
Indigo Toolkit
Version 1.20.0-rc.1.0-g8e8ffc3c3-wasm32-wasm-clang-12.0.0
Comment was added to

https://github.com/epam/ketcher/issues/4480
New issue was added
https://github.com/epam/ketcher/issues/4500

authors: AlexeyGirin NadezhdaPeskun


text:
Tap on the pointed view

I would like to make the user tap on the pointed buttons. I think this would be better, as the user would be doing the action and seeing the results instead of reading (and maybe forgetting) what they do. Is there a way to do this? I've looked at the api, but I haven't found anything.

Hey @buscarini, the property allowTouchInsideCutoutPath  might be what you're looking for. ;)

Great, thanks! from the explanation I didn't get that it was meant for this

authors: buscarini ephread

repo: ephread/Instructions