Consider using confinode

Hi,
I've just release the configuration managing library confinode and I thought it could be useful to this project.
Please ask me if you have questions on need help on this.
Thank you.

Hi,
What will I get that isn't supported already by using that?

Well, I didn't studied Madge enough to be sure, but here is what I can think of:
Support for many file types: JavaScript, JSON, YAML out-of-the-box, and many more if the user have some modules. For example, if the project the user is analyzing is written in TypeScript, an appropriate module is probably already installed that confinode can use to understand TypeScript configuration files.
Indirections, meaning that if the user wants to set his configuration using an unexpected file name, he can use, for example, the package.json entry to give this file name. For a company sharing a configuration in a module, confinode can also be given a module name.
Again for a company sharing a configuration, confinode manages inheritance, meaning it can take the company default configuration and overwrite only the options set in the project configuration file.

On the other hand, if you are already using rc, I must say that confinode does not parse the command line.

Ok, thanks. But I think I'll stick with rc right now.


OC-21 Updates Spring libraries versions

All is well.

All is well.

All is well.

All is well.


[Feature Request]: Activate several pseudo states

Hi,
Another feature I think could be hugely beneficial would be being able to activate several pseudo-states. This would be especially useful when having to save the amount of screenshots you take.
The way I could see this working is like this:
const Template = (args) => (
  <>

Buttons: {args.pseudo}

    <Button>Default Button</Button>
    <ButtonText>Text Button</ButtonText>
    <ButtonOutline>Text Button</ButtonOutline>
   </>
)

Template.args = { pseudo: ['idle', 'hover', 'focus', 'active'] }

Then the plugin could loop over the given states and render it like this:
<>
  <Template pseudo="idle" />
  <Template pseudo="hover" />
  <Template pseudo="focus" />
  <Template pseudo="active" />
</>

That would be great because I could save myself the time writing loads of stories activating different states.
Let me know what you think!

This would be AWESOME. Not only for saving screenshots (I know this is detrimental to chromatic in some way, so maybe not a huge priority for them?) but also for making clearer documentation. It'd be GREAT to have a single page showing all button states rather than asking the user to click on multiple stories on the sidebar to see the changes.
Basically, seeing this at a glance:

Would be SO much better, also for comparing screenshots. So yeah, just wanted to add: would LOVE to see this feature.

@enrique-ramirez it kinda sounds like you are looking for this addon + the docs addon? Here's a screenshot from our Storybook with the docs support from my PR (#20):

@davidfloegel if you're really just trying to consolidate your snapshots, I think you can accomplish that right now by simply applying the pseudo selector class in your stories manually. I don't think the API you described actually makes sense for Storybook in general. A Template and its args have a 1:1 relationship, so mapping the args over multiple Templates isn't something Storybook (or an addon) would handle. You'd just want to include that markup in the story itself (or maybe a helper component?).
Heh, I just fired up the Storybook in this addon's development environment, and they're doing exactly what I described above in their stories: https://github.com/chromaui/storybook-addon-pseudo-states/blob/a4e05219376d4515736e1bdc56ad55b0d8d50c47/stories/Button.stories.js#L13-L40
So, based on that, you could make a little helper that iterates over your args.pseudo array and wraps each instance of the component with
.

@jrolfs So is it safe to use the pseudo-* class names manually? Is it considered as a "public API" guarantee rather than internal implementation details? If so, can we document it?
I'm just worried that i will use it and it might get changed on a patch/minor version and break my tests 🙂

I've opened a PR to support this #25


bug: No provider for Http

Type: bug
Ionic Version: 2.x
Platform: all
tried to run ionic-conference-app with latest 2.0 branch.
angular providers are not founded if i inject those providers in my App or Components. Http, LocationStrategy, etc.
For example, if I inject http into App constructor:
@App({
  templateUrl: 'build/app.html',
  providers: [ConferenceData, UserData],
  config: {}
})
class ConferenceApp {
  constructor(app: IonicApp, events: Events, http: Http, confData: ConferenceData, userData: UserData) {

the error was at the App decorator bootstrap step.
I have checked that the HTTP_PROVIDERS exists in the second argument (providers array list), however, somehow none of the angular providers are found during the ConferenceApp injection stage

I managed to use http with the latest 2.0 branch.
Imported http from Angular:
import {Http, Headers} from 'angular2/http';

but also - to actually use http - had to import map and others from RxJS (breaking change in Angular, http as an Observable is missing all the operators, so even map has to be imported):
import 'rxjs/add/operator/map';

Luckily the operator importing seems to work by just importing it once, to the app.js.

Is this still an issue with alpha.51? I'm not seeing this error.

@3dd13 @mikkokam Is this still an issue with alpha.54?

@3dd13 were you using a npm link to develop against 2.0? We ran into the same thing and fixed it in: https://github.com/driftyco/ionic-conference-app/commit/43ecc2faf994f3a11bd55773f953852db08fcdb1
https://github.com/driftyco/ionic2-app-base/commit/eae8745b5ed3937ebaf9c1af6f102e057fb65859
Definitely a weird one, webpack sees the imports for Angular2 in the linked Ionic source files and finds them in node_modules in the linked folder (not the app folder), so a second copy of Angular2 gets bundled.  The provider error is because the Http imported in the app code is the second Http, different from the first one that was imported in the Ionic code during bootstrap.
Going to close this as I'm fairly certain this is the issue, let us know if that's not the case!

@brandyscarney it works with the released version, was only affecting the npm link situation.
@tlancina it looks okay, will report again if I see any weird provider injected library issues
thanks everyone !


Can we have an English version for this?

May be you can translate it and submit a PR.

Did you notice that the English version already exists in the README file?
It was added in this  commit

Apologies and thanks for the help.


drivers: rtc: sam0: Fix CYCLES_PER_TICK

The sam0 RTC driver determines CYCLES_PER_TICK as a function of
the GCLK0 frequency.  This is not correct in the following
situations:

GCLK0 is not used as the source for the RTC
The RTC is configured to use a prescaler

This commit fixes this issue by determining the RTC frequency using
the values of the clock-generator and prescaler properties specified
in the device tree.
This commit also configures the oscillators to run during low power
standby to enable sleeping the MCU.

Could you rebase?

I am working on this and others.  The 2.3 update has created a lot of changes so this will take some time.


Subject

Before I open new PR, I would like to know if this is a right direction. Could you please take a look at the following Subject implementation (inspired by callbag-subject) and let me know what do you think.
re
module Subject = {
  type subjectStateT('a) = {
    sinks: Belt.MutableMap.Int.t(signalT('a) => unit),
    mutable idCounter: int,
  };

  let make = () => {
    let state = {sinks: Belt.MutableMap.Int.make(), idCounter: 0};

    signal =>
      switch (signal) {
      | Start(_) => (
          sink => {
            let id = state.idCounter;
            Belt.MutableMap.Int.set(state.sinks, id, sink);
            state.idCounter = state.idCounter |> succ;

            sink(
              Start(
                signal =>
                  switch (signal) {
                  | End => Belt.MutableMap.Int.remove(state.sinks, id)
                  | _ => ()
                  },
              ),
            );
          }
        )
      | _ =>
        Belt.MutableMap.Int.forEachU(state.sinks, (. _, sink) =>
          sink(signal)
        );
        (_ => ());
      };
  };

  let toStream = subject => subject(Start(_ => ()));

  let next = (value, subject) => subject(Push(value), _ => ());

  let complete = subject => subject(End, _ => ());
};

rei
module Subject: {
  let make: (unit, signalT('a), signalT('a) => unit) => unit;
  let toStream: (signalT('a) => 'b) => 'b;
  let next: ('a, (signalT('a), 'b => unit) => 'c) => 'c;
  let complete: ((signalT('a), 'b => unit) => 'c) => 'c;
};

Example:
let subject = Wonka.Subject.make();

Wonka.(
  subject
  |> Subject.toStream
  |> map(succ)
  |> forEach(Js.log)
);

Wonka.Subject.(subject |> next(6));

I’m not sure I want to implement it as a module as I’d find that unnecessary in this case. A simple object type holding an observer would suffice as well, I’d say 🤔 at least that’s how I planned to implement it

@kitten thanks for the hint! I didn't think about that in this way. I ended up with the following implementation:
re

type subjectStateT('a) = {
  sinks: Belt.MutableMap.Int.t(signalT('a) => unit),
  mutable idCounter: int,
};

type subjectHolderT('a) = {
  observer: (signalT('a) => unit) => unit,
  next: 'a => unit,
  complete: unit => unit,
};
let makeSubject = () => {
  let state = {sinks: Belt.MutableMap.Int.make(), idCounter: 0};

  {
    observer: sink => {
      let id = state.idCounter;
      Belt.MutableMap.Int.set(state.sinks, id, sink);
      state.idCounter = state.idCounter |> succ;

      sink(
        Start(
          signal =>
            switch (signal) {
            | End => Belt.MutableMap.Int.remove(state.sinks, id)
            | _ => ()
            },
        ),
      );
    },
    next: value =>
      Belt.MutableMap.Int.forEachU(state.sinks, (. _, sink) =>
        sink(Push(value))
      ),
    complete: () =>
      Belt.MutableMap.Int.forEachU(state.sinks, (. _, sink) => sink(End)),
  };
};

rei


histone chaperone definition

GO:0140713    histone chaperone activity
Definition (GO:0140713 GONUTS page)
Binding to and carrying a histone or a histone complex until it is deposited on DNA, or degraded. PMID:26459557
This is defined as a carrier, but it isn't really a carrier.
This chaperoning activity is to prevent toxicity  (paraphrasing @colinlog )
Do these 'chaperone' activities  need to be in a different function branch?

Chaperones for histones are always carriers.  They may also be involved in transport to nucleus, assembly and disassembly of chromosomal nucleosomes and degradation of histones. Except for transport (?) this aleways involve folding/refolding of individual histones or histone complexes [H2A-H2B dimers, H3-H4 tetramers, H2A-H2B-H3-H4 hexamers and octamers, H1 linker histones]. So the histone chaperones is often also a histone (re)folding chaperone , most of the time involving complexes of histones and sometimes of complexes made up of histones and DNA (nucleosome assembly/dissassembly involvment)
Schematically; histone chaperones may be involved in ia newly synthetised histone transport to nucleus and ib  post-translational histone modification prior to deposition and ic. deposition of -modified-histone(complex) on chromosomal DNA or iia disassembly of chromosomal nucleosome followed by iib carrying and handing over nucleosome to nucleosome (re)assembly machinery or iic degradation of the histones it carries.

OK so this is fine!

Closing this. We discussed this again last Friday and the definition is fine for the activities we aim to describe: "Binding to and carrying a histone or a histone complex to unload or deposit it as a nucleosome. The histone can be newly synthesized or result from nucleosome disassembly (either spontaneously, or by a histone chaperone)."
Thanks, Pascale


PBO packing

Heyho, I used this repo in a project and added PBO packing to the PBO lib and just wanted to ask if I should make a pull request with it or if this repo is not maintained anymore.

I welcome you to create a PR! Yes, I do not actively update the code here, but would love to see a community extending it :)


.cv_results_ does not include info from first generation

I think there's a fenceposting/off-by-one error somewhere.
When I pass in generations_number = 1, it's actually 0-indexed, and gives me 2 generations. Similarly, if I pass in 2 generations, I actually get 3.
Then, when I examine the cv_results_ property, I noticed that I only get the results from all generations after the first generation (the 0-indexed generation).
This is most apparently if you set generations_number = 1.
I looked through the code quickly, but didn't see any obvious source of it. Hopefully someone who knows the library can find it more easily!

@rsteca or even @ryanpeach - any thoughts on how to get the first generation included in .cv_results_?

I'll take a look.

That sounds good to me. Personally, I'm more interested in the 1st run than the last run (first run is where we try all the crazy ideas, and we'll see the most variance across different hyperparameter combinations, while last run is generally a bit safer and more boring combinations of things we've already tried before).
But I like your idea- sounds like a pretty simple bit of code to get all the data people would expect. Thanks for finding that!

Someone test this branch https://github.com/rsteca/sklearn-deap/pull/29

I basically discovered that we just haven't included the evaluation step of the population in the history logger. I've now added both evaluation and selection steps but they need testing.

Hey, so I think we have a misunderstanding. cv_results_ does not include "Generation information." it includes all generated individuals from all generations. It's a pretty big table...

@ryanpeach Yeah, i understand that we're including individuals in .cv_results_, not generation information. but, from what i can understand, we're not including any of the individuals from the first generation right now.
i ran into this issue when i ran a pretty small search space that was only two generations, and the second generation was primarily just re-picking candidates from the first generation.
try setting generations_number=1, and i think you'll see the issue i'm talking about.
thanks for looking into this! it's a really cool project, and a pretty big improvement over gridsearch

@ClimbsRocks Great, ok just being clear. Wasn't sure.
I'm actually not super familiar with how DEAP works (which is the framework we use). I am following the code referenced here:
http://deap.readthedocs.io/en/master/api/tools.html
history = History()

# Decorate the variation operators
toolbox.decorate("mate", history.decorator)
toolbox.decorate("mutate", history.decorator)

# Create the population and populate the history
population = toolbox.population(n=POPSIZE)
history.update(population)

# Do the evolution, the decorators will take care of updating the
# history
# [...]

import matplotlib.pyplot as plt
import networkx

graph = networkx.DiGraph(history.genealogy_tree)
graph = graph.reverse()     # Make the grah top-down
colors = [toolbox.evaluate(history.genealogy_history[i])[0] for i in graph]
networkx.draw(graph, node_color=colors)
plt.show()

Here:
pop = toolbox.population(n=self.population_size)
        hof = tools.HallOfFame(1)

        # Stats
        stats = tools.Statistics(lambda ind: ind.fitness.values)
        stats.register("avg", np.nanmean)
        stats.register("min", np.nanmin)
        stats.register("max", np.nanmax)

        # History
        hist = tools.History()
        toolbox.decorate("mate", hist.decorator)
        toolbox.decorate("mutate", hist.decorator)
        hist.update(pop)

And here
idxs, individuals, each_scores = zip(*[(idx, indiv, np.mean(indiv.fitness.values))
                                                for idx, indiv in list(gen.genealogy_history.items())
                                                if indiv.fitness.valid and not np.all(np.isnan(indiv.fitness.values))])

Just for the reference.
I'm lost as to how the history object works, but I think it contains all individuals ever populated in pop, and then "decorates" those individuals by the decorator commands "such as, creating a graph of who was selected, or who mated with who." But the evaluation step is saved in the history automatically I think.
I'll keep looking I guess, just talking out loud.

@ClimbsRocks
Hey, so I did what you said and I'm just not replicating the results. On the test.ipynb notebook (use my fork) if you put generation_number to 1 you still get some individuals.  You sure you aren't just miscounting?
If you are sure this is still an issue, please provide an example jupyter notebook. Thanks!

And... now I'm seeing it. I swear it worked just a min ago...

Nope, nvm, it works as expected. Here is a link to my notebook:
https://github.com/ryanpeach/sklearn-deap/blob/test_issue27/test.ipynb


Added parameter to logo href URL

Resolves #43

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: jkfoong sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@ElderJames Is it possible for this pull request to be merged? Thank you.


read.myacc.csv does not correctly resample temperature data (only get NA values)

Describe the bug
The function read.myacc.csv does not resample correctly the temperature when rmc.doresample = TRUE and the temperature sampling frequency is different (lower in my case) to the acceleration sensor sampling frequency.
To Reproduce
Steps to reproduce the behavior.

Sensor brand: Matrix
Data format: csv
Approximate recording duration 7 days
Are you using a sleep diary to guide the sleep detection: NO
Copy of R command used:
P = read.myacc.csv(rmc.file=files[2],
rmc.dec=".", rmc.firstrow.acc = 1,
rmc.skip = 0,
rmc.col.acc = 2:4, rmc.col.temp = 8,
rmc.col.time=1, rmc.nrow=Inf,
rmc.unit.acc = "g", rmc.unit.temp = "C",
rmc.unit.time = "POSIX",
rmc.format.time = "%Y-%m-%d %H:%M:%OS",
rmc.bitrate = c(), rmc.dynamic_range = 16,
rmc.unsignedbit = FALSE,
rmc.desiredtz = "Europe/Madrid",
rmc.sf = 100,
rmc.headername.recordingid = "remarks",
rmc.check4timegaps = FALSE,
rmc.doresample=TRUE,
interpolationType=1)
Have you tried processing your data based on GGIR's default argument values? Does the issue you report still appear? YES

Expected behavior
I expect having non-NA values on the temperature resampled data. All I get is NA's in the temperature column.
Desktop (please complete the following information):

OS: Windows 10
GGIR Version 2.5-1

Before submitting

[X] Have you tried the steps to reproduce? Do they include all relevant data and configuration? Does the issue you report still appear there?
[X] Have you tried this on the latest master branch from GitHub?

Thanks Jairo.
I just changed the label to feature, because this is not a bug of the existing functionality. The function resample based on the assumption that all signals are samples at the same rate. The function does not claim that it can handle unequal sample rates across signals.

I am closing this now as it has been open for 2 years. I do not have a project where this is relevant. If this comes up again we can re-open it. As an intermediate solution users will have to interpolate the temperature data outside GGIR.


Global Admin

I think the ramifications of giving a user (?!?!!) Global Administrator privileges are not explained enough. Personally I don't even think that is a valid solution, but if so, it should have a LOT of red text explaining what a Global Admin can do - anything.

@gcormier Thank you for the feedback. Can you let me know which article this feedback is for, so I can assign it to the author? You can reply here with the URL of the topic, or you can create a new issue by browsing to the topic on docs.microsoft.com and choosing Content feedback at the bottom.

@gcormier Thanks for the link, I have assigned this to the author.


MV3 only runs content script "when clicked" for <all_urls>

Does this mean that <all_urls> as a host permission is going away to be replaced by "activeTab" or does it mean that <all_urls> will still be permissible as a host permission but will not initially provide any access to the extension until the extension has been engaged with (ie. the "This can read and change site data" permission set to "When you click the extension")

The latter. In fact, the example you gave is spot on; new installs will basically have "when you click the extension" set by default, but users can choose to grant the ability to run everywhere or on specific sites if they wish.

This may not actually be true at this point.
Chrome still seems to default to 'on all sites' for mv3 extensions, at least as loaded as an unpacked extension

Looks like we are actually OK here!

This actually seems like it WILL be a problem:
https://github.com/w3c/webextensions/issues/227


[Feature] Adding Complex Number Calculator

Description
I would like to add a complex number calculator which Handles complex numbers and their operations, such as addition, subtraction, multiplication, and division, and provides both rectangular and polar forms of the result.
If u like this idea, then please assign me this under JWOC'24
Screenshots
No response
Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[ ] I am a IWOC'24 contributor.
[X] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

Proceed @Aashi19234

@Rakesh9100 Please also add the difficulty label.

Difficulty tag will be added based on the quality of your PR and the work done @Aashi19234

Okay Thanks for clearing @Rakesh9100


dusty sync growl notifications

I'm not accustomed to having to wait a few seconds for my interpreted file changes to propagate to my docker container. It confuses me when I'm developing.
Maybe it would be possible to add growl support via gntp, so I know when to expect my changes to exist.
If you think the idea makes sense and could point me in the right direction, I'd be happy to try and hook it in :)
Cheers

We actually had this functionality built in with earlier builds, here's the PR where I killed it: https://github.com/gamechanger/dusty/pull/177/files
The issue we saw was that it was impossible for Dusty to know enough about the user's intent to intelligently issue notifications without spamming the user with stuff they didn't care about. It's possible we could revisit this functionality with a more flexible and customizable notification system, but I'm not sure off the top of my head how that would work.
I think the developers at GameChanger who have automated their Dusty workflow have built terminal-notifier into their automation to give them context-aware messages on the Dusty commands they're running, so you can do something like dusty sync my-repo && terminal-notifier 'Synced my-repo'.

terminal-notifier seems like a better solution. I think your conclusion was correct.

Cool, I'll go ahead and close this then.


[Tutorial]: Create Onchain Subscription Payments with Spend Permissions

What changed? Why?
New tutorial for spend permissions onchain subscription use case
Notes to reviewers
How has it been tested?

🟡 Heimdall Review Status

Requirement
Status
More Info

Reviews

🟡
0/1

Denominator calculation

Show calculation

1 if user is bot
0

1 if user is external
0

From .codeflow.yml

1

Additional review requirements

Show calculation

Max
0

0

From CODEOWNERS

0

Global minimum
0

Max

1

1

1 if commit is unverified
0

Sum
1

Review Error for ericbrown99 @ 2024-12-20 19:45:50 UTC
User failed mfa authentication, see go/mfa-help


chore: remove husky hooks

Remove husky and commitlint. Now that we're using manual changelogs, we don't need to enforce conventional commits so strictly in this repository. I still think we should strive to use them in PR titles, but I have found myself being mostly annoyed by the enforced hooks and using --no-verify flag most of the time.

fixes: #2078

Note this might cause confusing errors for people next time they do a full clean and install because the hooks will still exist in their .git directory and will fail because husky binary is missing.


Zoom while rotating big image

When rotating the device and the browser is showing a big image, it zooms in and out while rotating. Not sure if this is an animation feature, but would love a easy way to handle rotation without it. Nothing big, is this possible? Looked and looked but couldn't find a property to handle this. Thanks!

Any new about this ?

I'm experiencing same issue


test: fix ClangImporter.remarks for Windows

SwiftShims pulls in visualc on Windows.  Adjust the test to be a bit
looser about the lines emitted.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

CC: @jrose-apple @vguerra

@swift-ci please smoke test

@swift-ci please smoke test Linux platform

@swift-ci please smoke test Linux platform


Make transaction broadcasting faster.

Instead of trying to broadcast a transaction with nodes one by one, this version tries with one or more in parallel. It doesn't iterate in a loop but uses a TaskCompletion task to get a notification when the tx is propagated.
The number of selected nodes is one thrid of the connected nodes plus one, what makes sure to have always connected nodes (it doesn't disconnect them all). Also, this allows users to broadcast transaction immediately after the wallet starts because at that moment there use to be a very few connected nodes. Before, this was almost always impossible and the backend had to be used in most of the cases.

But the success rate for broadcasting using p2p network is significantly decreased, the 7s time out seems to be too short:

I decreased the number after a lot of trial and error but it seems this was some kind of "it works on my machine". What is the error? Timed out to broadcast or Timed out to verify propagation?

But the success rate for broadcasting using p2p network is significantly decreased, the 7s time out seems to be too short:

I decreased the number after a lot of trial and error but it seems this was some kind of "it works on my machine". What is the error? Timed out to broadcast or Timed out to verify propagation?

timed out to broadcast.
I haven't encountered Timed out to verify propagation

Shouldn't this concept https://github.com/WalletWasabi/WalletWasabi/pull/13055 be implemented as part of this effort?
Does it makes sense to keep broadcasting to the backend?

I broadcasted 3 transactions on Main and it was less than 5s every time
Then propagation was less than 3 seconds every time
However, now that you return after first success, I see no risk in relaxing time out

I see no down side in relaxing time out

Relaxing timeouts is not okay. If after a more than decent time a process doesn't finish successfully then it is over.


Different colors for labels

Hi, I would like to know if it's something simple to add a new line color for each new label created.
This would be a great feature for many people I believe (including me).
I tried to read the code and add such feature, but I had no success.
Does anyone know how could I do such thing?

Hi @vcasadei ,
I have implemented today. I am not sure if it satisfies your request.
6cf04ad

Thank you!


support different port naming conventions

some functions, like meep and tidy3d write sparameters assume the o1, o2, o3 ... port names.it would be great to enable other port naming conventions.
Here are some other port conventions

Siepic pdk uses opt1, opt2, opt3
IPKISS2 uses E0, W0, N0, N1
IPKISS3 uses in0, in1, out1, out0

related to this
https://github.com/gdsfactory/gdsfactory/discussions/502
"""FIXME!

How can we make sure that any port convention works for 3D FDTD.
"""

import gdsfactory as gf

if __name__ == "__main__":
    import gdsfactory.simulation.gtidy3d as gt

    c = gf.components.straight(length=2)
    c.unlock()
    c.auto_rename_ports_layer_orientation()
    gt.write_sparameters(c, run=False)

@momchil-flex
@flaport
@simbilod
@HelgeGehring

I'd guess if we use a dict for the s-parameters, which uses the port names the problem should be solved :)

As long as the port names are associated to port objects containing the relevant properties (midpoint, orientation, width, layer, mode_cutoff, and mode_symmetry), we have everything we need to generate logical ports for FDTD. I don't think we should store information about the port in its name string

New Format.
wavelength |port_in | port_out | mode_in | mode_out |   magnitude  |   phase
|        |          |   0     |    0     |              |
|        |          |         |          |              |
|        |          |         |          |              |
s12m
s12a
df.query("port_in=='o1' & port_out=='o2' ")
@flaport

How to internally represent Sparameters. Right now in CSV files.

tidy3D
Meep
Lumerical

TODO:

[ ] Bidirectional convertor from old format CSV format (s11m, s11a) to new format
[ ] Bidirectional convertor from Lumerical DAT to new format
[ ] change FDTD code for writing Sparameters to support new format
[ ] document new format
[ ] unify front-end functions for different simulators?

Convertor will allow you to convert old simulations to the new format

wavelength |port_in | port_out | mode_in | mode_out |   magnitude  |   phase
           |        |          |   0     |    0     |              |
           |        |          |         |          |              |
           |        |          |         |          |              |

d = hdf()
d['wavelength'] = wavelength
d['o1-0_o2-0'] = # port o1 mode0 to port o2 mode0, where mode_index starts in zero for fundamental mode
d['component_settings'] = component.settings
d['simulation_settings']  = simulation_settings.

We could do something like this (I will open a PR tomorrow):

def old_to_new(df, port_map=None):
    s_headers = sorted({c[:-1] for c in df.columns if c.lower().startswith('s')})
    idxs = sorted({idx for c in s_headers for idx in _s_header_to_port_idxs(c)})
    if port_map is None:
        port_map = {f"o{i}@1": i for i in idxs}
    rev_port_map = {i: p for p, i in port_map.items()}
    assert len(rev_port_map) == len(port_map), "Duplicate port indices found in port_map"
    s_map = {s: tuple(rev_port_map[i] for i in _s_header_to_port_idxs(s)) for s in s_headers}
    dfs = {s: df[['wavelengths', 'freqs', f'{s}m', f'{s}a']].copy().rename(columns={f'{s}m': 'magnitude', f'{s}a': 'phase'}) for s in s_map}
    for s, df_ in dfs.items():
        pm1, pm2 = s_map[s]
        (p1, m1), (p2, m2) = pm1.split('@'), pm2.split('@')
        df_['port_in'], df_['port_out'] = p1, p2
        df_['mode_in'], df_['mode_out'] = m1, m2
    df = pd.concat(dfs.values(), axis=0)[['wavelengths', 'freqs', 'port_in', 'port_out', 'mode_in', 'mode_out', 'magnitude', 'phase']]
    return df

def _s_header_to_port_idxs(s):
    s = re.sub("[^0-9]", "", s)
    inp, out = (int(i) for i in s)
    return inp, out

def new_to_old(df, start_idx=1):
    # just making sure...
    df['mode_in'] = np.asarray(df['mode_in'].values, dtype=str)
    df['mode_out'] = np.asarray(df['mode_out'].values, dtype=str)
    df['port_in'] = np.asarray(df['port_in'].values, dtype=str)
    df['port_out'] = np.asarray(df['port_out'].values, dtype=str)

    ports_in = df['port_in'].unique()
    ports_out = df['port_out'].unique()
    modes_in = df['mode_in'].unique()
    modes_out = df['mode_out'].unique()
    ports = sorted(np.unique(np.concatenate([ports_in, ports_out])))
    modes = sorted(np.unique(np.concatenate([modes_in, modes_out])))
    port_modes = {f"{p}@{m}": i for i, (p, m) in enumerate(product(ports, modes), start=start_idx)}
    s_map = {f"s{i}{j}": (p, q) for (p, i), (q, j) in product(port_modes.items(), port_modes.items())}

    new_df = {}
    df_ = None
    for s, (pm1, pm2) in s_map.items():
        p1, m1 = pm1.split('@')
        p2, m2 = pm2.split('@')
        df_ = df.query(f"port_in=={p1!r} & port_out=={p2!r} & mode_in=={m1!r} & mode_out=={m2!r}")
        new_df[f"{s}a"] = df_['phase'].values
        new_df[f"{s}m"] = df_['magnitude'].values

    if df_ is not None:
        new_df[f"wavelengths"] = df_['wavelengths'].values
        new_df[f"freqs"] = df_['freqs'].values

    new_df = pd.DataFrame(new_df)
    return new_df, s_map

I don't exactly follow what's happening here, but we've been discussing improvements to Tidy3D's own S-matrix tool. I would suggest eventually using this inside write_sparameters, but I guess even though port names in our tool can be whatever you want, I guess this won't exactly solve the problem as the write_sparameters function itself will still need to change.
One other note: we're implementing our own version of the port symmetries as here, but we realized in the most general case, there can be a minus sign on some of the modes. Specifically, if a port is bisected by a symmetry line and the mode has negative symmetry w.r.t. that line. Then, the relation could be something like S10 = -S20 (e.g. in the case of a y junction where the mode of port 0 that gets split into 1 and 2 is anti-symmetric).

Nice
We are trying to standardize the format where we store s parameters
What format do you plan on using for port symmetries?
What are your thoughts about hdf5, numpy or csv?
It would be great to have a standard both for tidy3d and gdsfactory that can hopefully become the standard for other tools such as circuit simulators

What I'm proposing is two converters between the proposed 'new' format and the old format. The advantage of the new format is that it's a sparse storage system and hence more flexible: you might for example be interested in a denser wavelength sampling for some port combinations (i.e. s-parameters) vs others, moreover it's easier to append port/mode combinations at a later stage which you might not have been initially interested in (just append rows).

Hmm, to me it seems like a lot of overhead to save in each row the port/mode... what about saving the data in multiple files and use the ports/modes to name the file? would also speed up the loading times if not all are needed. And it would simplify the parallelization, as each the simulations would write to different files.
I'd also think saving the data in a binary format would be way more efficient, as it only needs 4 byte per float opposed to 1 byte per digit
I don't think we should save both, wavelength and frequency as it's just overhead

Nice We are trying to standardize the format where we store s parameters

Yeah I think this is somewhat independent of Tidy3D internals, it will be entirely determined by gdsfactory and how it uses the solver.

What format do you plan on using for port symmetries?

Two options we are considering:

Providing a mapping of a set of (port, mode index) to a rearranged set of (port, mode_index) with an optional toggle "invert sign", then automatically figuring out the minimum needed simulations to get all the possible columns in the S matrix.
Providing a way to set which (port, mode index) to run as sources, and an easy way to define permutation matrices (with +/-1 elements) to apply to all the results.

What are your thoughts about hdf5, numpy or csv?

We already store SimulationData in hdf5 and have been working on being able to export any Tidy3D model in hdf5 (similarly to how it can be exported to json). This is because we're working on adding more data to Simulation objects, e.g. custom (n, k) dependence, and json is not ideal for that. The nesting of hdf5 makes it a nice choice.

s['o1@0,o1@0'] # port o1, mode=0, to port o1 mode=0 (where mode=0 is fundamental TE for most cases)


from neural_pipeline.train_config import TrainConfig for line 104

flake8 testing of https://github.com/toodef/neural-pipeline on Python 3.7.1
$ flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics
./neural_pipeline/data_processor/data_processor.py:103:53: F821 undefined name 'TrainConfig'
    def __init__(self, model: Module, train_config: 'TrainConfig', device: torch.device = None):
                                                    ^
./neural_pipeline/data_processor/data_processor.py:136:75: F821 undefined name 'AbstractMetricsProcessor'
    def process_batch(self, batch: {}, is_train: bool, metrics_processor: 'AbstractMetricsProcessor' = None) -> np.ndarray:
                                                                          ^
2     F821 undefined name 'TrainConfig'
2

E901,E999,F821,F822,F823 are the "showstopper" flake8 issues that can halt the runtime with a SyntaxError, NameError, etc. These 5 are different from most other flake8 issues which are merely "style violations" -- useful for readability but they do not effect runtime safety.

F821: undefined name name
F822: undefined name name in __all__
F823: local variable name referenced before assignment
E901: SyntaxError or IndentationError
E999: SyntaxError -- failed to compile a file into an Abstract Syntax Tree

Hi @cclauss! Thanks for your PR!
I'm using type definition in like train_config: 'TrainConfig' cause import TrainConfig make the import loop and throw ImportException.
I think this is an error in architecture, but i don't know how to fix it(
Maybe U have any ideas? How much worse to use train_config: 'TrainConfig'?

I do not know typing very well.  Perhaps check out the few past release of flake8 as these checks for types were recently added and there is probably so discussion on pros & cons.

Ok. I will hold this PR before I deal with it.
Thanks!

Can't find a solution for python loop importing. PR closed.


createNew fails with: undefined is not a constructor

Hello there
I'm trying to instantiate like in the sample code:
  var Firebase = require("nativescript-plugin-firebase-common").Firebase;

  var firebase = Firebase.createNew({
    url: 'https://resplendent-fire-4211.firebaseio.com'
  });

However, it fails with:
file:///app/tns_modules/angular2/src/facade/exception_handler.js:79:28: JS ERROR TypeError: undefined is not a constructor (evaluating 'new IosFirebaseClass(arg.url)')

I tried with my own firebase URL as well with no success. Am I missing something?
Cheers,
Andy

No, you are not missing anything. I'm  pretty sure I know what the problem is (which I will describe below), but I haven't been able to test iOS support because that I do not own any iOS devices myself.
I am quite certain that the issue relates to the implementation not grabbing the Firebase global object and storing it as IosFirebaseClass properly.
The problem is a naming conflict. Firebase named their core Firebase SDK class Firebase, which is also the name of my wrapper. Because NativeScript exports all the iOS classes into the global context, I am unable to name my own variable Firebase without hiding the global one.
As a result, it is difficult to export a variable from the module named Firebase while using the globally defined variable named Firebase. TypeScript seems to ignore this possibility, and I have not found a way to access iOS APIs via a nativescript-specific namespace such as nativescript.ios.
As a result, the only fix that I am aware that might work is to use the global.Firebase syntax from NodeJS. I am not sure if NativeScript supports such syntax, but I assume that because it uses NPM modules that it also uses the Node runtime.
So, I will attempt that fix and get it uploaded to NPM. From there, you should be able to download it and test it out. In addition, if you want to attempt your own fix, I would be happy to accept it.

@aaweb Version 0.9.8 has just been published with the attempted fix.
If the fix works for you, let me know and I will then close this issue. If it doesn't, your additional support would be appreciated to help me resolve the problem. If you do not respond in a week, I will close this issue. (You will still be able to comment)

@KallynGowdy It no longer fails on createNew, however, it does not seem to return a firebase object:
Code:
let Firebase = require('nativescript-plugin-firebase-common').Firebase;
let firebase = Firebase.createNew({
  url: 'https://myfirebase...'
});

console.log('----------');
console.log('A: ', Firebase);
console.log('B: ', firebase);
console.log('----------');
var child = firebase.child('/some/path');

Result:
CONSOLE LOG file:///app/frameworks/firebase.framework/index.js:6:12: ----------
CONSOLE LOG file:///app/frameworks/firebase.framework/index.js:7:12: A: function IosFirebase(instance) {

	        _super.call(this, instance);

	    }
CONSOLE LOG file:///app/frameworks/firebase.framework/index.js:8:12: B:
CONSOLE LOG file:///app/frameworks/firebase.framework/index.js:10:12: ----------
JS ERROR TypeError: firebase.child is not a function. (In 'firebase.child('/some/path')', 'firebase.child' is undefined)

Another more general question about the plug-in: Since it is using the actual SDK on each platform, are features like offline support working or are there any specific things to pay attention to? Or what are the differences from this to something like angularfire2?

I just found another issue and published the attempted fix as v0.9.9.
If you could let me know if it works, I would be very grateful. It's a pretty ghetto way to test things, but AFAIK, it is the only way for me to get things fixed for iOS support.

Also, the main differences between this project and angularfire2 is that the angularfire2 project is targeted specifically towards using the Firebase JavaScript API for Angular 2. This project is aimed at reasonably mimicking the Firebase JavaScript API as an abstraction between the Firebase iOS and Android SDKs.
Ideally, this means that you could use angularfire2 with this project so that you utilize the native SDKs on mobile, but the JavaScript version on the web with very few code changes.

@KallynGowdy That worked beautifully, thanks a lot!
Yes, I guess if you don't have a Mac, there's no easy way to test it. Happy to help out running certain things through the simulator or my devices.
Are you aware of anyone already using angularfire2 with this and if it works together? Or is that more of a longer term goal?

@aaweb  No, I am not aware if this project works with angularfire2. I do know that the integration between ng2-firebase (My own wrapper around Firebase, it's really more of a rx-firebase project than an angular one though) and the plugin works, but when using the NativeScript Angular 2 renderer with observables, the reliability is very spotty.
The problems appeared to be related to using push change detection instead of the default angular change detection behavior. This may already be fixed, but I haven't been able to test in about half a month.


Club import not working

Club not imported. Tried multiple times but it does not import my club to the solver unfortunately.

Does the sbc import work fine?

fixed itself after a restart, think it collided with another extension i had on

Glad to hear that 😄

but a lot of the requirements are unsupported, the tool does not do foundations right? As it does not do the minimum gold.

Yes, not all requirements are implemented - feel free to request the most desired one so I can implement it for You.
I tested in on foundations with fc 25. I know some requirements are not implemented but still You can generate the solution (the no implemented requirements are not taken into account) - the solution might be satisfactory or easy to adjust by hand.
As for the minimum gold - that is not implemented at all - the solver does not have access to the market prices - what I can do relatively quickly is to take into account quick sell price but that's not accurate in most cases.


InfoWindowContent Template Helper

currently the HTML is just hardcoded in place - i.e. into this variable and rendered in the view InfoWindowContent = @"
Murcia
",
Suggestion:
I would like to suggest that we move this into an @InfoWindowHelper function with some mechanism to retrieve content from a VM or Model - with some form of modal options / block behind window. Open other modals/close on new open etc.
Multiple overlays
When many markers are overlapping, like offices inside a tall building many markers in same location the InfoWindow is hard to see with overlapping windows! Do you have a suggestion on how I can resolve this?

InfoWindow
Could you write down an example of the syntax of the new approach you are suggesting in order to create the InfoWindow?
Multiple overlays
Maybe you could try Markers Clustering


Native Objective-C support

Currently, people who're using purely Objective-C might run into issues using Kayako Messenger(manually creating bridging, possibly also flirting with an unfamiliar language and ecosystem). In order to improve the developer experience for these folks, we should probably introduce bridging classes for the Configuration struct (so devs can configure Messenger's background and other properties easily). Once this is done, we'll also probably introduce an example Objective-C project as well as changes in the documentation.
Checklist

[ ] Obj-C wrapper around Configuration.swift
[ ] An Obj-C class to build a CustomerSuccessController and present it on top of a ViewController that the user provides.
[ ] An example project + extra docs.

As usual, PRs from the community are welcome 😁 !

I've added a rudimentary example over at https://github.com/codeOfRobin/KayakoMessengerObjC (that gives a slight vision of what the Messenger Wrapper will look like).


Enable searching in multiple (all accessible) containers

Currently, searching for annotations is on a per-container basis.
Enable searching in multiple containers.
Make a container selection. based on container metadata.
Only containers that the user has read access to will be queried.

Turns out the current implementation doesn't scale. Try something more efficient.

Implemented a version that does scale. Marked as closed


⚠ ClamAV has degraded performance

In cf8e5fa, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 443 ms

Resolved: ClamAV performance has improved in a974351.


Use double quotes to fix escape issues

I ran into an issue where trying to put a paragraph of text including single quotes (') as the default value for a param ended up with the text param showing "undefined" in the UI. Looking into json_escape, it is expecting to escape double quotes not single quotes, so I changed the code here to use escaped double quotes instead of single quotes.
Running this locally fixes the issue for me.

Hey @fusion2004 this is great, thanks for this! I'll merge this in now. There is supposed to be a test for characters in params but it's obviously missing something so I'll update it to cover this.
Thanks again :-)


Specify minimum supported Node.js version in package.json engines field

Is your feature request related to a problem? Please describe.
The minimum supported Node.js version is not specified for is-my-node-vulnerable module.
The consumers are not aware of which versions this module supports, and it keep re-appearing

Example Issues

https://github.com/RafaelGSS/is-my-node-vulnerable/issues/2
https://github.com/RafaelGSS/is-my-node-vulnerable/issues/19#issuecomment-2425181636

Twitter: https://x.com/trivikram/status/1848093316627214502

Describe the solution you'd like
Specify which versions of Node.js the module supports in package.json engines field, and add tests for them in CI.
Since consumers are expected to run this module on EOL versions of Node.js, maybe support one or two EOL LTS versions?
As per the current CI setup, this module is expected to support Node.js 14+
https://github.com/RafaelGSS/is-my-node-vulnerable/blob/050a05a0798054e069bd305e866a84e326bba558/.github/workflows/test.yml#L14

Let's target v14 for now and see what needs to be done to support v12 and v10. Wdyt?

Actually, we could support pretty much all versions if we first check if process.version < 18.0.0 and throw the EOL warning, before requiring or using any module


OCI data connector

Proposed Changes

add OCI data connector

@oshezaf : Could you please take a look at the parsers?... Thanks!!!

Azure function is not being deployed.

@oshezaf : Could you please review the parser and provide approval... Thanks!!!!

Please correct the validation errors.

@socprime : Could you please incorporate the feedback provided... Thanks!!!

Data connector looks good. We can merge after @oshezaf 's review.


requirements.txt not contain pep8 pyflakes pylint blitzdb

These are all dependencies of checkmate, so no need to list them separately unless you want to pin them to specific versions. But installing checkmate from pypi results in a stacktrace. Apparently you need to install it from Github instead, as per https://github.com/quantifiedcode/quantifiedcode/issues/3#issuecomment-322706549
If you add the following line to your requirements.txt, it should work:
-e git://github.com/quantifiedcode/checkmate.git#egg=checkmate


Bug with minSize option.

At first and second images option minSize set [322, 220, 'px']. If image have a 100x100 px resolution and minSize [70, 70, 'px'] and postion of croppr-region 0, 0 px, you can`t take a top left corner of croppr-region and move him to top right corner of image because image been smaller than minSize.

Indeed this is a pretty major bug for the minSize option. Will try to get a fix out the soonest.

Any news on this?


Ensure Platform is configurable for content

hauler currently defaults to the contents default platform defined in the manifest index.  This works sometimes, but making it user configurable would be ideal.

Would an operation mode of "bundle + serve all architectures" be an option included in this feature?

it's an option but it would require some changes to artifact.OCI which currently only expects a single manifest/config/layers, that would have to shift to an index.
imo the easier option (for now at least) is to allow a singularly configurable platform input

resolving with https://github.com/rancherfederal/hauler/pull/164


Descriptive stats: unsupported operand type(s) for -: 'NoneType' and 'NoneType

There are 1516 cache records with the following error:

unsupported operand type(s) for -: 'NoneType' and 'NoneType'
unsupported operand type(s) for *: 'NoneType' and 'float'
unsupported operand type(s) for *: 'decimal.Decimal' and 'float'"

See example https://datasets-server.huggingface.co/statistics?dataset=mozilla-foundation/common_voice_9_0&config=ha&split=validation
See for more details in db:
{kind:"split-descriptive-statistics", http_status:500, "content.error":/unsupported operand/}
Related to https://github.com/huggingface/datasets-server/issues/1443

Current state:
Atlas atlas-x5jgb3-shard-0 [primary] datasets_server_cache> db.cachedResponsesBlue.countDocuments( {kind:"split-descriptive-statistics", http_status:500, "content.error":/unsupported operand/})
2294

Currently we have:
Atlas atlas-x5jgb3-shard-0 [primary] datasets_server_cache> db.cachedResponsesBlue.countDocuments( {kind:"split-descriptive-statistics", http_status:500, "content.error":/unsupported operand/})
1166

Those should be fixed with a step refresh (Fixed by https://github.com/huggingface/dataset-viewer/pull/2453)


Incorrect submission graded as correct

Challenge http://freecodecamp.com/challenges/waypoint-use-comments-to-clarify-code has an issue. Please describe how to reproduce it, and include links to screenshots if possible.

@oharrison thanks for posting this issue!
Note that your issue is a duplicate:
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/2300
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/2210
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/2115
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/2075
Please see Help I've Found a Bug.


Update tomcat-catalina, tomcat-coyote, ... to 10.0.4

Updates

org.apache.tomcat:tomcat-catalina
org.apache.tomcat:tomcat-coyote
org.apache.tomcat:tomcat-util-scan

from 9.0.44 to 10.0.4.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.apache.tomcat" } ]

labels: library-update, semver-major

No Servlet 5 strategy yet.


create images for the graph traversal examples

BSD
DFS
Topological
Random Walk
Closest first

AI created the gograph library image like this:

BFS iterator example

DFS iterator example

Topologocal iterator example

Closest-first iterator


LUN-60: fix navigation multiple click bug

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

No other occurences of push.


Feature/grow 162

Please check if the PR fulfills these requirements

[ ] Commit message follows the Contribution Guidelines
[ ] Tests ran locally and added/modified if needed
[ ] Docs have been added/updated, if applicable
[ ] If applicable - JIRA ticket ID was added

What kind of change does this PR introduce? (Bug fix, feature, unit tests, docs update, ...)

Adding relay metrics

What is the current behavior? (You can also link to an open issue here)
nothing is saved

What is the new behavior (if this is a feature change)?

Please describe what manual tests you ran, if applicable

Other information:

Please add unit tests and fix the lint also

LGTM, Unit testing are on the way.
@ranlavanet please take a look


How to pass extra arguments to a semantic action?

I would like to write a semantic operation that would build a symbol table. I have no idea how to pass "global" information to a semantic action. I guess this has to do with operations with arguments / inherited attributes which are on your todo list.
Actually I could build the table bottom-up, merging child tables in each parent. (edit: but even then how can I access the complete symbol table from each node?)
Can you give me a hint how to deal with this task?

You can create an operation that takes an argument like this (assuming a grammar g):
g.createSemantics().addOperation('foo(x, y)', {
  ...
});

Inside a semantic action, the arguments are available as this.args.x and this.args.y. When invoking the operation on a child node, the arguments are passed just like regular method arguments -- e.g., childNode.foo(3, 4).
Hope that answers your question.
(BTW, I think the mailing list is the best place for questions like this, so that other users will be more likely to see it.)

Thank you, this is what I needed.
I checked out the mailing list and in the future I will direct my questions there.


Support for dual CPU systems

https://github.com/fastfetch-cli/fastfetch/issues/1413
macOS and Windows support done
Here is how it looks on macOS and Windows for now:

I will do the rest change


PROB-930 Updating Node attributed

Closing as duplicate of https://github.com/coupa-ops/aws/pull/17

Closing as duplicate of https://github.com/coupa-ops/aws/pull/17


Ruby - Link Error Traces to Transactions

Description
The Errors Inbox team would like to flexibly display Error Traces and Transaction Errors for a better customer UI experience. The proposed experience is captured in this CDD.
Acceptance Criteria
TBD
Design Consideration/Limitations
As captured in the CDD.
Dependencies
As captured in the CDD.
Additional context
None

This is a dup of https://github.com/newrelic/newrelic-ruby-agent/issues/2036


Small crash on CR_DeviceInfo webView

Since we've integrated this SDK in our app we started seeing a crash due to Criteo SDK releasing a WKWebView from a global concurrent queue (CR_DeviceInfo at line 97).
It should just be always used from main thread to avoid this kind of crashes.
This is a small portion of the stack trace.
Crashed: com.apple.root.default-qos
0  UIKit                          0x2111e930 -[UIView(UIKitManual) release] + 117
1  UIKit                          0x2111e9b9 __30-[UIView(UIKitManual) release]_block_invoke + 62
2  ///                 0x2b6679 __42-[CR_DeviceInfo setupUserAgentWithWebView]_block_invoke_4 + 98 (CR_DeviceInfo.m:98)
3  ///                   0x2c236b __45-[CR_ThreadManager dispatchAsyncQueue:block:]_block_invoke + 112 (CR_ThreadManager.m:112)
4  libdispatch.dylib              0x1adb9797 _dispatch_call_block_and_release + 10
5  libdispatch.dylib              0x1adc6b1d _dispatch_queue_override_invoke + 536
6  libdispatch.dylib              0x1adc81b5 _dispatch_root_queue_drain + 326
7  libdispatch.dylib              0x1adc800f _dispatch_worker_thread3 + 106
8  libsystem_pthread.dylib        0x1af6e87d _pthread_wqthread + 1040
9  libsystem_pthread.dylib        0x1af6e45c start_wqthread + 8

Let me know if you need anything else.
Thanks for your time.

Thank you for the report, should be fairly easy will see if it is trivial enough to fix in upcoming release.

Thank you for the report, should be fairly easy will see if it is trivial enough to fix in upcoming release.

While the fix looks quite easy, in order to reproduce it, could you please provide a bit more detail on which environment/condition you are getting this?

While the fix looks quite easy, in order to reproduce it, could you please provide a bit more detail on which environment/condition you are getting this?

Hi @vguerci,
unfortunately I only see this crash happening in production, haven't been able to reproduce it yet.
Anyway I immagine it may happen (UIKit on main thread doesn't crash every time) when it reaches that line of code in this condition:

webView is not nil
webView is not strongly referenced by anything else other than the property itself, therefore it will release on that line

Sorry if I just stated the obvious, but that's all I got.

Hi @vguerci,
unfortunately I only see this crash happening in production, haven't been able to reproduce it yet.
Anyway I immagine it may happen (UIKit on main thread doesn't crash every time) when it reaches that line of code in this condition:

webView is not nil
webView is not strongly referenced by anything else other than the property itself, therefore it will release on that line

Sorry if I just stated the obvious, but that's all I got.

No problem, thanks for your time

No problem, thanks for your time

Hello, 4.2.1 has been released yesterday with the aforementioned fix. Feel free to re-open the issue or another one if needed.

Hello, 4.2.1 has been released yesterday with the aforementioned fix. Feel free to re-open the issue or another one if needed.


The recent versions of Wasmi cannot run ffmpeg.wasm correctly

put wasmi_cli in your path https://github.com/yamt/toywasm/blob/master/benchmark/notes.md#wasmi
checkout toywasm https://github.com/yamt/toywasm and cd into the directory
run the following

(venv) spacetanuki% ./test/run-ffmpeg.sh wasmi_cli --dir .video --
executing File(".ffmpeg/ffmpeg.wasm")::_start() ...
.video/video-1080p-60fps-2s.mp4: Invalid data found when processing input
(venv) spacetanuki%

0.32.0-beta.5 doesn't work.
0.32.0-beta.6 doesn't work.
today's master (352f8ae72c0d8f7c46b8c1beba01342ae5a1a89b) doesn't work.
v0.31.0 works.

@yamt thanks a lot for the bug report. I am going to inspect and fix it asap.

Ideally can you provide me with the ffmeq.wasm file that you have used so that I can properly reproduce?

Ideally can you provide me with the ffmeq.wasm file that you have used so that I can properly reproduce?

you can download it from https://assets.runno.dev/ffmpeg/ffmpeg.wasm
the script automatically download it: https://github.com/yamt/toywasm/blob/b73e2ae6403ce18e477a884ab8634d1d7c840dda/test/run-ffmpeg.sh#L48

Thanks a lot for all the information, @yamt !

I traces loads and stores for both Wasmi (stack) and Wasmi (register) while executing the ffmpeg script and found some differences. Note that for performance reasons I only logged every 100th executed load or store.

Wasmi (register): https://gist.github.com/Robbepop/4a490a183fa266625cd87102b9ffaaa5#file-wasmi-register-out
Wasmi (stack): https://gist.github.com/Robbepop/4a490a183fa266625cd87102b9ffaaa5#file-wasmi-stack-out

On line 812 both files start to differ. Wasmi (stack) interleaves some store instructions whereas Wasmi (register) does not. This helps me to track down where exactly things are going side ways and is the first step towards fixing the issue.

I think I have found the underlying issue. The issue unfortunately is in the Wasm -> Wasmi bytecode translation phase.
Given the following .wat file:
(module
    (func (param i32 i32 i32) (result i32)
        local.get 0
        block (result i32)  ;; label = @1
        local.get 1
        local.get 2
        br_if 0 (;@1;)
        drop
        i32.const 0
        local.set 0
        i32.const 1
        end
        local.get 1
        local.get 2
        i32.lt_s
        local.tee 0
        select
    )
)

Or the equivalent .wat file with folded expressions for better readability:
(module
    (func (param i32 i32 i32) (result i32)
        (select
            (local.get 0)       ;; lhs
            (block (result i32) ;; rhs - conditionally overwriting (local 0)
                (drop (br_if 0
                    (local.get 1) ;; br_if return value
                    (local.get 2) ;; br_if condition
                ))
                (local.set 0 (i32.const 0))
                (i32.const 1)
            )
            ;; condition - overwriting (local 0)
            (local.tee 0
                (i32.lt_s (local.get 1) (local.get 2))
            )
        )
    )
)

We see that the select instruction takes 3 different inputs:

a condition
a left-hand side (condition = true)
a right-hand side (condition = false)

While the left-hand side input is trivially just (local.get 0), both right-hand side as well as the condition overwrite (local 0). On top of that the right-hand side input only conditionally overwrites (local 0) thus. creating divergent control flow within the block which has a result value that acts as the right-hand side argument to select.
The problem with our current Wasm -> Wasmi bytecode translation is that it does not properly respect the divergent control flow in this situation and produces the following sequence of Wasmi bytecode instructions:
[
    Instruction::branch_i32_eq_imm(Register::from_i16(2), 0, BranchOffset16::from(3)),
    Instruction::copy(3, 1),
    Instruction::branch(BranchOffset::from(4)),
    Instruction::copy(5, 0),
    Instruction::copy_imm32(Register::from_i16(0), 0),
    Instruction::copy_imm32(Register::from_i16(3), 1),
    Instruction::i32_lt_s(Register::from_i16(0), Register::from_i16(1), Register::from_i16(2)),
    Instruction::select(Register::from_i16(3), Register::from_i16(0), Register::from_i16(5)),
    Instruction::Register(Register::from_i16(3)), // select right-hand side input
    Instruction::return_reg(3),
]

With the following register table:

0
1
2
3
4
5

Parameter 0
Parameter 1
Parameter 2
Dynamic 0
Unused
Preservation 0

The select instruction clearly takes Register(5) as left-hand side parameter. However, if branch_i32_eq_imm evaluates to false and does not take the branch Register(5) is never written to since it is only written to by Instruction::copy(5, 0) at index 3 which is jumped over in that case.
There are 2 potential fixes that come to my mind right now:

Patch Instruction::copy(3, 1) to Instruction::copy(5, 1).
Introduce a conditional which selects the correct register for the select instruction in dependence of the chosen divergent path of execution.

The problem with 1) is that this requires book keeping of all divergent paths and which local variables they touch or update.
The problem with 2) is that this introduces even more state to keep track of and it is not yet clear to me where state introductions and updates need to happen precisely.

Do you think other instructions could be affected, too?

@athei This bug is not tied to any single instruction such as select but connected to improper handling of divergent control flow where one path overwrites a local x and the other partially overwrites x. So I assume this could have happened with other instructions, too. It just happened to expose itself with the select instruction.

@yamt As one of the WAMR authors I suppose you had to deal with the same issue with the fast interpreter.

i'm not so familiar with the fast interpreter.
a bit simpler function which wasmi seems to misinterpret:
(module
    (func (export "test") (param i32 i32) (result i32)
        local.get 0
        block
            local.get 1
            br_if 0
            i32.const 9
            local.set 0
        end
    )
)

spacetanuki% wasmi_cli --invoke test a.wasm 1 1
executing File("a.wasm")::test(1, 1) ...
0
spacetanuki% toywasm --load a.wasm --invoke "test 1 1"
Result: 1:i32
spacetanuki% iwasm.fast -f test a.wasm 1 1
0x1:i32
spacetanuki%

wamr fast interpreter would compile it to:
EXT_OP_COPY_STACK_TOP   0   3
WASM_OP_BR_IF   1   0
EXT_OP_SET_LOCAL_FAST   0   -1
EXT_OP_COPY_STACK_TOP   3   2
WASM_OP_RETURN  2

where
-1: constant (9)
0..1: locals
2: dynamic
3: preserved

@yamt As one of the WAMR authors I suppose you had to deal with the same issue with the fast interpreter.

i'm not so familiar with the fast interpreter.
a bit simpler function which wasmi seems to misinterpret:
(module
    (func (export "test") (param i32 i32) (result i32)
        local.get 0
        block
            local.get 1
            br_if 0
            i32.const 9
            local.set 0
        end
    )
)

spacetanuki% wasmi_cli --invoke test a.wasm 1 1
executing File("a.wasm")::test(1, 1) ...
0
spacetanuki% toywasm --load a.wasm --invoke "test 1 1"
Result: 1:i32
spacetanuki% iwasm.fast -f test a.wasm 1 1
0x1:i32
spacetanuki%

wamr fast interpreter would compile it to:
EXT_OP_COPY_STACK_TOP   0   3
WASM_OP_BR_IF   1   0
EXT_OP_SET_LOCAL_FAST   0   -1
EXT_OP_COPY_STACK_TOP   3   2
WASM_OP_RETURN  2

where -1: constant (9) 0..1: locals 2: dynamic 3: preserved

@yamt Indeed that is even simpler because it takes the other route of the conditional local set in order to evaluate incorrectly. How did you make WAMR fast interpreter print the instructions? That's pretty handy. I also wanted to implement something like this in Wasmi with its own bytecode for inspection and debugging purposes.

How did you make WAMR fast interpreter print the instructions? That's pretty handy.

it only has a primitive printf-style logging. (WASM_DEBUG_PREPROCESSOR)
i performed a cumbersome manual post-processing. that's one of reasons why i prefer smaller test cases. :-)

I also wanted to implement something like this in Wasmi with its own bytecode for inspection and debugging purposes.

yea, it would be great to have. almost must to have i suspect.

@yamt In that case thanks a lot for your manual post-processing and providing me with this information to help me fix the bug! :)

In an attempt to explain (also to myself) what is going on currently, what should be done practically and what should be done ideally let us look at the example given by @yamt :
(module
    (func (param i32 i32) (result i32)
        local.get 0
        block
            local.get 1
            br_if 0
            i32.const 10
            local.set 0
        end
    )
)

Translated to Wasmi bytecode WAMR fast-interpreter produces roughly the following bytecode. (Please correct me if I am wrong.)
Instruction::copy(3, 0),
Instruction::branch_i32_eq_imm(Register::from_i16(1), 0, BranchOffset16::from(2)),
Instruction::copy_imm32(Register::from_i16(0), 10_i32),
Instruction::copy(2, 3),
Instruction::return_reg(2),

Note that at this point I do not fully understand the difference or need for difference between WAMR's EXT_OP_SET_LOCAL_FAST and EXT_OP_COPY_STACK_TOP instructions, since to me they both look like copy instructions. Maybe the only reason is to tell the origins apart, but this could technically be done by looking at their data values.
So what WAMR seems to be doing is to analyze which locals are set (via local.set or local.tee) within a block, if or loop upon entering translation of the control structure and preserve all referenced locals before actually entering the control structure. This can be seen with the first instruction that copies the value at register 0 to register 3 which acts as the preservation register. Also it seems that despite the fact that the block of the Wasm function does not return any values, there is the copy from register 3 to register 2 which (to my understanding) acts as the result register. However, a more ideal codegen wouldn't need this copy instructions and simply use register 3 directly instead.
The code that Wasmi currently produces is:
Instruction::branch_i32_ne_imm(Register::from_i16(1), 0, BranchOffset16::from(3)),
Instruction::copy(2, 0),
Instruction::copy_imm32(Register::from_i16(0), 10_i32),
Instruction::return_reg(2),

The code that I would like Wasmi to produce is:
Instruction::copy(2, 0),
Instruction::branch_i32_ne_imm(Register::from_i16(1), 0, BranchOffset16::from(2)),
Instruction::copy_imm32(Register::from_i16(0), 10_i32),
Instruction::return_reg(2),

So basically in this example just swap the first 2 instructions around.
However, this is very tricky since this requires some kind of lookahead or preprocessing pass over which control flow structures manipulate which local variables in order to insert those copies in a single pass fashion. Otherwise we'd need 2 passes in order to generate code. Patching code by inserting the instructions after initial codegen is very tricky since this easily invalidates branching offsets and thus implementation becomes challenging.
I am not yet sure which route I am wiling to go down and which is the most promising and most efficient resulting in the best possible codegen while not being super hard to code and maintain.

I implemented some naive way for local preservation before entering control flow structures which showed no significant negative impact on performance which is a strong relieve for me since I expected that.
Some WIP downsides of the PR are listed in its description here: https://github.com/wasmi-labs/wasmi/pull/945
I already tested ffmpeg.wasm and the PR seems to resolve the reported issue, however, the execution of ffmpeg.wasm is now failing for an out-of-bounds memory access. This could mean one of two things: Either the PR fix is buggy and does not respect some use cases properly thus resulting in invalid behavior for ffmpeg.wasm OR there is yet another bug that prevents ffmpeg.wasm to be executed validly.

While #945 successfully fixes the bug reported in this issue, running ffmpeg.wasm with the fix crashes with yet another error:
Error: failed during execution of _start: out of bounds memory access

Tracking it down again via load and store instructions we see that the failure now happens quite a lot later than previously at load instruction execution 540480 instead of at 78500. Further investigation needs to happen. But since #945 not only demonstrates to fix the reported bug it also contains other improvements and many more (regression) tests.
Therefore I am going to merge #945 and start working on an investigation and follow-up on the remaining bug(s) until ffmpeg.wasm executes successfully under the new Wasmi (register).

The system automatically closed this issue but I am going to re-open it immediately since, while the originally reported bug has been fixed, the ffmpeg.wasm binary still does not execute properly under the new Wasmi version.

#948 and #945 together fixed this issue.
At least I can run ffmpeg.wasm locally and it runs successfully. I have not verified if it does what it is supposed to do though.

@yamt #948 and #945 together fixed this issue. I can now run ffmpeg.wasm locally and it runs successfully.
I timed the ffmpeg.wasm executions locally ...
* Wasmi (stack): ~40s

* Wasmi (register): ~18s

Thus ~120% speedup.
I am going to release another beta release later today so it is easier to give it a try for yourself. :)
edit: Just released Wasmi v0.32.0-beta.7 including the fixes.

thank you!

@yamt #948 and #945 together fixed this issue. I can now run ffmpeg.wasm locally and it runs successfully.
I timed the ffmpeg.wasm executions locally ...
* Wasmi (stack): ~40s

* Wasmi (register): ~18s

Thus ~120% speedup.
I am going to release another beta release later today so it is easier to give it a try for yourself. :)
edit: Just released Wasmi v0.32.0-beta.7 including the fixes.

thank you!

Thank you again for reporting the issue in the first place. Now that these bugs have been fixed and ffmpeg.wasm demonstratively runs with the new Wasmi version I am much more confident in the code than I was before. :)


CPU usage extremely high, on close memory usage skyrockets

I love this extension, but I had to uninstall because it was causing some performance issues.
When running, one vscode process was taking 12% of the CPU constantly, and I traced it back here. Then, when I closed all vscode windows, the process would not close and memory usage skyrockets, at the rate of 10s of MB or RAM per second, approaching infinity.
Here is a dump of the process from task manager:
Name	PID	Status	User name	CPU	Memory (private working set)	Description	Command line
Code.exe	18160	Running	ehiller	12 	408 K	Visual Studio Code	"
C:\Program Files (x86)\Microsoft VS Code\Code.exe"
C:\Users\ehiller\.vscode\extensions\streetsidesoftware.code-spell-checker-0.17.2\node_modules\vscode-languageclient\lib\utils\electronForkStart C:\Users\ehiller\.vscode\extensions\streetsidesoftware.code-spell-checker-0.17.2\server\src\server.js --node-ipc

Can you install the latest version and see if it still happens?

Thank you for the report by the way.
A few questions:
Does it happen all the time or just for a single project?
Any reproduction steps you have would be useful.

I have been watching this over the past few days. So far (since upgrading) I have not had the issue occur. The computer I had the issue with most, I'll be seeing again on Monday - but so far so good. Thanks!

It might be an issue that happens more often on Windows.  This issue can also happen if VS Code quits and the extension doesn't get the notification.  I have only seen high CPU usage if VS Code was forced to quit, leaving the extension running.

It occurred again yesterday, I had ~7 windows and ~50 tabs running. I went through eliminating one by one. It was a main.go tab. In the past it has seemed to be main.go as well, but I can not 100% confirm this. Maybe something to look at - just wanted to provide that datapoint.

Go? Ok, thank you.  Are you running Python? or its extension?

I almost said no, because I essentially never do Python work, but I checked before I spoke and it is. Here is my config , might also help in other ways.
In that most recent version, I have spell removed as an extension(just to avoid CPU load), but all the settings are intact, so you can see them. Here is a version with the extension , historical, but the same.
I've noticed certainly that it seems to me an issue most often when working in GO ; possibly something related to it's continual lint-ing?

Thank you.  I had only seen you behavior you describe when working with the Python extension turned on.  When I removed it, the issue went away.  I don't have a good repro step yet.  Which makes this difficult to debug.
I'll be doing some more in GO soon, so may I can git it to happen there.

Same issue happening on my side. Detailed report - https://github.com/Microsoft/vscode/issues/24802#issuecomment-294751573
I am working on a project with multiple languages but mostly python.

I would like to fix this. But I need to consistent way to reproduce it.
I know this can be very frustrating for those of you that this is happening to. Please bear with me, I use VS Code and the spell checker everyday. I am not seeing this issue.
If you are seeing this issue consistently, please work with me to find a way to reproduce it. We will need to do a bit of sleuthing.
Questions:

What extensions do you have installed? This is important to know, because this issue is most likely caused by the interaction between multiple extensions.
What language are you using? Better yet, if you can point me to a github repo that I can clone, this would be ideal.
When does it happen? On VS Code startup? Only after a while? etc.
What OS and version are you using? If you are supper advanced, a vagrant box!

Please realize I don't have a lot of time to work on this.

Hey @Jason3S,
thank you for all your work you're putting into this extension!
I'll try to answer your questions which will hopefully help you to investigate this issue.
Environment
$ code --list-extensions --show-versions
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
OS: macOS Sierra 10.12.4.
VSC: 1.11.2 build 6eaebe3b9c70406d67c97779468c324a7a95db0e
Sometimes the code is executed in context of virtualbox machine from dcos-docker project or docker container via docker-machine.
Workspace
I usually work on workspace that contains multiple repos which some of them are private so I can't share them all. Here are some of the public repos that are in my workspace:
https://github.com/dcos/dcos
https://github.com/dcos/dcos-docker
https://github.com/dcos/dcos-cli
https://github.com/mesosphere/marathon-lb
https://github.com/mesosphere/vault
Total workspace stats gathered by running cloc:
   27323 text files.
   15408 unique files.
Complex regular subexpression recursion limit (32766) exceeded at /usr/local/Cellar/cloc/1.72/libexec/bin/cloc line 7573.
Complex regular subexpression recursion limit (32766) exceeded at /usr/local/Cellar/cloc/1.72/libexec/bin/cloc line 7573.
Complex regular subexpression recursion limit (32766) exceeded at /usr/local/Cellar/cloc/1.72/libexec/bin/cloc line 7573.
Complex regular subexpression recursion limit (32766) exceeded at /usr/local/Cellar/cloc/1.72/libexec/bin/cloc line 7573.
Complex regular subexpression recursion limit (32766) exceeded at /usr/local/Cellar/cloc/1.72/libexec/bin/cloc line 7573.
Complex regular subexpression recursion limit (32766) exceeded at /usr/local/Cellar/cloc/1.72/libexec/bin/cloc line 7573.
Complex regular subexpression recursion limit (32766) exceeded at /usr/local/Cellar/cloc/1.72/libexec/bin/cloc line 7573.
Complex regular subexpression recursion limit (32766) exceeded at /usr/local/Cellar/cloc/1.72/libexec/bin/cloc line 7573.
   15726 files ignored.

github.com/AlDanial/cloc v 1.72  T=211.95 s (57.2 files/s, 19911.7 lines/s)
----------------------------------------------------------------------------------------
Language                              files          blank        comment           code
----------------------------------------------------------------------------------------
Python                                 5491         273971         352728        1168056
JSON                                   1748            527              0         530769
Go                                     1959          66898          68247         473597
C                                       500          64393         111992         440664
C/C++ Header                            341          12905          19508         109352
JavaScript                              141          22418          37656         107776
Bourne Shell                            141           8408           8802          50624
HTML                                    124           2387             58          43629
Markdown                                241           6970              0          23519
Mustache                                267            147             18          22687
PO File                                  42           8274           9834          20370
Assembly                                 92           4309           7451          16717
Java                                    203           2758           3637          16587
m4                                       20           1657            192          16203
CSS                                      51           1316            966          13173
YAML                                     65            156             49           7802
TeX                                       7            838           3594           7224
Lua                                      38           1557           1291           6689
XML                                     158            247            297           5080
make                                     52            623            373           3415
C++                                       6            650            272           2821
XSD                                      12            233             40           2414
Bourne Again Shell                      112            572            268           2347
Sass                                     19            397            128           1969
WiX source                               49            150             38           1654
DOS Batch                                34            285            108           1251
Dockerfile                               49            262            251           1249
Windows Module Definition                 6             25             14           1176
ERB                                      24            154              0           1136
Velocity Template Language               14             53             20            948
Perl                                      9            153            139            907
Cython                                    3            168             71            648
Objective C                               7             98             61            635
MSBuild script                           26             40              4            622
Expect                                    5            104            161            505
Lisp                                      1            109             81            502
INI                                      13             85             27            400
Windows Resource File                     9             54             34            301
Groovy                                   10             61             19            298
PowerShell                                3             68              6            257
Visual Basic                              4             24              1            217
WiX string localization                  10             23              0            174
C Shell                                   9             93             63            173
diff                                      1             17             87            105
Maven                                     2              5              0             94
Ruby                                      3             17              5             91
Pascal                                    1             25              0             85
SQL                                       4              3              0             42
Prolog                                    1              0              0             24
builder                                   1              1              0             18
Rust                                      1              0              0              3
----------------------------------------------------------------------------------------
SUM:                                  12129         484688         628591        3106999
----------------------------------------------------------------------------------------

I usually have files opened from one or two repos when working on some feature. I can reproduce CPU spikes when I am working on python code.
Behaviour
When I start code there are is no significant CPU activity and spellchecker extension process is running with ~0 CPU usage.
I can reproduce the issue when I open a python file from one of the private repos. Process starts using 100% CPU instantly.
This is the dtruss (strace) from the time when I open the file.
kevent(0x7, 0x7FFF5E3B90F0, 0x0)                 = 0 0
kevent(0x7, 0x7FFF5E3B90F0, 0x0)                 = 0 0
kevent(0x7, 0x7FFF5E3B90F0, 0x0)                 = 1 0
recvmsg(0x3, 0x7FFF5E3B8EA8, 0x0)                = 8192 0
kevent(0x7, 0x7FFF5E3B90F0, 0x0)                 = 1 0
recvmsg(0x3, 0x7FFF5E3B8EA8, 0x0)                = 8192 0
kevent(0x7, 0x7FFF5E3B90F0, 0x0)                 = 1 0
recvmsg(0x3, 0x7FFF5E3B8EA8, 0x0)                = 6139 0
mmap(0x1AA4DAF00000, 0x100000, 0x3, 0x1012, 0xFF000000, 0x0)             = 0x1AA4DAF00000 0
psynch_cvsignal(0x7FDFE0D0CAE8, 0x2C5000002C700, 0x2C500)                = 256 0
psynch_cvwait(0x7FDFE0D0CAE8, 0x2C4000002C600, 0x2C400)          = 0 0
mmap(0x36CE5400000, 0x100000, 0x0, 0x1052, 0xFF000000, 0x0)              = 0x36CE5400000 0
dtrace: error on enabled probe ID 2132 (ID 320: syscall::write:return): invalid kernel access in action #12 at DIF offset 92
dtrace: error on enabled probe ID 2132 (ID 320: syscall::write:return): invalid kernel access in action #12 at DIF offset 92
dtrace: error on enabled probe ID 2132 (ID 320: syscall::write:return): invalid kernel access in action #12 at DIF offset 92
kevent(0x7, 0x7FFF5E3B90F0, 0x0)                 = 0 0
kevent(0x7, 0x7FFF5E3B90F0, 0x0)                 = 0 0
psynch_cvsignal(0x7FDFE0D0CAE8, 0x2C6000002C800, 0x2C600)                = 256 0
psynch_cvwait(0x7FDFE0D0CAE8, 0x2C5000002C700, 0x2C500)          = 0 0
psynch_cvsignal(0x7FDFE0D0CAE8, 0x2C7000002C900, 0x2C700)                = 256 0
psynch_cvwait(0x7FDFE0D0CAE8, 0x2C6000002C800, 0x2C600)          = 0 0
madvise(0x109E8C000, 0x46000, 0x9)               = 0 0
madvise(0x106DC1000, 0x22000, 0x9)               = 0 0
thread_selfid(0x7000013B4000, 0x803000, 0x431B)          = 5995066 0
dtrace: error on enabled probe ID 2315 (ID 1056: syscall::thread_selfid:return): invalid user access in action #5 at DIF offset 0

Please let me know if I can provide more information. Thanks!

Wow, thank you very much. Have you had the chance to install the latest version of the spell checker?  I made a change to which files it will spell check.  It might help, but I am not sure.

Never mind, I see you upgraded to the latest version.

I don't know how to debug or do anything on Windows so I can't really help technically. I'm just here to say the problem happened to me today all of a sudden and won't go away.
I'm working with a big private repository with many different projects (mostly C#, JS and TS). I need to import the root of the repository otherwise the versioning tool of VS Code is not working for some reason.
The plugin worked normally for some time but I don't know the metrics. Today VS Code was freezing, asking me to reload. I checked the CPU usage and memory and it uses as much CPU as possible and the memory usage raises as soon as VS Code starts up. I suppose the process becomes unstable when the memory usage is too high.
I found the problem in this plugin because I deactivated all the extensions and reactivated one by one. Even completely alone this plugin seems to be the cause.
I tried to reboot, to uninstall, to re-install, ... nothing change.
I haven't done anything special today. I installed tslint on the repository but I think I remember the problem was already there before this morning.

I'm having similar high CPU problems today, so had disabled all extensions. See https://github.com/Microsoft/vscode/issues/35472
I did a very quick test to re-enable this extension, and as soon as I reloaded with this extension enabled the CPU load shot up. I've done this twice with the same results; as soon as I turn off the extension it goes back to normal. I don't think the VS Code problem is unique to this extension as the issues reported don't mention this extension:
https://github.com/Microsoft/vscode/issues/35472
https://github.com/Microsoft/vscode/issues/35475

I've done a profile as suggested in https://github.com/Microsoft/vscode/issues/35472, but I can't see anything obvious.

Could this be related to https://github.com/Jason-Rev/vscode-spell-checker/issues/143

Thank you. I'll look at it immediately.
On Tue, 3 Oct 2017 at 11:48, BillDenton<EMAIL_ADDRESS>wrote:

Could this be related to #143
https://github.com/Jason-Rev/vscode-spell-checker/issues/143
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Jason-Rev/vscode-spell-checker/issues/77#issuecomment-333793519,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEoDjXC7TBeNBTr4K_q3Fpq733fe2SVzks5sogLxgaJpZM4MaOBc
.

I have pushed a fix out for this.
The problem is related to the code that searches for the configuration files. The extension calls a VSCode function to find the files. Apparently, this function is VERY expensive.
I have push a new version that mitigates the situation. I'll make a new version ASAP with a different solution.

The extension calls a VSCode function to find the files. Apparently, this function is VERY expensive.

Can you provide some more detail? What call are you making?

1.4.6 work fine for me. Thanks!

@jrieken This is related to #143

The original change went in to work around an issue with:
workspace.createFileSystemWatcher(configFileWatcherGlob);
I was getting complaints about performance when someone opened vscode on a large project.
So, I switched to a polling method using workspace.findFiles. This proved to be even worse.
The final solution was to poll for the existence of explicit files and set watchers on them.

I chose to stop using workspace.createFileSystemWatcher and workspace.findFiles altogether.

The problems I was seeing with workspace.createFileSystemWatcher, might be related to:

https://github.com/Microsoft/vscode/issues/31602
I needed to watch for changes to cspell.json, but it was not possible to set a relative path in the glob. So **/cspell.json was needed to get it to work. For large projects, this proved to be very expensive and was the original cause of slow downs on startup.
https://github.com/Microsoft/vscode/issues/35255
https://github.com/Microsoft/vscode/issues/34831

Well, it does need excludes as they don't get inherited to the API. On certain system file watching is very slow and CPU intensive...

The solution I took was to do a files exist on the possible locations for cspell.json. If found, add an explicit watch for any changes on the found files. Poll the file system every 10 seconds or so to see if any new files appeared.  Not ideal. But at least it works in constant time with little overhead.

I am closing this issue because I believe the core issue has been found and addressed.
If you are still seeing High CPU usage, please open a new issue and refer to this one.


Fix FAB Style about warning

In previous version, FAB's style occurs warning.
So, we discuss this issue in https://github.com/SiDevesh/React-Native-FAB/issues/15

@SiDevesh any word on this being reviewed/merged/published?


[BUG] Deprecation Warning on Nuxt.js build due to package.json export

I encountered the following error when using the Nuxt-Icon module on the Nuxt framework. It seems to be related to this line of code. Can you please help me take a look?
https://github.com/nuxt-modules/icon/issues/140

That's a weird one because exports are correct.
I suspect code somewhere tries to import @iconify/vue/ with extra slash at the end, which triggers that warning, but can't find such code anywhere.

It does seem to have no direct relationship with @iconify/vue
When I encountered the .npmrc file, I removed the shamefully-hoist=true line and the problem was solved.


TypeError: Cannot read property 'ask' of null

I have this code and i have this error :
TypeError: Cannot read property 'ask' of null
/**

Copyright 2017 Google Inc. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

'use strict';
const express = require("express");
const bodyParser = require("body-parser");
const { WebhookClient } = require('dialogflow-fulfillment');
const { Card, Suggestion } = require('dialogflow-fulfillment');
const { Carousel } = require('actions-on-google');
process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements
const restService = express();
const request = require('request-promise-native');
const app = actionssdk();
restService.use(
bodyParser.urlencoded({
extended: true
})
);
restService.use(bodyParser.json());
restService.post("/echo", function(req, res) {
const imageUrl = 'https://developers.google.com/actions/images/badges/XPM_BADGING_GoogleAssistant_VER.png';
const imageUrl2 = 'https://lh3.googleusercontent.com/Nu3a6F80WfixUqf_ec_vgXy_c0-0r4VLJRXjVFF_X_CIilEu8B9fT35qyTEj_PEsKw';
const linkUrl = 'https://assistant.google.com/';
const agent = new WebhookClient({ request: req, response: res });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
let intentMap = new Map();
intentMap.set('Default Welcome Intent', welcome);
intentMap.set('Default Fallback Intent', fallback);
agent.handleRequest(intentMap);
});
function welcome(agent) {
let conv = agent.conv();
// Use Actions on Google library to add responses
conv.ask('Please choose an item:')
conv.ask(new Carousel({
title: 'Google Assistant',
items: {
'WorksWithGoogleAssistantItemKey': {
title: 'Works With the Google Assistant',
description: 'If you see this logo, you know it will work with the Google Assistant.',
image: {
url: imageUrl,
accessibilityText: 'Works With the Google Assistant logo',
},
},
'GoogleHomeItemKey': {
title: 'Google Home',
description: 'Google Home is a powerful speaker and voice Assistant.',
image: {
url: imageUrl2,
accessibilityText: 'Google Home',
},
},
},
}))
// Add Actions on Google library responses to your agent's response
agent.add(conv);
}
function fallback(agent) {
let conv = agent.conv();
// Use Actions on Google library to add responses
conv.ask('Please choose an item:')
// Add Actions on Google library responses to your agent's response
agent.add(conv);
}
restService.listen(process.env.PORT || 5001, function() {
console.log("Server up and listening :) !");
});

Check in your package.json that you have last version "dialogflow-fulfillment": "^0.3.0-beta.3".
Try with npm i --save dialogflow-fulfillment@latests.

i was also having similar issue. Dont test with dialog flow inbuilt try it now. Test it with google assistant .It will work.

Sure, agent.conv() only works for Actions on Google (Google Assistant).
Take a look the code:
https://github.com/dialogflow/dialogflow-fulfillment-nodejs/blob/master/src/dialogflow-fulfillment.js#L391-L397

Duplicate of #28

Yes with agent.end() instead of adding.add()

ok, so if i got it right, that would end the current session, but it won't emit a sound like in actions-on-google, right?

i was also having similar issue. Dont test with dialog flow inbuilt try it now. Test it with google assistant .It will work.

Thanks, it worked for me!


Retain copyright notices from rust-libp2p

Hi there,
I am Max, one of the maintaners of rust-libp2p.
Let me start off by saying that I am quite happy to see an additional implementation of the libp2p specification in the Rust language based on rust-libp2p. I think your goal of offering a simplified API to the user is worth exploring, and I am curious what you come up with.
Now to my actual concern. I appreciate that you mention in your README.md that much of libp2p-rs is borrowed from rust-libp2p. In addition to this, I would like to ask you to adhere to the requirements of the MIT license of rust-libp2p, namely to retain the Parity Technologies copyright notices in each and every file that contains logic taken from rust-libp2p as well as in the LICENSE file itself.
For a concrete guide on how to properly fork an MIT licensed project I can recommend @fbaierl guide HOWTO fork a MIT licensed project.

Sure, thanks for the reminder. Will do for any files taken from rust-libp2p.
This repo was started a few month ago, and as mentioned in Readme, it is supposed to explore the feasibility of using async/await instead of poll method to make a solid network framework in Rust.
Please see here for the background why we started this project.

Sure, thanks for the reminder. Will do for any files taken from rust-libp2p.
This repo was started a few month ago, and as mentioned in Readme, it is supposed to explore the feasibility of using async/await instead of poll method to make a solid network framework in Rust.
Please see here for the background why we started this project.

@kingwel-xie oh, we totally understand your reasoning behind this fork, and are super-interested to see where it would get you!
While you're returning Parity's copyright to their right places, would you be so kind to make sure that Parity Technologies is also listed in the main LICENSE file of the repo? I'm afraid it wouldn't be enough legally to just retain the copyright notices in the individual files.

@kingwel-xie oh, we totally understand your reasoning behind this fork, and are super-interested to see where it would get you!
While you're returning Parity's copyright to their right places, would you be so kind to make sure that Parity Technologies is also listed in the main LICENSE file of the repo? I'm afraid it wouldn't be enough legally to just retain the copyright notices in the individual files.

Sounds fair. Will look into the Guide to figure out how to do.
It would take a few days to fix the copyright issue. Pretty much shorthanded, and busy with Kad-dht development. Personally I'd like to fix it in the next release when Kad is ready.

Sounds fair. Will look into the Guide to figure out how to do.
It would take a few days to fix the copyright issue. Pretty much shorthanded, and busy with Kad-dht development. Personally I'd like to fix it in the next release when Kad is ready.

Fixed with https://github.com/netwarps/libp2p-rs/pull/23. Thanks.

Fixed with https://github.com/netwarps/libp2p-rs/pull/23. Thanks.