User chat receive effects of others chat message

<!--
Hello, community, I'm here to ask about something that is happening with my project in both environment, production, and local one:

I have a bot set up in an express server following the example of the documentation:

```bash
  const TOKEN = process.env.BOT_TOKEN as string;
  const PORT = process.env.PORT || 3333;
  const URL = 'https://<url>herokuapp.com';

  const telegramBot = new TelegramBot(TOKEN);

  telegramBot.setWebHook(`${URL}/bot${TOKEN}`);

  const app = express();

  app.use(cors());
  app.use(express.json());
  app.use(routes);

  app.get('/', async (_, response) => {
    return response.json({
      connected: true,
    });
  });

  app.post(`/bot${TOKEN}`, (request, response) => {
    telegramBot.processUpdate(request.body);
    response.sendStatus(200);
  });

  app.listen(PORT, () => {
    console.log(`Server Connected: ${PORT}`);
  });

  botCommands(telegramBot);
```
Everything works well in the application, but when the bot starts a listener like a bellow one, the bot function starts if other users in another telegram accounts send a message

```bash
  this.telegramBot.once('text', async response => {
        if (response  === 'language_itention') {
          let language = response.text!.toLowerCase();

        }
   })
```

That's the version I'm using:
node-telegram-bot-api:  "^0.51.0",
Node:  14.15.4

<!--
Hello, community, I'm here to ask about something that is happening with my project in both environment, production, and local one:

I have a bot set up in an express server following the example of the documentation:

```bash
  const TOKEN = process.env.BOT_TOKEN as string;
  const PORT = process.env.PORT || 3333;
  const URL = 'https://<url>herokuapp.com';

  const telegramBot = new TelegramBot(TOKEN);

  telegramBot.setWebHook(`${URL}/bot${TOKEN}`);

  const app = express();

  app.use(cors());
  app.use(express.json());
  app.use(routes);

  app.get('/', async (_, response) => {
    return response.json({
      connected: true,
    });
  });

  app.post(`/bot${TOKEN}`, (request, response) => {
    telegramBot.processUpdate(request.body);
    response.sendStatus(200);
  });

  app.listen(PORT, () => {
    console.log(`Server Connected: ${PORT}`);
  });

  botCommands(telegramBot);
```
Everything works well in the application, but when the bot starts a listener like a bellow one, the bot function starts if other users in another telegram accounts send a message

```bash
  this.telegramBot.once('text', async response => {
        if (response  === 'language_itention') {
          let language = response.text!.toLowerCase();

        }
   })
```

That's the version I'm using:
node-telegram-bot-api:  "^0.51.0",
Node:  14.15.4

bot starts a listener like a bellow one, the bot function starts if other users in another telegram accounts send a message

I don't understand this part. Wouldn't EventEmitter detach the listener if you use once? could that be the issue?

bot starts a listener like a bellow one, the bot function starts if other users in another telegram accounts send a message

I don't understand this part. Wouldn't EventEmitter detach the listener if you use once? could that be the issue?

The users of my bot have been related that the bot is listening to all chat in a single application.
Example: You start to use my bot at your home, and the bot will ask you for your name, if I start to use the bot at the same time, It will crash your usability, because the bot is running only in one chat by the time.
After a search, I was thinking it is a problem in the development environment, but after setting up in the Heroku with express in the config above, still the problem

Could you post the source code of botCommands module.

Could you post the source code of botCommands module.

Off course! Thanks for the help! The botCommands return several functions, so I will post one of those:

    class BotTranslateService {
      private telegramBot: TelegramBot;

      private googleCloudServices: GoogleCloudServices;

      private languageCode: LanguagesCode;

      constructor({ telegramBot, googleCloudServices }: IBotTranslateService) {
        this.googleCloudServices = googleCloudServices;
        this.telegramBot = telegramBot;
        this.languageCode = 'en';
      }

      private async changeLanguage(messageId: number) {
        this.languageCode = String(
          await asyncMessage({
            messageId,
            regExp: 'en|es|fr|de|it',
            command: [['en 🇺🇸', 'es 🇪🇸'], ['fr 🇫🇷', 'de 🇩🇪 '], ['it 🇮🇹']],
            telegramBot: this.telegramBot,
            text: `📍 Selecione o idioma:`,
          }),
        ).split(' ')[0] as LanguagesCode;

        await this.telegramBot.sendMessage(
          messageId,
          `Digite ou mande um audio do que você deseja traduzir ⬇` +
            `\nNovo idioma selecionado: ${
              languages.correspondence[this.languageCode]
            }`,
          {
            reply_markup: {
              remove_keyboard: true,
            },
          },
        );

        await this.execute({
          inputLanguageCode: 'pt',
          outputLanguageCode: this.languageCode,
        });
      }

      private async getAudioText({
        inputLanguageCode,
        outputLanguageCode,
        message,
      }: IGetAudioText): Promise<string> {
        const fileLink = await this.telegramBot.getFileLink(message.voice!.file_id);

        const audioPath = await createAudioFile({
          fileLink,
          userName:
            message.from?.first_name ||
            message.from?.username ||
            `${message.chat.id}`,
        });

        const parsedText = await this.googleCloudServices.speechToText({
          audioPath,
          languageCode: inputLanguageCode,
        });

        await fs.promises.unlink(audioPath);

        return this.sendTranslate({
          parsedText,
          outputLanguageCode,
          message,
        });
      }

      private async sendTranslate({
        parsedText,
        outputLanguageCode,
        message,
      }: ISendTranslate): Promise<string> {
        const translatedText = await this.googleCloudServices.translate({
          text: [parsedText],
          languageCode: outputLanguageCode,
        });

        const translatedAudioPath = await this.googleCloudServices.textToSpeech({
          text: translatedText,
          languageCode: outputLanguageCode,
        });

        await Promise.all([
          this.telegramBot.sendMessage(message.chat.id, translatedText),
          this.telegramBot.sendVoice(message.chat.id, translatedAudioPath, {}),
        ]);

        await fs.promises.unlink(translatedAudioPath);

        return translatedText;
      }

      public async execute({
        inputLanguageCode,
        outputLanguageCode,
      }: IExecute): Promise<string | void> {
        this.languageCode = outputLanguageCode;

        return new Promise(resolve => {
          this.telegramBot.once('message', async message => {
            if (message.voice) {
              return this.getAudioText({
                inputLanguageCode,
                outputLanguageCode,
                message,
              }).then(resp => resolve(resp));
            }

            const commands = [
              '/start',
              '/traduzir',
              '/pronuncia',
              '/inicio',
            ].includes(message.text!.toLowerCase());

            const alterLanguage = ['/alterar'].includes(
              message.text!.toLowerCase(),
            );

            if (commands) return resolve();

            if (alterLanguage) {
              return this.changeLanguage(message.chat.id);
            }

            return this.sendTranslate({
              parsedText: message.text!,
              outputLanguageCode: this.languageCode,
              message,
            }).then(resp => resolve(resp));
          });
        });
      }
    }

I always use promises to avoid the function return until the bot gets the user data, so ok since here everything goes well, but this "once message" gets for some reason the message of other users

If your bot is being used in groups, you should use message.from.id. It's much safer. I don't know how you are calling BotTranslateService.execute. If I am going to assume that you wait from some other event (say callback_query from a keyboard) then callingBotTranslateService.execute. If its such a case, your method will wait for the next message from anyone !.  So say I was typing /alterar but someone else sent a /start then the promise will be resolved and I will be left in a hanging state because emitter.once detaches the listener after receiving 1 message.
You need some sort of state management and better flow. I don't know what calls BotTranslateService.execute, but I prefer persistent listeners using bot.onText

Thanks for your time! II will try to implement message.from.id in the application as a whole, but my problem is not just about groups, the listeners listen to messages from anyone regardless of the chat id, and I don't use on text because the global scope in this kind of listener always breaks my application.


Conduct market research on catalogs

June 3rd: Snowflake announces Polaris Catalog, an open source catalog for Apache Iceberg "in the next 90 days" (announcement)
June 4th: Databricks announces it has agreed to acquire Tabular (announcement)
June 13th: Databricks announces the open sourcing of Unity Catalog https://github.com/unitycatalog/unitycatalog (announcement)

At the moment, each platform offers only full read & write capabilities to their own catalog, and read-only capabilities for competitors:

(source)
And what's more important: data catalogs aren't new, but we're seeing catalogs created for different use cases and business needs: technical, business, and operational (source).
These are just some open source ones[^1] that have been in the news recently. But there's also Apache Nessie, the Hive Metastore, the Iceberg REST Catalog, probably others I'm missing. Then there are the commercial, vendor-driven ones.
[^1]: counting Polaris as open source
And then we have... the Kedro Catalog!
We've sometimes got questions on "how does the Kedro Catalog compare to the Unity Catalog" - and the answer is that they're complementary, but this is not immediately clear to users (see https://github.com/kedro-org/kedro-plugins/issues/542).
It's very clear that this is going to be a hot topic of discussion in the data engineering space in the coming months so we should have a good answer to how does Kedro interact with all these.

So I think it would be fair to say most mature enterprises will start to align around these table catalogs mostly for governance reasons, but also the other benefits afforded by the open table formats they use.
Confusingly this is all slightly different to a category sometimes called Enterprise Data Catalogs which cover players like Alation, Amundsen, Atlan. These will try and position themselves as a 'catalog of catalogs':

UC/Polaris open source may change their market position

From a UX point of view I think it would be nice for a user to configure their connections settings.py in [how we manage env 🤷] and then suddenly all datasets available to those credentials become available in our catalog with minimal boilerplate:
my_dataset:
   type: UnityCatalogDataset
   # no credentials or other stuff needed

So I think it would be fair to say most mature enterprises will start to align around these table catalogs mostly for governance reasons, but also the other benefits afforded by the open table formats they use.
Confusingly this is all slightly different to a category sometimes called Enterprise Data Catalogs which cover players like Alation, Amundsen, Atlan. These will try and position themselves as a 'catalog of catalogs':

Definitely. Someone (or ourselves) need to bring some clarity to the terminology. I really like this exercise on orchestrators (infrastructure, scheduling, asset) for example.

From a UX point of view I think it would be nice for a user to configure their connections [...] and then suddenly all datasets available to those credentials become available in our catalog with minimal boilerplate:

We've traditionally mixed the location of the data with the data type (in-memory), which gave us a simple design that however exhibits significant flaws (https://github.com/kedro-org/kedro/issues/1936#issuecomment-1597474696, https://github.com/kedro-org/kedro/issues/770#issuecomment-2115272301). If anything, maybe we should do a better job at separating those, given that your node functions are intimately tied to the in-memory representation of the data (if your node expects a pd.DataFrame, it will likely not work with anything else) whereas the transport/location is up for configuration (and could as well be Unity Catalog sometimes, and some other times a blob storage, plain disk storage, an MLflow run, or in-memory).
But this is a topic for https://github.com/kedro-org/kedro/issues/1936.

Update: Unity Catalog now has a UI https://github.com/unitycatalog/unitycatalog-ui

There are currently 3 documented integrations (Daft, DuckDB, Trino) http://docs.unitycatalog.io/
And looks like Spark 4.0 + Delta Lake 4.0 might give a better view on how to use Unity Catalog https://books.japila.pl/unity-catalog-internals/spark-integration/#demo
But

no support for custom S3 endpoints (MinIO) yet https://github.com/unitycatalog/unitycatalog/issues/43
there are some licensing issues https://github.com/unitycatalog/unitycatalog/issues/75
and in general the benefits and the usage patterns are still a bit unclear https://github.com/unitycatalog/unitycatalog/issues/231#issuecomment-2232812651

Polaris was open sourced 3 days ago, see https://github.com/polaris-catalog/polaris/pull/2, blog announcement https://www.snowflake.com/blog/polaris-catalog-open-source/
Seems to be based on Apache Nessie by Dremio?

To note, both Unity Catalog and Polaris implement the Apache Iceberg’s REST catalog specification. Looks like we have a winner in terms of HTTP APIs at least.

Some questions I posed about UC https://github.com/unitycatalog/unitycatalog/discussions/208#discussioncomment-10205165

While other vendor-hosted catalogs deviate from the open source specification, which leads to lock-in, Snowflake’s service for Polaris Catalog is designed to be fully compatible with Polaris Catalog’s open source implementation both now and in the future.


Alt implementation of iGEMM kernel

kernel part to implement fp16 alt implementation. depends on https://github.com/ROCmSoftwarePlatform/MIOpen/pull/1226
test data, in tab:PR1227

How to pass macro igemm_wrw_fp16_alt_impl to asm file?

that is through #1226, there are some mechanism to pass the flag


Pending Transaction that requires user confirmation

User Test insights have shown that user would like to be notified when there is a pending transaction that they have to confirm.
We should introduce a new sticky notification that contains this information:
Check if there is a transaction in the awaiting state where one of the “unconfirmed” owners equals the connected wallet address and in this case show a sticky notification: “A pending transaction requires your confirmation!”?
The style of the notification should be this one:

Also we should make it easier to undertand the confirmed/unconfirmed/executable/executed states in the transaction list.

@lukasschor Should the link on the notification open/expand the corresponding transaction or simply link to the tx list without a specific tx selected? Maybe we can filter the list to display only the pending tx?

Clicking on the notification can redirect to the tx list.
If it's doable it would be cool if it could automatically expand the transaction that requires user action. If there are multiple transactions that need to be confirmed it should exapand only the one with the lowest nonce. But this is a nice-to-have in my opinion, it could also just direct to the tx list for now.
I think there is no need for filtering the list, as we do not allow out-of-order transactions and awaiting tx are therefore always at the top. (Default sorting is by nonce descending after #293 is merged)

Also, should the notification be hidden for other users when someone else confirms the tx?
Not sure I understand correctly. Do you mean when User A's confirmation is required but User B which also hasn't confirmed yet confirms in the meantime?

This makes things simpler :)

What if there are multiple safes? I think we should include safe's name in notification text.

I think that makes sense. Something like <Safe Name>: A pending transaction requires your confirmation! ?

Hi @lukasschor I have a question, should the notification link the user that is currently on a safe to another?, maybe the switching of context could be dangerous because the user didn't noticed he's on another safe

Yes, I would only show for the currently loaded Safe.

In that case, makes sense to have <Safe Name> A pending transaction requires your confirmation! or just A pending transaction requires your confirmation! ?

Yeah then we could just go with the latter. 👍

Should we show some sign in the sidebar?
Maybe an exclamation mark next to the safe where user needs to confirm a tx. When user clicks and goes to the safe view, it shows a notification. Shouldn't be hard to implement technically

I think that would be a good solution. If that would mean a lot more effort (as also designs are needed) I would prefer creating a seperate ticket to not risk the public launch deadline.

@lukasschor then the safest bet would be doing that in a separate ticket.


feat: supports use storybook

Checklist

[x] npm test passes
[ ] tests and/or benchmarks are included
[x] commit message follows commit guidelines

Description of change

直接上 father-doc？


[Product Partnerships] Added Amazon Inspector

Relevant information

Checklist

[X] I've read the guidelines and understand the acceptance criteria.
[X] The value of the attribute marked as identifier will be unique and valid.
[X] I've confirmed that my entity type wasn't already defined. If it is I'm providing an explanation above.

ok jenkins

ok jenkin


ENH: linalg: 0-th dimension must be fixed to 1 but got 2 (real index=2)

Cholesky solve for when b is an array of 3 dimensions.
Reproducing code example:
import scipy as sp
import scipy.linalg
import numpy as np
L = np.asarray([[1.]])
M = np.asarray([1., 2.]).reshape((1, 2, 1))
sp.linalg.cho_solve((L, True), M)

Error message:
0-th dimension must be fixed to 1 but got 2 (real index=1)
Traceback (most recent call last):
  File "session2.py", line 7, in <module>
    sp.linalg.cho_solve((L, True), M)
  File "/usr/local/anaconda3/lib/python3.7/site-packages/scipy/linalg/decomp_cholesky.py", line 209, in cho_solve
    x, info = potrs(c, b1, lower=lower, overwrite_b=overwrite_b)
_flapack.error: failed in converting 2nd argument `b' of _flapack.dpotrs to C/Fortran array

Scipy/Numpy/Python version information:
1.2.0 1.15.4 sys.version_info(major=3, minor=7, micro=2, releaselevel='final', serial=0)

It also fails for scipy 1.2.1 with the same error:
1.2.1 1.16.1 sys.version_info(major=3, minor=6, micro=8, releaselevel='final', serial=0)

Hi @horta Thanks for taking the time to report it. Here when you use (L, True) that means the original matrix is simply [[1.]] hence you are solving a 1x1 system. However the right hand side is not a 2D array and the conversion trips up since it cannot convert the RHS array to a 2D array.
Were you expecting a numpy like stacked array operation where a single LHS is used for many RHS arrays? Currently we don't have that functionality.

Hi @ilayn , I posted that because I though this functionality was implemented. Indeed, it works for the following case:
import scipy as sp
import scipy.linalg
import numpy as np
L = np.asarray([[1., 0.], [2.0, 1.0]])
M = np.asarray(np.arange(6), float).reshape((2, 3, 1))
x = sp.linalg.cho_solve((L, True), M)
print(x.shape)
print(x)
print("-------------")
print(np.dot(x.T, np.dot(L, L.T)))
print("-------------")
print(M)

Outputs
(2, 3, 1)
[[[-6.]
  [-3.]
  [ 0.]]

 [[ 3.]
  [ 2.]
  [ 1.]]]
-------------
[[[0. 3.]
  [1. 4.]
  [2. 5.]]]
-------------
[[[0.]
  [1.]
  [2.]]

 [[3.]
  [4.]
  [5.]]]

How interesting, I didn't realize this was possible. I'll check what we did in the LAPACK wrapper when I have a bit more time.

How interesting, I didn't realize this was possible. I'll check what we did in the LAPACK wrapper when I have a bit more time.

Thought I'd add a little more information. Yes, this is surprising - b can be of any number of dimensions as long as the 0th dimension agrees with the matrix shape.
import numpy as np
from scipy import linalg
rng = np.random.default_rng(2385923589235)
m = 5  # size of matrix
batch = (4, 10, 3, 6)  # shape of RHS batch
A = rng.random((m, m))
A += A.T + np.eye(m)*m
b = rng.random((m,) + batch)
factor = linalg.cho_factor(A)
x = linalg.cho_solve(factor, b)
b = np.expand_dims(np.moveaxis(b, 0, -1), -1)
x = np.expand_dims(np.moveaxis(x, 0, -1), -1)
np.testing.assert_allclose(A @ x, b)

That is unless the matrix is 1x1, anyway. Change to m = 1 in the code above and it fails (unless there is only one batch dimension).
The error message is:
ValueError: _flapack._flapack.dpotrs: failed to create array from the 2nd argument `b` -- 0-th dimension must be fixed to 1 but got 4 (real index=1

It says the "0-th dimension must be fixed to 1" - so far so good because that needs to match the shape of the matrix. However, it says is got 4. That's the length of the first dimension, not the zeroth dimension. The zeroth dimension does have length 1.
Apparently the same is true of solve. b can have any number of batch dimensions unless the matrix is 1x1, in which case we get a similar error. So I suspect this is not a bug in the wrapper signatures but some inconsistency in how the wrappers are generated?
I am not sure if it is intentional to support arbitrary numbers of batch dimensions. If not, I don't suppose we should start raising an error when there is more than one batch dimension (even though it works unless the matrix is 1x1)? Would it be sufficient to document the intended shapes like solve does?


Proposal: How do I contribute sample-functions for R lang?

I find out sample-functions language have docker image like functions/base:python-2.7-alpine.
I want to contribute for R language which support dockerhub image like functions/base:R-3.4.1-alpine.
Expected Behaviour

I want to run R lang based functions for faas using yml like lang: R
Before that, i contribute code for sample first.
Current Behaviour

Possible Solution

Steps to Reproduce (for bugs)

Context

Your Environment

Docker version docker version (e.g. Docker 17.0.05 ):

Are you using Docker Swarm or Kubernetes (FaaS-netes)?

Operating System and version (e.g. Linux, Windows, MacOS):

Link to your project or a code example to reproduce issue:

Thanks I had a chat with the other maintainers and we're happy to accept the change.

Thank you for this!


Repeatedly modifying Scope

I'm very interested in using Rhai foremost (but not necessarily exclusively) as an expression evaluation engine, where a compiled AST is evaluated possibly millions of times. Before every execution, some global variables are changed.
Having looked at the documentation, all of this seems possible by compiling an AST and then repeatedly calling Engine::eval_ast_with_scope().
But what I see as a potentially major bottleneck is the fact, that modifying values using Scope::set_value() always implies looking up the variable by its name. I wonder, whether there would be a possibility to improve this, e.g. by allowing access to the internal values by index. However, I'm not familiar with the internals of Rhai, so I don't know, whether it can happen, that the index of a variable changes during expression evaluation?
Or maybe, my use case is not the intended use-case, I'm open to suggestions :) Thanks!

Rhai doesn't know what values you pushed into the scope when it compiles the script, so there is nothing it can do but to do a linear name search.
However, if your global variables are constants (mostly they are), you can consider a variables resolver: https://rhai.rs/book/engine/var.html

Now, some caveat.  Looking at your use case, you seem to care a lot about speed, if you're concerned even with searching within the Scope.  In that case, the AST-walking nature of Rhai is probably going to be slower than a simple name search through the Scope.
If you do not need all the flexibility of Rhai and just want a fast expressions engine, you can consider some other scripting language that compiles to bytecodes.  They will run much faster than Rhai.

this would actually allow to define kind of a custom scope with any underlying data structure.

You're right.  Actually, there doesn't even need to be a custom scope.  on_var hijacks the variable access process and some users don't even have the data structure built at all - the values are read from a database etc.

We're using Rhai to perform maths and measurements on high sample-rate data from USB hardware. Without much performance tuning my desktop machine peaks at around 2.5GS/s throughput.
To do this we don't actually use Rhai to perform the calculations on every sample point. We having wrapping types/structs that contain blocks of data or iterators and then we override operators in Rhai. ALL the heavy computation happens in Rust.

Playing around a bit with Rhai and ExprTk, a math-focused C++ engine, for which I created bindings once, I found that Rhai was slower by around a factor of 100, so I'd have to see if it fits for my needs. ExprTk, although not compiling to bytecode, seems pretty focused on repeated evaluation speed, so this result is probably not very surprising. Maybe to explain, I was actually searching for ExprTk alternatives to be included in this project.
I noticed that the 'static  lifetime requirement for the closure supplied to on_var() makes it not so easy to implement a custom scope. But as @schungx noted, AST evaluation in general may take more time than variable resolution, so I guess I would need a good reason if implementing a "custom" scope.

There are a few reasons why Rhai would be slower:

In Rhai, all operators are implemented as function calls that can be overloaded.  This flexibility means a function resolution step for each operator, and there are multiple layers of function spaces added on top of each other.

Rhai provides ruggedness by protecting against a lot of faults.  Use the unchecked feature and it'll be a bit faster.

If you use no_closure, then there is no sharing of variables and it'll again run a bit faster.  Check out https://rhai.rs/book/start/builds/performance.html

Rhai values are dynamic and they can represent any Rust type.  I believe ExprTk needs to be compiled for numbers only...  but I may be wrong.  Type inspection causes overheads.

Rhai allows you to overload functions, operators and syntax, which is not possible for a rigid language that optimizes on speed.

Nevertheless, I would expect an AST-walking interpreter to not be 100x faster than Rhai... since Rhai itself is roughly 5x slower than Python (which is bytecodes based).  Therefore, to be 100x faster than Rhai, it must be 20x faster than Python which is very fast.  Even Wren is only about 2-3x faster than Python.
Are you sure your benchmarks are fair?

I noticed that the 'static lifetime requirement for the closure supplied to on_var() makes it not so easy to implement a custom scope

You can bypass the 'static requirement by using interior mutability, at some locking costs.
In general, you'd consider on_var only when you have 1) a very large number of variables, 2) only a very small portion is ever used in each script, 3) which variables used by the script is not predictable, 4) you're running different scripts each time (obviously if you have the same script, you can simply detect the variables used).

Sorry, I didn't mean to post unfair benchmarks. I was essentially testing simple mathematical expressions such as "x + 2", at which ExprTk is very good (being highly optimized for that), they claim near-native speed on their homepage. So I think, you could say it's an unfair comparison, because Rhai has many more features than ExprTk.
Thanks for your hints!

Yes, I guess that's true because x+y is $f00 which is one of the special functions.  It is then called directly into the native compiled function, which runs at native speed.  That's of course they need to know that both parameters are numbers, which I suppose they can tell at parsing time.

I was essentially testing simple mathematical expressions such as "x + 2"

This is exactly how we're using Rhai, but in our case, x is a wrapping type which contains a clonable iterator over the raw data.
We then overload + for our wrapping type:
#[rhai_fn(name = "+")]
pub fn add_int(a: OurWrappingIter, b: i64) -> OurWrappingIter {
    a.with_new_iter(AddIntIter::new(&a, b))
}

With this in place, evaluating x + 2 in Rhai returns a OurWrappingIter. This is a chained iterator rather than a result. Rhai is only being used to chain up iterators for your calculation. To get the resulting data, you iterate over OurWrappingIter and the data is passed through the chain of iterators. To make the iterator chains fast, we use an enum rather than a trait so everything is statically dispatched.

In other words all your data are vectors?
Or are they more complicated data structures that are wrapped inside an iterator?

Or are they more complicated data structures that are wrapped inside an iterator?

We have multiple data sources that implement the iterator in different ways. The data can come as a stream straight from a hardware device or from compressed blocks in a file, etc. The iterators usually hold Arcs of their underlying data so they're cheap to clone.
All sources are eventually exposed as a kind of ClonableExactSizeIterator<Item = f64>. Our wrapper also has other metadata attached such as sample-rate and units so we can do things like low_pass(A, 10000) with an iterative convolution.

Ah.  Makes sense.

I did have an early version that used vector blocks rather than iterators. I expected it to be faster but I couldn't make it happen. There were loads of huge allocations and many things had to be designed specifically to work with the blocks.
Iterators turned out to be a lot simpler and when I got it working via static dispatch they were also fast enough.

Is this issue resolved and can we close this?

Yes, thanks for your comments!


Missing dependency 'trollius' in NeoVim

When I install this plugin in NeoVim, I get the following error:
"src/main.re" [noeol] 65L, 1974C
function provider#python#Call[9]..remote#host#Require[10]..provider#pythonx#Require, line 15
Vim(if):ch 1 was closed by the client
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/cweber/Library/Python/2.7/lib/python/site-packages/neovim/__init__.py", line 11, in <module>
    from .msgpack_rpc import (ErrorResponse, child_session, socket_session,
  File "/Users/cweber/Library/Python/2.7/lib/python/site-packages/neovim/msgpack_rpc/__init__.py", line 8, in <module>
    from .event_loop import EventLoop
  File "/Users/cweber/Library/Python/2.7/lib/python/site-packages/neovim/msgpack_rpc/event_loop/__init__.py", line 12, in <module>
    from .asyncio import AsyncioEventLoop
  File "/Users/cweber/Library/Python/2.7/lib/python/site-packages/neovim/msgpack_rpc/event_loop/asyncio.py", line 22, in <module>
    import trollius as asyncio
ImportError: No module named trollius

It's probably user error of some sort, but if this is the case, the docs could be updated to make it clearer?

I don't have this error... weird
Sorry, I'm not a full-time vim user. I've installed nvim through brew. Maybe some more knowledgeable people know the fix?

This looks like it could be an error with neovim's msgpack_rpc package. @ns-cweber have you followed the neovim instructions for setting it up for remote plugins?
If you run
pip install --upgrade neovim
pip3 install --upgrade neovim
nvim +UpdateRemotePlugins +qall

does the error still occur?

@bassjacob This seems to fix the problem (or at least I don't see it any more), but now I'm seeing:
"src/main.re" 30L, 645C
Error detected while processing function 80[16]..88:
line    8:
E605: Exception not caught: Syntastic: Duplicate syntax checker name: reason/merlin
Press ENTER or type command to continue
Error detected while processing function <SNR>38_VimEnterHook[7]..<SNR>38_UpdateErrors[15]..<
SNR>38_CacheErrors[20]..81:
line   30:
E170: Missing :endfor
Press ENTER or type command to continue
Error detected while processing function <SNR>38_VimEnterHook[7]..<SNR>38_UpdateErrors[15]..<
SNR>38_CacheErrors:
line   20:
E171: Missing :endif
Press ENTER or type command to continue
Error detected while processing function <SNR>38_VimEnterHook[7]..<SNR>38_UpdateErrors:
line   15:
E171: Missing :endif
Press ENTER or type command to continue
Error detected while processing function <SNR>38_VimEnterHook:
line    7:
E171: Missing :endif
Press ENTER or type command to continue

If I disable syntastic, this goes away, so this is probably a different issue. I'll leave it up to you as to whether you want to close this issue.

Okay, this is good progress. Can you now try deleting and reinstalling all
your plugins? And then running :UpdateRemotePlugins again?
On Wed., 6 Sep. 2017, 1:46 am ns-cweber<EMAIL_ADDRESS>wrote:

@bassjacob https://github.com/bassjacob This seems to fix the problem
(or at least I don't see it any more), but now I'm seeing:
"src/main.re" 30L, 645C
Error detected while processing function 80[16]..88:
line    8:
E605: Exception not caught: Syntastic: Duplicate syntax checker name: reason/merlin
Press ENTER or type command to continue
Error detected while processing function 38_VimEnterHook[7]..38_UpdateErrors[15]..<
SNR>38_CacheErrors[20]..81:
line   30:
E170: Missing :endfor
Press ENTER or type command to continue
Error detected while processing function 38_VimEnterHook[7]..38_UpdateErrors[15]..<
SNR>38_CacheErrors:
line   20:
E171: Missing :endif
Press ENTER or type command to continue
Error detected while processing function 38_VimEnterHook[7]..38_UpdateErrors:
line   15:
E171: Missing :endif
Press ENTER or type command to continue
Error detected while processing function 38_VimEnterHook:
line    7:
E171: Missing :endif
Press ENTER or type command to continue
If I disable syntastic, this goes away, so this is probably a different
issue. I'll leave it up to you as to whether you want to close this issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/reasonml-editor/vim-reason/issues/4#issuecomment-327217817,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADukcSsfUaso-u8ZX1aKjoOep8OJC0v3ks5sfWzWgaJpZM4OAYeN
.

@ns-cweber is this still an issue for you?

@bassjacob Nope.

For anybody else reading this, Plugin 'jaxbot/github-issues.vim', which hasn't been updated in the last two years, caused this same behavior--at least on my system using Vundle. When I removed it, the problem disappeared. It took me about 6 hours to figure that out, so maybe that will save you time and frustration.


fix: correctly initializes the completion time of the copy properties

Description
Corrects initialization of the copy properties completion time attribute. In its current form, the completion time is set to None as the key is using the incorrect keyname.
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

Hi @hector-sab Héctor, thanks again for your contribution! It should be good to merge now, and I have attached the pull-request to your existing issue so it will close out the issue alongside the merge of this pull-request. 😄


Attempting to modernise the cmake build script

This PR requires CMake 3.17 or higher. Maybe this is too new. If anything, this is a good exercise in trying to understand cmake in more detail.
The key points are:

use the target_xxx() functions
don't need variables for needed libraries, includes or sources. You can just use cmake functions to set things on targets
use the built-in helpers for findings libraries like PNG, JPEG, GIF, SQLITE, even BLAS, LAPACK and CUDA
It's not ready yet of course.

Getting there. I've opted for building everything in a single CMakeLists.txt file. So we have options DLIB_BUILD_TESTS, DLIB_BUILD_EXAMPLES and DLIB_BUILD_TOOLS, a bit like how other repos usually do things.
I realise this will never get merged, as I've substantially changed things but if anything, this is a good exercise in understanding cmake. Any feedback would be appreciated though.

I feel like building the python stuff could be made simpler with the python helpers

Windows can't find fortran to build cblas from source. Need to figure out what to do about that

Yeah I don't have any good advice.  Cmake 3.17 is totally too new though.  We should target cmake versions that are installed by package managers of systems that are popular right now.  3.8 is about the right spot for the moment I think.  Although I'm waiting for someone using RedHat or something to complain to me about even that :)

Yes, you can even pip install it...

Yes, you can even pip install it...

Good shout! And snap install it

Yeah I know it's easy to install.  People still don't though and would complain about it :|

Need to fix the setup tools stuff. Then I'll have a PoC. I'm liking the fact that most of it is vanilla cmake and everything fits in a monolithic CMakeLists.txt file under 800 lines including the library, tests, tools, python bindings and examples

If this doesn't make it into master, I think your fix for the latest Pybind11 should!
I am reading this PR also to learn more about CMake :)

I've put the python test files in dlib/dlib/test/python. And now pytest has lost it. I can't find a way to point it to where the test files are. I thought it best to have all unit test source code in the same directory.

I think scikit-build is a nice wrapper that will simplify the setup tools stuff.

I think all I needed to do was get the python tests to build in an easier way. Scikit-build seemed like a good candidate. But either way this all requires cmake 3.18 which I don't think is acceptable at the moment. We can always get this working and leave it open for a while until 3.18 becomes acceptable. Even if we decide this isn't a good PR it was a good cmake learning experience.

Offline builds too. So don't use FetchContent.

I think all I needed to do was get the python tests to build in an easier way. Scikit-build seemed like a good candidate. But either way this all requires cmake 3.18 which I don't think is acceptable at the moment. We can always get this working and leave it open for a while until 3.18 becomes acceptable. Even if we decide this isn't a good PR it was a good cmake learning experience.

Yeah, it's all good.  Some day we will update to 3.18 :D

Here. Tagged this so it stays open forever (prevents the dlib bot from closing it).  3.18 is two years old.  IDK, in a few years we can update :|   I realize it's a long time, but it takes forever for cmake (and stuff like gcc) to filter into linux distributions a lot of people use.  Like there are all these institutional users who run some version of redhat or whatever that's the "long term support" version.  And they take like 5 or 6 years to get updated for tools like this.

I think what I'll do is write an intermediate cmake PR which works with 3.8

I think what I'll do is write an intermediate cmake PR which works with 3.8

I was playing with this last night. With minimal change, it's cmake 3.8 compatible.

I think what I'll do is write an intermediate cmake PR which works with 3.8

I was playing with this last night. With minimal change, it's cmake 3.8 compatible.

Nice :D

Why don't we put all the png, zlib and jpeg source code in the dlib namespace and always build that rather than having shared library dependencies ? It's C so it builds super quickly and won't impact users build times in any dramatic way. We could do the same for SQLite as well. That's only 2 files.

Why don't we put all the png, zlib and jpeg source code in the dlib namespace and always build that rather than having shared library dependencies ? It's C so it builds super quickly and won't impact users build times in any dramatic way. We could do the same for SQLite as well. That's only 2 files.

My guess: they will get outdated and have security issues, and we will need to keep updating them regularly in the repository (you can argue that we should already be doing that, though).
I think this has already been discussed, right? https://github.com/davisking/dlib/pull/2410#issuecomment-893364810
And also, I'd rather use libjpeg-turbo instead of plain vanilla JPEG… Maybe I should try again to make it build on Windows…

Well spotted

Why don't we put all the png, zlib and jpeg source code in the dlib namespace and always build that rather than having shared library dependencies ? It's C so it builds super quickly and won't impact users build times in any dramatic way. We could do the same for SQLite as well. That's only 2 files.

My guess: they will get outdated and have security issues, and we will need to keep updating them regularly in the repository (you can argue that we should already be doing that, though). I think this has already been discussed, right? #2410 (comment)
And also, I'd rather use libjpeg-turbo instead of plain vanilla JPEG… Maybe I should try again to make it build on Windows…

Yeah, this is the reason.  People really should use the versions of these libraries on their systems rather than the ones in dlib/external.  They will in general be better, more updated, and all of that.  Like your package manager can push a security update that updates the shared library for libpng and everything on the system is fixed automatically.  That kind of thing is foiled by statically building everything together.  These libs are only in dlib/external because lots of users don't know how to install other libraries on their systems.  Or they use windows which makes using shared libraries super painful.  Although dlib is in vcpkg and they will totally have set that up right, making libpng a separate thing (I mean, I'm assuming, I haven't looked but they must have done it right).  It would be an additional pain on those package maintainers to make dlib depend specifically on the copies in dlib/external.

Moved to https://github.com/davisking/dlib/pull/2672


Custom.css not applied

Hi!
Great work we have here!
The only problem on my side is the custom.css file not being applied correctly:
I want to hide the app bar because it causes the window to have a scrollbar on the right which I don't want.

How may I hide it correctly?
I already tried the following in ~/.devdocs/custom.css:
.header {
    display: none !important;
}

But it seems that it is not even applied to the page.
Can someone help?

So I just got done digging into the source code. Apparently the app hardly does anything besides use electron as a shell to host devdocs.io using a webview. In previous versions; going back to 2017, the renderer CSS and Javascript were injected into the client HTML. Due to recent improvements in web security standards, webviews cannot be modified directly by the invoking renderer; except by load-time injection. So the target for the custom CSS and Javascript is actually the webview element directly. Thus, the custom.css doesn't affect the .title element you're targeting.
I very much dislike the header element as well, so I'm going to make a quick PR to toggle it on and off in the preferences; especially since it doesn't maintain style homogeneity with devdocs.io.

Got it kinda covered, I'll be leaving my fork available for a while since I don't think the maintainer's going to get to implementing the changes too soon in case you absolutely need the feature asap. #140


Fix to support compiling under VS2015 VC140

Apparently MACROs now require whitespace around them.

@mnunberg I am unable to connect to review.couchbase.org:29418 due to corporate firewall rules.  Can we forgo the gerrit setup?  I go all the way to
Initial Project Setup (for each project)
before everything started to go sideways.

I can't see if you signed the CLA. If you signed the CLA, can you tell me which email or id you're using so we can correlate?
If you signed the CLA, I can upload the changes to gerrit for you.

I used<EMAIL_ADDRESS>Thank you very much!
Sent from Yahoo Mail on Android
On Thu, Apr 21, 2016 at 2:48 PM, M<EMAIL_ADDRESS>wrote:
I can't see if you signed the CLA. If you signed the CLA, can you tell me which email or id you're using so we can correlate?
If you signed the CLA, I can upload the changes to gerrit for you.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

There appears to be another issue with the VS 2015 builds.  The file https://github.com/couchbase/libcouchbase/blob/master/include/libcouchbase/configuration.h.in does not get converted into "configuration.h" in the same folder.  This is causing a compiler error for clients because couchbase.h is including "libcouchbase/configuration.h
Am I missing a build step before/after the two cmake calls?

Oh, NVM.  Found it under /build/generated/libcouchbase.
Do I need the config.h that is generated as well?  Looks superfluous.

That might be because I'm not properly declaring what the "INCLUDE" directories for the libraries are in CMake. You need to run the install target in order to end up with a distributable that's actually usable by other components.
The config.h is only needed for internal usage.

so that command would be cmake --install .
?

Oh, and in case you didn't see.  I've written a nuget packaging definition for use with the CoApp powershell tools.  For our purposes, nuget will be 100% required since we have oh, about 300 C++ projects that will be using couchbase in the near future :)

Here is what I use to build the packages for release.. some lines might not be relevant to you (like the tests):
echo PATH=%PATH%
echo MSVCC_VER=%MSVCC_VER%
echo ARCH=%ARCH%

IF %MSVCC_VER% EQU 9 SET cmgen=Visual Studio 9 2008
IF %MSVCC_VER% EQU 10 SET cmgen=Visual Studio 10 2010
IF %MSVCC_VER% EQU 11 SET cmgen=Visual Studio 11 2012
IF %ARCH% EQU amd64 SET cmgen=%cmgen% Win64

RD /s /q BUILD
MKDIR BUILD
CD BUILD

cmake -G"%cmgen%" -DLCB_NO_SSL=1 ..\libcouchbase

cmake --build .
cmake --build . --target package
cmake --build . --target alltests
ctest -C debug

I have agreed to the CLA under my github account.

Hey @stunney ,
If you look at the commits that are part of this Pull Request, there are two author emails, one I believe you have registered on Gerrit with, and the other is not associated.
Cheers, Brett

All of the commits should be under my github account (I have only one).  I originally signed the Garret under my yahoo account but I just (an hour ago) signed with my github oauth2 connection.

Sorry, gerrit :)

Hey @stunney,
Though your GitHub account has only a single email, your commits themselves are committed under an by a specific identify.  This is the email which is not matching.
Cheers, Brett

The stephen.tunney@ account?  Ok.  I will see if I can link this up.

Hey @stunney,
Would you be able to grab me your Gerrit account number (it's available in Settings).  I don't see either of your commit emails in Gerrit, it's possible there is a bug in the verification process.
Cheers, Brett

1003775
Gerrit won't let me get to settings in Chrome on my phone.  Bug!! ;)

Hey @stunney,
I took a look at that account, it doesn't appear to have any email addresses associated with it :)  From your settings, please add both your emails, and then this commit should go through without issue.
Cheers, Brett

It has been done.

This has been merged by gerrit. Thank you for your contribution!


logged in with multiple accounts

Would it be possible to be logged in with two users at the same time, receiving real-time updates and notifications for both of the users ?
E.g: In a tabbed app, tab1 would show messages list of userA while tab2 would show messages of userB.

@mano1337o Unfortunately you can't log in two users at a time and at a time you can't get two login  users notification  only one user notification you can see the notifications


Adding full workspace as context

Validations

[X] I believe this is a way to improve. I'll try to join the Continue Discord for questions
[X] I'm not able to find an open issue that requests the same enhancement

Problem
Is there a way to add the full workspace as context? Will it be possible in the future if it is not possible?
Solution
No response

@StephaneAdeso Most codebases will not fit in context entirely, but we have the /codebase slash command (or cmd+enter), which allows Continue to automatically retrieve the most relevant files for any given question. One idea though is to allow the inclusion of entire folders, which I think could be a really good one

@StephaneAdeso Most codebases will not fit in context entirely, but we have the /codebase slash command (or cmd+enter), which allows Continue to automatically retrieve the most relevant files for any given question. One idea though is to allow the inclusion of entire folders, which I think could be a really good one

You can use RAG for it with https://github.com/run-llama/llama_index

@StephaneAdeso I'm going to close this issue now that we have the codebase retrieval feature. This lets you include the most important files from your codebase automatically. There is also a "folder" context provider so you can reference specific folders. While it will never be possible to include every codebase in its entirety in the prompt, you can configure nFinal to be a very large number (if it fits within your model's context window), which should give the LLM all the context it needs


inconsistency in undefined function argument as not optional

TypeScript Version:  3.7.2

Search Terms: undefined optional function argument
Code
function f(a?: boolean)
{
    return !!a;
}

declare type Argument0<T> = T extends ((x: infer X, ...z: any[]) => any) ? X : never;

function g(a: Argument0<typeof f>)
{
    return !!a;
}

function h(a: boolean | undefined)
{
    return !!a;
}

f();
g();
h();

Expected behavior: g and h should be considered valid as tooltip on a in f, g and h are reporting parameter a is boolean | undefined
Actual behavior: g and h are considered invalid calls.
Playground Link: http://www.typescriptlang.org/play/index.html#code/GYVwdgxgLglg9mABMAFAQwPwC5ECM5wA2ApmmAJQBQA3pYvYgE7FQiNICEHaA3JQL6VKAE2IRCaZoigBPAA7FEAQUYBzEAFtiYKAAYAPABUAfIgC8iQ4mIAPKNuEBnRChQ2cMMMGKNEADQAaRAA6UIAvHDIZAG0AXXJzUyiEjH9EHDBiADcfPkpQSFgERFV0HBV1LR0DWQU4YGRjKloGJhY2Tm4+QXzwaHgkAAsyvAISMkQAH0RwUWBPYmFmugZmVnZELl4BIVRyPlL9ymGjoA
Related Issues:
EDIT swaped expected and actual behavior

Expected behavior: g and h are considered invalid calls.

g and h are considered invalid in the playground link you provided. So... everything working as expected?

boolean | undefined doesn't mean optional. g(undefined); and h(undefined); or
function g(a?: Argument0<typeof f>)
{
    return !!a;
}
g(); // this is valid

are valid calls

sorry, I mixed expected and actual behavior. Well there is a discrepancy between a?: boolean which translates to boolean | undefined and having a:boolean|undefined. When calling a function, undefined is assumed for all the unspecified parameters, which makes them optional. This is exactly how you test whether a parameter was given in the call to a function typeof a=='undefined'.

const foo: {test?: string} = {test: undefined} // okay (shouldn't imho)
const bar: {test: string | undefined } = foo // fails
I think {test: undefined} should not be assignable to {test?: string}.
The meaning of {test?: string} should be: if there is the key test it's a string.
This is inconsistent behavior indeed.

The meaning of {test?: string} should be: if there is the key test it's a string.

But it's not. It means the property is optional, and it may be either string or undefined.
Such behavior is currently not possible and would require #13195 (distinguish missing and undefined).

I agree, which is why I say it is inconsistent, in my previous example foo should be assignable to bar then, but it's not because bar is distinguishing between a missing and an undefined.

It gets actually even worse, it seems that I can't find a way to create a truly optional type.
How can this be okay in typescript?
type A = {} | { a: number };
const t: A = { a: undefined };

I don't have a lot to add here because there's a lot of basic misunderstanding happening. This kind of discussion is best suited for StackOverflow or other venues; none of the behavior described is a bug or other defect.

@RyanCavanaugh I don't see the misunderstanding in my original request, especially with the inferred type. I still believe that undefined is/should be the equivalent of optional as this is how Javascript behaves. the ? is just syntaxic sugar to help having more readable code.

We made different syntax do different things so that you could pick which thing you wanted to happen.


[Update] Pinvol 2.2 released

v2.2 bug fix release ... https://github.com/mjrgh/PinVol/releases

Ah, thanks for that hint!

Fixed with 3.7.0


Viewer scrolling

References #4856 and #4848
In short, this makes the main content area scrollable, and adds another scrollable thumbnail component to the main view.

I feel like we should prevent the NProgress yellow bar from appearing when the user scrolls. The UI gets a bit noisy otherwise?

I feel like we should prevent the NProgress yellow bar from appearing when the user scrolls. The UI gets a bit noisy otherwise?

You're right - but maybe look at that in a separate PR?


iterate on the kernel-based summary format

This meta bug is to track some requirements we have on kernel-based summaries, so we can iterate on their design.
At this time we are using kernel outlines as a summary format for analyzer, bazel, and ddc. Similar to how we have a special format to support hot-reload, we believe we need some special adjustments for the summary format as well.
For bazel, the main requirement is scalability on modular compiles, ensure that the output doesn't change if the sources compiled into a summary didn't change or if the only changes didn't affect the public API of the module (changes within method bodies, or whitespace changes).
I figure we can use this bug to keep tracking other requirements from other clients.
/cc @peter-ahe-google

More details on bazel: today bazel builds analyzer summaries by passing transitive dependencies to the each target. To scale this requires that data is not duplicated on every target (which outlines do). So one proposed solution is to truncate summaries (similar to how we truncate hot-reload deltas). I tried an experiment doing this and saw a 5x speed improvement in a small app, and reduced the size of the generated code dramatically (consider that the platform outline is 3M, so every intermediate package had a .dill file of at least 3M).
An alternative solution is to tree-shake summaries based on reachability, and change the bazel architecture to stop passing transitive dependencies instead (since the necessary transitive deps could be passed on within the summary). After our experiment using tree-shaking in kernel-driver, I'm not convinced of this approach, and I would rather continue with the existing bazel architecture until we swap out the summary format. Later we can revisit this and make it better.


New package: CrowdStrike.Perseus version 0.21.0

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[x] Does your manifest conform to the 1.6 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Manual Validation ended with:

2024-07-19 07:31:03.351 [FAIL] Installer failed security check. Url: https://github.com/CrowdStrike/perseus/releases/download/v0.21.0/perseus_windows_amd64.zip Result: 0x80004005

(Automated response - build 886.)

Manual Validation ended with:

2024-07-19 08:24:54.054 [FAIL] Installer failed security check. Url: https://github.com/CrowdStrike/perseus/releases/download/v0.21.0/perseus_windows_amd64.zip Result: 0x80004005

(Automated response - build 886.)

/azp run

Verify:

The application seems to be designed to display version data, but the data apparently hasn't been added.


Assess the health of external test group

For each of the tests listed in https://github.com/adoptium/aqa-tests/tree/master/external we should assess their current health and status for all versions and implementations.

Hotspot spreadsheet
OpenJ9 spreadsheet

Based on the work done to date and the notes in the spreadsheet, here is a recent activity update:

Wycheproof - a prereq for this test is bazel which is no longer being correctly added to the auto-generated Dockerfile (dockerfile_functions.sh  and likely wycheproof/test.properties needs to be updated)
Scala - a prereq is sbt and it is out of date and no longer correctly being added to the auto-generatated Dockerfile (dockerfile_functions.sh and scala/test.properties needs to be updated
example-test is no longer needed and can be removed (see #3181)
thorntail-mp-tck is no longer needed and can be removed (see #3182)

Scala: https://github.com/adoptium/aqa-tests/issues/3356

Using the change https://github.com/adoptium/aqa-tests/compare/master...sophia-guo:health?expand=1 running target

sanity.external: https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/436/

extended.external: https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/437/

waiting for the result

rerun:
8: sanity.external: https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/438/
8: extended.external: https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/439/

11: sanity.external https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/440/console
openliberty_microprofile_tck failed. Issue raised https://github.com/adoptium/aqa-tests/issues/3380
13:15:04  16 errors
13:15:04
13:15:04  FAILURE: Build failed with an exception.
13:15:04
13:15:04  * What went wrong:
13:15:04  Execution failed for task ':com.ibm.ws.componenttest:compileJava'.
13:15:04  > Compilation failed; see the compiler error output for details.
13:15:04
13:15:04  * Try:
13:15:04  Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

17: sanity.external https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/442/console
openliberty_microprofile_tck_0 failed. Issue raised https://github.com/adoptium/aqa-tests/issues/3381
20:00:41  Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 -Djava.security.egd=file:/dev/./urandom
20:00:57  java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7
20:00:57  	at org.codehaus.groovy.vmplugin.VMPluginFactory.<clinit>(VMPluginFactory.java:43)
20:00:57  	at org.codehaus.groovy.reflection.GroovyClassValueFactory.<clinit>(GroovyClassValueFactory.java:35)
20:00:57  	at org.codehaus.groovy.reflection.ClassInfo.<clinit>(ClassInfo.java:107)
20:00:57  	at org.codehaus.groovy.reflection.ReflectionCache.getCachedClass(ReflectionCache.java:95)
20:00:57  	at org.codehaus.groovy.reflection.ReflectionCache.<clinit>(ReflectionCache.java:39)
20:00:57  	at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerMethods(MetaClassRegistryImpl.java:210)
...
20:00:57  FAILURE: Build failed with an exception.
20:00:57
20:00:57  * What went wrong:
20:00:57  Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
20:00:57
20:00:57  * Try:
20:00:57  Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
20:00:57
20:00:57  * Get more help at https://help.gradle.org/
20:00:57
20:00:57  BUILD FAILED in 14s
20:00:57
20:00:57  openliberty_microprofile_tck_0_FAILED

quarkus_quickstarts_test_0 failed. Issue raised https://github.com/adoptium/aqa-tests/issues/3382
20:00:35  /quarkus-quickstarts
20:00:35  Compile and run quarkus_quickstarts tests
20:00:35  Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 -Djava.security.egd=file:/dev/./urandom
20:00:38  [ERROR] Error executing Maven.
20:00:38  [ERROR] java.lang.IllegalStateException: Unable to load cache item
20:00:38  [ERROR] Caused by: Unable to load cache item
20:00:38  [ERROR] Caused by: Could not initialize class com.google.inject.internal.cglib.core.$MethodWrapper
20:00:38  Build quarkus_quickstarts completed

Closed by wrong PR. Reopen

extended.external, the console output is too big to load. The summary shows most tests failed. Suggest to run each failed application separately in grinder to see the detailed failure message.

jdk8: https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/439/
Stoped due to timeout. No summary. Same suggestion, run each application separately in grinder to see the status.

jdk11: https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/441/console

19:52:57  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
19:52:57  DISABLED test targets:
19:52:57  	quarkus_native_test_0
19:52:57
19:52:57  PASSED test targets:
19:52:57  	jacoco_test_0
19:52:57  	quarkus_test_0
19:52:57  	lucene_solr_nightly_smoketest_0
19:52:57
19:52:57  FAILED test targets:
19:52:57  	tomcat_test_0
19:52:57  	netty_test_0
19:52:57  	wycheproof_test_0
19:52:57  	scala_test_0
19:52:57  	camel_test_0
19:52:57  	kafka_test_0
19:52:57  	derby_test_junit_all_0
19:52:57  	jenkins_test_0
19:52:57  	external_custom_0
19:52:57  	spring_test_0
19:52:57  	wildfly_test_0
19:52:57
19:52:57  TOTAL: 15   EXECUTED: 14   PASSED: 3   FAILED: 11   DISABLED: 1   SKIPPED: 0

jdk17: https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/444/console

19:50:07  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
19:50:07  DISABLED test targets:
19:50:07  	quarkus_native_test_0
19:50:07
19:50:07  PASSED test targets:
19:50:07  	spring_test_0
19:50:07
19:50:07  FAILED test targets:
19:50:07  	jacoco_test_0
19:50:07  	tomcat_test_0
19:50:07  	quarkus_test_0
19:50:07  	netty_test_0
19:50:07  	wycheproof_test_0
19:50:07  	elasticsearch_test_hotspot_0
19:50:07  	scala_test_0
19:50:07  	lucene_solr_nightly_smoketest_0
19:50:07  	camel_test_0
19:50:07  	kafka_test_0
19:50:07  	derby_test_junit_all_0
19:50:07  	jenkins_test_0
19:50:07  	wildfly_test_0
19:50:07
19:50:07  TOTAL: 15   EXECUTED: 14   PASSED: 1   FAILED: 13   DISABLED: 1   SKIPPED: 0
19:50:07  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Tests have different behaviors with different jdk version.
passed with jdk11 and failed with jdk17.
jacoco_test : Grinder: https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/449/
quarkus_test: Grinder https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/451
lucene_solr_nightly_smoketest:  Grinder https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/450/
Failed with jdk11 and passed with jdk17:
spring_test: Grinder https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/452

Jdk11:
tomcat_test_0 https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/459/
netty_test_0 https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/460/
wycheproof_test_0 https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/461/
scala_test_0 https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/462/
camel_test_0 https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/463/
kafka_test_0 https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/464/
derby_test_junit_all_0 https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/465/
jenkins_test_0 https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/467/
wildfly_test_0 https://ci.adoptopenjdk.net/view/work-in-progress/job/grinder_sandbox_new/468/

Update health of sanity
sanity.extended sheet

extended.external sheet

extended.external sheet updated. Close this one.


GPT-4 1106-Preview often gives error ".. exceeded token rate limit of your current OpenAI S0 pricing tier".

Been using this for some time, all runs good. Just clean chat, no history etc.
After updating my application to use GPT-4 Turbo, users often get this error:
Requests to the Creates a completion for the chat message Operation under Azure OpenAI API version 2023-03-15-preview have exceeded token rate limit of your current OpenAI S0 pricing tier. Please retry after 9 seconds. Please go here: https://aka.ms/oai/quotaincrease if you would like to further increase the default rate limit.
In my application settings I correctly put
AZURE_OPENAI_PREVIEW_API_VERSION=2023-07-01-preview
So wondering if this API version "2023-03-15-preview" you reference in the error message is hardcoded, or there is some other issue I dont see?
Btw im pretty sure the token rate limit is actually NOT exceeded, this happens also during evenings where employees are not using it.

Just wonder @marwic-norlys , what model and model name you've configured for the web app? I've deployed GPT turbo as gpt-4-turbo-1106 and put the same into both AZURE_OPENAI_MODEL and AZURE_OPENAI_MODEL_NAME. It works, and faster than on previous GPT4 model, but insists it does not know anything beyond Sep 2021.


Update update-terminology.png

Made changes to the Image (typo)
Per issue#https://github.com/MicrosoftDocs/windows-itpro-docs/issues/10875

Learn Build status updates of commit 9c8f2a8:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

windows/deployment/update/images/update-terminology.png
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@aczechowski Please merge this PR. Thanks


allow multiple connections for client

The way we use the ZeebeClientBuilder bean today, a spring boot application will only be able to connect to one broker.
It should be possible to connect to multiple brokers (especially since we do not have multiple topics anymore).
Todo: do not use builder as a bean to avoid singleton, support st. like BeanFactory.
Motivation: I could imagine situation where a service (lets say responsible for invoicing)  acts as a zeebe client for different context (it might subscribe to invoicing jobs from department a and department b that run arbitrary processes on different zeebe clusters).
In such a case, I could of course run multiple instances of my invoice service, some connected to a) some connected to b), but being able to have multiple workers in a service that are connected to different clusters would allow more flexibility ...

I do believe that this might be an use case that we want to cover.. but I wonder how the implementation will look like..
From the top of my head I see worker names connecting to different brokers.. and for that it sounds that we will need to have a way to map those things together and then as you mention instantiate a bean for each connection

I need this feature for the following use case.
I have an in production zeebe 0.26 broker which I currently connect to from a java app.
I am about to install a 1.x broker along side this, and will keep the 0.26 broker running until all its workflows have terminated.
So I need my app to connect to both brokers at the same time.
Can it be achieved by the following changes

Make @ZeebeWorker repeatable (so I can apply it twice to a service method)
Use a different @ZeebeWorker.name for the new broker
Introduce a new per worker name zeebe configuration something

So my service would look like this
  @ZeebeWorker(type = CHECK_AVAILABILITY_TASK_TYPE, timeout = 1000 * 60 * 10)
  @ZeebeWorker(name="new", type = CHECK_AVAILABILITY_TASK_TYPE, timeout = 1000 * 60 * 10)
  public void checkAvailability(final JobClient jobClient, final ActivatedJob job) {

I would then configure like :
zeebe:
  client:
    worker:
        defaultName: old
    namedWorkerConfig:
        old:
          broker:
            contactPoint: zeebe-zeebe-gateway-old:26500
          security:
            plaintext: 'true'
        new:
          broker:
            contactPoint: zeebe-zeebe-gateway-new:26500
          security:
            plaintext: 'true'

Hi @berndruecker,
I am stuck at a similar situation that @cameronbraid has mentioned above.
Currently we are using Camunda zeebe 8.2.0 cluster with elasticsearch, and our team has decided to move to 8.5.0 version but with opensearch.
Now, the elasticsearch data migration to opensearch is not supported as per the camunda documentation.
So, we need to configure both the clients in our application to handle the existing running processes until they completes.
Is there any way we can achieve this now?
Can we configure two brokers for single application?

Hi @NiteshB2993: I don't think this is easily possible with spring-zeebe at the moment, however you can of course instantiate two client connections using the underlying Zeebe Java Client yourself. I guess you could also easily use spring-zeebe for one of those connections, but not the second. But of course you can build your own bean managing the second client connection.


Export Bitmap Font with bmGlymp (XML / FNT / PNG)

I have a problem with the format provided by bmGlymp and PIXI documentation.
The example _https://pixijs.io/examples/#/text/bitmap-text.js_ works perfectly, but bmGlymp doesn't export an XML + PNG, as in the example, but rather an FNT + PNG. I am not able to find any documentation or example for loading FNT + PNG, someone can help me? Thanks!
Best,
Dario

I have another annoying problem related to Webpack, which requires to manage all the external files for the build. It seems that the loader.add cannot digest the XML as a string (previously imported). is there a workaround since this code is not working? — Thanks a lot.
   s.app.loader.add('Arial', arial)
        .load(onAssetsLoaded)

P.S. arial is a string containing the XML content

I am testing this, but I am quite lost
const arial = new PIXI.BitmapFontLoader(arialXML, arialPNG)

This is a duplicate of other issues (e.g. #5134), please make sure you search closed issues before opening a new one. It will save use time.
I believe you're looking for this API to pass in the XML and textures to create the font. This is exactly what BitmapFontLoader does if you take a look at the source code (if you're curious).
http://pixijs.download/release/docs/PIXI.BitmapText.html#.registerFont

I cannot use the load because of Webpack, but I have the data I need by importing them as this works:
PIXI.BitmapText.registerFont(arialXML, arialPNG)

This was working with external loading, but with the new command registerFont it doesn't work anymore
const txt = new PIXI.BitmapText(string, style)

It works now, thanks for your perseverance with me! I noticed that d3.js XML parsing works fine — js native doesn't for me — and PNG has to be imported directly. I copy and paste an abridged version of my code; full one, if needed, is available in the (repository)[https://github.com/rodighiero/COVID-19]. If you are curious to see results, my network visualization based on PIXI is (here)[https://rodighiero.github.io/COVID-19/].
Thanks again!
import arialDataXML from './arial.xml'
import arialDataPNG from './arial.png'

Promise.all([
    d3.xml(arialDataXML)
]).then(([nodes, links, arialXML]) => {

    initPixi()

    const arialPNG = PIXI.Texture.from(arialDataPNG)
    const arial = PIXI.BitmapText.registerFont(arialXML, arialPNG)

Good luck!


Stand to become SubscriptionBus

Once #604 is implemented, Stand will only remain responsible for  transferring the entity updates to the corresponding subscribers (e.g. to those, who used SubscriptionService).
Therefore, to emphasize on its only purpose, it needs to be renamed to SubscriptionBus.

See #733 for more details on the same functionality.

Closing as obsolete.


[BUG] AppService Management: Error creating Function app key

Library name and version
Azure.ResourceManager.AppService 1.0.0-beta.4
Describe the bug
When creating a new Function app key using CreateOrUpdateHostSecretAsync the following error is returned
{
"Code": "BadRequest",
"Message": "Properties object is not present in the request body.",
"Target": null,
"Details": [
{
"Message": "Properties object is not present in the request body."
},
{
"Code": "BadRequest"
},
{
"ErrorEntity": {
"ExtendedCode": "51006",
"MessageTemplate": "{0} object is not present in the request body.",
"Parameters": [
"Properties"
],
"Code": "BadRequest",
"Message": "Properties object is not present in the request body."
}
}
],
"Innererror": null
}
After further investigation inside the KeyInfo serialization class (KeyInfo.Serialization.cs), the properties are not being wrapped in a  parent "properties" object.
Expected behavior
The payload being sent to Azure should be
{
"properties": {
"name": "blah",
"value": "blah"
}
}
Actual behavior
What is actually being sent is
{
"name": "blah",
"value": "blah"
}
Reproduction Steps

Create a WebSiteResource object and write to variable "site"
Run the function site.CreateOrUpdateHostSecretAsync("systemKeys", "durabletask_extension", new KeyInfo { Value = "abcdefg" });

Environment
.NET SDK (reflecting any global.json):
Version:   6.0.401
Commit:    0906eae6f8
Runtime Environment:
OS Name:     Windows
OS Version:  10.0.19044
OS Platform: Windows
RID:         win10-x64
Base Path:   C:\Program Files\dotnet\sdk\6.0.401\
global.json file:
Not found
Host:
Version:      6.0.9
Architecture: x64
Commit:       163a63591c
.NET SDKs installed:
2.2.207 [C:\Program Files\dotnet\sdk]
3.1.418 [C:\Program Files\dotnet\sdk]
5.0.102 [C:\Program Files\dotnet\sdk]
5.0.405 [C:\Program Files\dotnet\sdk]
5.0.407 [C:\Program Files\dotnet\sdk]
6.0.104 [C:\Program Files\dotnet\sdk]
6.0.302 [C:\Program Files\dotnet\sdk]
6.0.401 [C:\Program Files\dotnet\sdk]
.NET runtimes installed:
Microsoft.AspNetCore.All 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.24 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.14 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.16 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.1.30 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.24 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.14 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.16 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 3.1.24 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.2 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.14 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.16 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.4 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.7 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.9 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Download .NET:
https://aka.ms/dotnet-download
Learn about .NET Runtimes and SDKs:
https://aka.ms/dotnet/runtimes-sdk-info

Thank you for your feedback.  Tagging and routing to the team member best able to assist.

Route to service team as it's caused by the mismatch of swagger definition and actually service API.

Hi @phmcder , Thank you for using Azure SDK for .NET.
This issue has been fixed, please try our latest package.
Duplicate with #35146


Support Elastic Kubernetes Service (EKS) from AWS (Amazon Web Services)

Please add EKS as a supported hosted Kubernetes framework. While a lot of experiments (such as node-cpu-hog and pod-delete) work fine on it, it's not officially supported, and in the case of node-cpu-hog, the following is required:
- name: PLATFORM
  value: "GKE"

And specifying EKS causes the experiment to not work.
Note that node-cpu-hog is only an example here, the entire framework needs to be tested on and support EKS.

EKS is now officially supported on Generic chaos experiment suite.

Can we add EKS platform as a supported platform in docs/charts csv?

Node failure & Disk failure chaos will be supported next on EKS and tracked via separate issues.


Walkthrough: Create and use your own Dynamic Link Library (C++)

I was able to follow this tutorial easily and produce a running solution.
Well Done!

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

ID: 08c574a2-cef0-ab13-7375-55851f966ef6
Version Independent ID: fe3421c7-e9f4-4986-589f-fadaedce583e
Content: Walkthrough: Create and use your own Dynamic Link Library (C++)
Content Source: docs/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp.md
Product: visual-cpp
Technology: cpp-tools
GitHub Login: @corob-msft
Microsoft Alias: corob

Thanks, @djm5487720 - Glad you found it useful.


Moving Pod logs into Dock panel

Part of #430
Getting rid of logs dialog and move controls into dock without feature changes.

Overall looks good! One thing that we are currently missing is information about a pod namespace.

Fixed opened drawer bug. Now it closes when you click on logs.


Feature request: latinize text before phoneticizing it

The normalizer currently doesn't do anything special with diacritics and other special characters, which leads to words that are generally seen as the same that don't equate, such as:

Noel / Noël
Rene / René
Adrian / Adrián
Zoe / Zoë
Francois / François
Monica / Mónica
Matheo / Mathéo
cafe / café
facade / façade
pina colada / piña colada
attache / attaché
cliche / cliché
naive / naïve
Sao Paulo / São Paulo
resume / résumé

One might ask, "but would those spellings be used in English?" Well, The Chicago Manual of Style recommends that most non-English loan words be rendered in print with diacritical marks intact. And in my experience, it's definitely common to see things like "déjà vu" with their diacritics in English text.
Now in some cases, those diacritics result in a different phonetic sound. Which leaves a question about the best way to translate them. For our purposes, I think it's alright to ignore that or at least to leave it to a library like unidecode to handle.  Allowing a searcher to forgo searching for various diacritic variants will likely help the searcher find what they're looking for more times than it hinders it, if the phonetic normalizer is on.

The "latinizer" in tantivy is called an ascii folder: https://github.com/tantivy-search/tantivy/blob/main/src/tokenizer/ascii_folding_filter.rs
Of note: it normalizes curly quotes and fancy apostrophes into the ascii equivalents as well.
Note: it appears that they pulled their "folding" choices straight out of Lucene. This comment is in that file:
those folding is a copy of

https://github.com/apache/lucene-solr/blob/28d187acd1e391723eb6e1b5445f22abf5580a80/lucene/analysis/common/src/test/org/apache/lucene/analysis/miscellaneous/TestASCIIFoldingFilter.java


[📚] Documentation and support for Firebase extensions

Firebase extensions which are in beta also need to be added to flutterfire along with documentation.

Could you provide an example? Firebase Extensions are part of the Firebase suite - FlutterFire is just a standalone implementation of Firebase for Flutter. I'm not sure why extensions would need to be on the FlutterFire docs.

For integration with flutter apps, docs can be provided

Actually, firebase does provide enough docs for extensions.
Sorry for the trouble


Review Implementation of Async/Await

This code will log 1, 2, 3 on chakra.  On v8, it will log 2, 3, 1.  Believe that the difference here is Chakra is not creating a new promise for the await.  Spec section on await claims that we should be creating two new promises when we await, but we're only creating one.
async function f2() {
 return 1;
}

async function f1() {
 let i = await f2();
 console.log(i);
}

let p = f1();

Promise.resolve(2).then(() => {
 console.log(2);
 Promise.resolve(3).then(() => {
   console.log(3);
 });
});

Edit:  My understanding from talking w/ folks is that Chakra's implementation of async/await predates the spec. It's currently a bit difficult to map the implementation to the spec language.

I just tried this out, and I see some strange behavior. If I copy what you have there into a node (v8) repl environment, then I see the 2, 3, 1 behavior that you mention, but if I put it in a file and run it then I get 1, 2, 3, using the exact same node binary. Trying it out in chrome's devtools I do see the 2, 3, 1 as well, but I haven't tried making a page and running it there yet.

Ah; when I had node v8 print 1, 2, 3 it was with node 9.5, but with node 10.4.0 it consistently prints 2, 3, 1.

This has been bugging me so I've been poking around at it. I think the difference is only if we await a promise. I've been using this snippet as a testing ground:
async function f1() {
	console.log("Start");
	Promise.resolve(0).then(() => {
		console.log(1);
	}).then(() => {
		console.log(2);
	}).then(() => {
		console.log(3);
	}).then(() => {
		console.log(4);
	}).then(() => {
		console.log(5);
	}).then(() => {
		console.log(6);
	}).then(() => {
		console.log(7);
	});
	await 1;//{then: (resolve) => resolve({then: (x) => x(x)})};
	console.log("End");
}

f1()

where I change the thing that is awaited and see how many promise 'ticks' it takes in both chakra and v8. If I use a plain value, or a non-promise thenable, then both chakra and v8 seem to agree on the number of ticks (1 for await 1, 2 for await {then: (r) => r(1)}, 3 for await {then: (r1) => r1({then: (r2) => r2(1)})})
However if I await Promise.resolve(1) then chakra takes 1 tick to print "end", while v8 takes 3 ticks, and if I await Promise.resolve({then: (r) => r(1)}) then chakra takes 2 ticks, while v8 still takes the same 3.
I don't yet fully understand why native promises change things here, and why a native promise resolved with a thenable changes chakra but not v8.

@zenparsing any ideas on whether thenables should be treated differently to promises here, and does v8's behavior where a Promise.resolve(thenable) doesn't take any longer than Promise.resolve(1) make sense?

@zenparsing Something that I don't understand is why Promise.resolve(1) and Promise.resolve(thenable) behave the same for v8 but not for chakra. From my reading of the spec, a Promise.resolve(thenable) will need to queue a PromiseResolveThenableJob or something which then calls into the thenable and eventually schedules a PromiseReactionJob, while Promise.resolve(1)directly schedules aPromiseReactionJob`, so I thought there should be one "tick" difference between them, which is what I see in chakra, but not in v8.

I'm seeing the same behavior for v8 and Chakra for Promise.resolve with respect to native and thenables.
For this test case:
let thenable = {
  then(a, b) {
    console.log('then called');
    a(1);
  },
};

let native = new Promise(resolve => resolve(1));

console.log(0);

Promise.resolve(thenable).then(() => {
  console.log(1);
});

Promise.resolve(native).then(() => {
  console.log(2);
});

both engines log:
0
then called
2
1

We can see that for the thenable case, "then" is getting called in a job, and creates an extra delay relative to a native promise.
But perhaps there's another test case that might show a difference?

I see the difference when using async functions as I showed above:
async function f1() {
	console.log("Start");
	Promise.resolve(0).then(() => {
		console.log(1);
	}).then(() => {
		console.log(2);
	}).then(() => {
		console.log(3);
	}).then(() => {
		console.log(4);
	}).then(() => {
		console.log(5);
	}).then(() => {
		console.log(6);
	}).then(() => {
		console.log(7);
	});
	await Promise.resolve({then: (resolve) => resolve(1)}); // or just Promise.resolve(1)
	console.log("End");
}

f1()

During my current effort on async generators I've gone over async functions quite a bit and noticed some inefficiencies and at least one clear spec violation in addition to the points discussed above:
Spec violation, per https://tc39.github.io/ecma262/#await step 10 await uses PerformPromiseThen, it does not use the then property of the Promise prototype - i.e. it should ignore user modified then functions but currently CC uses the modified version:
Promise.prototype.then = function () { print("This should not be printed"); }

async function test()
{
    await 5;
    print("pass")
}

test();

With eshost:
#### JavaScriptCore, SpiderMonkey, V8 --harmony
pass

#### Chakra (v1.11), chDev (master)
This should not be printed

I'd like to update the async function implementation somewhat thoroughly when I'm done with async generator functions - as I'd like them to share some code that may make implementing for await of easier - if that's ok I'll pick up the promise ordering point as well as this other bug I've noticed at that time? (I may need some help ensuring I don't break TTD support but should be fine otherwise)

Indeed the quick fix to the issue I pointed would be to use the internal method CreateThenPromise on that line instead of using GetProperty for then and calling it.
But what I'd like to do is make a single implementation of await which can be shared between async function and an async generator function and can be used within the implementation of for await of that I'm hoping to do later. Currently await within async functions is sort of wrapped around other aspects of the implementation of async functions.
Additionally if there is one implementation rather than several it will be much easier to update for the noted spec change or any future ones.

One more point I thought of here - the current async/await implementation uses Generator.prototype.next() calls to start executing the async function and to move from await to await through it.
These calls are observable in stack traces - but per the spec async/await does not use Generator.prototype.next()
(My suggestion of using the new Op_Await I've written for AsyncGenerators would also remove the use of Generator.prototype.next)

I've been looking more at this - obviously #6312 is a massive improvement.
But even with that each await will still involve:

Perform Promise.resolve() on the awaited value
Create 2 continuation methods
Create an unused promise capability
Create 2 PromiseReaction objects
Attach the promise reaction objects to  the result of 1
trigger the correct promise reaction and resolve the unused capability (not exposed anywhere so user cannot detect this)
Create a promise reaction task function that wraps the relevant continuation method from 2
Pass the promise reaction task function to the host's promise continuation method

Whilst some of those steps are necessary several of them really aren't notably steps 2,3,4,5 and 7 create throw away objects, re-created for every await that are not exposed to the runtime and hence not detectable and that could be eliminated through re-factoring.
**I'm looking into a way of doing this that will benefit both AsyncFunctions and AsyncGenerators:
On a by step basis:**

no change can be made - the use of Promise.resolve() - or an internal equivalent - is mandated by the spec
These continuations could be cached
This promise capability could be removed entirely
These promise reaction objects could be cached
This step is necessary
The resolution of the unused capability could be eliminated
This step could be eliminated all the reaction task function does is get the resolved value of the source promise and then call the continuation method with it as a parameter - as we know what the continuation method is ahead of time we could instead attach the resolved value to it in an internal slot.
Here we could pass the continuation method with the resolved value attached instead of a reaction task function

Making this theoretical change the only allocation done for each await would be the Promise from Promise.resolve() if the awaited item is not itself a promise.

@rhuanjl I'm really glad to see someone other than myself thinking about this : ) A bunch of the code movement in #6312 was geared toward setting the stage for these kinds of improvements.
It would be great to put together benchmark numbers to guide the optimizations (since it seems like some of the changes you're suggesting could be done separately). Also, I probably wouldn't worry about optimizing "then" for now. The goal should be getting async/await running very efficiently. Which reminds me, I also need to work on getting generator JITing enabled!


Async logging hides main thread exceptions

(v0.8+) Some exceptions on the main thread will kill the main thread and then the async logging thread deadlocks on the Chan.  And that's the exception you see.  Ick.

Fixed by simplifying logging to use the Say library rather than try to manage that threading within knit-haskell itself.


Toggle disabled when activate/deactive is processing

Also disable clicking refresh repos multiple times
https://trello.com/c/6DGFfuoD/528-disable-activate-deactivate-button-in-repo-list-when-it-s-clicked-and-make-the-request
Needs a designers touch for the disabled state and the a became sized weird when changed to a button. Screenshot attached

@frechg Do you mind doing the UI tweak here?

@gylaz @jakecraige just pushed a commit to fix up the button styles.

Thanks @frechg!
@jakecraige, this looks good to me. :+1:

Merged in 0e4be20f233a2e303192bbf2daae9e54470d90a5 not sure why it didn't close


crash on rest request

What java versions?
What node version?

Was this issue solved?
The latest node release is 0.13.6 (https://github.com/BlackTurtle123/TurtleNetwork/tree/v0.13.6).
If i also review the above no .conf file was specified during the initial server startup, use "java -jar TN-all-0.13.6.jar TN-mainnet.conf" and make sure the .conf file is in the directory and configured correctly.


Disable incremental build in CI

Objective
Reduce cargo compile times in the CI worflow
Solution
Disabling incremental build, with the CARGO_INCREMENTAL env var should improve compile times
EDIT: It seems that https://github.com/dtolnay/rust-toolchain/pull/27 already does it, so maybe this change is not necessary

I didn't notice any compile times improvements, and therefore close this


Window Walker Theme

Summary of the new feature/enhancement
Users should be able to change the appearance of the Window Walker popup from the default dark color scheme. At a minimum, there should be an option for a dark and a light mode. This should probably follow system settings by default. Optionally the color scheme could follow the user's accent colour.
This is not only an aesthetic, but an accessibility, feature. For example, if a user has a vision impairment and can only use light-on-dark or dark-on-light effectively, limiting the styling choice also limits their ability to use the application (personally I need light-on-dark, but typically use inverted colours as the majority of the software I use supports dark-on-light best).

As an addition to this, Window Walker should probably share the same UI as Launcher. Ideally WW would be a plugin for Launcher invocable by a unique key combo.

WW is merging with launcher. That will follow the OS theming.

#1809 was the work item and it has already been merged in to the launcher branch.


How to get the trace?

Thanks!

Some of the events are in newer versions of the kernel, like this stuff:
https://github.com/lostgoat/linux/tree/extra-trace-info
But you should be able to get general traces using trace-cmd like the below.
Thanks!
#!/bin/bash

# Events
#   amdgpu:amdgpu_vm_flush          ; virtual map hardware flush
#   amdgpu:amdgpu_cs_ioctl          ; command submission workflow
#   amdgpu:amdgpu_sched_run_job     ; command submission workflow
#   drm:drm_vblank_event            ; trace point for vblank events
#   fence:fence_signaled            ; signal completion of a fence
#   fence:fence_wait_start          ; start waiting on fence
#   fence:fence_wait_end            ; fence wait ended

# This is almost equivalent to amdgpu_cs_ioctl. Both of them track when
# the job is added into the SW scheduler.
#   gpu_sched:amd_sched_job         ; track sched job status like the length of job queue and hw job queue

# This is almost equivalent to fence_signaled. Both of them track when a
# job is completes execution.
#   gpu_sched:amd_sched_process_job ; command submission workflow tracepoint

# FUNCTIONS
#   drm_handle_vblank
#   drm_wait_vblank
#
# Andres:
# A lot of rework is going into these areas of the drm kernel, specially
# with regards to atomic modesetting. Using these is a good start, but be
# prepared for this to change in the future once the dust settles. I'm not
# sure if these will be touched though.

# Andres:
# Some other interesting things to keep in mind to track in the future:
#   - Buffer eviction and migration
#   - Vulkan semaphores
# These don't have trace events yet.

sudo trace-cmd record -i \
    -p function \
    -l "drm_handle_vblank" \
    -l "drm_wait_vblank"  \
    -e "amdgpu:amdgpu_vm_flush"  \
    -e "amdgpu:amdgpu_cs_ioctl"  \
    -e "amdgpu:amdgpu_sched_run_job"  \
    -e "drm:drm_vblank_event"  \
    -e "fence:fence_signaled"  \
    -e "fence:fence_wait_start"  \
    -e "fence:fence_wait_end"  \
    -e "gpu_sched:amd_sched_job"  \
    -e "gpu_sched:amd_sched_process_job" \
    sleep 2

trace-cmd report -l -t | less

Hi Vinjn - sorry, didn't notice you worked for nvidia. Feel free to email me at<EMAIL_ADDRESS>if you've got any questions on anything or there are nvidia ftrace events we could add to this as well.
Thanks much!