Global constants without global::

Using global:: to access global constants inside functions looks like a hack. Is there a way to have truly global constants?

Not really. Rhai is structured specifically such that all functions are isolated from each other.  This makes them easy to mix 'n match.
In order to avoid having to search through a scope chain, Rhai functions have no access to global constants (which essentially must form a scope of itself).
The engine currently hacks it by copying the values of constants into a separate module called global.

Can't you simply perform constants propagation?
I would prefer constants to be resolved during parsing, so when I'm calling and individual function from the script - it would still work.

Not into functions currently... functions are completely isolated from each other, even from global constants.
If it is just for optimization purposes, I suppose something can be done to make those constants available to the optimizer...

No, it's not about performance, but about usability. I just want some sort of truly global constants.

Maybe I can add a static statement which declares global constants that will always be propagated to the entire script during parsing?
Will that work?

Isn't this what const should do? What would be the difference between const and static then?

const is essentially the same as let...  it only won't allow you to change the variable's value later on.
static in this case would be much more restrictive.  For example, it probably doesn't make sense for static statements within a localized block, or within a function; only at top-most scope.

I see. In Rust terms, I need const, not static. Or #define VALUE 45; in C.
For some reason, I thought that const in Rust is a global value. Maybe because you can access it via global::. But I guess this is just  a constant variable.

Actually, I can see it now.  Engine::eval_with_scope, Engine::run_with_scope and Engine::compile_with_scope() are supposed to do sorta what you want - any constants inside the scope passed in will propagate throughout the script, including functions.
However, there is a bug and functions are skipped.
I've fixed it, so in the next minor version you can use eval_with_scope with a custom scope containing your constant.
Unfortunately you still cannot do:
const VALUE = 42;

fn foo() { VALUE }

print(foo());   // hopefully this will print "42"

All my constants are defined in the script itself. I cannot set them from Rust.

Can you search for all lines starting with const and then extract them into a script, then compile it, and evaluate it into a scope.
Iterate the variables inside that scope and add them as constants into a new scope.  This gives you the scope with the constants.
Then you can just do eval_with_scope on the original script to propagate those constants into functions.

I have no plans in writing a Rhai preprocessor 😄

It probably won't be too hard.  Pre-processing on text scripts is highly common.
It probably is going to be 20-30 lines of Rust using regex.

I can probably even do it here:
let script = " ... ";      // The original script

let constants = script.lines().filter(|s| s.starts_with("const ")).collect::<Vec<_>>().join("\n");

let mut scope = Scope::new();

engine.eval_with_scope(&mut scope, constants);

// ... now we have all the global constants inside the scope

engine.eval_with_scope(&mut scope, script);      // you'll need a newer version of Rhai that fixes the constants propagation bug

If you'd like to pull from https://github.com/schungx/rhai, you can try out a new API that I added for this purpose.
let ast = engine.compile(" ... script ...")?;

// Create a Scope with all top-level constants
let scope: Scope = ast.iter_literal_variables(true, false).collect();

// Re-optimize the AST to propagate constants into functions
let ast = engine.optimize_ast(&scope, ast, OptimizationLevel::Simple);

// ... now the AST is optimized

Closing this for now unless there are further issues.

If you'd like to pull from https://github.com/schungx/rhai, you can try out a new API that I added for this purpose.
let ast = engine.compile(" ... script ...")?;

// Create a Scope with all top-level constants
let scope: Scope = ast.iter_literal_variables(true, false).collect();

// Re-optimize the AST to propagate constants into functions
let ast = engine.optimize_ast(&scope, ast, OptimizationLevel::Simple);

// ... now the AST is optimized

Testing this out right now using the specific setup in this comment and it doesn't seem like constants have been propagated into my function, or at least my script errors out on not finding the constant that should habeen propagated, is this still the right way to do it?
I'll offer more context if necessary :)
Script compilation is set up like this:

Script evaluation later happens like this:

Anything obviously wrong or want me to provide more context or try to put together a repro case?

What does your script looks like?  Can you check if the constant variables are successfully collected into the Scope?  You can simply inspect scope.len().

What does your script looks like? Can you check if the constant variables are successfully collected into the Scope? You can simply inspect scope.len().

Yeah, I checked the contents of the scope used for the call to optimize_ast and all my constants seemed to be there.

That narrows it. I'll check it out.

OK, it was a bug.  After constants propagation, I forgot to remove the variables sharing operation, and Rhai is still trying to share the variable with that name.

@profan   I have uploaded a fix.  You can pull from this repo to test it out.  Thanks for catching this.

@profan I have uploaded a fix. You can pull from this repo to test it out. Thanks for catching this.

Thank you for the fix! I'll set my cargo dep to master with the fix here and give it a try later today :)

@profan I have uploaded a fix. You can pull from this repo to test it out. Thanks for catching this.

Seems like the exact same issue still persists for me, I updated the dependency of rhai on my repository to main here, made sure to clean and update my cargo deps, the lockfile seems to reflect the right version, so I think something is still off somewhere 🤔
I updated my repository to directly reflect the issue here: https://github.com/profan/some-macroquad-things/commit/1a8561a659114b63b0273e18fe3965fbaa9d5523
If you want to use that as a case/see if there's something strange that I'm doing specifically

It would help to have a minimally reproducible sample that still contains the error.
I see that it is not an easy task to compile your repo just to test out the scripting problem...

Turns out this has been a really subtle bug, which I now caught, thanks to your report.
You can pull from this repo again to see if it finally solves your problem.

Turns out this has been a really subtle bug, which I now caught, thanks to your report.
You can pull from this repo again to see if it finally solves your problem.

Thanks for your patience! So that has definitely solved the immediate constants issue, but now I have a fun one which I assume might actually be designed behaviour, so I have this pile of constants at the top of the file, but presumably these are all evaluated when the AST is built, so you can't have constants that call into rust functions for their initial state I assume?
ie. something like this (something like HEAD_ROTATION here):

You're correct. Constants propagation occurs during parsing, which won't run your AST.
Unless you use OptimizationLevel::Full that is... If you use full optimizations, functions with all-constant arguments are eagerly-called. In this case, your quat_identity will end up being called at optimization time.

Cool, well this matter is definitely solved for me as it is then, appreciate all the help!

Cool, well this matter is definitely solved for me as it is then, appreciate all the help!

No prob!  Would be interested to know if full optimizations work out for you.  I really haven't seen anybody using Full so I'm really curious how it goes.

Cool, well this matter is definitely solved for me as it is then, appreciate all the help!

No prob! Would be interested to know if full optimizations work out for you. I really haven't seen anybody using Full so I'm really curious how it goes.

I think the way optimization level full seems to work, I probably won't be using it because I have a lot of functions that depend on the "current" state like get_current_time etc (which are very much not pure, but rhai doesn't know that), it might make sense to have an optimization level where it evaluates constants at compilation time, but doesn't go any further to assuming all functions with constant arguments are pure, or maybe the user could be offered some way of specifying that a function is a "pure" function in the function registration API?
At least that's what would make me actually use full optimizations, right now it looks much too scary to try to use it :)

Well, what you can do is to have two separate engines.  One only for compiling and contains all the simple functions such as vec3 and vec3 + vec3.  The ones you know definitely have no side-effects.
Then you can use it to full-optimize your AST.

Well, what you can do is to have two separate engines. One only for compiling and contains all the simple functions such as vec3 and vec3 + vec3. The ones you know definitely have no side-effects.
Then you can use it to full-optimize your AST.

I mean, I definitely could, but I reckon I won't, because it sounds like more effort than gain 😅

If I at registration time could say "this is a function without side effects/this function only depends on its parameters, you're free to evaluate this at compile time as long as it has constant arguments", that would make a lot more sense overall to me as a user.

We have two slightly different definitions of "pure" in Rhai:

The function does not mutate its first &mut parameter (or has no such parameter), but may cause side effects (e.g. via interior mutability)

The function does not mutate its first &mut parameter (or has no such parameter), and does not cause any addition side effects

For optimization purpose, we'd need the tighter No.2 definition, while for script execution we only need No.1 (just to make sure a function is not mutating a constant).
Rhai does not have No.2 definition pure right now, so it'd have to be added and an API to turn it on/off.

I mean, I definitely could, but I reckon I won't, because it sounds like more effort than gain keeping these things in sync 😅

Not necessarily...  it would have substantial implications on performance, especially when some of your functions are simple ones such as constructors (e.g. vec3) and simple ops (e.g. +).  If you don't optimize them, every run of your script will be calling those constructors to construct constant objects that you could have constructed once during optimization.
That depends on how many of those you have in your script and how frequently you intend to call your script.

I mean, I definitely could, but I reckon I won't, because it sounds like more effort than gain keeping these things in sync 😅

Not necessarily... it would have substantial implications on performance, especially when some of your functions are simple ones such as constructors (e.g. vec3 or matrix constructors such as translate, rotate, scale) and simple ops (e.g. +). If you don't optimize them, every run of your script will be calling those constructors to construct constant objects that you could have constructed once during optimization.
That depends on how many of those you have in your script and how frequently you intend to call your script.
For example, as in your script:
const POSITION = rotate(PI / 2) * scale(2) * vec3(1, 2, 3) + vec3(4, 5, 6);
const NORMAL = POSITION.normal;
const PROJECTION = POSITION * NORMAL;

If you don't optimize them, every run of your script will go through a bunch of calculations just to populate POSITION, NORMAL and PROJECTION. If you full-optimize them, all three will be replaced by constant vec3 objects (or constant values).

Yeah, but I also don't want to subtly break my scripts if full optimizations does something unexpected, so ergonomics > performance, especially when it's not currently a problem :eyes:
I may look into it later if it actually does become a problem, but I'm more likely to just move more stuff into rust proper

If I at registration time could say "this is a function without side effects/this function only depends on its parameters, you're free to evaluate this at compile time as long as it has constant arguments", that would make a lot more sense overall to me as a user.

We have two slightly different definitions of "pure" in Rhai:
1. The function does not mutate its first `&mut` parameter (or has no such parameter), but _may_ cause side effects (e.g. via interior mutability)

2. The function does not mutate its first `&mut` parameter (or has no such parameter), and does not cause any addition side effects

For optimization purpose, we'd need the tighter No.2 definition, while for script execution we only need No.1 (just to make sure a function is not mutating a constant).
Rhai does not have No.2 definition pure right now, so it'd have to be added and an API to turn it on/off.

I see, yeah I was looking around the rhai docs and did see the pure_fn annotations as you mention with number 1, so was wondering what the overlap there was, so this makes sense, it is definitely a bunch of extra complexity to have something like the second form of purity have to live in rhai as well 🤔


errors in generating signed APK.

Hi,
starting from v1.1.6, generating signed APK for android emits the following error:
:app:dexRelease
Unknown source file : UNEXPECTED TOP-LEVEL EXCEPTION:
Unknown source file : com.android.dex.DexException: Multiple dex files define Landroid/support/v7/appcompat/R$anim;
Unknown source file : 	at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
Unknown source file : 	at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
Unknown source file : 	at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
Unknown source file : 	at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
Unknown source file : 	at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
Unknown source file : 	at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
Unknown source file : 	at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
Unknown source file : 	at com.android.dx.command.dexer.Main.run(Main.java:277)
Unknown source file : 	at com.android.dx.command.dexer.Main.main(Main.java:245)
Unknown source file : 	at com.android.dx.command.Main.main(Main.java:106)
:app:dexRelease FAILED
Any Idea?
Thanks.

Multiple dex files define ... android/support/v7/appcompat means there is 2 copies of the Android Support Library v7 in your project. You can try changing the 2 lines in build.gradle
From:
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:support-v4:23.4.0'

TO:
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.android.support:support-v4:+'

I tried the suggested fix, but no luck. I get the same error (even in Debug)
Unknown source file : UNEXPECTED TOP-LEVEL EXCEPTION:
Unknown source file : com.android.dex.DexException: Multiple dex files define Landroid/support/v7/appcompat/R$anim;
Unknown source file : 	at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
Unknown source file : 	at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
Unknown source file : 	at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
Unknown source file : 	at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
Unknown source file : 	at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
Unknown source file : 	at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
Unknown source file : 	at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
Unknown source file : 	at com.android.dx.command.dexer.Main.run(Main.java:277)
Unknown source file : 	at com.android.dx.command.dexer.Main.main(Main.java:245)
Unknown source file : 	at com.android.dx.command.Main.main(Main.java:106)

here is the build.gradle from onesignal
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.android.support:support-v4:+'
    compile 'com.facebook.react:react-native:+'
    compile 'com.onesignal:OneSignal:2.+@aar'
    compile 'com.google.android.gms:play-services-gcm:+'
    compile 'com.google.android.gms:play-services-analytics:+'
    compile 'com.google.android.gms:play-services-location:+'
}

@andreibarabas You can try removing the following line.
compile 'com.android.support:appcompat-v7:+'

If that doesn't work list all the other plugins you have in your project, one of them must be conflicting.

@jkasten2 , i removed the line. the same issue. I removed one signal completely, and it compiles.
here is the package.json file
  "dependencies": {
    "merge": "^1.2.0",
    "merge-recursive": "0.0.3",
    "path": "^0.12.7",
    "qs": "^6.2.0",
    "react": "15.0.2",
    "react-native": "^0.26.1",
    "react-native-fs": "^1.4.0",
    "react-native-gifted-spinner": "0.0.4",
    "react-native-onesignal": "^1.1.4",
    "react-native-pdf-view": "^0.3.2",
    "react-native-router-flux": "^3.26.16",
    "react-native-vector-icons": "^2.0.2",
    "tcomb-form-native": "^0.5.0",
    "url": "^0.11.0",
    "util": "^0.10.3"
  },

in the meantime, i'm removing each plugin to determine with whom it is conflicting

Very strange... in the /node_modules/react-native-onesignal/android/build/intermediates/exploded-aar/com.android.support folder I found two folders appcompat-v7 and appcompat and in appcompat-v7 there where 3 subfolders with different versions.
I removed all such folders, and the build moved on but crashed at recyclerview with
com.android.dex.DexException: Multiple dex files define Landroid/support/v7/recyclerview/R$attr;
Then I removed the recyclerview folders from a similar path as above, and build advanced to crash at
com.android.dex.DexException: Multiple dex files define Lcom/facebook/drawee/R$attr;
then at
com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/R$anim;
then, I removed the entire module from node_modules, and run npm install again and installed a fresh copy of
<EMAIL_ADDRESS>and looking at what installed in /node_modules/react-native-onesignal/ I saw that there is a build folder in android/build populated with multiple appcompat folders and versions.
I removed the /node_modules/react-native-onesignal/android/build folder, and it worked. So, no need to  #49 , but rather make sure you exclude the build folder from the package when you ship it.

This solution to remove the build folder when shipping seems little hacky to me, since building again or sending the app through a CI would might cause this issue again.
Do you have another suggestion for this?
@andreibarabas @jkasten2

Actually now I tried to run my app without those two lines, it runs well.

It's because your Android app is running with a 23 SDK, but if you upgrade your app with a new react native version, it's should run with SDK version 25, and that's producing an error.

@mywaystar I'm with RN 0.28, or you haven't meant to me?

Did you upgraded your android folder too ?
Le 26 juin 2016 6:53 PM, "Avishay Bassa"<EMAIL_ADDRESS>a
écrit :

@mywaystar https://github.com/mywaystar I'm with RN 0.28, or you
haven't meant to me?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/geektimecoil/react-native-onesignal/issues/48#issuecomment-228610625,
or mute the thread
https://github.com/notifications/unsubscribe/AA04w_HIrs2BA1dkgPG7xxMvhrD3Sg72ks5qPq5ygaJpZM4I9dtl
.

I found what the problem is. You need to upgrade your gradle version to 2.10.
Create in your /android/ the folder /gradle/wrapper and in this folder create gradle-wrapper.properties file with the following content:
#Wed Jun 01 12:37:05 IDT 2016
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-2.10-all.zip

Then, in your /android/build.gradle file , upgrade the classpath:
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

then it runs smoothly.
I'll add this documentation to the readme.

Readme updated.

@seokgyo @andreibarabas @mywaystar
Please confirm it's working after the latest documentation change.
Thanks!

@avishayil
Now everything works well for me. Thanks very much. 😄

1.1.8 did the trick. Thanks

Happy to hear that :), closing issue.

I installed 1.1.8 and am still seeing this issue.  I tried the solution @avishayil suggestion and received new errors.  Is there a step I am missing in the process?  Thank you for any help you can provide.


[Performance] Performance Degradation on Kubernetes

User is reporting:

I set up clipper on a Kubernetes cluster and tried to see how models perform. I found that the response time of models (even the helloworld example on clipper homepage) kept increasing as I submitted more queries.

I will try to re-produce this.

I will try to re-produce this.

Thanks. I tried on both minikube and a dedicated Kubernetes cluster, and the issue happened on both case.
I used the tutorial model (sum-list), With the following data input every query:
data = [random.uniform(0, 500) for _ in range(2)]

Hi, @simon-mo How's the status for this?


feat: Migrate Session Traces to Use Blob Consumer with Feature Flags

Create migration path for Session Traces to use the Blob Consumer, which aligns Session Traces and Session Replays and allows for better ingest scaling.

Overview
This PR creates a new Agg for Session Traces which uses the Blob Consumer as the ingest pipeline.  There are many key principals to work through when evaluating this PR:

The new agg will honor BCS and WILL NOT care about what the state of SR is.  BCS is changing to be self-sufficient and we can honor the flags that are provided to us without so much cross-contamination of the feature sets. The new module comes with a set of new assumptions and the tests of that module match those assumptions.  Everything is gated by feature_flag, including how tests operate.  One of those assumptions is that BCS will report sampling to STS as 0,1,2 (off, full, error), and ST will denote entitlements. This will also apply to session replay in the form of SRS and SR respectively.
The new agg will report to the blob consumer using the same method as SR. It will report under the eventType of BrowserSessionChunk.
The new agg will generate its own PTID and will not rely on a response from ingest to do so.  To replace existing behaviors in the backend, the firstSessionHarvest flag is used.
Many new tests have been made, and several more have been edited to align with some testing structure changes.  The bulk of this PR is testing file/architecture changes.  The key concept was to take existing ST and SR tests and utilize their concepts to make matching ST-blob tests.
A change to drain/feature-flags was made.  This should be highly beneficial but warrants a thorough look-through since drain is a highly-consequential action in the agent code.

Related Issue(s)
ST SPEC
SR SPEC
Feature

Testing
Dozens of new E2E tests were created, and many more tests had small changes to align on a common testing architecture change.

reminder; handler-cache.js can be deleted -- dead code

/*
 * Copyright 2023 New Relic Corporation. All rights reserved.
 * SPDX-License-Identifier: Apache-2.0
 */
/**
 * @file Primes the Session Replay feature for lazy loading.
 *
 * NOTE: This code is under development and dormant. It will not download to instrumented pages or record any data.
 * It is not production ready, and is not intended to be imported or implemented in any build of the browser agent until
 * functionality is validated and a full user experience is curated.
 */
import { DEFAULT_KEY, MODE, PREFIX } from '../../../common/session/constants'
import { InstrumentBase } from '../../utils/instrument-base'
import { FEATURE_NAME } from '../constants'
import { hasReplayPrerequisite, isPreloadAllowed } from '../shared/utils'

export class Instrument extends InstrumentBase {
  static featureName = FEATURE_NAME

  #mode
  constructor (agentIdentifier, aggregator, auto = true) {
    super(agentIdentifier, aggregator, FEATURE_NAME, auto)
    let session
    try {
      session = JSON.parse(localStorage.getItem(`${PREFIX}_${DEFAULT_KEY}`))
    } catch (err) { }

    if (hasReplayPrerequisite(agentIdentifier)) {
      this.ee.on('recordReplay', () => this.#apiStartOrRestartReplay())
    }

    if (this.#canPreloadRecorder(session)) {
      this.#mode = session?.sessionReplayMode
      this.#preloadStartRecording()
    } else {
      this.importAggregator()
    }
  }

  // At this point wherein session state exists already but we haven't init SessionEntity aka verify timers.
  #canPreloadRecorder (session) {
    if (!session) { // this might be a new session if entity initializes: conservatively start recording if first-time config allows
      // Note: users with SR enabled, as well as these other configs enabled by-default, will be penalized by the recorder overhead EVEN IF they don't actually have or get
      // entitlement or sampling decision, or otherwise intentionally opted-in for the feature.
      return isPreloadAllowed(this.agentIdentifier)
    } else if (session.sessionReplayMode === MODE.FULL || session.sessionReplayMode === MODE.ERROR) {
      return true // existing sessions get to continue recording, regardless of this page's configs or if it has expired (conservatively)
    } else { // SR mode was OFF but may potentially be turned on if session resets and configs allows the new session to have replay...
      return isPreloadAllowed(this.agentIdentifier)
    }
  }

  #alreadyStarted = false
  /**
   * This func is use for early pre-load recording prior to replay feature (agg) being loaded onto the page. It should only setup once, including if already called and in-progress.
   */
  async #preloadStartRecording () {
    if (this.#alreadyStarted) return
    this.#alreadyStarted = true

    try {
      const { Recorder } = (await import(/* webpackChunkName: "recorder" */'../shared/recorder'))

      // If startReplay() has been used by this point, we must record in full mode regardless of session preload:
      // Note: recorder starts here with w/e the mode is at this time, but this may be changed later (see #apiStartOrRestartReplay else-case)
      this.recorder ??= new Recorder({ mode: this.#mode, agentIdentifier: this.agentIdentifier })
      this.recorder.startRecording()
      this.abortHandler = this.recorder.stopRecording
    } catch (e) {}
    this.importAggregator({ recorder: this.recorder })
  }

  /**
   * Called whenever startReplay API is used. That could occur any time, pre or post load.
   */
  #apiStartOrRestartReplay () {
    if (this.featAggregate) { // post-load; there's possibly already an ongoing recording
      if (!this.featAggregate.recorder?.recording && this.featAggregate.entitled) this.featAggregate.initializeRecording(MODE.FULL, true)
      // if already recording or not entitled, don't start (again); don't importAgg again either
    } else { // pre-load
      this.#mode = MODE.FULL
      this.#preloadStartRecording()
      // There's a race here wherein either:
      // a. Recorder has not been initialized, and we've set the enforced mode, so we're good, or;
      // b. Record has been initialized, possibly with the "wrong" mode, so we have to correct that + restart.
      if (this.recorder && this.recorder.parent.mode !== MODE.FULL) {
        this.recorder.parent.mode = MODE.FULL
        this.recorder.stopRecording()
        this.recorder.startRecording()
        this.abortHandler = this.recorder.stopRecording
      }
    }
  }
}

To do: check for proper merge after #1008 pulled in


Export of group-level tables for aparc- and aseg-stats

My proposition for #19.

group is renamed group1
the table export is implemented as group2
exports tables to 00_group2_stats_tables folder in output_dir
2to3-ed some freesurfer python scripts in the Dockerfile
added precomputed freesurfer folders (cross-sectional and longitudinal) to circleci to test group2

Nope. If this works I'm happy!
On Thu, Feb 9, 2017 at 10:34 AM, Franz Liem<EMAIL_ADDRESS>wrote:

@fliem commented on this pull request.
In Dockerfile https://github.com/BIDS-Apps/freesurfer/pull/26:

@@ -60,6 +60,11 @@ ENV PATH /opt/freesurfer/bin:/opt/freesurfer/fsfast/bin:/opt/freesurfer/tktools:
ENV PYTHONPATH=""
RUN echo "cHJpbnRmICJrcnp5c3p0b2YuZ29yZ29sZXdza2lAZ21haWwuY29tXG41MTcyXG4gKkN2dW12RVYzelRmZ1xuRlM1Si8yYzFhZ2c0RVxuIiA+IC9vcHQvZnJlZXN1cmZlci9saWNlbnNlLnR4dAo=" | base64 -d | sh

+# make freesurfer python scripts python3 ready
+RUN 2to3-3.4 -w $FREESURFER_HOME/bin/aparcstats2table
+RUN 2to3-3.4 -w $FREESURFER_HOME/bin/asegstats2table
+RUN 2to3-3.4 -w $FREESURFER_HOME/bin/*.py
the other option would be to install python2. is that you preference?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/BIDS-Apps/freesurfer/pull/26, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAOkp8F7nB6v70PgSeurSCYPitYjvkUIks5ra1xAgaJpZM4L74Mr
.

Is there anything else I can do here or on #24? Could you otherwise please create a new release? Thanks.

I'm merging this - after tests pass on master I will make a new release.

Thanks


Firebird blob bug

I have discovered bug in Firebird BLOB backend save method. It is currently not possible to write data larger than max unsigned short 0xFFFF. The problem is that Firebird API accepts only unsigned short as data size and expects that isc_put_segment is called in loop until all data has been written meaning only 0xFFFF can be written at once.
PR consists of 2 commits.
First one add additional Firebird test to indicate the problem. I tried to write byte sequence of size 0x10000 (out of unsigned short range). Cast to unsigned short results in 0 and therefore no data is written to blob.
Second commit resolves the issue.

I'm not experienced with Firebird, so I can't comment on the details of the fix.
The patch only changes Firebird backend, includes comments and test.
The CI builds are green (AppVeyor failed partially, for MySQL only).
I'm happy to merge.
Thank you!


[Bug]: ThreadRunResponse missing step_details information

Description
private function __construct(
        public string $id,
        public string $object,
        public int $createdAt,
        public string $threadId,
        public string $assistantId,
        public string $status,
        public ?ThreadRunResponseRequiredAction $requiredAction,
        public ?ThreadRunResponseLastError $lastError,
        public ?int $expiresAt,
        public ?int $startedAt,
        public ?int $cancelledAt,
        public ?int $failedAt,
        public ?int $completedAt,
        public string $model,
        public ?string $instructions,
        public array $tools,
        public array $fileIds,
        public array $metadata,
        public ?ThreadRunResponseUsage $usage,
        private readonly MetaInformation $meta,
    ) {
    }

Steps To Reproduce
https://platform.openai.com/docs/api-reference/runs/step-object
OpenAI PHP Client Version
0.8.4
PHP Version
8.2.15
Notes
No response

My apologies was looking to the wrong object


Merge macro crates (rebase of #2196)

This was starting to get stale, and we'd like to do some other mergers, so I'll take over getting it landed. This just rebases it and squashes the commits. (the squash is just so that I didn't have to go fix more issues than needed when rebasing).
Thanks @adrianbenavides!

Lets be sure this is green in CI before landing, since it was a hairy rebase.

Seems good!

Sorry @thomcc, I thought I'd have more time earlier this week. Thanks for taking it!


Add total or average commuting cost as output

Probably total would be more helpful, as then it can be divided by total number of households or by the number of those with a home...

Solved by commit f8472e0e1114598f0089524bad23f5ace7d6bee2


Inclusion of the faster dot product algorithm

Hi,
If I have Arb 2.18 installed, will this module incorporate the use of the fast dot product algorithm available in the latest Arb?
Thanks,
Zach

Yes. There is no function at the Python level that exposes the dot product as such (e.g. for computing the dot product of two Python lists of arbs/acbs), but all Arb matrix and polynomial functions will benefit.

Perhaps I should open a new issue for my follow-up question which is semi-unrelated, but I was wondering the following: would I benefit from moving a project programmed previously using the mpmath module to the python-flint module? I can't find any speed comparisons between the two, though I have read in your blog and elsewhere that you haven't developed mpmath recently, which leads me to believe I should adopt this wrapper instead. The project I have isn't necessarily complicated, but it does have many multiplications, additions, and powers. I began translating the python code to C with Arb before I realized things got very long very quickly. (To give some background, I'm making a calculator for a function which uses the higher-order chain rule for which I'm coding a look-up table for the partial bell polynomials. I've already coded it in python. Using Arb, things become very pedantic with arb_mul, arb_add, arb_power, etc. so I'd like to utilize the native speed of Arb without losing the easiness of coding in python if possible.)

Yes, probably.
By the way, there is probably a better way to compute the function you are describing. Instead of writing down explicit Bell polynomials, use power series arithmetic to compute derivatives of high order.

Thanks for the recommendation! I'll try that out.


Filter two data fields?

I want to be to filter for two properties in my table 'data' in a single column.
Can I do this using regular filters or do I have to make a custom filter?

HI @akhayoon, I think you should making a custom filter. If you have any trouble in implement the custom filter, feel free to discuss with me. Thanks :)


Collection of market issues

This is a collection of market tickets that are still open.  Some of these are already resolved in develop branch.

[ ] #1273 margin call price is 150%, not 200%
[ ] #1277 Test shorts to be forced to cover at up to 110% of price feed
[ ] #1298 Black swan resolution
[ ] #1315 Bug in market engine / matching cover_orders
[ ] #1317 Expired short positions shouldn't accrue interest
[ ] #1320 Set market as dirty on block where cover order expires
[ ] #1354 Shorts below the price feed are mind-bending and possibly wrong
[ ] #1370 Test expired AND called cover
[ ] #1372 Test all pairs of order types against each other
[ ] #1438 Maximum APR on shorts is higher than it should be
[ ] #1442 double cover (20033)

Good work so far and thanks for the writeup (https://github.com/BitShares/bitshares/blob/29064038e46db60241a2e3af02ec1c3a743a25f6/docs/market-0.8.md). Some questions:

Do we need to address any of these TODOs:

https://github.com/BitShares/bitshares/blob/29064038e46db60241a2e3af02ec1c3a743a25f6/libraries/blockchain/market_engine.cpp#L57
https://github.com/BitShares/bitshares/blob/29064038e46db60241a2e3af02ec1c3a743a25f6/libraries/blockchain/market_engine.cpp#L138
https://github.com/BitShares/bitshares/blob/29064038e46db60241a2e3af02ec1c3a743a25f6/libraries/blockchain/market_engine.cpp#L381

If no order can match only in the current pass, does this need to be a continue rather than a break: https://github.com/BitShares/bitshares/blob/29064038e46db60241a2e3af02ec1c3a743a25f6/libraries/blockchain/market_engine.cpp#L187-L198
Please confirm that the extra short and feed indexing logic here is correct: https://github.com/BitShares/bitshares/blob/29064038e46db60241a2e3af02ec1c3a743a25f6/libraries/blockchain/chain_database.cpp#L2347-L2474
Please confirm that this is the correct way to reload the extra short indexes at startup: https://github.com/BitShares/bitshares/blob/29064038e46db60241a2e3af02ec1c3a743a25f6/libraries/blockchain/chain_database.cpp#L208-L221

Please also close any of the issues in the OP whenever you consider them fully resolved.

If no order can match only in the current pass, does this need to be a continue rather than a break

There are actually two loops.  The inner loop is a while loop that executes once for each order, the outer loop is a for loop that iterates through the 3 passes.
At this point in the code we want to stop the current pass and go on to the next pass.  So break drops out of the inner loop, but the outer loop will go on to the next pass.
The indentation is not so clear that there are two loops, mostly because I didn't want to muddy the waters on this commit with a bunch of whitespace changes to otherwise untouched lines.

The TODO at market_engine.cpp#L57 was a reminder to myself to review corner cases in the iterator logic.  I'm replacing it with a comment containing my analysis, see f6d2d56f78b964c964e3025c21e563f562a26c2c
The TODO at market_engine.cpp#L138-142 was a note to myself that, while this termination check was not optional in the commit that introduced it, it would be made optional by a planned later commit.  Indeed we can see that if limit_price < mtrx.ask_price then bid_price will be set to a value at least as small as limit_price, so if limit_price < ask_price then certainly bit_price < ask_price which will trigger the termination condition at market_engine.cpp#L194-198.
Actually on closer inspection, removing this check actually seems to fix a matching bug.  With the check in place, ask_price might be high enough to trigger the check and terminate -- but in case of a called cover order, the code in the next if statement might "want" to update ask_price to force a match, but never run because of the check.  End result, called cover orders would be unable to match against new shorts unless the short price actually overlapped the margin call price, contrary to the design intent.  The commit that removes the check is 55aae58924374e85b413b25e4595cde27cd198e4
With respect to the TODO at market_engine.cpp#L379-L382 -- this block of code was created in two places by 14d47ab32509e6688cc4dd64d2181ce87876991c, one was quickly removed in d076871b8e74efae4e69a535b96da392f8ea73f3.  It seems that the intent was to dispatch to the logic to update _shorts_at_feed where this check is, but _shorts_at_feed is updated in store_feed_record() instead.  So dispatching to this logic from the market engine is no longer necessary.  I'm deleting the if statement and TODO in 7f9a60ce0bd22a91144a9699dbe667117006e1f2

About flagging chain_database.cpp#L2347-L2474 as a potential trouble spot -- nice code reviewing skills.  @valzav yesterday reported a failing acceptance_test which, upon investigation, I determined to be failing due to incorrect logic in this section.  It is now fixed in f93723d57248635c663a46178f88309744c8f1de and everything else in that section seems to be correct.

@theoreticalbts will this always return an empty iterator?

https://github.com/BitShares/bitshares/blob/7f9a60ce0bd22a91144a9699dbe667117006e1f2/libraries/blockchain/market_engine.cpp#L90-L93

Should it be something like std::make_pair( *_feed_price * 0.9, market_index_key( current_pair ))?
same issue reported at https://github.com/BitShares/bitshares/issues/1315#issuecomment-80824265

@abitmore : _short_at_limit_itr is a reverse iterator so it starts at feed price and goes downwards (but excludes orders exactly at the feed price, those are covered by _short_at_feed_itr).  When shorting into a margin call, what would happen is the cover price would be adjusted to consume more collateral at market_engine.cpp#L168-L184.
I think what you're missing here is that shorts can only execute on one side of the feed (which side this is depends on which flipped market you're thinking about).  Shorts that are on the "wrong side" aren't inactivated, rather they are clamped to shorting at the feed value.  Those clamped shorts are in _short_at_feed_itr.  The whole point of these changes is that because these shorts have two modes of execution, they need to be indexed separately.

@theoreticalbts  Thanks for reply. I didn't know how the reverse iterator works (now I know). I guessed that it would start from the nearest short below feed_price and go down, but incorrectly assumed it would end at the parameter passed into the constructor of reverse_iterator, and misunderstood the rend() call.
BTW I think I know how the shorts should match, just trying to understand the code.


Adding support For DNS record addition/list/removal

Hello :)
Thank you for writing up this go library! I've made some additions to allow modifying DNS records on NFSN for a given account and domain. Please take a look and merge if acceptable.

Thanks! I don't use my NFS account, but I'll merge this. Overall it looks great!
I'll push a tag to let you use Go Modules (if you do).

Thanks :) I updated it so I could write a terraform provider against it


Contact matrices for countries and handler code in initialize_parameters.py

Have you made changes in input_params CSV that take in a country-specific parameter? Need to change the current reading from this file https://github.com/AIforGoodSimulator/model-server/blob/new_camp_experiments/fs/params/contact_matrix_params.csv logic

Not yet. I'll remove this contact matrix that we're currently using and replace it with country based logic. Just one thing to ask, from where in UI are we going to float these values around? Should I take country name as a parameter for our constructor to Parameters class or somewhere else?

I am thinking about how can do we better about inputting country parameters... maybe an Enum class? We probably want to throw a more intelligible error like 'Country not found' rather than the file is not found.

We can have a config file in .ini format with the mappings from country to CSVs or a python file with a dictionary containing all the mappings. What approach seems suitable? Any one of these approaches would allow us to give better error messages.

Have you made changes in input_params CSV that take in a country-specific parameter? Need to change the current reading from this file https://github.com/AIforGoodSimulator/model-server/blob/new_camp_experiments/fs/params/contact_matrix_params.csv logic

Not yet. I'll remove this contact matrix that we're currently using and replace it with country based logic. Should I also rename all the contact matrix CSVs to a standard naming format? Currently, some of the CSVs are also named like this: Venezuela (Bolivarian Republic).csv .
Just one thing to ask, from where in UI are we going to float these values around? Should I take country name as a parameter for our constructor to Parameters class or somewhere else?

HI @utkarshsahu country names will here in 2 places (i) simplified UI (for non-technical end-user) and (ii) run_model (for data scientists) ... another UI - advanced UI does not need country input as it can capture from simplified UI if needed.

I am thinking about how can do we better about inputting country parameters... maybe an Enum class? We probably want to throw a more intelligible error like 'Country not found' rather than the file is not found.

We can have a config file in .ini format with the mappings from country to CSVs or a python file with a dictionary containing all the mappings. What approach seems suitable? Any one of these approaches would allow us to give better error messages.

Hi @billlyzhaoyh @yanhong-zhao-ef @utkarshsahu we can think about returning all files from the directory and based on the filenames - expose that as a list for users to choose from - this means the list is dynamic and always current, eliminating the need to update the list on a periodic basis or risk getting out of date.

I am thinking about how can do we better about inputting country parameters... maybe an Enum class? We probably want to throw a more intelligible error like 'Country not found' rather than the file is not found.

We can have a config file in .ini format with the mappings from country to CSVs or a python file with a dictionary containing all the mappings. What approach seems suitable? Any one of these approaches would allow us to give better error messages.

Hi @billlyzhaoyh @yanhong-zhao-ef @utkarshsahu we can think about returning all files from the directory and based on the filenames - expose that as a list for users to choose from - this means the list is dynamic and always current, eliminating the need to update the list on a periodic basis or risk getting out of date.

Also could you provide the reference where all the contact matrices can be obtained? For example, a paper publication or website with those information would be sufficient. Thanks

@pardf please notice the country map implementation here - maybe the dropdown country-input can take that as well but if it takes too much time then I can wire them up later

@pardf please notice the country map implementation here - maybe the dropdown country-input can take that as well but if it takes too much time then I can wire them up later

HI @billlyzhaoyh @utkarshsahu the dynamic country listing is completed in the simplified UI - strictly speaking there is no need for the code to contain a list of the countries and how they are mapped to the corresponding csv file
@utkarshsahu could you update the code such that - the csv file is whatever the values of the corresponding parameter added with '.csv' - e.g. 'Germany' -> 'Germany.csv'. This will make the country list truly dynamic. Thanks.

@utkarshsahu could you update the code such that - the csv file is whatever the values of the corresponding parameter added with '.csv' - e.g. 'Germany' -> 'Germany.csv'. This will make the country list truly dynamic. Thanks.

@pardf Updated the implementation by creating a method get_supported_countries() in param store and removing the countries map which was earlier created.


Docker Submission Tab should not make rest calls if docker submissions are not enabled for a task

If docker submissions are not enabled for a task, then the frontend still makes REST-Calls which are shown as errors in the frontend.
The frontend should not make REST calls if no docker submissions are enabled for a shared task.

That are calls to create a software in the VM page.

This is fixed with the new image due to commit https://github.com/tira-io/tira/commit/dfc2f6b842e8178e828f8d0c2d47208f7d88b7de.
Closing.


correct governance doc copy

... a bit

Looks good to me - don't see why not to merge but I'll let a more experience wg member do the merge in case I'm missing something.

LGTM for this typo /cc @chrisdickinson

LGTM

Thanks! Merging now.


Can't log in using Databag-Umbrel

I cant log in on Databag on iOS. Im hosting databag using my umbrel server, but it doesnt work. could you also tell me if its possible to log in from the other side of the globe?

Yes, you can login from the iOS app to your umbrel hosted databag instance, but with umbrel however you need to use the cloudflare tunnel app.
The cloudflare setup has a few steps to follow (https://github.com/Radiokot/umbrel-cloudflared/wiki/How-to-set-up-Cloudflare-Tunnel-on-your-Umbrel), and will also require you to purchase a domain. Let me know if you need help with this process.
I have been able to connect to my instance from another country, so I assume the other side of the globe should also work.


Not working

Importing on zabbix 3.0
XML file contains fatal error 41:Specification mandate value for attribute data-pjax-transient [ Line: 45 | Column: 42 ]

Please let me know

which template you were having issues with
Which version of Zabbix you are running

Thanks

Hi,
This is zabbix_template_windows_updates.xml and i'm running Zabbix 3.0.0


Graphics Level

How do I lower the graphics level of the skins to the lowest level?

in your game, model quality/details


Debugging failure after restarting vscode

By Google Translate from Japanese to English.
If you start debugging in the following way, it will fail.

"program" is set to something other than "$ {file}"
Restart vscode without opening the file set in "program"
Start debugging

Curiously, if you open and close the file set in "program" and start debugging, it works fine.

These failure flow is normal.
When program is null, ScriptRunner will get current open file.
https://github.com/cweijan/vscode-autohotkey/blob/edcaf8ada599ce57087b959822e7e71e00d65402/src/core/ScriptRunner.ts#L41

By Google Translate from Japanese to English.
sorry. My intentions have not been correctly communicated.
This is definitely a bug. "path" is not null. And are properly specified.
In the first place, it fails before it reaches AhkDebugSession constructor.
The conditions for this bug are as follows.
You can check this using the "Autohotkey v1 Debugger" debug configuration of this repository.

Launch vscode newly
Start debugging without having activated the file with the extension "ahk"

I got you mean. In your situation, the plugin is not active.
Fix at add onDebug to activationEvents of package.json .

Thanks!

By Google Translate from Japanese to English.
I am new to using "issues".
Should it be open until there is a fix?

I confirmed the fix. Thanks!


Raw latences

Is there any way to get pairs <timestamp, latency> to build latency heatmap https://github.com/brendangregg/HeatMap ?

Would the dump sub command help tour cause?

On 24 Jan 2017, at 16:39, Gleb<EMAIL_ADDRESS>wrote:
Is there any way to get pairs <timestamp, latency> to build latency heatmap https://github.com/brendangregg/HeatMap ?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Thanks you, I am not sure, but I'll try.


Using keyboard shortcut to switch between split views does not allow for cmd + k to clear terminal

[x] I am on the latest Hyper.app version

[x] I have searched the issues of this repo and believe that this is not a duplicate

OS version and name: OSX Sierra

Using keyboard shortcut to change between split terminals does not allow the use of cmd + k to clear terminal.
Open Hyper, use cmd + d to split views.  Now, switch between the views and press cmd + k.  Nothing happens, you're able to type and everything else though.  I have to click inside the split terminal in order to clear.

I cannot replicate the issue.
--
Hyper: 2.0.0 (stable)
macOS: High Sierra 10.13.4


Update Dell.CommandUpdate to 5.0.0

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

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

Microsoft Reviewers: Open in CodeFlow

I dont know where to continue here. Everything looks correct and the logs from the validation doesnt deliver any helpful output.

Wont be merged until https://github.com/microsoft/winget-cli/issues/1417
Therefore I close the PR for now.


fix: package naming

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


Add cost reporting functionality

Adds a new cost module that contains functions to fetch pricing for azure resources through retail api's. It also includes functionality to get per nodearray usage data from cyclecloud and uses that to provide per nodearray pricing.
Some stub functions are also added for adding future functionalities.

@microsoft-github-policy-service agree company="Microsoft"


Add translations in spanish in crud.php

Add export buttons translations in spanish

Thank you @Darival ! Merged!


PipelineIntermediate issue in Pipeline.swift

I am using this library in my app. While archiving my app I faced this below issue

Thank you. Do you use Xcode16-beta? Using Swift6?

Using stable Xcode 15.4 which comes with Swift 5.9

Any update?


GSoC 2024: GitHub Discussion UI at Home,  Discussion and Contributor's route

Pull Request Description
Overview
This PR introduces a comprehensive update to display GitHub Discussions across various routes: Home, Discussions, and Profile. It also adds functionality to filter discussions based on their category and creation date. Additionally, discussions will be integrated with activities on the contributor's route.
Changes
New Routes and Components

New Discussions Route:

Created a new route to display all discussions (currently limited to GitHub Discussions).

New Components:

GitHub Discussions: Displays all discussions and handles their filtering.
GitHub Discussion: A discussion card showcasing the title, author, timeline, description, and participants.
Filter Discussions: Filters discussions using SearchParams. Includes:

Discussions Category
Date Range Picker (reuses the existing component)

DiscussionsMarkdown: A client-side markdown component for experimental purposes. It is intended to potentially replace the existing server-side component if proven effective.

Library Update

lib/discussion.ts: Contains two functions:

fetchGithubDiscussionForUser()
fetchGithubDiscussion(): Fetches a specified number of discussions. If no number is provided, it returns all discussions.

Discussions UI
Desktop View
https://github.com/user-attachments/assets/eb713544-19d5-41b4-9411-a6f9f49d3e5f
Mobile View
https://github.com/user-attachments/assets/bc48833b-f216-4ec3-9d5c-2248e3577004
1. Discussions Route:

2. Home Route:

3. Contributors Profile Route:

My Tasks

[x] Refactor Python scraper into TypeScript using the GitHub Octokit GraphQL API.
[x] Scrape and parse GitHub discussions using Octokit and GraphQL.
[x] Create a new discussion route to display all GitHub discussions.
[x] Display the top 5 discussions with a "Show More" option on the home page of the leaderboard.
[x] Add discussions with contributor activity data.
[x] Enable calculation of points based on discussions created, discussions answered, and comments created in discussions.
[x] Implement a reward system for discussion .

@dgparmar14 Builds failing when there is no discussion directory (which happens when no discussions were scraped so far and none were present to be scrapped in the last 24 hours or the given scraping time range)


Multithreading is not working on any Chromium-based browser, but it's working perfectly on Firefox.

Describe the bug
I was recently working on a practice project where my goal was to convert a webm video to mp4 format on the client side. Initially, I was able to achieve this using a single-threaded worker version. However, I later attempted to implement a multithreaded worker version, which unfortunately did not succeed. I spent some time troubleshooting to identify where I went wrong, but I couldn't pinpoint the issue.
To further investigate, I tested the conversion process in a playground environment, and I discovered that even the playground couldn't perform video conversion in multithreaded mode. Subsequently, I tried using different web browsers based on the Chromium engine, but they all failed in this aspect. Surprisingly, Firefox was the only browser that successfully executed the multithreaded video conversion.
To Reproduce
Anyone can reproduce this scenario from FFMpeg PlayGround. Just need to enable the Use Multithreading flag. Transcoding process will be stuck at 0%.
Expected behavior
The expected behavior involves the successful execution of multithreaded video conversion across various web browsers, including Chromium-based ones.
Some Screenshots about this issue

Desktop

OS: Windows 11
Browser: Chrome v117.0.5938.150, Microsoft Edge v117.0.2045.47, Vivaldi v6.2.3105.54, Firefox v117.0.1

I have seen the same issue. It really performs very well in multithreaded mode at Mozilla. But I think Chrome is a more popular browser than Mozilla. So please fix this issue as soon as possible.

To Reproduce
Anyone can reproduce this scenario from FFMpeg PlayGround. Just need to enable the Use Multithreading flag. Transcoding process will be stuck at 0%.

The Playground works fine with multi-threading on Chrome Version 117.0.5938.134 (Official Build) (64-bit) on Windows 10. Just tried it to verify your issue and it transcoded correctly without error. It doesn't seem to be as easy to reproduce as you suggest.
I have seen some issues that only arise when using the multi-threaded version where it fails, but the playground basic demo test isn't one of them.
So the question is, why is it working for some and not for others?
Could it be a browser extension issue?

Also working on Microsoft Edge Version 119.0.2141.0 (Official build) canary (64-bit) on Windows 10

WebAssembly browser code compatibility is not as clear cut as Javascript. I have a PC with a CPU that does not support SIMD and that prevents a number of WebAssembly libraries from working correctly (Blazor WASM is a notable example.) It is possible that the multi-threaded version uses some CPU instructions your CPU does not support.

Duplicate #578, #532

@LostBeard Thanks a lot for your response, and I'm really sorry for the late reply. As you mentioned, the issue could be related to the CPU.
My CPU configuration is:
Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz
Base speed:	2.90 GHz
Sockets:	1
Cores:	8
Logical processors:	16
Virtualization:	Enabled
L1 cache:	512 KB
L2 cache:	2.0 MB
L3 cache:	16.0 MB

Exactly the same issue. Using Chrome 117.0.5938.150 on Windows 11 Pro and it doesn't work. Works fine in Firefox 118.0.1. If it matters, my CPU is Intel i9-13900K
It hangs just before it starts the encoding process:
ffmpeg version 5.1.3 Copyright (c) 2000-2022 the FFmpeg developers   built with emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.40 (5c27e79dd0a9c4e27ef2326841698cdd4f6b5784)   configuration: --target-os=none --arch=x86_32 --enable-cross-compile --disable-asm --disable-stripping --disable-programs --disable-doc --disable-debug --disable-runtime-cpudetect --disable-autodetect --nm=emnm --ar=emar --ranlib=emranlib --cc=emcc --cxx=em++ --objcc=emcc --dep-cc=emcc --extra-cflags='-I/opt/include -O3 -msimd128 -sUSE_PTHREADS -pthread' --extra-cxxflags='-I/opt/include -O3 -msimd128 -sUSE_PTHREADS -pthread' --enable-gpl --enable-libx264 --enable-libx265 --enable-libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libopus --enable-zlib --enable-libwebp --enable-libfreetype --enable-libfribidi --enable-libass --enable-libzimg   libavutil      57. 28.100 / 57. 28.100   libavcodec     59. 37.100 / 59. 37.100   libavformat    59. 27.100 / 59. 27.100   libavdevice    59.  7.100 / 59.  7.100   libavfilter     8. 44.100 /  8. 44.100   libswscale      6.  7.100 /  6.  7.100   libswresample   4.  7.100 /  4.  7.100   libpostproc    56.  6.100 / 56.  6.100 Input #0, matroska,webm, from 'video.webm':   Metadata:     title           : Big Buck Bunny, Sunflower version     COMMENT         : Creative Commons Attribution 3.0 - http://bbb3d.renderfarming.net     GENRE           : Animation     MAJOR_BRAND     : isom     MINOR_VERSION   : 1     COMPATIBLE_BRANDS: isomavc1     COMPOSER        : Sacha Goedegebure     ARTIST          : Blender Foundation 2008, Janus Bager Kristensen 2013     ENCODER         : Lavf60.3.100   Duration: 00:00:10.00, start: 0.000000, bitrate: 180 kb/s   Stream #0:0: Video: vp9 (Profile 0), yuv420p(tv, bt470bg/unknown/unknown, progressive), 320x180, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 1k tbn (default)     Metadata:       HANDLER_NAME    : GPAC ISO Video Handler       ENCODER         : Lavc60.3.100 libvpx-vp9       DURATION        : 00:00:10.000000000 Stream mapping:   Stream #0:0 -> #0:0 (vp9 (native) -> h264 (libx264))
(this is the whole log)

I have also faced the same issue while testing on my chrome browser, As soon as i turn on the multi-threading on chrome, the same issue occurs, please look into this problem urgently.

Any progress on this issue? I've checked it with several people with different PC/Mac configurations and no one can run it using the latest Chrome/Edge (or any chromium-based browser). It definitely doesn't look like it's affecting only specific hardware.

Further testing makes me think that there is a fundamental problem with memory limitations. If you put the arg -threads X, it will work up to a specific number, after which it will silently stop responding. In my project that 'X' seems to be about 4 for the video I'm trying to convert, and in the FFMPEG Playground, that limit is 8. navigator.hardwareConcurrency reports 32 on my machine.  If that's what the wasm uses to detect how many threads to use, then it may be running out of available memory for the wasm to work properly, especially with bigger media.

@SvetlozarValchev Thx!
threads seems to be the issue. Setting it to 5 works for me, anything above wont work.

Facing the same issue, in my case not even -threads X is helping

This seems to be the same issue as #654 and #530. It's working for me implemented on NextJS 14 with Firefox 121.0, but does not work on Chrome 120.0.6099.130.

Further testing makes me think that there is a fundamental problem with memory limitations. If you put the arg -threads X, it will work up to a specific number, after which it will silently stop responding. In my project that 'X' seems to be about 4 for the video I'm trying to convert, and in the FFMPEG Playground, that limit is 8. navigator.hardwareConcurrency reports 32 on my machine. If that's what the wasm uses to detect how many threads to use, then it may be running out of available memory for the wasm to work properly, especially with bigger media. It seems like Chrome has put some arbitrary limit, because it doesn't have problems on Firefox, and my machine's total RAM is definitely not reached.
If that really is the cause, it means that modern machines will hit that hidden limit way too easy for multi-threading to be a viable approach in a production environment.

That was really helpful. Setting it up -threads 4 works for me. Anything higher will hang. It also looks like transcoding the same video takes the same time on Firefox without the -threads flag.

Adding -threads 4 works for me on m3 max both chromium-based and safari.

I've tested on my Windows, Linux and Mac machines, on Safari and Chromium-based browsers. It seems like -thread 4 is okay to handle some basic filter like scale, crop and hflip/vflip, which does not consume much of memory, but any filter like concat will silently fail while transcoding, when demuxed-concat works just fine and fast.
I think this problem is worth a note on ffmpeg wasm document Usage page because it's not a trivial problem and really confusing for developers since it just silently fails with no further explain.


Move MPSSimulator to use act_on

This is a follow-up for #3841

Would you be able to make MPSState inherit from ActOnArgs and use that to perform measurements?

Had an offline discussion with Dax and it might be premature to do this modification, so I'll withdraw this for now.


Can't find colorscheme when sourcing vimrc file

Consider the following minimal vimrc
set nocompatible

let $CLOUD_DIR = expand('$HOME/OneDrive/')
let $DOTVIM = expand('$CLOUD_DIR/vimfiles')
set runtimepath=$DOTVIM,$VIMRUNTIME,$DOTVIM\after

if has('vim_starting')
    execute 'set runtimepath+=' . expand('$DOTVIM/bundle/neobundle')
endif
call neobundle#begin(expand('$DOTVIM/bundle/'))

" Normalize bundle names
let g:neobundle#enable_name_conversion = 1

NeoBundle 'petobens/heraldish', {'frozen' : 1}
NeoBundleFetch 'Shougo/neobundle.vim', {'name' : 'neobundle'}
call neobundle#end()

" Set file type stuff to on
filetype plugin indent on

colorscheme heraldish

Now open GUI Macvim (or terminal Macvim), edit (i.e open) this minimal vimrc file and then run so %.
I get the following error

When the vimrc file is source the colorscheme is not found. I expect the colorscheme to be found.

I also tried with terminal vim (not macvim) and I get the same error.

I think "heraldish" plugin is not installed.
You must execute :NeoBundleInstall

I think the colorscheme is installed. I tried with the following minimal vimrc:
set nocompatible

let $CLOUD_DIR = expand('$HOME/OneDrive/')
let $DOTVIM = expand('$CLOUD_DIR/vimfiles')
set runtimepath=$DOTVIM,$VIMRUNTIME,$DOTVIM/after

if has('vim_starting')
    execute 'set runtimepath+=' . expand('$DOTVIM/bundle/neobundle')
endif
call neobundle#begin(expand('$DOTVIM/bundle/'))
let g:neobundle#enable_name_conversion = 1
NeoBundle 'petobens/heraldish', {'frozen' : 1}
NeoBundleFetch 'Shougo/neobundle.vim', {'name' : 'neobundle'}
call neobundle#end()

filetype plugin indent on
syntax enable

set termguicolors
if neobundle#is_installed('heraldish')
    colorscheme heraldish
endif

And  when I run so % I still get:

OK.  I get the problem.  It is your vimrc error.
set runtimepath=$DOTVIM,$VIMRUNTIME,$DOTVIM/after
if has('vim_starting')
    execute 'set runtimepath+=' . expand('$DOTVIM/bundle/neobundle')
endif

You must not reset 'runtimepath'.
The correct is this.
if has('vim_starting')
    set runtimepath=$DOTVIM,$VIMRUNTIME,$DOTVIM/after
    execute 'set runtimepath+=' . expand('$DOTVIM/bundle/neobundle')
endif

Awesome! Thank you so much!!!


Calling go_to_previous when the previous tab has been closed throws an error

The error:
E5108: Error executing lua ...e-tabs/lua/telescope/_extensions/telescope-tabs/main.lua:76: Invalid tabpage id: 4
stack traceback:
        [C]: in function 'nvim_set_current_tabpage'
        ...e-tabs/lua/telescope/_extensions/telescope-tabs/main.lua:76: in function 'go_to_previous'
        [string ":lua"]:1: in main chunk

One option would be to print an informative message in this case, but if the plugin tracked the last visited tabs it could jump to the previous of the previous.
Reproducing it is easy, just
:tabe
:q
:lua require('telescope-tabs').go_to_previous()

Wow. It was fixed yesterday :D
Updating the extension solved the issue.

Thanks for submitting anyway.
Do you have any other feature requests or ideas that would improve this extension? I'd love to get some feedback :)


Wrapping in a DIV

Hi,
I was testing this for my chart, but the chart went missing when put inside a div.
If I took out the div, it all went fine.
<template>

      <chartist
        id-chart="ct-chart"
        ratio="ct-major-second"
        type="Line"
        :data="chartData"
        :options="chartOptions" >
      </chartist>

</template>

Hi thanks for your feedback, I look this today.

When i use your component example, it work. (i tested whit semantic-ui)
I suppose what your problem depend a broader context.


CAMEL-16198: Upgrade Flatpack to 4.0.5 in order to compile in Java 16 and 17

This upgrades to Flatpack 4.0.5 that fixes the compilation issues in JDK 16 and 17EA. However, since 4.0.5 is not yet released to maven, please do not merge this PR. This should be fixed once the maintainer of the flatpack project releases 4.0.5 to maven central

Great! Thanks!


Fix Issue #44 and #59, add workaround for #58

Adds a RateLimiter class to session.py.  Also fixes a problem in the ages regexp in looking_for.py and adds a workaround for an error that can occur in looking up properties by detail, both suggested by dubiousjim.

Hey! Thanks for doing this. Any chance you could write some tests?

I'm not sure how to write tests.  I see the tests directory at the top level, but I don't know what to add there.

Just write some code that uses the features you are adding / hits the bugs you are fixing.
In the case of okcupyd, use the use_cassette decorator from https://github.com/kevin1024/vcrpy
on your test function. This will record all outbound http requests and their responses when you run the test the first time. If you use the built in test recording functionality, it will automatically scrub your username and password from all http data.

Unfortunately I'm going to be traveling for the next couple weeks and won't have to time to write the tests (I also don't know particular profiles that trigger the problems in Issue #59 and Issue #58 ).  I can try when I get back though.


[SPARK-21213][SQL] Support collecting partition-level statistics: rowCount and sizeInBytes

What changes were proposed in this pull request?
Added support for ANALYZE TABLE [db_name].tablename PARTITION (partcol1[=val1], partcol2[=val2], ...) COMPUTE STATISTICS [NOSCAN] SQL command to calculate total number of rows and size in bytes for a subset of partitions. Calculated statistics are stored in Hive Metastore as user-defined properties attached to partition objects. Property names are the same as the ones used to store table-level statistics: spark.sql.statistics.totalSize and spark.sql.statistics.numRows.
How was this patch tested?
Added tests.

Can one of the admins verify this patch?

ok to test

add to whitelist

cc @wzhfy

Test build #78663 has started for PR 18421 at commit e18f144.

Test build #78663 has finished for PR 18421 at commit e18f144.

This patch fails PySpark pip packaging tests.
This patch does not merge cleanly.
This patch adds no public classes.

Build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/78663/
Test FAILed.

Please update the PR title.

[SPARK-21213][SQL] Support collecting partition-level statistics: rowCount and sizeInBytes

Test build #78749 has started for PR 18421 at commit f9327b0.

Test build #78750 has started for PR 18421 at commit 090be78.

Test build #78750 has finished for PR 18421 at commit 090be78.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/78750/
Test FAILed.

Test build #78749 has finished for PR 18421 at commit f9327b0.

This patch fails due to an unknown error code, -9.
This patch does not merge cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/78749/
Test FAILed.

Build finished. Test FAILed.

Test build #78809 has started for PR 18421 at commit 2d1e817.

Test build #78809 has finished for PR 18421 at commit 2d1e817.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test build #78923 has started for PR 18421 at commit 70b35ce.

Test build #78927 has started for PR 18421 at commit aecb5a9.

@wzhfy, @gatorsmile, I updated this PR to support partial partition specs where values are defined only for a subset of partition columns. For example, if table has 2 partition columns ds and hr, both PARTITION (ds='2010-01-01', hr=10) and PARTITION (hr=10) specs are valid. I did not provide support for partition specs where partition column is mentioned without any value. E.g. PARTITION (ds, hr=10) spec is still not allowed. I didn't implement this because I realized that I don't understand why this syntax is useful. My understanding is that (ds, hr=10) is equivalent to (hr=10). Do you think it is important to implement this syntax? If so, would you help me understand why? Is this because we want to support HQL at the same level as Hive to allow seamless transition from Hive to Spark?

Test build #78923 has finished for PR 18421 at commit 70b35ce.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/78923/
Test PASSed.

Merged build finished. Test PASSed.

Test build #78929 has started for PR 18421 at commit b0804c5.

@wzhfy, @gatorsmile, I updated PR to add full support for partition partition specs. This version supports a subset of partition columns with or without values specified. I'm going away for the long weekend tomorrow and will be back next Wed (July 5). I may not be able to respond to comments or provide updates to this PR until then.

Test build #78930 has started for PR 18421 at commit b527f18.

Test build #78927 has finished for PR 18421 at commit aecb5a9.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/78927/
Test FAILed.

Merged build finished. Test FAILed.

Test build #78929 has finished for PR 18421 at commit b0804c5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/78929/
Test PASSed.

Merged build finished. Test PASSed.

Test build #78930 has finished for PR 18421 at commit b527f18.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/78930/
Test PASSed.

Test build #79232 has started for PR 18421 at commit 0150fea.

Test build #79232 has finished for PR 18421 at commit 0150fea.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/79232/
Test FAILed.

@wzhfy, thank you for review. I created AnalyzePartitionCommand class, modified the logic to update all partitions in a single call to Metastore, combined noscan and non-noscan test cases. I believe I addressed all comments except for requests to make queryStats and assertStats common functions. After merging test cases, each of these functions is used only in one test, hence, there is no copy-pasta anymore. Would you take another look?

Test build #79246 has started for PR 18421 at commit 2d8732e.

Test build #79248 has started for PR 18421 at commit 8c0b61b.

Test build #79248 has finished for PR 18421 at commit 8c0b61b.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/79248/
Test FAILed.

Test build #79246 has finished for PR 18421 at commit 2d8732e.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class AnalyzePartitionCommand(

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/79246/
Test PASSed.

Test build #79285 has started for PR 18421 at commit 43f2112.

Test build #79285 has finished for PR 18421 at commit 43f2112.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/79285/
Test PASSed.

Merged build finished. Test PASSed.

Test build #79526 has started for PR 18421 at commit 32edbe8.

Test build #79529 has started for PR 18421 at commit fd819be.

@wzhfy, I fixed the case of PARTITION (ds, hr) to collect stats for all partitions instead of for a table as a whole. Rebased. Addressed other comments. Please, take another look.

Test build #79533 has started for PR 18421 at commit 994cd06.

Test build #79529 has finished for PR 18421 at commit fd819be.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/79529/
Test FAILed.

Test build #79533 has finished for PR 18421 at commit 994cd06.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/79533/
Test FAILed.

Test build #79526 has finished for PR 18421 at commit 32edbe8.

This patch passes all tests.
This patch does not merge cleanly.
This patch adds the following public classes (experimental):
case class AnalyzePartitionCommand(

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/79526/
Test PASSed.

@wzhfy, @gatorsmile, I'm on vacation till the end of July. I hope this PR is good to merge now, but if not, I'll address further comments first week of August.

Jenkins, retest this please

Test build #79729 has started for PR 18421 at commit 994cd06.

@wzhfy, @gatorsmile, I just noticed that Jenkins reported test failures. I'll look into these first week of August and update this PR.

Will review it tonight. Thanks!

Test build #79729 has finished for PR 18421 at commit 994cd06.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/79729/
Test FAILed.

Is that possible the partition-level row counts is larger than the table-level row counts after running this new command?

ping @mbasmanova

@gatorsmile, I was on vacation and today is my first day back. I'm planning to work through the feedback on this PR today.

[ @gatorsmile ] Is that possible the partition-level row counts is larger than the table-level row counts after running this new command?
I think so. If table contents have changed since table-level stats were collected and a new very large partition was added or existing one replaced, collecting partition-level stats for that one partition will result in a partition row-count exceeding table row-count.
I think you are pointing out to a larger issue of staleness of statistics which results from table modifications. My thinking is that ANALYZE TABLE commands provide the necessary primitives to collect statistics, but a separate facility is needed to manage the process of collecting these stats. At a very basic level a user would be required to manually run necessary ANALYZE TABLE commands when table content is changed, but for larger deployments an automated solution could be devised.

Test build #80082 has started for PR 18421 at commit a0fd270.

Test build #80082 has finished for PR 18421 at commit a0fd270.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80082/
Test PASSed.

@gatorsmile , I believe I addressed all your comments and I'm seeing that tests are passing now. Thanks for pointers to -1 and <=0 changes. Tests were failing before because I missed these changes. Let me know if anything else needs more work or if this is now good to merge.

Test build #80353 has started for PR 18421 at commit 2233b2c.

Sorry, I missed this. Will review it today.

Test build #80353 has finished for PR 18421 at commit 2233b2c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80353/
Test PASSed.

Merged build finished. Test PASSed.

@mbasmanova Could you also please update the PR description to describe the user APIs and their semantics? Thanks!

Test build #80401 has started for PR 18421 at commit 64efad2.

Test build #80402 has started for PR 18421 at commit ba48073.

Test build #80401 has finished for PR 18421 at commit 64efad2.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80401/
Test PASSed.

Merged build finished. Test PASSed.

Test build #80402 has finished for PR 18421 at commit ba48073.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80402/
Test PASSed.

@gatorsmile, thanks for review. Comments addressed. Questions answered. Tests as passing. Would you take another look?

There are still two remaining comments. Could you also address them?

@mbasmanova Really thank you for your contribution! LGTM except the above four comments.

Test build #80492 has started for PR 18421 at commit 54ec425.

This looks great!
Regarding this https://github.com/apache/spark/pull/18421/files#r132493566, could we just follow Hive? That is consistent with what we are doing in INSERT.
In the future releases, we still can make a change if needed. Thanks again!

Test build #80492 has finished for PR 18421 at commit 54ec425.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80492/
Test FAILed.

Merged build finished. Test FAILed.

Test build #80501 has started for PR 18421 at commit b1e5079.

Test build #80501 has finished for PR 18421 at commit b1e5079.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80501/
Test PASSed.

Merged build finished. Test PASSed.

@gatorsmile , thank you for reviewing this PR. I'm exciting that it is getting very close to be merged.
It is not obvious to me why would you prefer to follow Hive and restrict the user to partitions spec which contains partition columns from the head of the list of all partition columns specified in the table schema and disallow arbitrary subsets.

ping @gatorsmile

This is just to make it consistent with the partition spec in our current INSERT statement. Could you justify why we need to make them inconsistent? Thanks!
Also cc @sameeragarwal

Test build #80806 has started for PR 18421 at commit 87594d6.

Test build #80806 has finished for PR 18421 at commit 87594d6.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80806/
Test PASSed.

Test build #80816 has started for PR 18421 at commit 3353afa.

Test build #80816 has finished for PR 18421 at commit 3353afa.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80816/
Test FAILed.

Test build #80846 has started for PR 18421 at commit 8ffb140.

Test build #80846 has finished for PR 18421 at commit 8ffb140.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80846/
Test PASSed.

Thanks!!! Merging to master.

@gatorsmile , so excited to see this change merged. Thank you for your careful detailed reviews.

@mbasmanova Great work!  I was really busy in the past two months so I didn't have time to look at this.
Thank @gatorsmile for reviewing and merging this PR!

@wzhfy Welcome back!


Building error: cannot resolve path

ERROR in ./src/index.js
Module not found: Error: Can't resolve './components/index' in '/Users/changyan/Documents/repos/zion/src'
 @ ./src/index.js 8:23-52
 @ multi ./src/index.js ./src/index.js ./dist/zion.js

fixed by https://github.com/thomasyimgit/Zion/commit/62e80a5c9b22c4cee3697942be94401de11c2f23


Link to GitHub comment in SDK coding standards doesn’t work

This link points to a PR comment which has already been resolved. When following this link, the browser just leaves you at the top of the PR page without any indication of which was the linked comment.

@lawrence-forooghian That is annoying. I've had a quick play around and I'm not sure I can find a workaround. Once a conversation has been closed, perhaps only when it's in a bigger and/or closed PR, it seems the comment deep links stop working (presumably because not all the page DOM elements get created immediately, therefore no id exists to link to 🤷).
Thus, unless there's a mechanism GitHub offer that I'm unaware of to realistically link to old comments, then this is unworkable and the fix for this issue is to simply remove this 'dead' link.


Update custom-tiles-in-sharepoint-server-2016.md

Fix #1674

@nenonix @JohanFreelancer9 Copy editing is needed for this PR. Thanks.


single / to double  //, with a single slash url is interpreted as rel…

…ative and does not work.

Thanks!


stderr pollutes pre-processing

I have graph-easy installed via whalebrew on an m1 mac (whalebrew install tsub/graph-easy). When I run echo '[a] -> [b]' | graph-easy --as=boxart I get the following output:
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
┌───┐     ┌───┐
│ a │ ──> │ b │
└───┘     └───┘

The warning message is on stderr. If I redirect stderr the warning doesn't appear:
❯ echo '[a] -> [b]' | graph-easy --as=boxart 2>/dev/null
┌───┐     ┌───┐
│ a │ ──> │ b │
└───┘     └───┘

Consider the following markdown:
```
~~~graph-easy --as=boxart
[a] - to -> [b]
~~~
```

On my machine, that makes a slide which looks like this:
     WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
     ┌───┐  to   ┌───┐
     │ a │ ────> │ b │
     └───┘       └───┘

   Ken Powers 2022-03-22                                                                                Slide 2 / 2

I attempted to redirect stderr, but then I just get an empty slide.
```
~~~graph-easy --as=boxart 2>/dev/null
[a] - to -> [b]
~~~
```

Is there a way to not make stderr show up on my slides?

Looks like we use CombinedOutput which fetches the stderr along with the normal stdout. I think it's reasonable to change this to only Output.

@knpwrs https://github.com/maaslalani/slides/pull/145 should prevent stderr from showing up in the pre-process output! Thanks for reporting this issue.

Awesome, thank you for the quick fix!

No problem! Thanks for the well written issue!


WTD fixes for #31444

@ryandcoates : Thanks for your contribution! The author, @genlin, has been notified to review your proposed change.

I am only the author of virtual-networks-static-private-ip-classic-ps.md article. For this article, the change looks good for me.

@ktoliver : Thanks for your contribution! The author, @genlin, has been notified to review your proposed change.

@ktoliver : Thanks for your contribution! The author, @genlin, has been notified to review your proposed change.

@ktoliver : Thanks for your contribution! The author, @genlin, has been notified to review your proposed change.

@ktoliver : Thanks for your contribution! The author, @genlin, has been notified to review your proposed change.

@ktoliver : Thanks for your contribution! The author, @genlin, has been notified to review your proposed change.

Verified the updates; merging.
@ryandcoates Thanks!


More verbose output/stepping into the execution

I am trying to debug a TS code that is passed to the code runner but I can't find why the error would happen. Any chance that we could get a more verbose output ?
Alternatively, would it be possible to attach some debugger to step in the execution directly ?

@jdylanstewart Any info here would be a huge help

I attached a debugger to the ts-code-runner and it is supposed to give us the stack as part of the error but we receive just a very small part of the stack. Still looking at it.

The stack returned is intentionally limited to the user code files here. It might be good to add logging of the entire stack though. You should be able to get the entire stack via the debugger too though.

Ok, somehow the error returned has message and incomplete stack fields that are the ones being json-inified. But the real stack is in a sub-object error that is not defined by the user error class.

Anyway, that's some postprocessing that can be done on aerie's side.


.json file import failed

First of all, I'm new to github so please forgive me if I'm doing anything wrong by opening this issue.
Issue Summary
I have just set up three ghost blogs up and running on the same Digital Ocean server on the same domain with different subdirectories (/en /ru /journal).
All three are version 0.11.3
When I'm trying to import .json file from one ghost blog to another it sais “Import Failed”. That's it, just “failed” no further details.
Steps to Reproduce

I downloaded .json file from /ru blog
Set up /journal blog with the same user name, email and password
Tried to upload this .json
Fail

I thought maybe I shouldn't create the same user, so

I once again downloaded .json file from /ru blog
Set up /en blog with different user name and email
Uploaded new .json
4 Fail

Technical details:

Ghost Version: 0.11.3
Node Version: 4.6.0
Browser/OS: DigitalOcean Ubuntu 14.04
Database: huh? default probably, I don't remember setting up any databases

Hey @curlymario Sorry to hear you are having trouble. It's hard to say why your database import failed without seeing the server log or without providing your JSON file to us.
Can you please swing by our slack channel and ask for help there? We can provide better support there than in the Github issue tracker, and if this turns out to be an actual issue with Ghost this issue can be reopened.


openssl-passwd(1) doesn't give all algorithms in Description

https://www.openssl.org/docs/manmaster/man1/openssl-passwd.html says in Description:

The MD5-based BSD password algorithm -1, its Apache variant -apr1, and its AIX variant are available.

I almost stopped reading there because I wanted SHA512. The Options section lists -5 and -6; these should also be in Description's summary.
Or better still, get rid of that line as it's duplicating Options by not only listing the algorithms but giving their options too.

Fix in #16531


Adopt RoleArn For Cross-Account Lambda Information

Add the ability to get lambda function information from AWS accounts that are different from where Backstage is running, or where Backstage has been provided AWS credentials.
Support for getting cross-account credentials via an IAM role has been added to backstage-plugin-aws-auth via https://github.com/RoadieHQ/backstage-plugin-aws-auth/issues/41
Possible Implementation

Add an additional, optional, field for the lambda annotation aws.com/lambda-role-arn:
Support passing the role arn to the getCredentials() operation if it has been specified in the annotation

Context
In my specific implementation, Backstage is running in a particular AWS account, and it's container has a specific instance profile assigned to it. Our lambda functions that I'd like to show within the UI exist in different accounts, and are managed by the separate development teams that manage their microservices. Providing those teams the ability to load function details cross-account is critical to the use of the plugin.
This also acts as a demonstration vehicle for other plugins to adopt the new feature in backstage-plugin-aws-auth.

To add on this, can we link multiple lambdas to one backstage entities? And these lambdas might live in multiple different AWS accounts. Asking because our company has lambdas on over 50 AWS accounts and it would be nice to have backstage display them 🤔

@jamesrenaud any news here?


[dv/keymgr] a direct sequence to change otp key on the fly

Description
From PR: https://github.com/lowRISC/opentitan/pull/17739
We plan to write a direct sequence test to change otp input key on the fly. The expected DUT behavior is to check keymgr won't sample the changed key again after the first sampling.
1). Suggest to write a direct sequence test: because the scb won't predict the exact clock cycle where design sample the otp keys.
2). V3 test: in current chip level design, otp output key to keymgr should not change until the next power cycle.
cc: @fati

The logic inside keymgr relevant for latching the root key from OTP is relatively simple and one see that it can only be latched once after reset. The RTL is frozen and we're not going to change the behavior here (which could again introduce a bug). So, the risk is extremely low here.
For future development of the IP block it would be nice to have such a check / sequence but I don't believe we have time for this now. Thus putting into M7 for now.


problems installing SIFT with cast

Hi!
I downloaded ubuntu desktop 22.04 02 Desktop in Parallels and used cast to install SIFT workstation.
However, I get the following error:

uname -a returns:
Linux ubuntu-linux-22-04-02-desktop 5.15.0-118-generic #128-Ubuntu SMP Fri Jul 5 09:30:28 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
Cast version:
cast version v0.14.44
Thanks in advance!

I am also getting the above error. Any help with this issue would be appreciated! : )

Top priority for me to fix, trying to do it today.

@D2TZC4BP69N9R76H @forensicator0x10 what architecture are you on? AMD64 or ARM64?

I just saw the uname, I missed it the first time. Currently ARM64 is not supported.  We do need to fix the saltstack portion, but there's about 50% of the packages installed by SIFT that are only available for AMD64 at the moment.

ARM64 just isn't supported at this time, closing in favor of #592 please follow that issue for updates.


set validationwebhookconfig as Fail close by default for remote clusters

when we use istiod-less as default remote for multi-cluster, we have below error:
info	validationController	Not ready to switch validation to fail-closed: dummy invalid rejected for the wrong reason: gateways.networking.istio.io is forbidden: User "system:serviceaccount:istio-system:istio-reader-service-account" cannot create resource "gateways" in API group "networking.istio.io" in the namespace "istio-system"

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

Test name
Commit
Details
Rerun command

release-notes_istio
b331a1c52897ee94eccb7993f156cf6fabe0040a
link
/test release-notes_istio

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

/test release-notes_istio

@howardjohn @linsun PTAL, Thanks.

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

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
b727d5c3b53ae13adffa1a1bc9e3634fea5cd6f4
link
/test integ-pilot-k8s-tests_istio

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

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

Test name
Commit
Details
Rerun command

integ-pilot-k8s-tests_istio
b727d5c3b53ae13adffa1a1bc9e3634fea5cd6f4
link
/test integ-pilot-k8s-tests_istio

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

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

/test integ-pilot-k8s-tests_istio

/test integ-multicluster-k8s-tests_istio

@stevenctl @nmittler this is used to support istiod-less as default remote as in https://github.com/istio/istio/pull/28181.  PTAL


Release 0.8.3

Codecov Report

Merging #45 (69cb074) into main (a162236) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #45   +/-   ##
=======================================
  Coverage   85.41%   85.41%
=======================================
  Files          10       10
  Lines         377      377
=======================================
  Hits          322      322
  Misses         55       55

Continue to review full report at Codecov.

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


[dcc32 Fatal Error] DelphiChatGPT.dpr(35): F2613 Unit 'EMemLeaks' not found.

Hi
I am trying to compile DelphiChatGPT.dpr I use Delphi 12 but I got error
[dcc32 Fatal Error] DelphiChatGPT.dpr(35): F2613 Unit 'EMemLeaks' not found.
In line:   uLLM.Replicate in '..\Libs\LLM\uLLM.Replicate.pas';
I added the file path to lib path but still get the same error. Any solution ?
Thanks

That is for the Eurekalog Debug diagnostic tool.  You can either:

delete the reference in the uses clauses between {$IFDEF EUREKALOG} and {$ENDIF}
delete the EUREKALOG DEFINE in project options.